понедельник, 21 апреля 2014 г.

Перенос контроллера домена на другой

Все взято с сайта http://linhunt.ru/os/administrirovanie/perenos-kontrollera-domena-na-novyj-server/(сохраняю для себя)
Исходные данные:
  • Домен: company.local;
  • Старый сервер: Win2003, AD, DNS, DHCP, IP=192.168.0.100, имя=dc01;
  • Новый сервер: Win2003, IP=192.168.0.101, имя=dc02;
Итак, приступим.

1. Проверка действующего контроллера домена

На старом сервере запускаем утилиты dcdiag и netdiag и убеждаемся что никаких ошибок они не находят. Эти утилиты входят в состав Support Tools и если при запуске одной из утилит выскакивает сообщение
'название утилиты' is not recognized as an internal or external command, operable program or batch file.
, то их необходимо установить. Либо с установочного диска Windows 2003, либо с официального сайта. Если никаких ошибок не обнаружено, то идем дальше, если же появляются ошибки, то исправляем их. В принципе достаточно воспользоваться поиском по каждой из ошибок и найти решение.

2. Установка дополнительного контроллера домена

Далее необходимо поднять дополнительный контроллер домена на новом сервере (тот который 192.168.0.101). Для этого нужно запустить (Пуск–>Выполнить или Start–>Run) на нем команду
dcpromo
и в появившемся окне выбрать Additional domain controller for an existing domain
После установки AD, перезагружаемся.

3. Установка DNS и DHCP

Устанавливаем DNS  и если нужно, то DHCP на новый сервер. Заходим в Установку и удаление программ (Add or Remove Programs) и выбираем пункт установка компонентов Windows(Add/Remove Windows Components). В разделе Сетевые службы (Network Services) ставим галочки напротив DNS и DHCP и устанавливаем их.
Вполне вероятно что при установке AD, заодно поставился и DNS, поэтому не пугайтесь если DNS уже установлен.
На обоих контроллерах домена выставляем в настройках DNS, адрес нового сервера.

4. Перенос базы DHCP

Если нужно перенести базу DHCP, на старом сервере выполняем команду:
netsh dhcp server export C:\dhcp.txt all
переносим полученный файл на новый сервер и на новом сервере выполняем команду:
netsh dhcp server import C:\dhcp.txt all
Ну и соответственно в настройках DHCP выставляем всем клиентам DNS адрес нового сервера 192.168.0.101

5. Проверка контроллеров домена на ошибки

После всех предыдущих манипуляций, ждем минут 15-20, чтобы дать новому серверу перенести все настройки и записи в AD со старого. После чего, запускаем на обоих серверах уже знакомые нам утилиты dcdiag и netdiag и убеждаемся в отсутствии ошибок.

6. Перемещение Global Catalog

Теперь настала очередь перенести Global Catalog на новый сервер. Открываем на новом сервере Active Directory — сайты и службы (Sites and Services) –> Сайты (Sites) –> имя_сайта –> Серверы (Servers). Выбираем новый контроллер домена и в правом окне на объекте NTDS Settingsвыбираем Свойства (Properties). В появившемся окне ставим галку Global Catalog.
Ждем минут 5-10, в логах должно будет появиться сообщение This domain controller is now a global catalog, после чего можно удалять Global Catalog на старом сервере. Процедура таже, только теперь выбираем старый сервер и снимаем галку Global Catalog.

7. Перенос ролей FSMO

Для начала посмотрим, кто же все таки  является держателем ролей FSMO-ролей в домене, в этом нам поможет команда:
netdom query fsmo
Результат будет примерно таким:
Schema owner                dc01.company.local
 
Domain role owner           dc01.company.local
 
PDC role                    dc01.company.local
 
RID pool manager            dc01.company.local
 
Infrastructure owner        dc01.company.local
 
The command completed successfully.
Как видно из вывода, держателем ролей является наш старый сервер dc01. Исправим это недоразумение. Все дальнейшие действия производим на новом сервере.

Передача ролей хозяин RID, основной контроллер домена и хозяин инфраструктуры

Открываем оснастку Active Directory — пользователи и компьютеры (Users and Computers), щелкаем правой кнопкой по имени сайта и выбираем меню Хозяева операций (Operations Masters). В появившемся окне, на всех 3-х вкладках жмем на кнопку изменить (change) и соглашаемся с применением изменений.

Передача роли хозяина именования домена

