7 заметок с тегом

windows

Openmediavault: join a Windows 2008R2 domain

20 октября 2016, 12:49

Settings

Domain is : domain.local
windows 2008R2 hostname : srv-dc-01
omv hostname : omv

Check IP configuration

Openmediavault has a DHCP assigned IP address. You should check its hostname and name resolution

omv:/# host domain.local
domain.local has address 192.168.0.10
omv:/# hostname -f
omv.domain.local

Check time and NTP

The LAB environment runs ESXi : time is synced on each VM boot and is sufficient for testing purpose. In production environment use VMware Tools and time sync agains the ESXi host or use NTP.

Install required packages

apt-get update
apt-get install krb5-user krb5-clients libpam-krb5 winbind libnss-winbind

You will asked for kerberos default domain : DOMAIN.LOCAL

Kerberos configuration

Runs out of the box with default configuration. However you may edit /etc/krb5.conf as the following

[libdefaults]
        default_realm = DOMAIN.LOCAL
        ticket_lifetime = 600
        dns_lookup_realm = yes
        dns_lookup_kdc = yes
        renew_lifetime = 7d
;       allow_weak_crypto = true

# The following krb5.conf variables are only for MIT Kerberos.
;       krb4_config = /etc/krb.conf
;       krb4_realms = /etc/krb.realms
;       kdc_timesync = 1
;       ccache_type = 4
;       forwardable = true
;       proxiable = true

# The following encryption type specification will be used by MIT Kerberos
# if uncommented.  In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java).

      # Pour Windows Server 2008 R2 (seems not required)
;      default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
;      default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
;      permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

      # Pour Windows Server 2003 (not tested agains windows 2003 server yet, and this server is deprecated)
;      default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
;      default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
;      permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5


[kdc]
        profile = /etc/krb5kdc/kdc.conf

[logging]
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmin.log
        default = FILE:/var/log/krb5lib.log

Test kerberos settings

kinit -V administrator (at) DOMAIN.LOCAL

Give administrator password

Test you got a ticket: klist
(Sample-)Output:

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator (at) DOMAIN.LOCAL
 
Valid starting     Expires            Service principal
01/28/13 13:28:58  01/28/13 13:38:58  krbtgt/DOMAIN.LOCAL (at) DOMAIN.LOCAL

Destroy all tickets (and check with klist): kdestroy

SAMBA settings

In OMV webGUI :
enable SAMBA
set Workgroup : DOMAIN
tick «Enable user home directories». You may also tick «Set browseable».
add extra options :

password server = *
realm = DOMAIN.LOCAL
security = ads
allow trusted domains = no
idmap config * : range = 9400-59999
winbind use default domain = true
winbind offline logon = false
winbind enum users = yes
winbind enum groups = yes
winbind separator = /
winbind nested groups = yes
;winbind normalize names = yes
winbind refresh tickets = yes
template shell = /bin/bash
template homedir = /home/%U

#  Performance improvements
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
client ntlmv2 auth = yes
client use spnego = yes

Test samba configuration: testparm

This step is not required

If you wish to view your AD users and groups in OMV webinterface include UIDs and GIDs into non-system users and groups in /etc/login.defs. Find UID_MAX and change UID_MAX and GID_MAX as the following

UID_MAX                 60000
GID_MAX                 60000

Editing AD users and groups using the OMV webinterface will fail because they are not stored in /etc/passwd and /etc/group.

Join the domain

Argument createcomputer allows you to create the computer's account in an organisational unit (OU) and is not required.

omv:/# net ads join -U administrator createcomputer=servers/linux
Enter administrator's password:
Using short domain name -- DOMAIN
Joined 'OMV' to realm 'domain.local'

Enable authentication with winbind

edit /etc/nsswitch.conf

passwd: compat winbind 
shadow: compat
group: compat winbind

Enable authentication with winbind

edit /etc/nsswitch.conf

passwd: compat winbind 
shadow: compat
group: compat winbind
ldconfig

Check users and groups enumeration

getent passwd (you get local and AD users lists)
getent group (you get local and AD groups lists)

Enable mkhomedir and umask

create the file /usr/share/pam-configs/my_mkhomedir with the following content

