6.2. Использование PPP-фильтров

Программа PPP имеет возможность применять правила фильтрации пакетов для контроля трафика, который она маршрутизирует. Несмотря на то, что эти правила действуют далеко не так как обычный брандмауэр, они обеспечивают некоторый контроль доступа по мере того, как используется соединение.

(Используйте 'man ipfw' для получения более подробной информации по настройке системы безопасности для FreeBSD-систем.)

Более полную документацию по различным фильтрам и правилам для PPP Вы можете получить, воспользовавшись man-страницей справочного руководства по PPP.

Существуют 4 отличных класса правил, которые могут использоваться программой PPP:



Ниже приведена "вырезка" из конфигурации системы, которая обеспечивает хорошую основу для "нормальной" работы в Интернет, запрещая PPP "прокачивать" все данные через коммутируемое соединение. Краткие комментарии описывают логику каждого правила:

#
# Фильтры, поддерживающие соединение
# Не поддерживать соединения пакетами ICMP,DNS и RIP
#
 set filter alive 0 deny icmp
 set filter alive 1 deny udp src eq 53
 set filter alive 2 deny udp dst eq 53
 set filter alive 3 deny udp src eq 520
 set filter alive 4 deny udp dst eq 520
 set filter alive 5 permit 0/0 0/0
#
# Фильтры дозвона:
# Примечание:  ICMP будет производить дозвон в этой конфигурации!
#
 set filter dial 0 permit 0/0 0/0
#
# Разрешить опознанные пакеты
#
 set filter in 0 permit tcp dst eq 113
 set filter out 0 permit tcp src eq 113
#
# Разрешить telnet-подключения к Интернет
#
 set filter in 1 permit tcp src eq 23 estab
 set filter out 1 permit tcp dst eq 23
#
# Разрешить доступ в Интернет по ftp
#
 set filter in 2 permit tcp src eq 21 estab
 set filter out 2 permit tcp dst eq 21
 set filter in 3 permit tcp src eq 20 dst gt 1023
 set filter out 3 permit tcp dst eq 20
#
# Разрешить доступ к поиску в DNS
#
 set filter in 4 permit udp src eq 53
 set filter out 4 permit udp dst eq 53
#
# Разрешить передачу зоны DNS
#
 set filter in 5 permit tcp src eq 53
 set filter out 5 permit tcp dst eq 53
#
# Разрешить доступ внутри локальной сети
#
 set filter in 6 permit 0/0 192.168.1.0/24
 set filter out 6 permit 192.168.1.0/24 0/0
#
# Разрешить ответы ping и traceroute
#
 set filter in 7 permit icmp
 set filter out 7 permit icmp
 set filter in 8 permit udp dst gt 33433
 set filter out 9 permit udp dst gt 33433
#
# Разрешить cvsup
#
 set filter in 9 permit tcp src eq 5998
 set filter out 9 permit tcp dst eq 5998
 set filter in 10 permit tcp src eq 5999
 set filter out 10 permit tcp dst eq 5999
#
# Разрешить протокол NTP для синхронизации времени
#
 set filter in 11 permit tcp src eq 123 dst eq 123
 set filter out 11 permit tcp src eq 123 dst eq 123
 set filter in 12 permit udp src eq 123 dst eq 123
 set filter out 12 permit udp src eq 123 dst eq 123
#
# SMTP - будет неплохо!
#
 set filter in 13 permit tcp src eq 25
 set filter out 13 permit tcp dst eq 25
#
#
# Мы часто используем `whois`, поэтому разрешим это
#
 set filter in 14 permit tcp src eq 43
 set filter out 14 permit tcp dst eq 43
 set filter in 15 permit udp src eq 43
 set filter out 15 permit udp dst eq 43
#
# Если пакет не удовлетворяет ни одному указанному выше условию, то он будет
# блокирован.
#-------


В каждом классе правил фильтрации пакетов можно применить до 20 явных фильтров. Правила в каждом классе представляют собой последовательные номера от 0 до 20, но ни одно из правил для конкретного класса фильтров не возымеет действия до тех пор, пока будет определено правило с номером '0'!

Если Вы решили не использовать правила фильтрации пакетов в конфигурации PPP, то в этом случае на время соединения с Вашим Интернет-провайдером через Вашу систему будет разрешен ВЕСЬ входящий и исходящий трафик.

Если Вы решите, что Вам необходимо использовать правила фильтрации пакетов, добавьте строки, описанные выше в Ваш файл /etc/ppp/ppp.conf в одну из секций "стандартную:", "demand:" или "интерактивную:" (или же во все, по Вашему усмотрению).

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.