Открываем оснастку Active Directory — домены и доверие (Domain and Trusts), и точно так же выбираем меню Хозяева операций (Operations Masters). В появившемся окне жмем на кнопку изменить (change) и соглашаемся с применением изменений.

Передача роли хозяина схемы

С передачей этой роли все происходит немного посложнее. Для начала нужно зарегистрировать в системе библиотеку schmmgmt.dll. Для этого выполняем команду:
regsvr32 schmmgmt.dll
Далее запускаем оснастку mmc:
mmc
и в появившемся окне в меню файл выбираем пункт Добавить или удалить оснастку(Add/Remove Snap-in).   Далее Добавить (Add) и Схема Active Directory (Active Directory Schema).
И добавляем схему. Далее  так же выбираем меню Хозяева операций (Operations Masters). В появившемся окне жмем на кнопку изменить (change) и соглашаемся с применением изменений. Если в поле изменить будет стоять адрес старого сервера, то достаточно выбрать пункт менюИзменение контролера домена (Change Domain Controller) и выбрать новый домен контроллер, после чего опять попытаться изменить хозяина.

Запускаем команду:
netdom query fsmo
И видим:
Schema owner                dc02.company.local
 
Domain role owner           dc02.company.local
 
PDC role                    dc02.company.local
 
RID pool manager            dc02.company.local
 
Infrastructure owner        dc02.company.local
 
The command completed successfully.
Ну что, все роли успешно перенесены на новый сервер.

8. Удаление старого контроллера домена

Теперь настала пора удалить старый домен контроллер из сети. Запускаем:
dcpromo
и следуя мастеру, удаляем старый домен контроллер и все его упоминания из сети. После этого старый сервер можно погасить или отправить его выполнять другие обязанности.

P.S. Если вам нужно перенести AD из старого сервера на новый, причем с сохранением имени старого сервера, то тут вам поможет еще один промежуточный сервер. Сначала делаете все эти операции с ним, выводите старый сервер из домена, заводите новый сервер с именем старого и проделываете эти же операции еще раз.

четверг, 3 апреля 2014 г.

FreeBSD alias

Очень часто бывает так что у сервера есть одна физическая сетевая карта и очень хорошо что к ней можно «привязать» много IP адресов.

В FreeBSD это выполняется добавление записей в /etc/rc.conf.
Основным является только 1 IP-адрес.
Особенности — дополнительные адреса описываются с указанием alias0..n и маска подсети 255.255.255.255.

Пример указания дополнительных IP адресов на сервере FreeBSD
ifconfig_re0=»inet 11.1.1.1 netmask 255.255.255.0″
ifconfig_re0_alias0=»inet 10.0.1.2 netmask 255.255.255.255″
ifconfig_re0_alias1=»inet 10.0.1.3 netmask 255.255.255.255″

четверг, 27 марта 2014 г.

Преобразование таблицы разделов с GPT на MBR


Установка Windows 7. Преобразование таблицы разделов с GPT на MBR(скопоипастил не помню откуда)


Таблица разделов GPT на накопителях является частью UEFI и пришла на смену старой доброй MBR. Новые материнские платы, как правило, поставляются с поддержкой UEFI. Это и логично, ведь система загружается быстрей, а таблица разделов GPT обеспечивает поддержку накопителей с большим объемом. MBR же позволяет адресовать всего 2.2 Тб адресного пространства.
Но, несмотря на очевидные преимущества GPT, иногда необходимо установить операционную систему на MBR диск. При наличии диска с GPT, можно легко его переделать под MBR.
При установке системы на жесткий диск с таблицей разделов GPT может появиться ошибка:Невозможно установить Windows на диск 0 раздел 1. Подробнее: Установка Windows на данный диск невозможна.Выбранный диск имеют стиль разделов GPT.
В этом случае надо перейти в Настройка диска, удалить все разделы на диске и создать заново. В этом случае диск будет создан с таблицей MBR.

Внимание! Вся информация на диске будет уничтожена после выполнения операции преобразования диска из формата GPT в MBR.

