среда, 24 апреля 2013 г.

Cisco NTP/SNTP и SYSLOG

Появилась нужда регистрировать события с маршрутизатора Cisco.

Версия IOS 12.4
Cisco 851

Настройка точного времени:

router# conf t
router (config)# clock timezone Moscow 4
router (config)# sntp server 0.pool.ntp.org
router (config)# sntp server 1.pool.ntp.org
Задавать сервера точного времени можно в виде доменного имени. IOS сам переведет в IP адреса.

Настройка SYSLOG:

router# conf t
router (config)# logging facility local6
router (config)#  logging trap informational
router (config)# logging source-interface Vlan1
router (config)# logging IP_syslog_server 

Все.

среда, 30 января 2013 г.

Маршрутизация на два провайдера по портам в Linux (iptables+iproute2)

Писать полноценную статью мне лень. Поэтому это будет скорее заметка, в большей степени для себя, чтобы не забыть.
Так уж сложились звезды, что схема не совсем простая и не ограничится одним шлюзом на linux. Помимо шлюза на linux имеются еще два шлюза в виде Cisco 2801 и Cisco 851. На цисках крутятся VPN соединения различного назначения и переносить их не вижу особого смысла, а на linux маршрутизаторе так же стоит прокси.
Схема такая:
Cisco 2851 - prov_1 (LAN 192.168.1.1) NAT 
Cisco 851 - prov_2 (LAN 192.168.16.1) NAT 
Linux(ALT) :
Небольшой комментарий. На linux маршрутизаторе стоит два физических интерфейса. Больше поставить не было возможности, поэтому пришлось использовать то что есть, был создан alias (eth1:1) на интерфейсе (eth1) который смотрит на маршрутизаторы Cisco и подключен коммутатор. Адресация такая:

 eth1 192.168.1.2 255.255.255.0 GW 192.168.1.1 
eth1:1 192.168.16.2 255.255.255.0 GW 192.168.16.1 
eth0 192.168.0.1 255.255.255.0 (LAN)

На linux маршрутизаторе не используется NAT, поэтому пакеты проходят через него насквозь без подмены адреса.
Начнем с создания алиаса (RHEL и подобные):

cd /etc/sysconfig/network-scripts
cp ifcfg-eth1 ifcfg-eth1:1
vi ifcfg-eth1:1

Убираем строку HWADDR="XX:XX:XX:XX:XX:XX", убираем строку GATEWAY="XX.XX.XX.XX", строку DEVICE="eth1" меняем на DEVICE="eth1:1".
Файл должен выглядеть так:

 DEVICE="eth1:1" 
NM_CONTROLLED="yes" 
ONBOOT="yes" 
IPADDR=192.168.16.2 
NETMASK=255.255.255.0 
NETWORK=192.168.16.0

Далее будем делать саму маршрутизацию:
Создадим конфигурационные файлы для скриптов запуска сетевых интерфейсов

touch route-eth1
touch route-eth1:1
touch rule-eth1
touch rule-eth1:1

Пишем в созданных нами файлах следующие:

Файл route-eth1  
default via 192.168.1.1 table prov_1
Файл route-eth1:1  
default via 192.168.16.1 table prov_2
Файл rule-eth1  
from 192.168.1.2 table prov_1
Файл rule-eth1:1  
fwmark 3 table prov_2 
from 192.168.16.2 table prov_2

Теперь необходимо добавить эти таблицы в iproute2:

cd /etc/iproute2/
echo "201 prov_1" >> rt_tables
echo "202 prov_2" >> rt_tables

Перезапускаем сетевые интерфейсы:

service network restart

Проверяем правила (у меня это выглядит так) :

# ip rule list
0: from all lookup local
32760: from all fwmark 0x3 lookup prov_2
32761: from 192.168.16.2 lookup prov_2
32762: from 192.168.1.2 lookup prov_1
32766: from all lookup main
32767: from all lookup default

В файле rule-eth1:1 мы делали запись fwmark 3 table prov_2. При помощи iptables делаем маркировку определенных пакетов. В данном случае мне нужно исходящие запросы на 80 направить на второй провайдер:

iptables -A PREROUTING -t mangle -i eth0 -p tcp -m tcp --dport 80 -j MARK --set-mark 3
service iptables save

Теперь исходящие запросы на 80 порт будут уходить на prov_2. Рассказывать про настройку Cisco я не стану, ибо сам делал по мануалам. Поэтому скажу главное что в данной схеме будет необходимо.

Т.к. маршрутизатор linux без NAT необходимо сделать маршрут на цисках, чтобы получить ответ на запрос. Приведу кусок моего конфига:

ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 внешний_IP_prov_2
ip route 192.168.0.0 255.255.255.0 192.168.16.2