Name: Activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
	required	pam_mkhomedir.so umask=0077 skel=/etc/skel

umask argument for mkhomedir didn't worked for me. pam_umask.so seems be a better option. Create the file /usr/share/pam-configs/umask with the following

Name: Activate umask
Default: yes
Priority: 800
Session-Type: Additional
Session:
	optional	pam_umask.so umask=0077

Fix domain folder permission

In SMB/CIFS, extra confguration the special variable %D is used to distinguish domain users from OMV's local users. A folder will becreated upon first domain user connexion. However the folder will not allow domain users to traverse the folder and access their home directory. This need a fix. Create the folder where template homedir expects to find it, and adjust the owners and permissions. If your active directory contains a white space, ensure to escape it with a backslash.

mkdir /home/DOMAIN
chmod 0755 /home/DOMAIN
chown root:domain\ users DOMAIN

SSH login for AD users

In OMV webGUI enable SSH, disable root login (prefer su and sudo) and add this in Extra Options :

AllowGroups root ssh "domain users"

Please check «domain users is enclosed by double quotes and check this is the group name available in windows 2008 R2 (I'm french and I'm using a french windows 2008R2 : groups and users names are localized)

Login against SMB or SSH

don't prefix username with domain. (eg: not DOMAIN.LOCAL/administrator; use administrator only)

domain   krb   linux   openmediavault   samba   windows

RSOP — Invalid Name Space

4 мая 2016, 11:56

Recently had an issue where an entire site was not downloading domain policies. After a thorough search and different attempts to fix the issue I came across a batch file that I want to list here for future reference:

make the following into a batch file

net stop winmgmt

pause

c:

cd c:\windows\system32\wbem

rd /S /Q repository

regsvr32 /s %systemroot%\system32\scecli.dll

regsvr32 /s %systemroot%\system32\userenv.dll

mofcomp cimwin32.mof

mofcomp cimwin32.mfl

mofcomp rsop.mof

mofcomp rsop.mfl

for /f %%s in ('dir /b /s *.dll') do regsvr32 /s %%s

for /f %%s in ('dir /b *.mof') do mofcomp %%s

for /f %%s in ('dir /b *.mfl') do mofcomp %%s

mofcomp exwmi.mof

mofcomp -n:root\cimv2\applications\exchange wbemcons.mof

mofcomp -n:root\cimv2\applications\exchange smtpcons.mof

mofcomp exmgmt.mof

After running this re-run the GPUPDATE /force

SSH туннель через PUTTY

4 мая 2012, 11:55
Веб-серфинг
«C:\Program Files\PuTTY\plink.exe» -v -ssh -2 -P 22 -C -l USER -pw PASSWORD -L 8080:192.168.80.3:3128 192.168.80.3

где

-v : отображать подсказки
-ssh -2 : протокол и версия протокола
-P 22 : порт сервера
-l USER : имя пользователя на сервере (вместо USER)
-pw PASSWORD : пароль пользователя (вместо PASSWORD)
-L 3328:192.168.80.3:3128 — это параметры тунеля 3328 -локальный порт;192.168.80.3 — ip сервера;3128 — порт прокси на сервере.
-C : использовать сжатие


Настройка VPN через SSH с использованием Putty

Итак, имеем:

компьютер на базе Windows (удаленная рабочая станция, условно КЛИЕНТ);

почтовый сервер (не важно, какой именно, будь то Kerio MailServer, MDaemon или другой, условно СЕРВЕР_ПОЧТЫ в локальной сети — ну предположим, что вам надо с ним работать, а просто так локальный почтовый сервер в мир не подключен);

шлюз (прокси-сервер) в интернет с запущенным сервером SSH (например, FreeBSD или Linux, которые во многих организациях стоят как брандмауэры, условно БРАНДМАУЭР).

Задача: осуществить безопасное (шифрованное) соединение от КЛИЕНТА к СЕРВЕРУ_ПОЧТЫ по протоколу POP3 (получение почты, обычно порт 110). Ну и пусть нам это надо не постоянно, а иногда (иначе надо все-таки настраивать нормальный VPN-сервер).

Решение

