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

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

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

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

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

  • alive-фильтры - Фильтры "счетчик доступа" (или "поддержка подключения")

    Эти правила фильтрации управляют событиями, которые будут игнорироваться выражением set timeout= в конфигурационном файле.

  • dial-фильтры - Фильтры дозвона

    Эти правила фильтрации управляют событиями, которые будут игнорироваться в режиме "дозвон при необходимости" программы PPP.

  • in-фильтры - Входные фильтры

    Контролируют входящие пакеты: будут ли они пропущены в систему или отброшены системой.

  • out-фильтры - Выходные фильтры

    Контролируют исходящие пакеты: будут ли они пропущены или отброшены системой.



Ниже приведена "вырезка" из конфигурации системы, которая обеспечиват хорошую основу для "нормальной" работы в Интернет, запрещая 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:" или "интерактивную:" (или же во все, по Вашему усмотрению).