Если у вас жесткий диск имеет размер более 2.2. Тб, то данная операция опять создаст на диске таблицу GPT. Можно обходным путём решить проблему, учитывая, что система будет видеть не более 2.2 Тб. Итак, загружен установочный диск с операционной системой
- Нажать Shift + F10 — запустится командная строка.
- Запустить в командной строке консольную утилиту для работы с дисками, разделами и томами в Windows.
diskpart
- Просмотреть список дисков, чтобы найти тот, с которым надо поработать.
list disk
- Выбрать необходимый диск.
select disk 0
- Очистить накопитель от других разделов.
clean
- Преобразовать GPT диск в MBR.
convert mbr
- Выйти из Diskpart
exit
Прошу обратить внимание на картинке на команду list disk. До преобразования диска в MBR в колонке GPT у диска стояла пометка *. После преобразования такой пометки нет. Значит диск был успешно преобразован в MBR.
На этом работа с диском завершена. Можно продолжить установку Windows 7 x86 теперь уже на диск с таблицей MBR.

Дополнительная информация

На накопители с таблицей разделов GPT могут установиться и загружаться только 64-битные операционные системы — Windows Vista x64 SP1 и старше, Windows 7 x64, Windows 8 x64, Windows Server 2008 x64 SP1, Windows Server 2008 R2, Windows Server 2012.
Windows XP x64 и все x86 операционные системы Windows Vista SP1 и более новые не могут загружаться с накопителя с GPT разделами, но могут считывать и записывать данные.
Windows XP x86 не может работать с GPT дисками.
Для того, чтобы иметь возможность загружаться с GPT накопителя, необходимо загружаться  через UEFI загрузчик.

OPEVPN на FREEBSD


OPEVPN на FREEBSD

#cd /usr/ports/security/openvpn

