• Категории
  • Подписка
  • Разместить статью
10/09/10 8 4414 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  telnet   -j   DROP

/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, поступаю­щих от удаленных хостов (не из локальной сети).

# разрешить 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, причем проис­ходит это намного «вежливее».


8 комментариев на «“Блокировка отдельных служб с помощью iptables”»

  1. Я конечно может всего и не понимаю, но блокировать что-то с помощью иптаблесов это равносильно тому, что ездить на танке по городу, ну, что бы не поцарапали.

  2. !!!!:

    Шикарно написано! однозначно + автору 😉 А вообще, хотелось бы побольше такой информации в Рунете встречать как тут.

  3. Шикарно написано! однозначно + автору 😉 А вообще, хотелось бы побольше такой информации в Рунете встречать как тут.

  4. владимир Нарутов:

    Думаю автор заслуживает похвалы за такой, хоть и небольшой, но все же труд !

  5. Спасибо автору за хорошую статью, очень мне помогла.

  6. Статей по iptables как раз не хватает в рунете. Спасибо

  7. Не знал, что иптейблом можно службы блокировать.

  8. alchy:

    Я конечно может всего и не понимаю, но блокировать что-то с помощью иптаблесов это равносильно тому, что ездить на танке по городу, ну, что бы не поцарапали.
    ===================================
    Именно в этом и весь кайф 😀 😀 😀

Добавить комментарий

Яндекс.Метрика