пятница, 20 ноября 2009 г.
Оптимизация списков доступа (access-lists) при помощи object-groups.
компьютеры 172.16.0.1, 172.16.0.15, 172.16.0.21, 172.16.0.38 должны иметь право доступа на сайт Яндекса (93.158.134.8).
Для этого на входной интерфейс локальной сети вешаем именованный лист LAN-IN, куда добавляем несколько правил:
(config)# ip access-list extended LAN-IN
permit tcp host 172.16.0.1 host 92.158.134.8 eq 80
permit tcp host 172.16.0.15 host 92.158.134.8 eq 80
permit tcp host 172.16.0.21 host 92.158.134.8 eq 80
permit tcp host 172.16.0.38 host 92.158.134.8 eq 80
...
вроде бы 4 записи - ничего страшного, но когда будет нужно группе хостов дать доступ к сервисам другой группы хостов, количество записей резко возрастет, кроме этого, если у пользователя по каким-то причинам поменялся адрес, нужно четко отслеживать порядковый номер записи в листе. Более гибкий механизм - использование object-group.
Такие группы объединяют сетевые объекты (отдельные хосты и подсети - IP адреса) или сервисы (порты).
Например, кусок конфига с использованием сетевых объектов:
...
object-group network ICQUSERS
host 172.20.11.12
host 172.20.11.17
host 172.20.11.45
host 172.20.11.55
host 172.20.11.117
host 172.20.11.130
host 172.20.11.162
host 172.20.11.168
host 172.20.11.184
host 172.20.11.185
host 172.20.11.188
host 172.20.11.195
host 172.20.11.196
host 172.20.11.198
host 172.20.11.201
host 172.20.11.206
host 172.20.11.207
host 172.20.11.216
host 172.20.11.221
host 172.20.11.222
host 172.20.11.225
host 172.20.11.230
host 172.20.11.236
host 172.20.11.237
host 172.20.11.247
host 172.20.11.249
host 172.20.12.6
host 172.20.12.21
host 172.20.12.41
host 172.20.12.51
host 172.20.12.55
host 172.20.12.95
host 172.20.12.100
host 172.20.12.112
...
object-group network POISKUSERS
host 172.20.1.10
host 172.20.1.11
host 172.20.1.20
host 172.20.1.21
host 172.20.1.101
host 172.20.11.17
host 172.20.11.45
host 172.20.11.130
host 172.20.11.141
host 172.20.11.199
host 172.20.11.216
host 172.20.11.220
host 172.20.11.222
host 172.20.11.225
host 172.20.11.230
host 172.20.11.236
host 172.20.11.252
host 172.20.12.21
host 172.20.12.51
host 172.20.12.100
host 172.20.12.104
host 172.20.12.112
host 172.20.12.116
host 172.20.12.120
host 172.20.12.77
host 172.20.11.184
...
object-group network POISKOVIKI
host 209.85.229.104
host 93.158.134.8
host 81.19.70.3
...
ip access-list extended LAN-IN
...
permit tcp object-group POISKUSERS object-group POISKOVIKI eq 80 443
permit tcp object-group ICQUSERS any eq 5190
...
добавлять хосты в группы можно налету не меняя правил в списке доступа.
Настройка Центра Сертификации (СА) на Cisco IOS.
(config)# clock timezone MSK 3
# clock set 10:00:00 19 Nov 2009 (как пример)
Включим встроенный веб сервер:
(config)# ip http server
Создадим сервер сертификатов по имени самого рутера R0-CA (пока без изысков с дефолтными настройками):
(config)# crypto pki server R0-CA
no shutdown
В результате будет создан trustpoint R0-CA и в хранилище добавлен корневой сертификат.
Теперь создадим новый trustpoint для получения сертификата себе любимому:
(config)# crypto pki trustpoint FOR-ME
enroll url http://R0-CA:80
Аутентифицируем корневой сертификат траста и сделаем заявку:
(config)# crypto pki authenticate FOR-ME
(config)# crypto pki enroll FOR-ME
отвечаем на вопросы, что включать в параметры сертификата (серийник, IP) и вводим пароль на сертификат.
Иногда желательно "подкрутить" сервер сертификации (если флешка вместительная):
crypto pki server CA-3725
database level complete
lifetime crl 24
lifetime ca-certificate 1825
database url flash:
grant auto (будет одобрять все запросы сертификатов)
храним все сертификаты неурезанные на флеше, и корневой сертификат выдан на 5 лет
для просмотра запрошенных сертификатов:
# crypto pki server R0-CA info requests
для подтверждения выпуска сертификата по запросу:
# crypto pki server R0-CA grant # (или all для одобрения всех заявок).
понедельник, 2 ноября 2009 г.
Установить в Ubuntu RPM пакет.
Иногда попадаются готовые пакеты под "шапочку". Для его установки можно воспользоваться проектом Alien:
sudo apt-get install alien
sudo alien -i NNN.rpm
или сконвертить в deb:
sudo alien NNN.rpm
Подключение рутера из GNS3 к сети.
Для доступа к виртуальному маршрутизатору в GNS'е необходимо создать интерфейс TAP, сбриджевав его с реальным:
sudo brctl addbr br0 # создаем бриджевой интерфейс
sudo ip l s dev br0 up # переводим его в активное состояние
sudo tunctl -t tap0 -u user1 # создаем интерфейс tap0 с правами user1
sudo ip l s dev tap0 up # переводим его в активное состояние
sudo brctl addif br0 tap0 # вяжем бриджевой интерфейс с tap0
sudo brctl addif br0 eth0 # вяжем бридж с реальным интерфейсом
sudo ifconfig eth0 0.0.0.0 promisc # убираем дрес с реального интерфейса и переводим его в смешанный режим
sudo ip a a 192.168.0.1/24 dev br0 # присваиваем бриджевому интерфейсу адрес или для выдачи по DHCP: sudo dhclient br0
можно также добавить маршрут по-умолчанию:
sudo ip r a default via 192.168.0.2
Сносим паблик фолдеры Exchange 2007
Get-PublicFolder -Server exch.test_my.local "\" -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server exch.test_my.local -Recurse -ErrorAction:SilentlyContinue
Get-PublicFolder -Server exch.test_my.local"\Non_Ipm_Subtree" -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server exch.test_my.local -Recurse -ErrorAction:SilentlyContinue
Кодировка cp1251 в MySQL
Чтобы не лицезреть результат интернационально-кракозябровой дружбы на страницах добавим в /etc/my.cnf строки:
В раздел [mysqld]:
default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake
В раздел [mysqldump] :
default-character-set=cp1251
Рестарт сервисов.
Кодировка cp1251 в gedit
Переименование контроллера домена Win 2003.
Сначала "добавим" еще одно имя:
netdom computername dc1 /add:dc2-new
netdom computername dc1 /makeprimary:dc2-new
перезагрузка
проверим наличие обоих имен: netdom computername dc2-new /enumerate
удалим старое имя:
netdom computername dc2-new /remove:dc1
Создание записей DNS для OCS2007.
Для OCS2007 требуется создать две сервисные записи:
домен test_my.local
сервер ocs1
создание записей:
dnscmd /recordadd test_my.local _sip._tcp.test_my.local srv 0 0 5060 ocs1.test_my.local
dnscmd /recordadd test_my.local _siptls._tcp.test_my.local srv 0 0 5061 ocs1.test_my.local
вариант с записями вида _sipinternal:
dnscmd /recordadd test_my.local _sipinternal._tcp.test_my.local srv 0 0 5060 ocs1.test_my.local
dnscmd /recordadd test_my.local _sipinternaltls._tcp.test_my.local srv 0 0 5061 ocs1.test_my.local
Некоторые порты AD.
Порты службы каталогов (+ виндовые):
tcp 135, 139 (RPC)
udp 137, 138 (NetBIOS)
tcp/udp 445 (CIFS/SMB)
tcp/udp 88, 464 (Kerberos5)
tcp 389 (LDAP)
tcp 3268 (GC)
Полное удаление информации о контроллере AD.
Сначала ntdsutil:
ntdsutil /metadata cleanup /connections /connect to server ... /quit
select operation target /list domains /select domain ... /list sites /select site ... /list servers in site /select server "must die"/quit
remove selected server
Теперь удалим записи об удаленном контроллере из DNS:
удаляем все записи типа A этого сервера, а также из сервисных каталогов:
_msdts._tcp.dc.ldap и _mstds._tcp.gc.ldap
Подчищаем в adsiedit структуры:
domain\имя_домена\domain controllers\...
configuration\configuration имя_домена\sites\default-first-site\servers\...
убедимся, что нет записей в ..\%Systemroot%\System32\Config\Netlogon.dns (записи вида _gc; _kerberos; _kpasswd; _ldap.
Восстановление AD Win 2003 из бэкапа.
Бэкап (сохранение состояния системы).
Сначала пробуем не принудительное восстановление - при загрузке F8 и выбрать пункт восстановления, пароль и путь к бэкапу. Если какие-либо доменные записи удалялись, то после предварительного овсстановления - утилита ntdsutil:
ntdsutil /autoritative restore/restore subtree ... выбрать удаленные ветки.
Экспорт и импорт данных MS DHCP сервера.
Экспорт текущих настроек и записей статичских сопоставлений (и аренд):
netsh dhcp server \\localhost export c:\dhcpdatabase
соответственно импорт:
netsh dhcp server \\localhost import c:\dhcpdatabase
Маршруты в Ubuntu
Добавить статический маршрут:
/etc/route2/route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
маршрут по-умолчанию:
route add default gw 192.168.0.1
Удаление Exchange 2007
Когда нет возможности удалить "Чангу" штатным образом:
для прибивания ящиков желательно создать учетку, так как Эксч при удалении ящика грохает пользовательскую учетку в домене, тут может быть морока с отвязыванием пользователей от ящика (перепривязывание на левую учетку, которая и будет удаляться вместе с ящиком), этот процесс можно частично облегчить с помощью PowerShell.
удаляем общие папки, их реплики и базы данных - edb файлы (находятся ..\ProgramFiles\Microsoft\ExchangeServer\Mailbox\Имя_группы_хранения\Имя_базы), также командлет Remove-PublicFoldersDatabase -Identity сервер\группа_хранения\база_общих_папок
запуск ..\ProgramFiles\Microsoft\ExchangeServer\bin\setup.com /mode:uninstall
удалить файлы журналов
в консоли из каталога ..\ProgramFiles\Microsoft\ExchangeServer\Scripts\ выполнить:
Get-PublicFolderStatistics -server имя_сервера | fl | out-file файл_вывода_инфы.txt
Get-PublicFolder -server имя_сервера\-recurse | fl | out-file еще_файл.txt
Get-PublicFolder -server имя_сервера\non_ipm_subtree -recurse | fl | out-file и_еще_файл.txt
Remove-PublicFolderDatabase -Identity имя_хранилища
Get-PublicFolderDatabase | Remove-PublicFolderDatabase -RemoveLastAllowed
теперь из ADSIEdit вычистим все из:
Configuration\Services\MicrosoftExchange\имя_организации_Эксча\AdministrativeGroup\ExchangeAdministrativeGroup(FYDIBOHF23SPDLT)\Servers
удалим из реестра пустой ключ:
HKLM\System\CurrentControlSet\Services\MSExchange\ADAccess\Instance0\ConfigDCHostName
Некоторые полезные команды Apt и dpkg.
Помощники по пакетам:
apt-get install / remove ... - установка из репозитория / удаление (полное удаление с опцией --purge)
apt-cache search ... - поиск по репозиторию
apt-file search / list ... - зависимости пакета
apt-get update - обновить списки репозиториев (после правки /etc/apt/sources.list)
dpkg --get-selections > ... - вывод в файл списка установленных пакетов
для установки из списка: dpkg --set-selections < ... потом apt-get dselect-upgrade (полезно
для дублирования серверов)
apt-get autoclean / clean (удаление старых пакетов)
установка / удаление конкретного пакета (без предварительной проверки зависимостей):
dpkg -i / -r ... . deb
Дампы MySQL выгрузка и загрузка.
Имя базы - test_db
имя пользователя - test_usr
его пароль - Test_Pa$$
Выгрузка: mysql -utest_usr -pTest_Pa$$ test_db > dump_test_db.sql
Загрузка: mysql -utest_usr -pTest_Pa$$ test_db < dump_test_db.sql
База в MySQL
Создание пустой базы для некоторого пользователя:
имя базы - test_db
имя пользователя - test_usr
его пароль - Test_Pa$$
создаем в локальной СУБД,
сначала подключаемся под рутом (скулевым):
mysql -u root mysql
можем задать новый пароль рута:
UPDATE user SET Password=PASSWORD('New_Root_Pa$$') WHERE user='root'
выходим и перегружаем: mysqladmin reload
mysql restart
mysqld restart
снова заходим и создадим базу и привяжем к ней пользователя:
CREATE DATABASE test_db;
INSERT INTO db (host, db, user) VALUES ('localhost', 'test_db', 'test_usr');
GRANT ALL on test_db.* to 'test_usr'@'localhost' IDENTIFIED BY 'Test_Pa$$';
FLUSH PRIVILIGES;
Редактор vi / vim.
Базовые команды редактора (необходимый минимум):
вход осуществляется в режиме команд, для перехода в режим редактирования - "a" или "i" (отличия только куда будет осуществляться вставка - до курсора или после).
для перехода обратно в режим команд - Esc
в режиме команд - поиск нужного слова или строки: "/" собственно_что_ищем "n" следующее значение.
сохранение изменений :w (с двоеточием!)
выход :q (выход с сохранением :wq)
выход без сохранения :q! (с двоеточием и восклицательным знаком).
Рекомендуемые разрешения для папок и файлов web сервера.
На всякий случай: 777 - полное разрешение всем на все, 000 - полное запрещение.
chmod 755 - для директорий CGI и скриптов.
chmod 644 - для файлов скриптов.
chmod 600 - для индивидуальных скриптовых файлов.
VBS замена локальных паролей.
Set objArgs=Wscript.Aruments
If Wscript.Arguments.Count=1 Then
If Strcomp(ucase(objArgs(0), UCase("-Domain"))=0 Then
mode 1
EndIf
If Strcomp(ucase(objArgs(0), UCase("-Group"))=0 Then
mode 2
EndIf
If Strcomp(ucase(objArgs(0), UCase("-PC"))=0 Then
mode 3
EndIf
Else
mode 0
EndIf
Просмотр работающих сервисов Linux
Прсмотреть, кто прослушивает определенный порт:
netstat -na | grep LISTEN | grep 25 # для smtp сервиса
Туннелирование RDP через SSH
Иногда полезно без ВПНов или выставления RDP наружу подключиться к машине внутри удаленной сети:
ssh -L 3389:ip_адрес_внутренней_машины:3389 ip_адрес_внешний -l имя_пользователя
rdesktop -a16 -g1024x768 127.0.0.1:3389
Защита от SQL injection в mod.security Apache
Добавим при установленном модуле mod_security.c в httpd.conf
SecFilter "delete[[:space:]]+from"
SecFilter "incert[[:space:]]+into"
SecFilter "select.+from"
SecFilter "\.\./" # чтение выше корня
SecFilter "<(.|\n)+>" # XSS
SecFilter "<[[:space:]]*script"
Быстрое применение групповых политик.
Настройка политик - консоль:
gpmc.msi
применение:
gpupdate /force
Некоторые действия при апгрейде домена (2000 -> 2003).
Регистрация схемы (появится возможность добавить сему в mmc):
regsvr32 schmmgmt.dll
Далее запуски "препов" (из тулзов на установочном диске):
adprep /forestprep
adprep /domainprep
Был баг, когда требовалось четко запускать "препы" со второго диска R2!
Сервисная DNS запись на Cisco
Иногда бывет надо указать адрес контроллера домена на рутере:
ip host _ldap._tcp.dc.msdcs.<домен>.local srv 1 1 389 ip_адрес_контроллера
Win 2003 NLB кластеры режимы отслеживания.
Режимы Array / Enterprise.
Использование Array политик (они задаются после основных, поэтому могут носить только ужесточающий характер, но не разрешающий).
Пакетная фиьтрация - добавить запись и ключ в реестре:
HKLM\System\CurrentControlSet\Services\WLBS\Parameters\Global\ создать ключ EnableTCPNorification и присвоить ему значение DWORD = 0