Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Данное разрешение позволяет только передавать пакеты с адресов 192.168.1.x на сетевой интерфейс
eth1
. Но это еще не значит, что трафик поступит и сможет выйти в Интернет. Чтобы пакеты пользователей были приняты сетевым экраном, должно быть разрешение accept примерно следующего вида:
ipchains -A input -i eth0 -s 192.168.1.0/24 -j ACCEPT
В этом фильтре мы открыли доступ на сетевой интерфейс eth0 любым пакетам с адресов 192.168.1.x. Разрешение дано на порты, поэтому адрес отправителя пакета может быть любым из сети 192.168.1.x.
Осталось только разрешить таким же образом пакетам выходить (цепочка output) из eth1, и можно считать, что все компьютеры вашей сети уже получили доступ в Интернет. Только на всех клиентских машинах необходимо указать в качестве шлюза по умолчанию IP-адрес компьютера с сетевым интерфейсом, и все пакеты найдут своего адресата.
Если у вас структура сети напоминает рис. 4.7, то переадресация должна быть включена на обоих сетевых экранах. А вот маскировку адреса лучше всего сделать на Firewall 2. В этом случае второй сетевой экран будет скрывать локальную сеть даже от публичного сервера.
Зачастую в качестве второго сетевого устройства выступает не карта, а модем. В этом случае правило для перенаправления будет выглядеть следующим образом:
i
pchains -A forward -i ppp0 -s 192.168.1.0/24 -j MASQ
Здесь перенаправление идет на интерфейс одного из модемов, имена которых имеют вид
pppX
.
Чаще всего необходимо, чтобы ваши клиенты имели доступ к ресурсам Интернета, а обратное подсоединение было невозможно. Когда по протоколу TCP запрашивается подключение к удаленному компьютеру, то посылается пакете установленным битом
syn
. В простых пакетах (ответы на наши соединения или передача данных) такого бита не должно быть. Таким образом, достаточно запретить TCP-пакеты с этим флагом, и удаленный компьютер не сможет подключиться ни к одному ресурсу нашего компьютера или сети. Это можно реализовать следующим образом:
ipchains -I input 1 -i ppp0 -р tcp --syn -j DENY
В данной строке вставляется новое правило в цепочку проверки входящих пакетов. Контролируются пакеты TCP, у которых установлен флаг
syn
(об этом говорит ключ --syn
). Если такой пакет получен, то он удаляется.
Для использования маскировки IP-адреса ядро операционной системы должно быть скомпилировано с соответствующей поддержкой, потому что подмена адреса происходит на уровне ядра.
4.11.8. Сохранение фильтра
Если попробовать сейчас перезагрузить систему и просмотреть цепочки сетевого экрана, то все наши изменения исчезнут. Проблема в том, что ОС автоматически их не запоминает, и мы сами должны позаботиться о сохранении правил. Для этого существует утилита ipchain-save. Ее нужно выполнять следующим образом:
ipchain-save > файл
Когда мы только начинали рассматривать команды
ipchains
, то я упоминал файл /etc/sysconfig/ipchains( см. разд. 4.11.1 ). Это конфигурационный файл, который загружается при старте системы. Именно в этом файле я рекомендую держать все настройки:
ipchain-save > /etc/sysconfig/ipchains
Выполняйте сохранение после каждой модификации конфигурации. Если случится внештатная ситуация и сервер придется перезагружать, то вы обязательно забудете восстановить изменения.
Сохранение цепочек можно сделать автоматическим, но я не советую вам на это надеяться. Лучше сделать все вручную, так будет надежнее.
Восстановить цепочки тоже можно из файла. Для этого необходимо выполнить команду:
ipchain-restore < файл
Это очень удобно. Допустим, что вы хотите протестировать новые правила, но боитесь испортить уже отлаженные цепочки. Сохраните в каком-нибудь файле текущее состояние и изменяйте что угодно и как угодно. В любой момент можно вернуться к исходной точке, выполнив одну команду восстановления.
4.12. iptables
Программа iptables является новой разработкой по управлению фильтрами и обеспечению безопасности, но пока еще не смогла завоевать сердца большинства пользователей. Если вы разобрались с утилитой ipchains, то понять принцип работы с iptables будет не сложнее.
С помощью iptables вы также можете редактировать цепочки правил input, output и forward.
4.12.1. Основные возможности iptables
Сходство между ipchains и iptables прослеживается уже при взгляде на параметры:
□
-A цепочка правило
— добавить правило в конец цепочки. В качестве параметра указывается имя цепочки INPUT
, OUTPUT
или FORWARD
;
□
-D цепочка номер
— удалить правило с указанным номером из заданной цепочки;
□
-R цепочка номер правило
— заменить правило с указанным номером в цепочке;
□
-I цепочка номер правило
— вставить правило в указанную первым аргументом цепочку под номером, заданным во втором параметре. Если номер равен 1, то правило станет первым в цепочке;
□
-L цепочка
— просмотреть содержимое указанной цепочки;
□
-F цепочка
— удалить все правила из цепочки;
□
-р протокол
— определяет протокол, на который воздействует правило;
□
-i интерфейс
— определяет сетевой интерфейс, с которого данные были получены. Здесь можно использовать INPUT
, FORWARD
или PREROUTING
;
□
-o интерфейс
— задает интерфейс, на который направляется пакет. Здесь можно указывать OUTPUT
, FORWARD
или POSTROUTING
;
□
-j действие
— операция, которая должна быть выполнена над пакетом. В качестве аргументов можно указать следующие значения (рассмотрим только основные):
•
LOG
— поместить в журнал запись о получении пакета;
•
REJECT
— отправителю будет направлено сообщение об ошибке;
•
DROP
— удалить пакет;
•
BLOCK
— блокировать пакеты;
□
-s адрес
— IP-адрес отправителя пакета. Как и в случае с iptables, после адреса можно задать маску в виде /mask
и знак отрицания "!", что будет соответствовать любым адресам, кроме указанных;
□
-d адрес
— адрес назначения пакета.
Как видите, большинство параметров абсолютно идентичны тем, что мы рассматривали для программы ipchains. Но есть важные и очень мощные отличия. Например, с помощью ключей
-о
и -i
очень просто указывать, с какого на какой интерфейс направляется пакет. Из-за сходства конфигурирования сервисов ipchains и iptables в практической части мы не будем тратить драгоценное место книги, и кратко рассмотрим создание правил.
В данном обзоре ключей я затронул только основы, но если вы посмотрите файл документации, то увидите еще много вариантов работы с ключом
-j
, т.е. существуют большие возможности по управлению пакетом, если он соответствует правилам.
Интервал:
Закладка: