- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
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, т.е. существуют большие возможности по управлению пакетом, если он соответствует правилам.
Настройка цепочек 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
Надо еще учесть аспект защиты информации. Допустим, что у вас есть сервер, который принимает закодированный трафик с помощью stunnel (Security Tunnel, безопасный туннель, создающий шифрованный канал между двумя машинами, будем рассматривать в разд. 5.2), расшифровывает и передает его на другую машину. В этом случае во входящих пакетах сетевой экран не может найти такие строки. А вот исходящие пакеты идут уже декодированными и содержат открытый текст команд. В такой конфигурации необходимо контролировать оба потока.
Даже если у вас stunnel передает расшифрованный трафик на другой порт внутри одного компьютера, можно включить контроль любых пакетов на всех интерфейсах, чтобы они проверялись после расшифровки.
4.13. Замечания по работе Firewall
Сетевой экран может как защитить вашу сеть или компьютер от вторжения, так и сделать ее уязвимой. Только внимательное конфигурирование и жестокие запреты сделают вашу систему надежной.
Но даже если вы очень вдумчиво все настроили, нет гарантии, что сервер окажется в безопасности. Абсолютная неуязвимость сетевого экрана — это миф. И в данном случае проблема заключается не только в программах iptables или ipchains. Сама технология сетевого экрана не гарантирует полной безопасности. На 100% ее никто не может обеспечить, иначе я не писал бы эту книгу.
В данном разделе нам предстоит познакомиться с проблемами, с которыми вы можете встретиться во время использования сетевого экрана. Вы должны четко себе их представлять, чтобы знать, откуда может идти угроза.
4.13.1. Внимательное конфигурирование

