понедельник, 12 декабря 2016 г.

FreeBSD: Простая настройка NAT с помощью пакетного фильтра "pf"

Исходные данные:
"192.168.1.0/24" - внутренняя сеть клиентов;
"em0" - внешний интерфейс FreeBSD;
"em1" - внутренний интерфейс FreeBSD.

Настроим NAT для FreeBSD в два шага:
1. Отредактируем файл конфигурации "ee /etc/rc.conf". Добавим туда следующие строки:

gateway_enable="YES"
pf_enable="YES"
pf_flags=""
pf_rules="/etc/pf.conf"

2. Далее создадим файл правил фильтра ("ee /etc/pf.conf") со следующим содержанием:

ext_if="em0"
int_if="em1"
int_nets="{192.168.1.0/24}"
nat on $ext_if from $int_nets to any -> ($ext_if)
block in on $ext_if from any to any
pass in on $int_if from $int_nets to any keep state


Присутствует также возможность использовать NAT при наличии всего одного интерфейса. В этом случае файл пакетного фильтра будет таким:

ext_if="em0"
int_nets="{192.168.1.0/24}"
nat on $ext_if from $int_nets to any -> ($ext_if)
block in on $ext_if from any to any
pass in on $ext_if from $int_nets to any keep state

В данной конфигурации ограничен доступ к самому хосту FreeBSD по внешнему интерфейсу. Чтобы это исправить, добавьте следующую строку:

 pass in on $ext_if from any to $ext_if keep state

FreeBSD: Не виден жёсткий диск при установке FreeBSD 11 на виртуальную машину Hyper-V Windows 2012 R2

При создании виртуальной машины на Hyper-V Windows 2012 R2 для дальнейшей установки FreeBSD 11 (или другой версии) можно столкнуться со следующей загвоздкой: ОС не увидит ваш виртуальный IDE жёсткий диск.


Чтобы обойти данную проблему в последних релизах FreeBSD, необходимо включить поддержку ATA дисков:
1. На экране выбора режимов загрузки нажимаем:"3" - "Escape to loader prompt"


2. Вводим команду "set hw.ata.disk_enable=1".
3. Далее команду "boot" и продолжаем установку как обычно, диск система увидит.
4. Когда установка будет практически завершена, и мастер вам предложит перед выходом из инсталлятора сделать дополнительные правки в системе с помощью командной строки, нажмите "Yes".


5. Откройте файл в редакторе "ee /boot/loader.conf" и допишите туда строку:

hw.ata.disk_enable=1

6. Сохраните изменения и выйдите из редактора.
7. Командой "reboot" перезагрузите систему. Теперь работа с виртуальным жёстким диском будет корректной.

пятница, 9 декабря 2016 г.

Отключение анимации приветствия при первом входе пользователя в Windows 8/8.1/10

Достаточно долгое приветствие ОС Windows при первом входе нового пользователя в систему можно отключить.


Для частных случаев делается это в реестре, в ветке:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Параметр типа DWORD:
"EnableFirstLogonAnimation"

Значения:
0 = Выключение анимации (Disable first sign-in animation)
1 = Включение анимации (Enable first sign-in animation)

Или с помощью групповой политики:

"Конфигурация компьютера->Политики->Административные шаблоны->Система->Вход в систему->Показать анимацию при первом входе в систему",
("Computer Configuration->Policies->Administrative Templates->System->Logon->Show first sign-in animation").

четверг, 8 декабря 2016 г.

VBScript: изменение настроек TCP/IP (Gateway, DNS, WINS)

Скрипт пригодится при автоматизации изменения настроек TCP/IP с помощью групповых политик Active Directory. Переменная "strComputer" определяет компьютер, к которому будет применяться настройка (точка означает "localhost"). При наличии "User Account Control" выполняем только с повышением привилегий.

On Error Resume Next

' "." for localhost or remote computername
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True and DHCPEnabled = False")

For Each objNetCard in colNetCards

' Setup Gateways:
arrGateways = Array("192.168.1.1")
objNetCard.SetGateways(arrGateways)

' Setup DNS:
arrDNSServers = Array("192.168.1.11","192.168.1.12")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)

' Setup WINS:
strPrimaryServer = "192.168.1.11"
strSecondaryServer = "192.168.1.12"
objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer

Next