#make config-recursive
#make install
Необходимо создать сертефикаты и ключи
# cd /usr/local/share/easy-rsa/
изменяем файл vars
#ee ./vars
меняем строку KEY_DIR=$D/keys на KEY_DIR=$D/keys/server и параметры для генерации сертификатов (KEY_EXPIRE, KEY_COUNTRY etc) Так же переопределил следующие строки (под себя), чтобы руками не вводить каждый раз при создании сертификатов для клиентов:
set KEY_COUNTRY=RU
set KEY_PROVINCE=ns-kaya obl.
set KEY_CITY=Dubovka                              
set KEY_ORG=bobr
set KEY_EMAIL=men@gmail.com
перед следующими операциями нужно набрать в консоли "sh"
#sh
Загружаем переменные в оболочку:
#. ./vars
Очищаем от старых сертификатов и ключей папку keys/server и создаем серийный и индексные файлы для новых ключей
# ./clean-all
Создаем Certificate Authority ключ и сертификат:
#./build-ca
Generating a 1024 bit RSA private key
....................++++++
...++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
#Страна
Country Name (2 letter code) [UA]:RU
#Провинция
State or Province Name (full name) []: ns-kaya obl.
#Город
Locality Name (eg, city) []: Dubovka
#Название компании(!)
Organization Name (eg, company) [x]: bobr
#Отделение компании
Organizational Unit Name (eg, section) []:bobr
#ВОТ ТУТ ВНИМАТЕЛЬНО - ЭТО ИМЯ МАШИНЫ ДЛЯ КОТОРОЙ
# ГЕНЕРИРУЕМ СЕРТИФИКАТ (имя не в полном смысле имя как идентификатор)
Common Name (eg, your name or your server's hostname) []:nashVPNserver
#Почт адрес
Email Address [root@localhost]: men@gmail.com
в директорию, определяемой переменной KEY_DIR, должны добавиться файлы:
ca.crt
ca.key
Создаем ключ и сертификат X.509 сервера:
#./build-key-server nashVPNserver
Всё заполняем  аналогично .
в директорию, определяемой переменной KEY_DIR, должны добавиться файлы:
nashVPNserver.crt
nashVPNserver.key
Генерируем 1024 битный ключ с помощью алгоритма Диффи Хеллмана :
# ./build-dh
в директорию, определяемой переменной KEY_DIR, должен добавиться файл:
dh1024.pem
Создаём ключ для клиента:
#./build-key client
в директории, определяемой переменной KEY_DIR, должены появиться файлы:
client.crt
client.key
Если понадобится добавить еще одного пользователя, то сделайте тоже самое, только меняйте "someclient" на что-то другое.
в папке keys/server получается много файлов:
  ca.crt - Главный CA сертификат, этот файл нужен и клиенту и серверу
  dh1024.pem - ключ Диффи Хельман, этот файл нужен только серверу
  nashVPNserver.crt - Сертификат сервера, нужен только серверу
  nashVPNserver.key - Ключ сервера, нужен только серверу (СЕКРЕТНЫЙ файл)
  client.crt - Сертификат клиента, нужен только клиенту
  client.key - Ключ клиента, нужен только клиенту (СЕКРЕТНЫЙ файл)
  ta.key - TLS-ключ, нужен и клиенту и серверу

Создаим  директории
/usr/local/etc/openvpn
/usr/local/etc/openvpn/keys
/usr/local/etc/openvpn/ccd
Скопируем все ключи в /usr/local/etc/openvpn/keys.
Создаем конфигурационный файл server.conf:
#порт на котором работает сервер
port 2000
# протокол - советую udp
proto udp
# - используемый тип устройства и номер
dev tun0
#указываем файл CA
ca /usr/local/etc/openvpn/keys/ca.crt
#указываем файл с сертификатом сервера
cert /usr/local/etc/openvpn/keys/server.crt
#указываем файл с ключем сервера
key /usr/local/etc/openvpn/keys/server.key
#указываем файл Диффи Хельман
dh /usr/local/etc/openvpn/keys/dh1024.pem
#задаем IP-адрес сервера и маску подсети
# (виртуальной сети) - можно произвольную, (я выбрал такую)
server 10.10.200.0 255.255.255.0
#задаем МАРШРУТ который передаём клиентту
# и маску подсети для того чтобы он "видел" сеть за опенвпн сервером (сеть 192.168.1.0/24)
push "route 192.168.1.0 255.255.255.0"
# указываем где хранятся файлы с настройками IP-адресов клиентов
client-config-dir ccd
# добавляем маршрут сервер-клиент
route 10.10.200.0 255.255.255.252
# включаем TLS аутификацию
tls-server
# указываем tls-ключ, и указываем 0 для сервера, а 1 для клиента
tls-auth keys/ta.key 0
# таймаут до реконекта
tls-timeout 120
auth MD5 #
# включаем шифрацию пакетов
cipher BF-CBC
keepalive 10 120
# сжатие трафика
comp-lzo
# максимум клиентов
max-clients 100
user nobody
group nobody
# Не перечитывать ключи после получения  SIGUSR1 или ping-restart
persist-key
# Не закрывать и переоткрывать TUN\TAP устройство, после получения  SIGUSR1 или ping-restart
persist-tun
# логгирование (не забудьте создать эту дирректорию /var/log/openvpn/)
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
# Уровень информации для отладки
verb 3
Создаем директорию /var/log/openvpn/ и  файл где будут храниться логи
#mkdir /var/log/openvpn/
#touch /var/log/openvpn/openvpn.log


Заворачиваем весь трафик на VPN-сервер
Тут требуется заменить конфигурационный файл только на сервере. Добавляем строки:
push "redirect-gateway def1"
 push "dhcp-option DNS 8.8.8.8"
Первая строка меняет шлюз по умолчанию на заданный на VPN-сервере. После отключения будет возвращён шлюз, который был задан на клиенте ранее.
Вторая строка задает DNS-сервер, который будет использоваться после подключения к VPN-серверу.
Дополнительные параметры
client-to-client - позволяет клиентам VPN-сервера связываться друг с другом.
duplicate-cn - параметр нужно добавить если вы для всех клиентов создали одинаковые ключи, но клиенты при этом представляются различными common name.
В дирректории /usr/local/etc/openvpn/ccd создаем файл client (имя файла - имя которому выдан сертификат) следующего содержания:
ifconfig-push 10.10.200.2 10.10.200.1

-внесём в /etc/rc.conf
openvpn_enable="YES"
openvpn_if="tun"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"
 openvpn_dir="/usr/local/etc/openvpn"

Настраиваем клиента под Windows
Создадим конфигурационный файл openvpn.ovpn в папке config (Например C:\Program Files\OpenVPN\config)
И скопируем туда же все необходимые ключи для работы (ca.crt, dh1024.pem, client.crt, client.key, ta.key).
Содержимое файла openvpn.ovpn:
dev tun
proto udp
remote 22.22.22.22#(реальный айпи вашего сервера)
port 2000 #(порт к которому устанавливать соединение
client
resolv-retry infinite
ca ca.crt
cert client.crt
key client.key
tls-client
tls-auth ta.key 1
auth MD5
cipher BF-CBC
ns-cert-type server
comp-lzo
persist-key
persist-tun

verb 3