FreeBSd > Система
Ipfw kernel nat не пробрасывает порт
BaRRagA:
Привет!
Есть следующая проблемка - ядерный нат не пробрасывает порт. Всё по этому мануалу:
http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/
Вот конфиги:
1. Ядро:
--- Код: ---#my options
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options DUMMYNET
options LIBALIAS
options IPSEC
device crypto
options IPSEC_DEBUG
options IPSEC_FILTERTUNNEL
#######
--- Конец кода ---
2.rc.conf:
--- Код: ---gateway_enable="YES"
ifconfig_nfe0="inet 192.168.0.209 netmask 255.255.255.0 -rxcsum -txcsum -tso" #inside net
firewall_enable="YES"
firewall_script="/etc/f_test.fw"
firewall_nat_enable="YES"
dummynet_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
#ppp_nat="YES"
ppp_profile="ukrtel"
--- Конец кода ---
3. /etc/f_test.fw :
--- Код: ---#!/bin/sh
ipfw -f flush
cmd="/sbin/ipfw add"
host="82.207.116.20"
pif="tun0"
$cmd allow ip from any to any via lo0
$cmd deny ip from any to 127.0.0.0/8
$cmd deny ip from 127.0.0.0/8 to any
#Allow localnet
$cmd allow all from any to any via nfe0
ipfw nat 1 config log if tun0 reset same_ports deny_in redirect_port tcp 192.168.0.49:3389 3389
ipfw add nat 1 ip from any to any via tun0
$cmd allow ip from any to any
--- Конец кода ---
4. /etc/sysctl.conf :
--- Код: ---net.inet.ip.fw.one_pass=1
--- Конец кода ---
Сам нат работает стабильно, из локальной сети в инет пускает, всё гут. А вот порт пробросить - ни в какую..
muff:
Попробуйте так:
--- Код: ---ipfw nat 1 config log if tun0 same_ports redirect_port tcp 192.168.0.49:3389 3389
--- Конец кода ---
BaRRagA:
Попробовал, результат тот же.
--- Код: ---gate# ipfw show
00100 1306 681218 allow ip from any to any via nfe0
00200 0 0 allow ip from any to any via lo0
00300 0 0 deny ip from any to 127.0.0.0/8
00400 0 0 deny ip from 127.0.0.0/8 to any
00500 0 0 deny ip from me to table(50)
00600 0 0 deny ip from table(50) to me
00700 9 576 allow icmp from any to any out via tun0 keep-state
00800 66 4027 allow icmp from any to any in via tun0 keep-state
00900 1434 704070 nat 1 ip from any to any via tun0
65535 21 3060 deny ip from any to any
gate# ipfw nat show
nat 1: icmp=0, udp=104, tcp=404, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=508
gate# ipfw nat 1 show config
ipfw nat 1 config if tun0 log same_ports redirect_port tcp 192.168.0.49:3389 3389
gate# tcpdump -i tun0 src port 3389
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type NULL (BSD loopback), capture size 96 bytes
^C
0 packets captured
83 packets received by filter
0 packets dropped by kernel
--- Конец кода ---
Tcpdump вообще ничего не показывает... ???
muff:
Попробуй еще открыть файрвол.
--- Код: ---ipfw add 1000 alllow all from any to any
--- Конец кода ---
BaRRagA:
Открыл, удалил правила брутблока, получилось так:
--- Код: ---gate# ipfw show
00100 50704 45395708 allow ip from any to any via nfe0
00200 12 600 allow ip from any to any via lo0
00300 0 0 deny ip from any to 127.0.0.0/8
00400 0 0 deny ip from 127.0.0.0/8 to any
00500 28 1792 allow icmp from any to any out via tun0 keep-state
00600 180 10955 allow icmp from any to any in via tun0 keep-state
00700 55163 45881778 nat 1 ip from any to any via tun0
00800 0 0 allow ip from any to any
65535 73 55752 deny ip from any to any
--- Конец кода ---
Результат тот же :(
Навигация
Перейти к полной версии