Т. к. по умолчанию трафик по протоколу POP3 передается открытым текстом, а мы передаем очень секретный пароль от почтового ящика, то почтовый трафик надо шифровать :) Чем мы будем его шифровать? Поднимать специальный VPN-сервер, редирект портов, настраивать сертификаты и прочее — часто не выход, т. к. это сложно даже для большинства системных администраторов, к тому же, как сказано чуть выше, нам все это надо для периодических сеансов работы, возможно, только для нас и нужных ;)

Мы будем делать соединение между КЛИЕНТОМ и СЕРВЕРОМ_ПОЧТЫ внутри шифрованного содинения по протоколу ssh.

Шаг 1.

Возьмем бесплатный клиент ssh для Windows — Putty — и установим его на КЛИЕНТА (по умолчанию, в папку «C:\Program Files\Putty»).

Шаг 2.

Далее установим зашифрованное соединение между КЛИЕНТОМ и БРАНДМАУЭРОМ так, чтобы для КЛИЕНТА работа с почтой внутри локальной сети была бы точно такой, как если бы он (клиент) был бы у себя в офисе.

У КЛИЕНТА запускаем консоль: Пуск -> выполнить -> cmd

В консоли набираем команды:



cd C:\Program Files\Putty
putty.exe -v -ssh -2 -P 22 -C -l user -pw password -L 8110:192.168.1.10:110 81.222.111.10



где «-v» — т. н. verbose режим, с расширенными комментариями, «-ssh -2» — использовать протокол ssh версии 2, «-P 22» — порт, открытый на БРАНДМАУЭРЕ для подключения по ssh, «-C» — использовать сжатие, «-l user» — имя пользователя, который имеет право входить на сервер ssh на БРАНДМАУЭРЕ, «-pw password» — пароль этого пользователя,

далее (я специально сделал отступ от предыдущего текста):
»-L 8110:192.168.1.10:110» — локальный порт, который будет доступен на компьютере КЛИЕНТА, а 192.168.1.10 — локальный ip-адрес почтового сервера внутри организации, 110 — соответственно, порт POP3 на этом сервере;
«81.222.111.10» — внешний ip-адрес БРАНДМАУЭРА, к которому и будет соединяться КЛИЕНТ по ssh с помощью putty.

После набора последней команды (putty.exe -v -ssh -2 -P 22 -C -l user -pw password -L 8110:192.168.1.10:110 81.222.111.10) откроется окно сеанса связи по протоколу ssh. Все, окно сворачиваем (не закрываем!), и настраиваем нашу почтовую программу на получение почты с адреса localhost и портом 8110, а не 110, который стоит по умолчанию.

Вроде бы все. Во время получения почты почтовая программа будет соединяться с портом 8110, который будет переадресован на удаленный почтовый сервер в офисе, при этом весь трафик соединения будет зашифрован. Завершить сеанс связи можно просто закрыв окно сеанса putty. После этого локальный порт 8110 уже не будет доступен.

Можно добавить, что похожим образом можно соединяться не только к почтовому серверу, но и к другим сервисам, например, я таким образом соединялся с RAdmin, установленным на компьютере в локальной сети, при этом никаких port-мапперов на самом шлюзе делать не надо. Вот что самое хорошее! Достаточно иметь актуальную версию сервера ssh на шлюзе и, желательно, фильтровать на брандмауэре подключения к порту 22 (ssh), например по ip-адресу, если у вас дома или где там еще подключение к интернет постоянное. Но это уже мелочи жизни и тема другой статьи.

Вообще у ssh и putty, есть ооочень много всяких разных приятностей, которые здесь не упомянуты. Надеюсь, эта статья подтолкнет вас к небольшому исседованию, начать которое очень просто: http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=ssh&lr=&aq=f.

Кроме того, упомянутые в статье программы (за исключением почтовых серверов и ОС самого клиента ;)) являются бесплатными и свободно распространяемыми, а стремление быть легальным и бесплатным — хороший стимул приглядеться к реализации подобного безопасного соединения через ssh.

И еще, конечно же, при написании этой заметки я использовал другие ресурсы для «освежения» памяти. Вот самая полезная ссылка, которая и стала финальной в моих тестовых экспериментах перед опубликованием статьи: http://wiki.kaytaz.ru/doku.php/ssh-tunnel_cherez_putty.

