LINUX.ORG.RU

Не получается перебросить порт itpables


0

1

Нужно что бы моя локальная машина с ип 192.168.1.229 была видна в интернете по ип 79.135.202.70. Пишу правила, а они не работают. Help me!
eth1 - локалка
ppp0 - инет
Вот мои правила

# Generated by iptables-save v1.2.11 on Wed Jan 19 22:16:53 2011
*nat
-A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
######   Проброс 80-го порта
-A POSTROUTING -p tcp --dst 192.168.1.229 --dport 80 -j SNAT --to-source 79.135.202.70
-A PREROUTING -p tcp -d 79.135.202.70 --dport 80 -j DNAT --to-destination 192.168.1.229:80

COMMIT
# Completed on Wed Jan 19 22:16:53 2011

# Generated by iptables-save v1.2.11 on Wed Jan 19 22:16:53 2011
*filter
## политика по умолчанию
-P INPUT ACCEPT
-P FORWARD DROP

## Цепочка проверки портов
-N CHECKPORTS
######	WEB
-A CHECKPORTS -p tcp --dport 80 -j RETURN
-A CHECKPORTS -p tcp --dport 8080 -j RETURN
######  FTP
-A CHECKPORTS -p tcp --dport 22 -j RETURN
######	SKYPE
-A CHECKPORTS -p tcp --dport 443 -j RETURN
######	ICQ
-A CHECKPORTS -p tcp --dport 5190 -j RETURN
###### 	Jabber
-A CHECKPORTS -p tcp --dport 5222 -j RETURN
###### 	G-Talk
-A CHECKPORTS -p tcp --dport 5223 -j RETURN
###### DNS Provider
-A CHECKPORTS -p udp --dport 53 -j RETURN
###### Default
-A CHECKPORTS -j DROP

## Цепочка проверки аккаунта
-N CHECKACCOUNTS
##	Rafic
-A CHECKACCOUNTS -s 192.168.1.229 -m mac --mac-source 20:CF:30:9F:BB:E5 -j RETURN
##	Lesha
-A CHECKACCOUNTS -s 192.168.1.230 -m mac --mac-source 00:16:D3:58:6D:87 -j RETURN
-A CHECKACCOUNTS -s 192.168.1.240 -m mac --mac-source 00:19:7E:51:DF:9A -j RETURN
-A CHECKACCOUNTS -s 192.168.1.242 -m mac --mac-source C0:F8:DA:58:0B:FA -j RETURN
##	Denis
-A CHECKACCOUNTS -s 192.168.1.231 -m mac --mac-source F4:6D:04:A7:04:2F -j RETURN
##	Andrey
-A CHECKACCOUNTS -s 192.168.1.232 -m mac --mac-source 00:15:58:66:48:0B -j RETURN
##	Lena
-A CHECKACCOUNTS -s 192.168.1.233 -m mac --mac-source 60:EB:69:4C:56:B3 -j RETURN
-A CHECKACCOUNTS -s 192.168.1.239 -m mac --mac-source 70:F3:95:AF:83:98 -j RETURN
##	Katya
-A CHECKACCOUNTS -s 192.168.1.234 -m mac --mac-source C8:0A:A9:DC:6F:83 -j RETURN
-A CHECKACCOUNTS -s 192.168.1.238 -m mac --mac-source C4:46:19:5A:BE:5E -j RETURN
##	Ksysha
-A CHECKACCOUNTS -s 192.168.1.235 -m mac --mac-source B8:70:F4:27:0C:B9 -j RETURN
##	Anya
-A CHECKACCOUNTS -s 192.168.1.236 -m mac --mac-source 00:16:D4:D2:24:B8 -j RETURN
##	ROUTER
-A CHECKACCOUNTS -s 192.168.1.237 -m mac --mac-source 20:cf:30:99:3c:b9 -j RETURN
##	MihnewAndrey
-A CHECKACCOUNTS -s 192.168.1.241 -m mac --mac-source 74:2f:68:31:b2:8d -j RETURN
-A CHECKACCOUNTS -j DROP

## Установка коректировки TCPMSS
-I FORWARD -i eth1 -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

## Проброс 80-го порта
#-A FORWARD -m tcp -p tcp -d 192.168.1.229 --dport 80 -i eth1 -o ppp0 -j ACCEPT

## Разрешить для установленных соединений
-A FORWARD -d 192.168.1.0/255.255.255.0 -m state --state RELATED,ESTABLISHED -j ACCEPT

## Разрешить прием первого пакета из ethernet
-A FORWARD -d 192.168.1.0/255.255.255.0 -m state --state NEW -i ppp0 -o eth1 -j ACCEPT

## Цепочка объединения правил и проверки на -i eth1 -o ppp0
-N CHECKING
-A CHECKING -j CHECKACCOUNTS
-A CHECKING -j CHECKPORTS
-A CHECKING -j ACCEPT

## Запуск проверки
-A FORWARD -i eth1 -o ppp0 -j CHECKING

COMMIT
# Completed on Wed Jan 19 22:16:53 2011


Правило

-A POSTROUTING -p tcp --dst 192.168.1.229 --dport 80 -j SNAT --to-source 79.135.202.70

не совсем логично. Либо совсем без него, тогда 192.168.1.229 будет принимать соединения от реальных ip из инета, либо SNAT на адрес из сети 192.168.1.x, назначеный на eth1 маршрутизатору. Тогда 192.168.1.229 будет считать что соединение из локальной сети.

Так, всё выглядит рабочим, проверьте что дейстивтельно в iptables именно эти правила и смотрите пакеты tcpdump'ом, возможно, что дело в настройках firewall на 192.168.1.229. Или может быть, что порт 80 закрыт у провайдера.

mky ★★★★★ ()

У вас трафик приходящий на eth1 заруливатся на проверку в CHECKING. Далее в CHECKACCOUNTS, там проходит так как есть правило для .229. Потом в CHECKPORTS и там убивается не попадая не под одно правило. Потому, что исходящий порт от вашего сервера 80, но destination порт далеко не 80....

anonymous ()

anonymous прав.

Наверное, лучше убрать -d 192.168.1.0/255.255.255.0 из правила RELATED,ESTABLISHED. Сделать чтобы все RELATED,ESTABLISHED пакеты были "-j ACCEPT".

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.