Ipfw

Штатный брандмауэр FreeBSD

Требуется для работы nat

Может использоваться как один из компонентов в для перенаправления портов.

Настройка в ядре
Надо учитывать, что за счет IPFIREWALL_DEFAULT_TO_ACCEPT при загрузке системы пропускаются все пакеты до момента когда будут применены правила.

IPDIVERT позволяется использовать брандмауэр для перенаправлять определённым программам и для работы natd.

IPFIREWALL_VERBOSE ведение логов посредством системного средста. Для включения нужно эту опцию и ключевое слово log [logamount number] в правилах ipfw

Эта переменная единица, когда опция есть sysctl net.inet.ip.fw.verbose net.inet.ip.fw.verbose: 1

Если количество не задано явно logamount, то используется информация из sysctl net.inet.ip.fw.verbose_limit Оно по умолчанию равно нулю, поэтому ограничения отсутствуют.

Сброс соединения
Слово Reset чтобы у человека, который подключается на порт - отобразилось Connection Refused

Reject - No route to host будет писать по ICMP, если отключить ICMP

Доходит до первого подходящего правила и прекращает обработку списка 
 * 1) !/bin/sh

ipfw -q -f flush cmd="ipfw -q add "

$cmd allow all from any to any via lo0

$cmd check-state

$cmd allow icmp from any to any out keep-state
 * 1) $cmd allow icmp from any to any in keep-state

$cmd allow tcp from any to any 53 out keep-state $cmd allow udp from any to any 53 out keep-state

$cmd allow tcp from any to any 53 in keep-state $cmd allow udp from any to any 53 in keep-state

$cmd allow tcp from IP to me 22 in keep-state # room $cmd reset tcp from any to me 22 in keep-state


 * 1) $cmd allow tcp from any to me 21 in keep-state
 * 2) $cmd allow tcp from any to me 49152-65534 in keep-state

$cmd allow tcp from any 20 to me 1024-65534 in keep-state $cmd allow tcp from me to any 21 out keep-state $cmd allow tcp from me to any 49152-65534 out keep-state

$cmd reset log udp from any to any in

$cmd deny log all from any to any 

если заблокированы ICMP и UDP, то работать не будет. А будет бесконечно рисовать звездочки.
 * Влияние работу на traceroute

Выполняемые задачи

 * Ограничение доступа к портам на основе IP удаленной машины