Переброс (forwarding) портов с помощью IPFW. FreeBSD 8.1

Для настройки прозрачного прокси потребовалось правило ipfw вида:

ipfw add 1000 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 out via eth0

Но оно выдавало ошибку:

ipfw: getsockopt(IP_FW_ADD): Invalid argument

Решено было пересобрать модуль ядра ipfw.ko

Для этого:

1. Делаем копию ядра (хотя нам нужен только модуль  ipfw.ko) но на всякий случай:

cp -r /boot/kernel /boot/kernel.generic_8.1

2. Добавляем в файл /etc/make.conf строку вида:

CFLAGS+= -DIPFIREWALL -DIPFIREWALL_NAT -DIPFIREWALL_FORWARD -DIPFIREWALL_DEFAULT_TO_ACCEPT -DIPSTEALTH -DIPDIVERT -DDUMMYNET

3. пересобираем модуль:

cd /usr/src/sys/modules/ipfw
make clean && make cleandir && make obj && make depend && make all && make install && make clean && make cleandir

Все.

Leave a Reply