Доступ сетей к NATу:

ip access-list extended NAT
permit ip 192.168.16.0 0.0.0.255 any
permit ip 192.168.0.0 0.0.0.255 any


Вот собственно и все. Надею кому-нибудь пригодится =)

суббота, 24 декабря 2011 г.

csync2 Establishing SSL connection failed. и не только.

Попытки получить какие-нибудь внятные данные в дебаг режиме не получилось (csync2 -xvvv). Поэтому начал терзать гугл на эту тему и нашел решение, как можно проверить при помощи strace:

На хосте куда должна проходить синхронизация создадим файлик:
# touch csync2.trace

Далее поставим на ожидание соединения:
# strace -o csync2.trace csync2 -iii -p 1805

порт можно использовать любой свободный, главное чтобы он был открыт у вас в firewall
На сервере с которого проходит синхронизация делаем:
# csync2 -xv -P host2 -p 1805

Если никаких надписей не получили, то повторно делать не нужно никаких действий на сервере с которого должна идти синхронизация.
Идем на сервер получатель и садимся изучать что не так в выводе от strace в файле csync2.trace

вторник, 21 декабря 2010 г.

настройка WI-FI на FreeBSD 8.1 с шифрованием WPA2

Будем считать что драйвер карты у нас уже установлен или определился во время установки системы.
Делаем следующие:
1. Создаем псевдо устройсво ifconfig wlan0 create wlandev ath0
(у меня карта wi-fi ath0)
2. Командой ifconfig wlan0 убеждаемся что интерфейс добавлен
3. При помощи утилиты wpa_passphrase генерируем файл wpa_supplicant.conf
wpa_passphrase ssid_вашего_роутера wpa2_ключ > /etc/wpa_supplicant.conf
Примечание:
чтобы вывести список доступных точек доступа используйте команду ifconfig wlan0 list scan
4. Для того чтобы у нас wi-fi подключался во время загрузки системы, прописываем в /etc/rc.conf две строчки:
wlans_ath0="wlan0"
это тоже самое что и ifconfig wlan0 create wlandev ath0 (только без рукоблудства)
ifconfig_wlan0="DHCP WPA"
а тут мы говорим что для интерфейса wlan0 будем использовать DHCP, и указываем тип шифрования WPA

Вот собственно и все. Надеюсь кому-нибудь пригодится =)

пятница, 17 декабря 2010 г.

Что такое работа сисадмина? (больше для работодателей)

Тут я приведу несколько ссылок на статьи из журнала "Системный администратор".
В наше время когда компьютеры повсеместны и практически каждый может основать свою фирму, будь то маленькая или большая (в зависимости от финансовых возможностей). Но так или иначе в наш цифровой век не обойтись без компьютеров и периферийных устройств.
Значит, чтобы все функционировало и выполняло все нужные требования, нужен человек, который будет следить за тем, чтобы так оно и было - будь то хелп деск, системный администратор, сетевой инженер или все вместе, в зависимости от масштабов компании. Сейчас у большинства работодателей складывается ошибочное мнение о таких людях считая их не больше чем обслуживающий персонал, сравни уборщицам, сантехникам, электрикам и т.п. Я не в коей мере не хочу оскорбить выше перечисленные мною специальности, просто знания системного администратора к примеру во много раз должны превышать знания перечисленных выше. Такое отношение работодателей оскорбляет и унижает.
А вот и обещенные мною ссылки на статьи журнала "Системный администратор":

* Договор дороже денег
* Уйти или остаться часть 1
* Уйти или остаться часть 2
* Уйти или остаться часть 3

Я очень надеюсь что после прочтения этих статей у работодателей откроются глаза на сотрудников IT штата.

А для тех кто является сам системным администратором или еще хочет им стать, или же находится на стадии поиска работы, советую давать ссылку на эту статью из моего блога вместе с резюме.

четверг, 23 апреля 2009 г.

"WINDOWS ЗАБЛОКИРОВАН" или как победить новую версию winlock.

Попалась мне новая модификация winlock. Hа этот раз в его отличиях следующие:

1. Невозможно вызвать параметры "залипания" нажатием Shift 5 раз.
2. Рандомное название файлов *.tmp и *.bin вируса.
3. Рандомное расположение файлов *.tmp и *.bin.
4. Не подходят коды сгенерированные кей геном с сайта Dr.Web.

Произошло это все на ноутбуке одного из пользователей, т.к. многие Live CD в виндой часто себя плохо ведут на ноутбуках (не загружаются). Решил использовать Live CD с Linux со встроенным драйвером ntfs-3g и на всякий случай антивирусом. Выбрал от Dr.Web
(скачать).
Для того, чтобы все исправить, нам понадобится:

