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

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

Жанры

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

14.3.5. Фильтрация фрагментированных бомб

Иногда возникает такая ситуация, когда на машину приходят не все фрагменты. Такое бывает при очень большом количестве фрагментов. Обычно при использовании ОС Linux данная проблема вообще отпадает, но все-таки некоторые администраторы предпочитают «перестраховаться».

Для решения этой проблемы вам нужно всего лишь перекомпилировать ядро с включенной опцией IP: always defragment. При этом нужно учитывать, чтобы ваш шлюз был единственным маршрутом для пакетов. Вторым способом является фильтрация фрагментов, но это может отразиться на нормальных пакетах. Честно говоря, я не особо забочусь об этой проблеме при настройке своего сервера.

14.4. Практический пример

А теперь рассмотрим более серьезный пример. Этот пример частично позаимствован мною из руководства DNS-HOWTO. Но прежде чем перейти непосредственно к практике, попробую объяснить некоторые термины, которые будут встречаться ниже.

Прежде всего, определимся, что называется маскарадингом. Объяснение я приведу на сугубо формальном языке. Маскарадинг перезаписывает заголовки пакетов, когда они проходят через шлюз так, чтобы казалось, что они всегда исходят от шлюза непосредственно. Затем он перезаписывает ответы так, чтобы клиенту казалось, что они пришли от первоначального получателя. Например, у вас есть шлюз и одна небольшая локальная сеть. Шлюз обладает реальным IP-адресом 1.1.1.1, а адрес вашей локальной сети — 192.168.1.0. Клиент с IP-адресом 192.168.1.5 пытается обратиться к узлуIP-адрес этого узла 62.244.59.193. Пакет клиента проходит через шлюз. IP-адрес шлюза в локальной сети — 192.168.1.1. Шлюз перезаписывает заголовок пакета и устанавливает вместо адреса клиента свой собственный адрес, то есть 1.1.1.1. После получения ответа, он перед отправлением пакета клиенту опять перезаписывает заголовок пакета и изменяет свой адрес 1.1.1.1 на адрес узла www.romb.net — 62.244.59.193. С точки зрения узла www.romb.net соединение было установлено между адресами 1.1.1.1 и 62.244.59.193. С точки зрения клиента соединение произошло между интерфейсами с адресами 192.168.1.5 и 62.244.59.193.

Итак, приступим к рассмотрению практического примера. Предположим, у нас имеется соединение с Интернет и две подсети. Интерфейсу ррр0 назначен реальный IP-адрес — 111.1.1.1, интерфейсу eth0 назначен IP-адрес внутренней сети — 192.168.2.1, а интерфейсу eth1 – 192.168.1.1. (см. рис. 14.1).

Рис. 14.1. Структура сети

Нам нужно обеспечить маршрутизацию между тремя сетями: Интернет, 192.168.2.0 и 192.168.1.0. Другими словами, требуется таким образом настроить пакетную фильтрацию, чтобы можно было пропинговать любую сеть или выполнить трассировку пакетов через любую сеть. Пинговать сеть будем, естественно, с помощью программы ping, а выполнять трассировку будем программой traceroute. В ОС Windows NT те же операции можно выполнить с помощью программ ping и tracert соответственно.

Нам также нужно, чтобы сервер WWW обрабатывал как запросы из внутренних сетей, так и запросы пользователей Internet. Сервер SMTP должен принимать внутренние и внешние соединения, а также отправлять почту в Internet. Получать почту по протоколу POP3 могут только пользователи внутренних сетей. Сервер DNS также должен обрабатывать запросы от всех сетей.

Еще раз определим, к чему будут иметь доступ пользователи Интернет:

1. Наш внутренний сервер WWW.

2. Наш сервер FTP.

3. Наш сервер DNS.

4. Сервер SMTP.

Пользователи локальных сетей будут иметь доступ к:

1. Серверу WWW нашей сети.

2. Серверу FTP нашей сети.

3. Серверу SMTP для отправки почты, как пользователям локальной сети, так и пользователям Интернет.