Примечания (составлены по итогам комментариев на 27.03.2008)

1. (isx) Если туннель простаивает некоторое время, то соединение рвется, потому стоит поменять параметры сервера: TCPKeepAlive. Увеличить LoginGraceTime, выставить ClientAliveInterval и ClientAliveCountMax. Убрать UseDns, иначе длительные ожидания при установке соединений.

2. (isx) А отчего не сделаешь все через ssl? Если не хочется возиться с почтовиком, то можно воспользоваться программой stunnel, поднимая ее на шлюзе(брандмауэре). // Stunnel (http://stunnel.mirt.net/) использует OpenSSl или SSLeavy для шифрования трафика. Используется для установления шифрованных тонелей связи между клиентом и сервером. Работает в Linux, Windows, OS/2 и прочих осях.

3. (Serg) Если человек не админ брендмауэра — могут быть проблемы. Кто-то может гарантировать, что в настройках sshd не выключен форвардинг и/или туннелирование? // Действительно, к данному решению надо подходить взвешенно и понимать, что указанный способ туннелирования действительно больше всего подходить только для админа.
Создание туннеля через Putty и ssh.

В unix системе:
ssh -L666:адрес_прокси_или_сервера:порт -n имяпользователя@адрес_ssh_сервера

В windows:

Для конфигурации туннеля с помощью PuTTY нужно в окне конфигурации подключения в категории Session указать Host Name: ваш_ssh_сервер, Port: 22, Protocol: SSH и в категории Connection/SSH/Tunnels в секции Add new forwarded port указать Source port: локальный_порт (например, 666), Destination: адрес_прокси_или_сервера:3306, выбрать пункт Local и нажать кнопку добавить. После установления соединения можно запускать интернет браузер например, указав в качестве прокси 127.0.0.1 и порт, указанный в качестве Source Port (например, 666). Вот так.
putty   ssh   windows

Перенос в KVM

4 мая 2012, 10:12
По мотивам последних событий с моей работы решил написать этот пост, ибо ничего похожего в рунете к сожалению не обнаружил, а очень жаль, ибо перетаскивать виртуалки с VirtualBox и VMWare в благородный KVM все таки приходится. Один из популярных способов сводиться в сливу образа диска в KVM, а затем загрузка с установочного диска и востановление системы (а фактически новая установка поверх старых настроек). Лично меня подобная схема не устроила, потому что образ присланной виртуалки не содержал установочного диска с которого его можно было бы восстановить, а искать похожий образ муторно. Итак.

Мы имеем следующий набор. Виртуалка на VirtualBox или VMWare, гостевая система Windows (с linux такой свистопляски нет), и сервер с KVM на котором и будем размещать нашу виртуалку. В моем случае это сервер KVM который работает в связке с LVM, но я постараюсь затронуть и вариант когда KVM работает с файловыми образами диска.

Приступаем.

1. Готовим систему к переносу.

Не секрет, что и VirtualBox и VMWare для нормальной работы ставят в систему свои собственные дрова и утилиты. Так вот первое что нужно сделать — это избавиться от них. Удаляем и VirtualBox Guest Tools и VMWare tools...

