четверг, 13 марта 2014 г.

IPFW+NAT FreeBsd 10.0

1. Пересобираем ядро с такими опциям:
   options     IPFIREWALL
   options     IPFIREWALL_DEFAULT_TO_ACCEPT (если указать - будет разрешено всё)
   options     IPFIREWALL_VERBOSE (логирование)
   options     IPFIREWALL_VERBOSE_LIMIT=1000
   options     IPFIREWALL_FORWARD
   options     DUMMYNET (шейпер)
   options     IPDIVERT (nat)


2. в rc.conf
   gateway_enable="YES" (выступаем в качестве шлюза)
   firewall_enable="YES"
   firewall_logging="YES" (логи /var/log/security)
   firewall_script="/etc/firewall.conf" (создаем - там будут хранится  наши правила)
   natd_enable="YES"
   natd_interface="em0" (внешний)
   natd_flags=""
   dummynet_enable="YES"

3. Чтобы пустить клиента в интернет нужно прописать у него ip (если нет dhcp сервера), шлюз и dns-сервер провайдера (если нет своего).

4. Правила. Синтаксис такой:

    ipfw   команда   №   действие   [log]   протоколы   адрес   [параметры]

команда: add, delete, flush(сброс всех правил)
действие: allow, deny
протоколы: all, ip, tcp, udp
адрес:    from  [not]  адрес/маска[порт]   to   адрес/маска[порт]   [via интерфейс]
порт: порт, порт-порт(диапазон)  
параметры: in (входящий пакет), out (исходящий пакет) (по отношению к ОС) 

              пример:      ipfw add 100 allow ip from 10.0.0.1/24 to any



Комментариев нет:

Отправить комментарий