Чтение онлайн

на главную - закладки

Жанры

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

 • 

DROP
— удалить пакет;

 • 

BLOCK
— блокировать пакеты;

□ 

– s адрес
— IP-адрес отправителя пакета. Как и в случае с iptables, после адреса можно задать маску в виде
/mask
и знак отрицания "!", что будет соответствовать любым адресам, кроме указанных;

□ 

– d адрес
— адрес назначения пакета.

Как видите, большинство параметров абсолютно идентичны тем, что мы рассматривали для программы ipchains. Но есть важные и очень мощные отличия. Например, с помощью ключей

о
и
– i
очень просто указывать, с какого на какой интерфейс направляется пакет. Из-за сходства конфигурирования сервисов ipchains и iptables в практической части мы не будем тратить драгоценное место книги, и кратко рассмотрим создание правил.

В данном обзоре ключей я затронул только основы, но если вы посмотрите файл документации, то увидите еще много вариантов работы с ключом

– j
, т.е. существуют большие возможности по управлению пакетом, если он соответствует правилам.

Настройка цепочек

iptables
не сильно отличается от
ipchains
. Начать формирование цепочки нужно с очистки всего содержимого. Двигаться необходимо от полного запрета и разрешать только то, что не нанесет вреда серверу. Сервисы, которые могут оказаться опасными, должны быть доступны только тем, кому это необходимо, или тем, кому вы доверяете. Хотя, в нашем деле полагаться ни на кого нельзя. Ваш друг может, не желая того, раскрыть секретную информацию злоумышленнику, или данные могут быть просто украдены, и тогда доверчивость сыграет с вами злую шутку.

Для сохранения изменений в iptables также надо выполнить специализированную команду:

service iptables save

4.12.2. Переадресация

Для разрешения переадресации с помощью iptables нужно выполнить следующую команду:

iptables -A FORWARD -o ppp0 -j MASQUERADE

В данной строке позволяется переадресация на интерфейс ppp0. С помощью параметра

– j
мы требуем прятать IP-адрес отправителя, т.е. включаем маскарадинг.

Если вы используете трансляцию сетевых адресов (NAT, Network Address Translation), то команда может выглядеть следующим образом:

iptables -t nat -A FORWARD -o ppp0 -j MASQUERADE

Ключ

– t nat
указывает на необходимость загрузить модуль
iptable_nat
. Если он не загружен, то это легко сделать вручную с помощью следующей команды:

modprobe iptable_nat

iptable_nat
— это модуль ядра, который позволяет сетевому экрану работать с NAT.

4.12.3. Примеры конфигурирования iptables

Я не буду подробно останавливаться на описании различных запретов, потому что мы о них говорили при рассмотрении программы ipchains. Мы очень коротко рассмотрим создание различных правил.

Запрет любых обращений будет выглядеть следующим образом:

iptables -P INPUT DROP

Теперь все входящие пакеты будут удаляться. Как и в случае с программой ipchains, именно с этой команды нужно начинать конфигурирование iptables. Обратите внимание, что в правиле используется ключ

– P
, позволяющий задать значение по умолчанию для данной цепочки. Если фильтр добавить с помощью ключа -А, то вы можете запретить абсолютно любые подключения.

Некоторые специалисты по безопасности рекомендуют журналировать обращения, добавив в сетевой экран фильтр:

iptables -A INPUT -j LOG

Я бы не рекомендовал это делать. У публичных серверов за день происходит несколько сотен, а то и тысяч сканирований портов. Если обращать внимание на каждую такую попытку, вам придется устанавливать на сервер слишком большие жесткие диски для хранения журналов. А ведь если диск будет заполнен, то система выйдет из строя. Таким образом, хакер может просто направить бесконечные обращения на запрещенный порт и через некоторое время добиться удачно завершенной DoS-атаки.

Следующая команда создает фильтр, по которому запрещается принимать эхо-запросы от любых компьютеров:

iptables -A INPUT -s 0/0 -d localhost \

 -p icmp --icmp-type echo-request -j DROP

Как видите, создание фильтра с помощью iptables не сильно отличается от аналогичной процедуры в ipchains.

Следующая команда запрещает доступ к FTP-порту:

iptables -A INPUT -s 0/0 -d localhost \

 -p tcp --dport 21 -j DROP

Чтобы запретить доступ с определенного интерфейса, добавим ключ

– i
и укажем интерфейс eth0:

iptables -A INPUT -i eth0 -s 0/0 -d localhost \

 -p tcp --dport 21 -j DROP

Теперь запретим исходящие пакеты с 21 порта. Для этого используем команду:

iptables -A OUTPUT -i eth0 -s localhost -d 0/0 \

 -p tcp --dport 21 -j DROP

Очень мощной особенностью iptables является возможность проверки содержимого пакетов. Это очень удобно, например, для фильтрации Web-запросов.

Можно разрешить доступ к 80 порту, но контролировать, чтобы пакеты содержали только допустимые параметры. К безопасности Web-сервера мы вернемся в гл. 7 и познакомимся с разными способами защиты. А сейчас рассмотрим простой, но универсальный.

Допустим, что мы хотим разрешить доступ к FTP-серверу, но при этом быть уверенными, что пользователь не сможет обратиться к файлам /etc/passwd и /etc/shadow. Для этого можно запретить пакеты, в которых есть этот текст. Если хакер попытается послать запрос, содержащий ссылки на эти файлы, то такой пакет будет отклонен. Следующие команды запрещают доступ к этим файлам по протоколам FTP и WWW:

iptables -A INPUT -m string --string "/etc/passwd" \

 -s 0/0 -d localhost -p tcp --dport 21 -j DROP

iptables -A INPUT -m string --string "/etc/shadow" \

 -s 0/0 -d localhost -p tcp --dport 21 -j DROP

iptables -A INPUT -m string --string "/etc/passwd" \

 -s 0/0 -d localhost -p tcp --dport 80 -j DROP

iptables -A INPUT -m string --string "/etc/shadow" \

 -s 0/0 -d localhost -p tcp --dport 80 -j DROP

Поделиться:
Популярные книги

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин

Гримуар темного лорда V

Грехов Тимофей
5. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда V

Кодекс Охотника. Книга II

Винокуров Юрий
2. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
юмористическое фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга II

Сколько стоит любовь

Завгородняя Анна Александровна
Любовные романы:
любовно-фантастические романы
6.22
рейтинг книги
Сколько стоит любовь

Барон не играет по правилам

Ренгач Евгений
1. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон не играет по правилам

Золушка вне правил

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.83
рейтинг книги
Золушка вне правил

Старый, но крепкий 7

Крынов Макс
7. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 7

Сирийский рубеж

Дорин Михаил
5. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж

Мечников. Клятва лекаря

Алмазов Игорь
2. Жизнь Лекаря с нуля
Фантастика:
альтернативная история
аниме
фэнтези
попаданцы
6.60
рейтинг книги
Мечников. Клятва лекаря

Камень Книга седьмая

Минин Станислав
7. Камень
Фантастика:
фэнтези
боевая фантастика
6.22
рейтинг книги
Камень Книга седьмая

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Кодекс Охотника. Книга XXII

Винокуров Юрий
22. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXII