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

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

Жанры

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

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

Шрифт:

ipchains –A net2-if –p ICMP –icmp-type pong –j ACCEPT

ipchains –A net2-if j icmp

ipchains –A net2-if –j DENY –l

Правила этой цепочки разрешают те же операции, что и для цепочки inet-if, только в этом случае вместо интерфейса ррр0 используется eth0.

Входящая цепочка net1-if определяется так:

ipchains –A net1-if –i ! eth1 –j DENY

ipchains –A net1-if –p ICMP –icmp-type ping –j ACCEPT

ipchains –A net1-if –p ICMP –icmp-type pong –j ACCEPT

ipchains –A net1-if –j icmp ipchains –A net1-if –j DENY –l

Разрешается доступ к серверам WWW, SMTP, POP3. Можно использовать программы ping, traceroute, ssh.

Теперь осталось удалить правила блокировки:

ipchains –D input l

ipchains –D forward l

ipchains –D output l

В начале этого пункта я обещал объяснить настройку ICQ. Предположим, что сервер SQUID у вас установлен на шлюзе, то есть на той машине, которая обеспечивает пакетную фильтрацию (о прокси-сервере SQUID читайте в следующей главе). В файле конфигурации SQUID разрешите порт 5190. Именно этот порт используется новыми клиентами ICQ.

acl SSL_ports port 443 563 5190

Затем установите сервер socks. Можно, конечно, настроить ICQ, используя маскарадинг, но данный метод, как мне кажется, лучше. В качестве сервера socks я рекомендую использовать сервер dame-socks. В файле конфигурации /etc/socks.conf установите внутренний и внешний адреса шлюза:

internal: 192.168.1.1 port = 1080

external: 111.1.1.1

Затем определите узлы, которые могут использовать socks:

client pass {

 from: 192.168.0.0/16 to: 0.0.0.0/0

}

Осталось определить, кто может отвечать клиентам:

pass {

 from: 0.0.0.0/0 to: 192.168.0.0/16

 command: bindreply udpreply

 log: connect error

}

14.5. IPTables

Пакетный фильтр IPChains использовался в ядрах Linux до версии 2.4. В новых версиях ядра (начиная с 2.4) вместо IPChains используется пакетный фильтр IPTables. Практически все основные опции остаются прежними. Только, естественно, в командной строке вместо ipchains следует писать iptables.

В этом пункте будут рассмотрены некоторые новые опции ядра, связанные непосредственно с IPTables. Эти опции для большей наглядности я представил в табл. 14.3. Если вы еще не знакомы с компилированием ядра, то эта информация вам пригодится после прочтения гл. 18.

Опции ядра Таблица 14.3

Опция Описание
CONFIG_PACKET Позволяет использовать программы, которые работают непосредственно с сетевым устройством. Примером такой программы может послужить tcpdump
CONFIG_NETFILTER Включите данную опцию, если вы собираетесь использовать ваш компьютер в качестве шлюза
CONFIG_IP_NF_CONNTRACK Позволяет отслеживать соединения. Данная опция необходима для работы функций NAT или IP-маскарадинга. В случае со шлюзом включите данную опцию
CONFIG_IP_NF_FTP Прослеживает FTP-соединения. Включите эту опцию, если на вашем компьютере установлен FTP-сервер. Из-за большого количества FTP-запросов модуль IP_NF_CONNTRACK не в состоянии проследить все FTP-соединения, поэтому в помощь ему добавлена опция CONFIG_IP_NF_FTP
CONFIG_IP_NF_IPTABLES Необходимая для работы IPTables опция. Без ее включения вы не сможете использовать IPTables
CONFIG_IP_NF_MATCH_LIMIT Необязательная опция. Позволяет ограничить количество пакетов передаваемых/принимаемых за промежуток времени
CONFIG_IP_NF_MATCH_MAC Позволяет блокировать пакеты, используя МАС-адрес (а не IP-адрес)

Все остальные опции, связанные с IPTables, содержат в своем названии слово MATCH, например, CONFIG_IP_NF_MATCH_MARK. Эти опции разрешают выполнять определенные действия над пакетами. Действия над пакетами, как вы уже знаете, задаются с помощью опции -j. Использование этой опции аналогично как для IPChains, так и для IPTables. Назначение всех возможных действий вы можете узнать из документации по IPTables. Ранее, на примере IPChains, мы рассмотрели два основных действия — ACCEPT и DENY. В IPTables вместо действия DENY нужно использовать аналогичное ему действие DROP. А вместо MASQ (см. п. 14.4) — MASQUERADE.

Я не буду рассматривать различия таблиц (tables) и цепочек (chains), не усложняя тем самым вам жизнь избытком лишней информации, остановлюсь лишь на рассмотрении некоторых полезных примеров.

Представим, что вам нужно что-либо сделать с пакетами, приходящими от узла с МАС-адресом 11:12:13:14:15:16. Выделить данный пакет можно с помощью правила iptables –A INPUT —mac-source 11:12:13:14:15:16.

Дальнейшие операции над пакетом вы уже определите сами, с помощью опции –j. Если же вам нужно выделить все пакеты, кроме тех, которые присылает вам узел с МАС-адресом 11:12:13:14:15:16, то нужно использовать отрицание — !

Допустим, что теперь вам нужно ограничить число пакетов, присылаемым узлом с МАС-адресом 11:12:13:14:15:16, например, не более 10 пакетов в минуту. Делается это следующим образом: iptables –A INPUT –ra limit —limit 10/minute. Промежуток времени можно указать в секундах (second), минутах (minute) и часах (hour).

IPTables позволяет выделять (а потом производить с ними операции) пакеты одновременно, указав несколько портов, например:

iptables -A INPUT –p tcp -m multiport -source-port 22,53,80,110

Порты указываются через запятую. Вы можете указать максимум 15 портов. Вместо портов источника вы можете указать порты назначения, используя опцию —destination-port. Если вы хотите одновременно указать как порты источника, так и порты назначения, используйте опцию —port:

iptables -A INPUT –p tcp -m multiport -port 22,53,80,110

Теперь уже перейдем на более высокий уровень. Если раньше мы могли отфильтровывать пакеты, исходящие от определенного компьютера, то теперь мы можем выделять пакеты отдельных пользователей. Например, вам нужно выделить все исходящие от пользователя с UID 500 пакеты. Это можно сделать с помощью команды:

iptables -A OUTPUT -m owner -uid-owner 500

Естественно, вы сможете это сделать только для исходящих пакетов, поскольку вы не знаете, какой UID имеет пользователь другой системы, тем более, что информация об этом не передается по протоколу TCP.

Аналогично вы можете ограничивать исходящие пакеты группы или процесса:

iptables -A OUTPUT -m owner -gid-owner 0

iptables -A OUTPUT -m owner -pid-owner 78

Пакетный фильтр IPTables обладает значительно большими возможностями по сравнению с IPChains, но на практике вы вряд ли будете их использовать: в основном используются возможности IPChains, описанные в п. 14.1…14.4.

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

Ученик

Листратов Валерий
2. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Ученик

Тихие ночи

Владимиров Денис
2. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Тихие ночи

Воронцов. Перезагрузка. Книга 5

Тарасов Ник
5. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 5

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Рассвет русского царства. Книга 2

Грехов Тимофей
2. Новая Русь
Фантастика:
альтернативная история
попаданцы
историческое фэнтези
5.00
рейтинг книги
Рассвет русского царства. Книга 2

Повелители сумерек

Первушина Елена Владимировна
Фантастика:
фэнтези
ужасы и мистика
юмористическая фантастика
детективная фантастика
6.00
рейтинг книги
Повелители сумерек

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

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

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Ведун

Сухов Александр Евгеньевич
1. Второй шанс
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Ведун

Охотник за головами

Вайс Александр
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Охотник за головами

Телохранитель Генсека. Том 1

Алмазный Петр
1. Медведев
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Телохранитель Генсека. Том 1

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Учитель из прошлого тысячелетия

Еслер Андрей
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Учитель из прошлого тысячелетия

Беглец

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