Следующим шагом — необходимо будет отвязать нашу Windows от железа на котором она была установлена. К счастью для этого есть официальный мануал (http://support.microsoft.com/kb/314082/en-us). Мотаем его в самый низ, и создаем файлик Mergeide.reg содержащий код из мануала.

После того как файлик был создан и сохранен, запускаем его и вносим изменения в реестр. Теперь осталось проверить что все необходимые файлы для запуска в KVM есть, для этого идем в C:\Windows\system32\drivers\ и ищем там файлы:

atapi.sys
intelide.sys
pciide.sys
pciidex.sys

Если какого либо из этих файликов нет — то заходим внутрь архива C:\Windows\Driver Cache\i386\Driver.cab и копируем недостающие файлики оттуда.
На этом мы закончили приготовления системы, и можем ее без проблем выключить.

2. Готовим образ диска

Тут есть варианты. Все зависит от того какая у вас система виртуализации щас, и где KVM будет хранить свои образы дисков.

Так или иначе, вся схема создания образа делиться на две части, первая — это подготовка SGF (Single Growable File), и вторая — это перенос SGF в KVM.

VMWare

Нам необходимо сконвертировать vmdk файл нашей виртуалки в формат SGF. Этот формат фактически сырой RAW нашего диска, и имеет расширение VMDK. Для VMWare он делается так

«C:\Program Files\VMware\VMware Server\vmware-vdiskmanager» -r windows.vmdk -t 0 windows-sgf.vmdk

Если в этом месте возникают какие либо грабли, то попробуйте параметр «-t 0» заменить на «-t 2». Хотя в большинстве случаев все должно пройти без проблем.

VirtualBox

Для того что бы сделать образ SGF в VBox'e необходимо в меню Файл -> Менеджер виртуальных дисков, выбрать диск интересующей нас виртуалки и нажать «Копировать». В качестве источника оставляйте выбранный диск, Тип виртуального диска выбираем VMDK, Дополнительные атрибуты — Фиксированный виртуальный диск.

После того как копирование завершиться вы увидете два образа, с одинаковым именем, но второй будет иметь после имени «-flat», например «windows.vmdk» и «windows-flat.vmdk». Как раз второй образ с flat и будет нашим SGF диском.

3. Проверяем образ

Для того что бы избежать ошибок можно проверить полученный образ. Для этого в linux есть команда file. Вывод нормального образа должен иметь примерно следующий вид

# file windows-sgf.vmdk
windows-sgf.vmdk: x86 boot sector; partition 1: ID=0x83, active, starthead 1,
startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845,
16563015 sectors, code offset 0x48

Если вывод говорит о том что это файл образа VMWare — значит мы не получили нужного нам формата образа.

4. Устанавливаем образ в KVM

Тут все зависит от настроек KVM. Используете ли вы файлы, либо используете LVM. Оба варианта приведены ниже

LVM

Тут особой писать нечего. dd он и в Африке dd.

# dd if=/path/to/windows-sgf.vmdk of=/dev/volgroup/partname

После этого можно кормить KVM этот раздел LVM

KVM File (qcom2)

В качестве файлового стораджа я люблю использовать формат qcom2, хотя это больше вопрос религии. Тем не менее сконвертировать этот образ можно следующей командой

qemu-img convert -f vmdk windows-sgf.vmdk -O qcow2 windows.qcow2

Я думаю что объяснять не нужно что меняя параметр «-О» можно выбрать другой формат хранения. После чего данный диск можно кормить KVM.

Стоит так же отметить, что qemu-img позволяет конвертировать не только SGF но и простые vmdk, хотя с менее предсказуемым результатом. Поэтому лучше конвертировать. Если при конвертации выпадает ошибка, попробуйте не использовать ключ «-f vmdk», и дайте утилите самостоятельно определить формат образа. Говорят что помогает.

5. Первый запуск.

Я не буду расписывать как настраивать KVM, вы уже большие и сами знаете как это сделать, отмечу только тот факт, что Windows ни под каким соусом не поддерживает virtio, поэтому даже не пытайтесь.

После первого запуска система должна определить все новое железо, и установить на все драйвера. Тут будте внимательны. У меня был случай когда Windows не смогла найти драйвера на ACPI процессора, и мне пришлось его отключить в диспетчере устройств, что бы система не падала в BSOD. После установки всех устройств, систему лучше перезагрузить.

6. P2V

С виртуалками разобрались, но как быть с реальными машинами? Честно говоря не пробовал, но есть мнение что данный способ годиться и для реальных машин.

Подготовка машины происходит тем же способом, после выключения можно загрузиться с какого либо Linux LiveCD, и запустить команду на копирование всего физического диска (именно всегодиска , а не раздела) в заранее созданный LVM, или файл.

# dd if=/dev/sda | ssh user@kvm-host «dd of=/path/to/file.vmdk»

И конечно же вы догадались, что вместо file.vmdk, образ можно заливать сразу же в LVM. Не забудьте проверить md5 суммы у исходного и конечного образов.

Удачи в экспериментах.
kvm   linux   windows
Ctrl + ↓ Ранее