4. Серверу DNS нашей сети, а также к серверам DNS сети Интернет.

5. Серверу POP3 для получения почты.

6. Серверам WWW сети Интернет.

7. Серверам FTP сети Интернет.

Наши пользователи также должны иметь возможность использовать программы ping, traceroute, ssh. Чуть не забыл! Нам же нужно также обеспечить нормальную работу клиента ICQ. Эта программа стала уже стандартом, как Netscape или Internet Explorer.

Прежде, чем настраивать пакетный фильтр, убедимся, что мы запретили IP-спуфинг и правильно настроили все сетевые интерфейсы. В этой главе уже приводился более подробный пример запрещения IP-спуфинга (листинг 14.2). Эту задачу можно попробовать решить одной командой (при этом вы должны использовать интерпретатор bash):

for f in /proc/sys/net/ipv4/conf/*/rp_fliter; do echo 1 > $f; done

Теперь установим правила, которые запрещают любые пакеты, кроме пакетов обратной петли (loopback):

# ipchains –A input –i ! lo –j DENY

# ipchains –A output –i ! lo –j DENY

# ipchains –A forward –j DENY

Обратите внимание, что запрет IP-спуфинга и любого трафика, кроме локального, должен быть выполнен до инициализации интерфейсов. В противном случае существует вероятность того, что сквозь наш «бастион» проникнут пакеты.

Очень желательно вставить модуль ip_masq_ftp для маскарадинга сервера FTP. Благодаря этому наш внутренний FTP-сервер сможет работать в активном и пассивном режимах.

Теперь создадим несколько цепочек. Все они будут отфильтровывать проходящие пакеты, то есть будут аналогичны цепочке forward. Название каждой из них определяется направлением передачи пакетов, например, netl-net2 — по этой цепочке пакеты будут передаваться от сети 192.168.1.0 к сети 192.168.2.0.

ipchains –N netl-net2

ipchains –N net1-inet

ipchains –N net2-net1

ipchains –N net2-inet

ipchains –N inet-net2

ipchains –N inet-net1

Также создадим цепочку для приема ICMP-сообщений:

ipchains –N icmp

В цепочке forward мы знаем только исходящий интерфейс, а для выяснения входящего интерфейса, то есть того, из которого пришел пакет, мы используем адрес источника. Подделать этот адрес невозможно, так как мы запретили IP-спуфинг. Выполним следующие команды:

ipchains –A forward –s 192.168.1.0/24 –i eth0 –j net1-net2

ipchains –A forward –s 192.168.1.0/24 –i ppp0 –j net1-inet

ipchains –A forward –s 192.168.2.0/24 –i ppp0 –j net2-inet

ipchains –A forward –s 192.168.2.0/24 –i eth1 –j net2-net1

ipchains –A forward –i eth0 –j inet-net2

ipchains –A forward –i eth1 –j int-net1

ipchains –A forward –j DENY –1

Теперь определим правила для цепочки приема ICMP-сообщений:

ipchains –A icmp –p icmp —icmp-type destination-unreachable –j ACCEPT

ipchains –A icmp –p icmp —icmp-type source-quench –j ACCEPT

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

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Черный дембель. Часть 1

Федин Андрей Анатольевич
1. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 1

Хозяин Теней 5

Петров Максим Николаевич
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 5

Моров. Том 5

Кощеев Владимир
4. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Моров. Том 5

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

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

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

Олд мани

Голд Яна
Любовные романы:
современные любовные романы
остросюжетные любовные романы
фемслеш
5.00
рейтинг книги
Олд мани

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Путёвка в спецназ

Соколов Вячеслав Иванович
1. Мажор
Фантастика:
боевая фантастика
7.55
рейтинг книги
Путёвка в спецназ

Последний Герой. Том 1

Дамиров Рафаэль
1. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 1

Первый среди равных. Книга IX

Бор Жорж
9. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IX

На границе империй. Том 7. Часть 5

INDIGO
11. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 7. Часть 5

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом