Iptables → Блокировка отдельных служб с помощью 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, причем происходит это намного «вежливее».
Если Вам понравилась эта статья,
!
Comments
-
http://byfly.name AdMaster
-
http://fruitarian.ru !!!!
-
http://fruitarian.ru Аноним
-
владимир Нарутов
-
http://www.l0c.ru Владимир
-
http://lazypanther.ru LazyPanther
-
http://statuszone.ru/ Статус
-
http://www.alchy.ru alchy
  Наши сообщества
  Хак новости
  Меню
  Метки


