Блокировка отдельных служб с помощью iptables
Допустим, наш компьютер подключен к локальной сети и к Internet. Мы хотим разрешить другим компьютерам локальной сети устанавливать telnet-соединения. Но поддержка этой службы для локальной сети означает, что необходимо использовать TCP Wrappers для защиты от попыток хакера установить telnet-соединение по Internet. При использовании защиты с помощью TCP Wrappers хакер будет знать, что порт открыт, а доступ ему просто заблокирован. Поэтому он может попытаться найти компьютер, которому предоставлено право подключения по telnet. Если же порт заблокирован на уровне ядра, то хакер вообще не узнает о предоставлении кому-либо возможности установки соединений.
Существуют и другие службы, использование которых должно разрешаться хостам локальной сети и запрещаться для всех остальных хостов. Например, служба печати по сети (lpd). Ранее эта служба была использована в нескольких типах атак с получением хакером прав root. Если хакер получает доступ к порту lpd (порт 515), то вероятно, сможет получить и привилегии root. Кроме того, провести своеобразную атаку отказа в обслуживании отправив на печать множество заданий, в результате чего будет израсходован запас бумаги в принтере.
Блокировка отдельных портов с помощью iptables
Установить запрет на получение пакетов из Internet можно с помощью создания соответствующих правил брандмауэра. Предположим, что наш компьютер подключен к Internet посредством Ethernet-интерфейса eth0. Для блокирования пакетов к портам служб Telnet, FTP (рассматривался пример в предыдущем посте) и SMTP могут быть использованы следующие правила программы netfilter.
/sbin/iptables -A INPUT -i eth0 -s 0/0 -d 192.168.1.102 -p tcp \ — — dport ftp -j DROP
/sbin/iptables -A INPUT -i eth0 -s 0/0 -d 192.168.1.102 -p tcp \ — — dport smtp -j DROP
Настроим iptables на отбрасывание всех входящих пакетов для службы lpd, поступающих от удаленных хостов (не из локальной сети).
# (пусть адрес локальной сети 10.0.0.)
/sbin/iptables -A INPUT -i eth0 -s 10.0.0.0/8 -d 192.168.1.102 \ -p tcp — — dport 515 -j ACCEPT
# блокировать соединения от всех остальных компьютеров
/sbin/iptables -A input -i eth0 -s 0/0 -d 192.168.1.102 \ -p tcp — — dport 515 -j DROP
Использование REJECT, вместо DROP
В программе iptables использование правила DROP – не всегда лучший метод. Для некоторых служб лучше отклонять пакеты (REJECT), чем их отбрасывать без уведомления отправителя (DROP). В качестве примера такой службы можно назвать IDENT, так называемую службу аутентификации. Некоторые службы, например sendmail, используют аутентификацию по IDENT при получении запросов на соединение. При этом удаленным клиентом осуществляется подключение к ТСР-порту 113 (локальному серверу) и запрашивается информация о том, кто отправил первоначальный запрос. Если ТСР-порт 113 заблокирован с помощью правила DROP, брандмауэр не возвратит удаленному компьютеру никакого сообщения. Работа клиента на удаленном компьютере будет приостановлена до истечения таймаута (как правило, 60 – 70 сек.), а это неоправданно замедляет работу обоих компьютеров.
Если настроить брандмауэр на отклонение (REJECT) пакетов, поступающих на порт 113 (вместо DROP), то удаленный компьютер получит уведомление о невозможности подключения к порту. Удаленный клиент получает сведения о невозможности соединения, поэтому он не будет ожидать установки соединения. Это ускоряет обмен данными по Internet, причем происходит это намного «вежливее».
Твитнуть
Я конечно может всего и не понимаю, но блокировать что-то с помощью иптаблесов это равносильно тому, что ездить на танке по городу, ну, что бы не поцарапали.
Шикарно написано! однозначно + автору 😉 А вообще, хотелось бы побольше такой информации в Рунете встречать как тут.
Шикарно написано! однозначно + автору 😉 А вообще, хотелось бы побольше такой информации в Рунете встречать как тут.
Думаю автор заслуживает похвалы за такой, хоть и небольшой, но все же труд !
Спасибо автору за хорошую статью, очень мне помогла.
Статей по iptables как раз не хватает в рунете. Спасибо
Не знал, что иптейблом можно службы блокировать.
Я конечно может всего и не понимаю, но блокировать что-то с помощью иптаблесов это равносильно тому, что ездить на танке по городу, ну, что бы не поцарапали.
===================================
Именно в этом и весь кайф 😀 😀 😀