Объединение сетевых интерфейсов

вторник, 28 апреля 2009 г.
Список режимов:
mode=0 (balance-rr)
Последовательно кидает пакеты, с первого по последний интерфейс. 
mode=1 (active-backup)
Один из интерфейсов активен. Если активный интерфейс выходит из строя (link down и т.д.), другой интерфейс заменяет активный. Не требует дополнительной настройки коммутатора
mode=2 (balance-xor)
Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.
mode=3 (broadcast)
Все пакеты на все интерфейсы
mode=4 (802.3ad)
Link Agregation — IEEE 802.3ad, требует от коммутатора настройки. 
mode=5 (balance-tlb)
Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса. Не требует настройки коммутатора.
mode=6 (balance-alb)
Тоже самое что 5, только входящий трафик тоже распределяется между интерфейсами. Не требует настройки коммутатора, но интерфейсы должны уметь изменять MAC.
Настройка
Очень простая. Вы выбираете режим, втыкаете в коммутатор второй кабель.
Дальше в зависимости от системы, я делал это на Debian Lenny
#apt-get install ifenslave-2.6
Дальше есть 2 варианта:
Вариант №1 Подправить /etc/network/interfaces к примеру так.
iface bond0 inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1

и подправить /etc/modprobe.d/arch/i386 примерно так
alias bond0 bonding
options bonding mode=5 miimon=100 downdelay=200 updelay=200
Естественно указать свой режим и настройки сети.
# update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart

Вариант №2 Все настройки через /etc/network/interfaces
iface bond0 inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
bond_mode balance-tlb
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth0 eth1

Сохраняем и пишем:
update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart

Простой honeypot

среда, 22 апреля 2009 г.

Создаем скрипт /usr/local/sbin/honey
#!/bin/sh
echo "Date: $(date) \n\nSomeone connect on 31337 port" | mail -s "Security alert $(hostname)" root


Потом открыть файл сервисов /etc/services и записать:
honey 31337/tcp

Теперь открывем /etc/inetd.conf и пишем
honey stream tcp nowait root /usr/local/sbin/honey honey

Все! Командой chmod a+x /usr/local/sbin/honey делаем файл исполняемым и перезагружаем inetd демон /etc/init.d/openbsd-inetd restart. Осталось только проверить его работу, поэтому телнется к себе на 31337 порт командой
telnet 127.0.0.1 31337

Заголовки Apache

Отправляемый сервером (Apache) заголовок позволяет получить ценную информацию.

  $ curl --head http://www.example.com | grep Server
  Server:
Apache/2.2.29  (Debian) mod_ssl/2.8.5 OpenSSL/0.9.6b mod_perl/1.26

  Проще всего изменить значение переменной ServerTokens конфигурационного файла apache. Она может принимать следующие значения.

  Full  -   Отображать полную информацию о названии сервера и установленных модулях.
  Min  -   Предоставить сведения только о названии сервера и установленных модулях.
  Prod -   Выводит только имя сервера.

  После добавления указанной строчки в файл (/etc/apache2/apache.conf или /etc/apache2/conf.d/security).

  ServerTokens Prod

  После этого сервер на запрос выдаст

  $ curl --head http://www.example.org | grep Server

  Server: Apache

Начиная с Apache 2.0.44, эта директива также контролирует информацию предоставляемую директивой ServerSignature, описанной ниже.
ServerSignature
Эта директива отвечает за вывод подвала страницы в документах, сгенерированных сервером (сообщения о ошибках и прочее).
Данная директива может быть выставлена не только глобально, но и для виртуальных хостов, и в .htaccess.

Возможные значения:
Off (default): подавлять вывод
On: включать строку с указанием версии сервера.
EMail: включено все, и дополнительно доступно поле “mailto:” ссылающееся на ServerAdmin

Сообщения syslog

 Категории Описание
  - auth Сообщения о нарушении безопасности и авторизации доступа
  - authpriv Сообщение об использовании привилегированного доступа
  - cron Сообщения демонов cron и at
  - daemon Сообщения, генерируемые другими выполняющимися демонами (sshd, inetd, pppd и т.д.)
  - kern Сообщения ядра
  - lpr Сообщения подсистемы печати
  - mail Сообщения почтовых программ
  - news Сообщения системы новостей
  - syslog Сообщения, создаваемые syslog
  - user Сообщения, генерируемые пользовательскими программами 
  - uucp Сообщения UUCP
  - local0-local7 Определяются для конкретной системы

  Приоритеты Описание сообщения
  - emerg Система непригодна для дальнейшей работы
  - alert Состояние системы требует немедленного вмешательства
  - crit Состояние представляет непосредственную угрозу системе
  - err Сообщения об ошибках
  - warning Предупреждающие сообщения
  - notice Допустимое, но требующее внимания администратора состояние системы
  - info Информационное состояние системы
  - debug Отладочные сообщения

Полезные атрибуты файла

- A отключает создание метки atime для записи времени последнего
доступа к файлу, что позволяет сократить количество операций обращения
к носителю. Не поддерживается многими версиями ядра (до версии 2.0). В
некоторых случаях лучше смонтировать файловую систему с параметром
noatime.

- a Только дозапись данных. Устанавливается суперпользователем.

- d Такой файл будет пропущен при создании backup'а системы.

- i Файл нельзя переименовывать, создавать на него ссылки,
модифицировать.

- s При удалении файла занимаемое им место заполняется нулями.

- S При модификации файла все изменения синхронно фиксируются на НМЖД.

#Чтение атрибутов:
$ lsattr my_file.txt
-------- my_file.txt

#Установка атрибутов:
$ chattr +c my_file.txt
$ chattr +s my_file.txt
$ chattr +d my_file.txt


#Чтение атрибутов:
$ lsattr my_file.txt
s-c---d- my_file.txt


#Снятие атрибутов:
$ chattr -d my_file.txt
s-c----- my_file.txt

Постоянная ссылка /dev/changer

Просмотр информации о устройстве
# udevinfo -a -p /sys/class/scsi_generic/sg0

В файл /etc/udev/rules.d/10.local-scsi.rules сохраняем информацию

SUBSYSTEM=="scsi_generic", ATTRS{model}=="MagFile ", ATTRS{vendor}=="M4 DATA ", SYMLINK+="changer"

Улетный SCSI

понедельник, 13 апреля 2009 г.
не занятое SCSI устройство может быть удалено и установлено "на лету"

Для удаления SCSI устройства:
echo "scsi remove-single-device a b c d" > /proc/scsi/scsi

для добавления SCSI устройства, делаем
echo "scsi add-single-device a b c d" > /proc/scsi/scsi

где
a == hostadapter id (first one being 0)
b == SCSI channel on hostadapter (first one being 0)
c == ID
d == LUN (first one being 0)