FreeBSD 7.x – Kernel NAT – FTP Passive
Решив использовать в дальнейшем возможность NATа во FreeBSD из ядра, столкнулся с проблемой работы FTP протокола в passive режиме. Оказывается есть решение (Спасибо Сереге Заболотному). О нем и хочу рассказать ниже, со всеми подробностями.
Конфигурация ядра:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options LIBALIAS
options IPSTEALTH
options DUMMYNET
Пересобираем ядро:
gw# cd /usr/src/sys/i386/conf/
gw# config KERNEL
gw# cd ../compile/KERNEL
gw# make cleandepend && make depend
gw# make
gw# make install
gw# reboot
в /etc/rc.conf
gw# cat /etc/rc.conf
ifconfig_vr0=”inet REAL.IP.ADD.RESS netmask 255.255.255.0″
ifconfig_rl0=”inet 192.168.1.1 netmask 255.255.255.0″
gateway_enable=”YES”
defaultrouter=”REAL.IP.GATE.WAY”
sshd_enable=”YES”
hostname=”gw”
firewall_enable=”YES”
firewall_type=”OPEN”
в /usr/local/etc/rc.d/firewall.sh
gw# cat /usr/local/etc/rc.d/firewall.sh
#!/bin/sh
ipfw -q add 400 allow ip from any to any via rl0
ipfw -q add 500 nat 1 ip from any to any via vr0
ipfw -q add 600 allow ip from any to any via vr0
ipfw -q nat 1 config if vr0 same_ports log
Разрешаем прохождение пакетов дальше по списку правил. в /etc/sysctl.conf
gw# cat /etc/sysctl.conf
net.inet.ip.fw.one_pass=0
Включаем поддержку Passive FTP. в /boot/loader.conf
gw# cat /boot/loader.conf
alias_ftp_load=”YES”
Recent Comments