Есть локалка+прокси в Инет. Пытаюсь настроить ipfw+natd на FreeBSD 6.1. Фря одним интерфейсом смотрит в локаль, другим в подстеть прокси. Прописываю правила, для проверки сканирую наружный интерфейс с прокси на наличие открытых портов. В логах пишет
Код: Выделить всё
ipfw: Deny TCP (IP Proxy):4858 (IP наружного интерфейса FreeBSD):21 in via LanOut.
rc.conf
Код: Выделить всё
defaultrouter="IP Proxy"
gateway_enable="YES"
inetd_enable="YES"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
rpcbind_enable="YES"
sshd_enable="YES"
# FIREWALL
tcp_extensions="NO"
tcp_drop_synfin="YES"
firewall_enable="YES"
firewall_logging="YES"
firewall_type="MyCompany"
natd_enable="YES"
natd_interface="LanOut"
natd_flags="-l -dynamic -m"
Код: Выделить всё
LanIn - Внутренний интерфейс
IpIn - IP внутреннего интерфейса
LanOut - Внешний интрефейс
IpOut - IP внешнего интерфейса
IpProxy - IP прокси
my - мой IP
Код: Выделить всё
${fwcmd} add 0005 check-state
# Разрешаем мне SSH
${fwcmd} add 0010 pass all from $my to $IpIn 22 in via $LanIn setup keep-state
${fwcmd} add 0015 pass all from any to any via lo0
# Разрешаем трафик только в пределах локальной сети
${fwcmd} add 0020 pass all from any to any via $LanIn
${fwcmd} add 0024 deny log tcp from any to $IpOut 80,21,110,25 in via $LanOut
${fwcmd} add 0025 divert natd ip from any to any in via $LanOut
# Разрешаем DNS
${fwcmd} add 0030 skipto 65000 log udp from $my,$IpOut to $IpProxy 53 limit src-addr 5
${fwcmd} add 0045 skipto 65000 tcp from ${my} to any 3128 out via $LanOut setup limit src-addr 10
${fwcmd} add 64999 deny log all from any to any
${fwcmd} add 65000 divert natd ip from any to any out via $LanOut
${fwcmd} add 65001 pass log ip from any to any
Код: Выделить всё
ptions MROUTING # Multicast routing
options PIM # Protocol Independent Multicast
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #enable logging to syslogd(8)
options IPFIREWALL_VERBOSE_LIMIT=5 #limit verbosity
#options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPFIREWALL_FORWARD #packet destination changes
options IPFIREWALL_FORWARD_EXTENDED #all packet dest changes
#options IPV6FIREWALL #firewall for IPv6
#options IPV6FIREWALL_VERBOSE
#options IPV6FIREWALL_VERBOSE_LIMIT=10
#options IPV6FIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT #divert sockets
#options IPFILTER #ipfilter support
#options IPFILTER_LOG #ipfilter logging
#options IPFILTER_LOOKUP #ipfilter pools
#options IPFILTER_DEFAULT_BLOCK #block all packets by default
options IPSTEALTH #support for stealth forwarding
options TCPDEBUG
И еще при использовании конструкции fwd пишет ошибку
Код: Выделить всё
ipfw: getsockopt(IP_FW_ADD): Invalid argument