Ниже приведен список основных поддерживаемых опций:
• TCP_PORTS – в этой опции через запятую перечисляются ТСР-порты, которые проверяются программой Portsentry. При обнаружении подключения к перечисленным портам Portsentry записывает информацию об этом в системный журнал и выполняет команду, заданную пользователем, а после этого блокирует хост посредством брандмауэра. ТСР-порты, открытые на защищаемом компьютере другими программами, в этот список включаться не должны;
• UDP_PORTS – то же, что и tcp_ports, но для UDP-портов;
• ADVANCED_PORTS_TCP – значение этой опции определяет верхнюю границу множества TCP-портов, которые проверяются Portsentry при работе в режиме Advanced Stealth Scan Detection Mode. Нижней границей является 1, т. е. при значении advanced_ports_tcp, равном 2048, проверяется подключение к любому порту в промежутке от 1 до 2048;
• ADVANCED_PORTS_UDP – то же, что и advanced_portsjtcp, но для UDP-портов;
• ADVANCED_EXCLUDE_TCP – TCP-порты, которые исключаются из промежутка проверяемых портов, заданного параметром advanced_portsjtcp. Здесь обязательно нужно перечислить ТСР-порты, открытые работающими на защищаемом компьютере программами;
• ADVANCED_EXCLUDE_UDP – то же, что и advanced_exclude_tcp, но для UDP-портов;
• IGNORE_FILE – имя и путь к файлу с IP-адресами хостов, которые не блокируются при подключении к портам, проверяемым программой Portsentry;
• HISTORY_FILE – имя и путь к файлу с историей работы программы Portsentry. В файл записывается время блокирования, имя и IP хоста, атакованный порт, протокол;
• BLOCKED_FILE – строка, из которой формируется имя и путь к файлам, куда записывается информация о блокированных хостах;
• BLOCK_TCP – эта опция в зависимости от значения задает ответную реакцию Portsentry на сканирование портов:
– 0 – не блокировать хост, не запускать заданную пользователем команду;
– 1 – блокировать хост и запустить команду;
– 2 – только запустить заданную команду.
Команда задается при помощи опции KILL_RUN_CMD;
• BLOCK_UDP – то же, что и BLOCK_TCP, но для UDP;
• KILL_ROUTE – эта опция задает команду, которую надо выполнить для блокирования атакующего хоста. Для указания IP-адреса используется переменная $target$. Переменная $port$ используется для указания порта, к которому было подключение;
• KILL_HOSTS_DENY – эти опция задает строку, которая записывается в /etc/hosts.deny для блокирования доступа к сервисам, запускаемым через inetd;
• KILL_RUN_CMD – с помощью этой опции можно задать команду, запускаемую до блокирования хоста;
• SCAN_TRIGGER – данная опция задает количество разрешенных подключений к проверяемым программой Portsentry портам одного и того же хоста, прежде чем Portsentry начнет действовать. О определяет немедленную реакцию;
• PORT_BANNER – задает сообщение, которое будет выводиться при подключении к проверяемому Portsentry порту.
В файле portsentry.ignore необходимо перечислить IP-адреса компьютеров, которые не должны быть блокированы программой при подключении к проверяемому порту.
ЗапускPortsentry можно запускать в трех различных режимах. Режимы задаются в командной строке при вызове Portsentry. Одновременно можно задать только один режим работы для одного протокола:
• Classic – при работе в этом режиме Portsentry открывает порты, указанные в tcp_ports или udp_ports, и ждет соединения. При попытке подключиться к такому порту происходит блокировка удаленного хоста. Этот режим работы задается опциями командной строки -tcp – для ТСР-портов и – udp – для UDP-портов;
• Enhanced Stealth Scan Detection – этот режим используется для проверки перечисленных в tcp_ports или udp_ports портов на предмет подключения или сканирования. Выявляет почти все виды Stealth-сканирования, а не только сканирование подключением. В отличие от режима Classic, не держит открытыми порты, поэтому сканировщик получает достоверную информацию об открытых портах. Задается опциями командной строки -step – для TCP-портов и -sudp – для UDP-портов;
• Advanced Stealth Scan Detection – этот режим используется для проверки всех портов в промежутке от 1 до advance d_port_tcp или advanced_port_udр. Порты, открытые другими программами и перечисленные в advanced_exlude_tcp или advanced_exclude_udp, исключаются из проверки. Любой компьютер, попытавшийся подключиться к порту в этом промежутке, тут же блокируется. Задается опциями командной строки – atcp – для TCP-портов и -audp – для UDP-портов.
Сетевая статистика
Очень часто администратору необходимо получить развернутую информацию по сетевому трафику – кто, когда, сколько и по какому протоколу отправлял/принимал информацию. Конечно, все это можно получить из различных log-файлов, однако незачем тратить время на изготовление анализаторов log-файлов, когда уже есть готовые программные решения.
NeTraMet
Этот программный пакет позволяет подсчитывать трафик по IP-адресам в локальной сети раздельно по типам трафика: SMTP, ICMP, HTTP, FTP, UDP, TCP и т. п. Также существует возможность подробного регистрирования трафика.
Программный пакет состоит из:
• NeTraMet – программы-сборщика трафика. Собирает и хранит в оперативной памяти статистику с сетевых интерфейсов сервера;
• NeMaC – программы-менеджера сборщика NeTraMet. NeMaC собирает статистику и записывает ее в журнал;
• srl – компилятора правил для NeMaC;
• fd_filter – программы обработки журналов NeMaC;
• fd_extract – программы обработки результатов fd_filter.
Ключи запуска NeTraMetПрограмма запускается со следующими ключами:
• -i network_interface – определяет сетевой интерфейс, трафик которого будет считать NeTraMet;
• -l – предписывает использовать размер пакета из заголовка, а не аппаратный размер;
• -m 614 – определяет UDP-порт, на котором будет соединяться NeTraMet с NeMaC;
• -r password_for_read – устанавливает пароль на чтение;
• -w password_for_write_and_read – устанавливает пароль на чтение/ запись;
• -f 60000 – определяет максимальное количество сетевых потоков в NeTraMet. Чем больше клиентов, трафика и степень детализации статистики, тем больше сетевых потоков.
Ключи запуска NeMaCПрограмма запускается со следующими ключами:
• -k 120 – каждые 120 секунд NeMaC будет проверять – не перезагрузился ли NeTraMet;
• -F /var/ntm. iog/$DATER. flows – в этот файл записывать статистику;
• -m 614 – определяет порт для управления NeTraMet;
• -c 900 – предписывает забирать статистику с NeTraMet каждые 15 минут;
• -р – предписывает после записи в файл статистики данных закрывать его. Если файл не найден, то создается новый файл;
• -L /var/ntm. log/$DATER.nemac – журнал работы NeMaC;
• -r /root/ntm.sh/short.3.rules – файл с правилами.
Протоколирование
Нет смысла тратить много времени на защиту компьютера от взлома и не обращать внимания на систему протоколирования событий. Каким образом вы сможете узнать о попытке и способе взлома, не используя инструментов для ведения log-файлов? В этом разделе мы познакомимся со стандартной системой ведения log-файлов – демоном syslogd.
Демон syslogd является частью пакета sysklogd, в который входят две программы: syslogd и klogd. Syslogd отвечает за протоколирование сообщений системы, a klogd – ядра.
Демон syslogd
Демон syslogd запускается автоматически при старте системы и обеспечивает протоколирование событий, которое используется большинством программ. Демон syslogd пишет сообщения в файлы /var/log/* в зависимости от настроек. Обычно записи в log-файле, создаваемом syslogd, содержат следующие поля: дата и время, имя компьютера, программа, сообщение.
Параметры запускаВ табл. 27.1 приведены основные параметры командной строки демона syslogd.
Таблица 27.1.