Как за каменной стеной! Докучаев Дмитрий aka Forb Xakep, номер #058, стр. 058-066-1 (forb@real.xakep.ru) Настраиваем фаервол iptables Люди, установившие себе Linux в качестве рабочей станции, нередко придерживаются мнения, что хакеры тянутся только к крупным серверам, поэтому фаервол им ни к чему. Это не совсем верно. Дело в том, что в большинстве случаев взломщику просто наплевать, что ломать и куда вторгаться. Поэтому о своей защите лучше позаботиться заранее, чтобы потом не пришлось кусать локти и сожалеть о собственной беспечности. История iptables Для начала вспомним, что такое фаервол. По сути, это стандартный фильтр пакетов, параметры которого задает пользователь. Юниксоидам, в отличие от виндузятников, с "огненной стеной" повезло. Фаервол является обязательным атрибутом всех unix-like систем. В линуксе, например, в истории развития операционки можно проследить три фаервола: сперва был простой в использовании ipfadm (его синтаксис схож с ipfw, характерным для BSD-систем), затем с развитием ядра Linux появился ipchains. Он уже умел делать NAT (замена source-ip) и REDIRECT (замена destination-port) и работал на 2.2.х ядрах. С появлением ветки 2.4 приобрел популярность фаервол iptables, который имел множество различных функций и модулей. Самая последняя версия этого брандмауэра - 1.2.7a. Перекроем врагу кислород Обычно для активации фаервола достаточно выполнить команду service iptables start. После этого будут загружены модули iptable_nat, iptable_owner, iptable_state и iptable_filter. Каждый модуль отвечает за определенные функции. После запуска фаервола можно посмотреть наличие всех (пока еще пустых) цепочек. Делается это командой iptables -L. Будет видно, что у брандмауэра есть три главных цепи: INPUT, OUTPUT и FORWARD. В них как раз и записываются правила, определяющие политику работы фаервола. Политик может быть две - ACCEPT, которая принимает все пакеты без исключения (по умолчанию), и DROP, фильтрующая все соединения, если нет исключающих правил. Кроме того, пользователь может создать свои личные цепи и соединить их с главными. INPUT INPUT содержит в себе правила, проверяющие любые входящие в систему пакеты. После такой проверки ядро "решает" - пропустить пакет или блокировать. Фильтровать пакет можно двумя способами - DROP, делая вид, что сервер недоступен, и REJECT - эмуляция отсутствия сервиса (при этом запрете на порт, фаервол ответит на запрос - connection refused, как будто порт вообще не светится). OUTPUT В этой цепочке находятся правила, обрабатывающие исходящие пакеты. Принцип работы аналогичен INPUT. При наличии запрещающих правил пакет фильтруется и не выпускается из системы наружу. FORWARD Здесь происходит обработка пакетов, которые попали на сервер с другой машины и ожидают дальнейшего переброса (актуальна для роутеров). Обычно на форвард ставится политика DROP, а в цепь записываются правила на доверенные машины (обязательно в оба направления). В этом случае маршрутник будет обрабатывать пакеты лишь с этих серверов. Практика Теперь ты знаешь назначение цепей iptables. Тогда попробуем провести небольшую настройку iptables, после которой злоумышленник не сможет проникнуть на твой комп. Саму настройку лучше производить в онлайне, т.к. в случае ошибки фаервол просто заблокирует все входящие соединения. |