1. Свободный компьютер с windows.
2. Флешка.
3. Live CD с Linux c драйвером ntfs-3g.

Вставляем наш загрузочный диск и грузимся с него в любом режиме (нам нужна командная строка) . Подключить флешку можно командой :
#mkdir /mnt/flash
# mount -t vfat /dev/sda1 /mnt/flash
Это в моем случае. У себя пробуйте по аналогии. Если не получается, в интернете много статей, как это сделать.
Итак, в моем случае диск с NTFS разделом был уже подцеплен в /mnt/disk1. Далее делаем следующие :

#cd /mnt/disk1/WINDOWS/system32/config
#cp software /mnt/flash
#umount /mnt/flash
Вытаскиваем флешку и идем на свободный компьютер с windows. Запускаем редактор реестра (Пуск=>Выполнить=>regedit), раскрываем ветку HKEY_LOCAL_MACHINE, идем во вкладку Файл=>Загрузить куст, выбираем наш файл software на на флешке и подсоединяем под любым удобным именем (я назвал 111). Раскрываем куст и идем по пути
Microsoft=>WindowsNT=>CurrentVersion=>Winlogon (Winlogon не раскрываем). В корне мы увидим параметр Userinit, открываем его и смотрим, куда у нас сохранился вирус. У меня "C:\WINDOWS\system32\userinit.exe,C:\DOCUME~1\user\LOCALS~1\Temp\don1A9.tmp", т.е. в моем случае он сохранился в "C:\Documents and Settings\user\Local Settings\Temp"
Переходим к больному компьютеру (который все еще работает на LiveCD). Идем по пути, который мы нашли в кусте реестра с больной машины, и удаляем 2 файла этого вируса (они рядом с одинаковым названием, но разным расширением *.tmp и *.bin (в моем случае это были don1A9.tmp и don1A9.bin)) . Перезагружаем компьютер (должен зайти в систему нормально) и заходим опять в редактор реестра, идем по тому же пути что и ранее, и в параметре Userinit убираем все, что находится после запятой. Т.е. должно получиться "C:\WINDOWS\system32\userinit.exe" (без кавычек). Перезагружаем компьютер еще раз (на всякий) и радуемся.

пятница, 13 марта 2009 г.

Конфиг виртуального хоста DSPAM WebUI (Apache 2)

Есть такой спаморез как DSPAM. Решил с ним повозиться и посмотреть что есть и с чем его едят. Но по его настройке итак много статей в интернете, к примеру вот тут. Статьи написаны хорошо и все работает, вот только конфиг виртуального хоста предлагается для Apache 1.3. А сейчас много кто использует более новые версии, для которых он не подойдет. Поэтому выкладываю рабочий конфиг для Apache 2.2.* версий.

<Virtualhost *:80>
ServerName dspam.example.com
ServerAdmin admin@example.com
DocumentRoot "/home/dspam/dspam.example.com"
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/home/dspam/dspam.example.com"
</ifModule>
# Разрешаем исполнение CGI,
# запрещаем изменение параметров htacess'ом
# и включаем MySQL аутентификацию
<Directory "/home/dspam/dspam.example.com">
Options ExecCGI
AuthName "DSPAM WebUI"
AuthUserFile /dev/null
AuthBasicAuthoritative Off
AuthType Basic
AuthMySQLEnable On
AuthMySQLHost localhost
AuthMySQLUser postfix
AuthMySQLPassword postfix
AuthMySQLDB postfix
AuthMySQLUserTable mailbox
AuthMySQLNameField username
AuthMySQLPasswordField password
AuthMySQLPwEncryption none
require valid-user
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# Запрещаем пользователям доступ к служебным файлам
<Files admins>
Order allow,deny
Deny from all
</Files>
<Files configure.pl>
Order allow,deny
Deny from all
</Files>
<Files default.prefs>
Order allow,deny
Deny from all
</Files>
# Задаем индексный файл
<ifModule dir_module>
DirectoryIndex dspam.cgi
</ifModule>
# Поскольку мы не предусматриваем на этом
# виртуальном хосте исполнение PHP скриптов,
# то на всякий случай отключим их исполнение
AddType text/plain .php
# Задаем пользователя от которого
# будут работать CGI скрипты
SuexecUserGroup dspam dspam
# Логирование
ErrorLog /var/log/httpd/dspam-error.log
TransferLog /var/log/httpd/dspam-access.log
ScriptLog /var/log/httpd/dspam-script.log
</Virtualhost>