Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
– 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. Основные параметры командной строки syslogdФайл конфигурации По умолчанию используется файл конфигурации /etc/syslog.conf. Вы можете указать другой файл конфигурации с помощью опции -f. Типичный файл конфигурации приведен ниже.
# Все сообщения ядра операционной системы выводить на консоль #kern.* /dev/console
# Все сообщения уровня info или выше протоколировать в файл
# /var/log/messages
# Кроме почтовых сообщений и сообщений аутентификации
*.info;mail.none;authpriv.none;cron.none /var/log/messages# Протоколирование аутентификации.
# Файл протокола /var/log/secure
authpriv.* /var/log/secure
# Все log-сообщения почтовой системы сохранять в файле /var/log/maillog.
mail.* /var/log/maillog# Все сообщения демона сгоп сохранять в файле /var/log/cron cron.* /var/log/cron
# Everybody gets emergency messages *.emerg *
# Сообщения системы новостей уровня crit и выше сохранять в файле
# /var/log/spooler
uucp,news.crit /var/log/spooler# Все загрузочные сообщения хранить в файле /var/log/boot.log lоса17.* /var/log/boot.log
Файл конфигурации состоит из двух полей: объект протоколирования и файл, в который будут записываться сообщения, порождаемые этим объектом. Для каждого объекта можно указать один из уровней протоколирования:
• debug – отладочная информация;
• info – просто информация;
• notice – уведомление;
• warn – предупреждение;
• err – ошибка;
• emerg – критический уровень.
Первые три уровня протоколирования относятся к информационным сообщениям. Уровень warn – это предупреждения, a err – ошибки. Помимо этого, существуют критические сообщения, которые выводятся прямо на консоль. Для обозначения объектов и для обозначения уровней протоколирования можно использовать символ *, который обозначает все объекты или все уровни.
Сетевое протоколированиеДля обеспечения повышенной защищенности сети все сообщения можно хранить не на локальном компьютере, а передавать по сети на специальный сервер, на котором будет находиться база log-файлов компьютеров, подключенных к сети.
Для передачи сообщений используется протокол UDP. Для нормального функционирования необходимо в файле /etc/service раскомментировать строку syslog 514/udp.
После этого необходимо внести изменения в файл конфигурации /etc/syslog.conf – вместо файлов протоколов используйте параметр @hostname, где hostname – это имя компьютера, на который будут перенаправлены сообщения.
Имя узла желательно указать в файле /etc/hosts, поскольку демон syslogd обычно стартует раньше, чем сервер DNS.
Демон klogd
Демон klogd предназначен для перехвата и протоколирования сообщений ядра Linux. В табл. 27.2 приведены основные параметры командной строки демона klogd.
Таблица 27.2. Основные параметры командной строки klogdПо умолчанию демон klogd вызывается системным вызовом для того, чтобы препятствовать отображению всех сообщений на консоль. Это не распространяется на критические сообщения ядра (kernel panic). Эти сообщения в любом случае будут отображены на консоли.
Защита системы после взлома
Правда, несколько странное название раздела? Как это – защита системы после взлома? Если вы помните, вопросы обеспечения безопасности компьютера в целом уже рассматривались нами в гл. 7. В этом же разделе мы остановимся на сетевой безопасности, а именно на том моменте, когда взлом уже произошел. После обнаружения факта взлома стандартным решением является отключение взломанного компьютера от сети и полная переустановка операционной системы с последующей установкой всех обновлений программного обеспечения, используемого на компьютере. А что делать, если нет возможности вывести из работы взломанный компьютер, а защитить его все равно необходимо? Именно этот случай мы и рассмотрим в этом разделе.