Страница 1 из 1
freebsd 7.2 ipfw+kernel nat проброс порта не работает
Добавлено: 2009-07-27 12:08:07
Ikinoki
Код: Выделить всё
# Проверка статуса для лимитов
ipfw add 1 check-state
# Локалхост
ipfw add 5 allow ip from any to any via lo0
# Запрет обращения к 127/8
ipfw add 6 deny ip from any to 127.0.0.0/8
ipfw add 7 deny ip from 127.0.0.0/8 to any
# Запрет через первую емку ко 2ой и наоборот
ipfw add 8 deny ip from any to ${cl}, ${proxy1} in via em0
ipfw add 9 deny ip from any to ${me}, ${proxy1} in via em2
# Блок по первой таблице
ipfw add 10 deny ip from table\(1\) to any
# Разрешение всего по второй таблице
ipfw add 11 allow ip from table\(2\) to any
# Блок мультикаста
ipfw add 101 deny ip from any to 240.0.0.0/4 in via em0
# Разрешение траффика от системы
ipfw add 102 allow ip from me to any
# Разрешение любого траффика на внутренней сети
ipfw add 1003 allow ip from any to any via em1
# Запрет фрагментированного ICMP
ipfw add 103 deny icmp from any to any frag in via em0
# Разрешение определенного icmp
ipfw add 104 allow icmp from any to any icmptypes 0,8,11 in via em0
# Запрет оставшегося icmp
ipfw add 105 deny icmp from any to any in via em0
# Правила для 80 порта
ipfw add 300 skipto 900 tcp from any to ${me} dst-port 80 in via em0 tcpflags syn,!fin,!ack,!psh,!rst,!urg
ipfw add 301 skipto 900 tcp from any to ${me} dst-port 80 in via em0 tcpflags !syn,!fin,ack,!psh,!rst,!urg
ipfw add 302 skipto 900 tcp from any to ${me} dst-port 80 in via em0 tcpflags !syn,!fin,ack,psh,!rst,!urg
ipfw add 303 skipto 900 tcp from any to ${me} dst-port 80 in via em0 tcpflags !syn,fin,ack,!psh,!rst,!urg
ipfw add 304 skipto 900 tcp from any to ${me} dst-port 80 in via em0 tcpflags syn,!fin,ack,!psh,!rst,!urg
ipfw add 305 skipto 900 tcp from any to ${me} dst-port 80 in via em0 tcpflags !syn,!fin,!ack,!psh,rst,!urg
ipfw add 899 deny tcp from any to ${me} dst-port 80 in via em0
# Лимит кол-ва IP
ipfw add 900 skipto 950 tcp from any to ${me} dst-port 80 in via em0 limit src-addr 5
ipfw nat 10 config if em0 redirect_port tcp ${proxy1}:80 80
ipfw add 950 nat 10 tcp from ${me} 80 to any
ipfw add 960 nat 10 tcp from any to any
# Разрешение 22 порта
ipfw add 1000 allow ip from any to me dst-port 22
#Запрет оставшегося
ipfw add 65534 deny ip from any to any
Чего его не удовлетворяет?
Re: freebsd 7.2 ipfw+kernel nat проброс порта не работает
Добавлено: 2009-07-27 12:14:42
schizoid
было бы все таки полезнее
ipfw show
+ шлюз на машине, на которую редирект идет какой?
+ в логах фаервола что?
+ tcpdump что говорит?
Re: freebsd 7.2 ipfw+kernel nat проброс порта не работает
Добавлено: 2009-07-27 12:31:53
Ikinoki
Машины соединены crossoverом
Шлюз настроен на 192.168.0.1 (эту машину)
В логах пусто по этому поводу
tcpdump говорит с той стороны em1 что пакет пришел и был отправлен.
только вот на это стороне не могу поглядеть ( гигабитный ддос.
Сейчас работает через софт проброс порта - очень криво.
rinetd не справляется
пришлось писать свое на питоне - а ему дескрипторов не хватает.
Re: freebsd 7.2 ipfw+kernel nat проброс порта не работает
Добавлено: 2009-07-30 23:08:46
Ikinoki
Код: Выделить всё
00001 0 0 check-state
00002 11070 1042582 allow ip from any to any via em2
00003 45848 3113201 allow ip from any to x.x.x.x
00004 3280317307 1771351796919 deny udp from any to me dst-port 80
00005 184 283056 allow ip from any to any via lo0
00006 0 0 deny ip from any to 127.0.0.0/8
00007 0 0 deny ip from 127.0.0.0/8 to any
00008 21899144 24812491673 allow ip from table(2) to any
00009 799125988 342978288460 deny ip from table(5) to any
00012 201961537 96202680304 deny ip from table(3) to any
00102 16062128 1312508071 allow ip from me to any
00103 0 0 deny icmp from any to any frag in via em0
00104 14296 940816 allow icmp from any to any icmptypes 0,11 in via em0
00105 71719868 38712910401 deny icmp from any to any in via em0
00300 15122762 731638352 skipto 900 tcp from any to x.x.x.x dst-port 80 in via em0 tcpflags syn,!fin,!ack,!psh,!rst,!urg
00301 195833 9326070 skipto 900 tcp from any to x.x.x.x dst-port 80 in via em0 tcpflags !syn,!fin,ack,!psh,!rst,!urg
00302 115941 58456942 skipto 900 tcp from any to x.x.x.x dst-port 80 in via em0 tcpflags !syn,!fin,ack,psh,!rst,!urg
00303 31184 1252964 skipto 900 tcp from any to x.x.x.x dst-port 80 in via em0 tcpflags !syn,fin,ack,!psh,!rst,!urg
00304 0 0 skipto 900 tcp from any to x.x.x.x dst-port 80 in via em0 tcpflags syn,!fin,ack,!psh,!rst,!urg
00305 284665 11427259 skipto 900 tcp from any to x.x.x.x dst-port 80 in via em0 tcpflags !syn,!fin,!ack,!psh,rst,!urg
00899 65555 30693265 deny tcp from any to x.x.x.x dst-port 80 in via em0
00950 2022 97548 nat 10 log logamount 100 tcp from any to any in via em0
00960 0 0 nat 10 tcp from any to any out via em0
01000 4053 269370 allow ip from any to me dst-port 22
65534 3750132 155228492 deny ip from any to any
65535 0 0 allow ip from any to any
ipfw nat 10 config if em0 same_ports redirect_port tcp 192.168.0.4:80 80
вот как оно выглядит... что я делаю не так? может где заблочил его... но на em1 тишина (где собственно висит 192.168.0.4)
в логах ipfw пишет
Код: Выделить всё
kernel: ipfw: 950 Nat TCP 95.132.69.142:2709 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 91.195.209.44:59655 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 79.111.90.45:4040 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 78.92.47.226:33545 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 93.190.206.248:1227 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 90.150.29.246:2901 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 94.180.8.10:2001 x.x.x.x:80 in via em0
kernel: ipfw: 950 Nat TCP 78.92.47.226:33911 x.x.x.x:80 in via em0