Для настройки прозрачного прокси потребовалось правило 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
Все.