Построение межсетевого экрана на коммутируемом канале связи при помощи FreeBSD
Пред. |  | ═

# 6. Вопросы

6.1. Почему вы используете natd и ipfw, когда можно использовать встроенные фильтры ppp?
6.2. Если во внутренней сети я использую такие адреса, как 192.168.0.0, то могу ли я добавить команду типа `$fwcmd add deny all from any to 192.168.0.0:255.255.0.0 via tun0` к правилам межсетевого экрана для предотвращения попыток подключиться извне к машинам во внутренней сети?
6.3. Что-то здесь неправильно. Я следовал вашим указаниям вплоть до буквы, и теперь доступ заблокирован.

6.1. Почему вы используете natd и ipfw, когда можно использовать встроенные фильтры ppp?

Скажу честно, что определенной причины, объясняющей, почему я использую ipfw и natd вместо встроенных в ppp фильтров. В результате обсуждений этого вопроса с другими людьми я пришел к мнению, что, хотя ipfw является гораздо более мощным и гибким инструментом, чем фильтры ppp, но все, что он выигрывает в широте возможностей, проигрывает в легкости настройки. Одной из причин, по которой я его использую, является то, что я предпочитаю функции межсетевого экрана, реализуемые в ядре, а не в пользовательской программе.

6.2. Если во внутренней сети я использую такие адреса, как 192.168.0.0, то могу ли я добавить команду типа `$fwcmd add deny all from any to 192.168.0.0:255.255.0.0 via tun0` к правилам межсетевого экрана для предотвращения попыток подключиться извне к машинам во внутренней сети?

Простой ответ выглядит как нет. Причиной этого является то, что natd выполняет преобразования для всего трафика, перенаправляемого через устройство tun0. До тех пор, пока это так, входящие пакеты будут направляться только на динамически назначенный IP-адрес, а НЕ во внутреннюю сеть. Однако заметьте, что вы можете добавить, например, правило `$fwcmd add deny all from 192.168.0.4:255.255.0.0 to any via tun0`, которое будет ограничивать коммуникации хоста в вашей внутренней сети с внешним миром через межсетевой экран.

6.3. Что-то здесь неправильно. Я следовал вашим указаниям вплоть до буквы, и теперь доступ заблокирован.

В этом документе предполагается, что вы работаете с программой ppp уровня пользователя, поэтому предлагаемый набор правил работает с интерфейсом `tun0`, который соответствует первому соединению, делаемому утилитой ppp(8) (известной также как user-ppp). Дополнительные соединения будут использовать устройства `tun1`, `tun2` и так далее.

Вы должны также отметить, что программа pppd(8) использует другой интерфейс, `ppp0`, поэтому, если вы осуществляете соединение с помощью программы pppd(8), то должны заменить `tun0` на `ppp0`. Быстрый способ изменить правила для межсетевого экрана показан ниже. Оригинальный набор правил будет сохранен в файле `fwrules_tun0`.

    	    % cd /etc/firewall
    	    /etc/firewall% su
    	    Password:
    	    /etc/firewall# mv fwrules fwrules_tun0
    	    /etc/firewall# cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules

Для того, чтобы узнать, используете ли вы ppp(8) или pppd(8), вы можете посмотреть вывод команды ifconfig(8) после установки соединения. Например, для соединения, выполняемого при помощи программы pppd(8), вы увидите нечто, похожее на следующее (показаны только относящиеся к делу строчки):

    	    % ifconfig
    	    (skipped...)
    	    ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524
                        inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xff000000
    	    (skipped...)

С другой стороны, для соединений, выполняемых посредством ppp(8) (user-ppp), вы должны увидеть нечто вроде следующего:

    	    % ifconfig
    	    (skipped...)
    	    ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
    	    (skipped...)
    	    tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524
    	            (IPv6 stuff skipped...)
                        inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xffffff00
                        Opened by PID xxxxx
                (skipped...)

Пред. | Начало | ═
Набор правил для межсетевого экрана | ═ | ═

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

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