Не могу пробросить порт во внутрисеть извне
Welmar 18 июня, 2012 - 18:30
Есть система
#uname -a Linux Domen 3.2.11-hardened #5 SMP Tue Jun 19 00:38:02 EEST 2012 i686 Intel(R) Celeron(R) CPU E3500 @ 2.70GHz GenuineIntel GNU/Linux
Все работает, кроме доступа из инета на внутренний сервер.
Помогите устранить причину.
Правила в iptables следующие
# Generated by iptables-save v1.4.13 on Tue Jun 19 01:11:22 2012 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [25:2002] :OUTPUT ACCEPT [2:168] :POSTROUTING ACCEPT [1:84] -A PREROUTING -j ACCEPT -A PREROUTING -i eth0 -p tcp -m tcp --dport 3390 -j DNAT --to-destination 192.168.0.20:3389 -A PREROUTING -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.20:3389 -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Tue Jun 19 01:11:22 2012 # Generated by iptables-save v1.4.13 on Tue Jun 19 01:11:22 2012 *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [389:29218] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [476:58516] :POSTROUTING ACCEPT [476:58516] -A PREROUTING -j ACCEPT COMMIT # Completed on Tue Jun 19 01:11:22 2012 # Generated by iptables-save v1.4.13 on Tue Jun 19 01:11:22 2012 *filter :INPUT ACCEPT [6:288] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :allowed - [0:0] :bad_tcp_packets - [0:0] :icmp_packets - [0:0] :tcp_packets - [0:0] :udp_packets - [0:0] -A INPUT -p tcp -j bad_tcp_packets -A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp -j tcp_packets -A INPUT -i eth0 -p udp -j udp_packets -A INPUT -i eth0 -p icmp -j icmp_packets -A INPUT -d 224.0.0.0/8 -i eth0 -j DROP -A FORWARD -p tcp -j bad_tcp_packets -A FORWARD -i eth1 -j ACCEPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -j bad_tcp_packets -A OUTPUT -s 127.0.0.1/32 -j ACCEPT -A OUTPUT -s 192.168.0.1/32 -j ACCEPT -A OUTPUT -o eth0 -j ACCEPT -A allowed -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT -A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT -A allowed -p tcp -j DROP -A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset -A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "New not syn:" -A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A icmp_packets -p icmp -f -j DROP -A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 4 -j ACCEPT -A tcp_packets -p tcp -m tcp --dport 21 -j allowed -A tcp_packets -p tcp -m tcp --dport 22 -j allowed -A tcp_packets -p tcp -m tcp --dport 33 -j allowed -A tcp_packets -p tcp -m tcp --dport 25 -j allowed -A tcp_packets -p tcp -m tcp --dport 80 -j allowed -A tcp_packets -p tcp -m tcp --dport 110 -j allowed -A tcp_packets -p tcp -m tcp --dport 113 -j allowed -A tcp_packets -p tcp -m tcp --dport 143 -j allowed -A tcp_packets -p tcp -m tcp --dport 443 -j allowed -A tcp_packets -p tcp -m tcp --dport 993 -j allowed -A tcp_packets -p tcp -m tcp --dport 995 -j allowed -A udp_packets -p udp -m udp --sport 53 -j ACCEPT -A udp_packets -p udp -m udp --sport 123 -j ACCEPT -A udp_packets -d 255.255.255.255/32 -i eth0 -p udp -m udp --dport 67:68 -j DROP COMMIT # Completed on Tue Jun 19 01:11:22 2012
»
- Для комментирования войдите или зарегистрируйтесь

убрать первый -j ACCEPT из
убрать первый -j ACCEPT из PREROUTING ?
lix написал(а): убрать первый
убрал - результат тот же...
зачем аццепты, если полиси и
зачем аццепты, если полиси и так стоит в аццепт и пропускает все по дефолту ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
убирал из mangle даже ацепт
убирал из mangle даже ацепт прероутинга, перезагружал шлюз - ничего не меняется.
iptables -t nat -nvL Chain
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
iptables -t nat -nvLChain
iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 107 packets, 8823 bytes) pkts bytes target prot opt in out source destination 2 104 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3390 to:192.168.0.20:3389 5 260 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3389 to:192.168.0.20:3389 Chain INPUT (policy ACCEPT 107 packets, 8823 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 54 packets, 3791 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 32 packets, 2014 bytes) pkts bytes target prot opt in out source destination 61 4581 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0результат тот же пакеты не доходят
Chain PREROUTING (policy
Chain PREROUTING (policy ACCEPT 107 packets, 8823 bytes) pkts bytes target prot opt in out source destination 2 104 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3390 to:192.168.0.20:3389 5 260 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3389 to:192.168.0.20:3389Если не внимателно читал, то найди 1 отличие
П.С xxx.xxx.xxx.xxx - адрес внешки
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
iptables -t nat -nvLChain
iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 193.xxx.xxx.xxx tcp dpt:3389 to:192.168.0.20:3389 Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 126 9265 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0к сожалению результат тот же... похоже вообще ничего не проходит
странно но такая конструкция файрволла, как у меня, успешно работает на других шлюзах.
не пойму в чем проблема?
Переставил систему, скомпилировал ядро genkernel - проблема осталась...
Часто забываю про ip_forward
Как то так
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
Или в постоянку так nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
А при внешней динамике еще и
net.ipv4.ip_dynaddr = 1
Тут все прописано , но
Тут все прописано , но результат тот же
tcpdump-ом проверь, приходят
tcpdump-ом проверь, приходят ли пакеты на внешний интерфейс и уходят ли с внутреннего?
Нейтральность - высшее достижение сознания!
#/usr/sbin/tcpdump -i eth0
И после этого все. Хотя доступ к серверу из внутрисети есть...
Пояснения к дампу
ххх.ххх.ххх.ххх - внешний ip адрес eth0 - внешн интерфейс # ifconfig eth1 eth1 Link encap:Ethernet HWaddr 50:e5:49:8f:a8:e4 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1300 Metric:1 RX packets:8838 errors:0 dropped:0 overruns:0 frame:0 TX packets:18192 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:848261 (828.3 KiB) TX bytes:4538247 (4.3 MiB) Interrupt:43 Base address:0xa000+
#tcpdump -i eth0 -ttt -n -nn -v dst host 192.168.0.20
эта команда бесполезна, какой смысл смотреть на внешнем интерфейсе пакеты где адрес назначения из внутренней сети?
#/usr/sbin/tcpdump -i eth1 -ttt -n -nn -v dst host 192.168.0.20
эта команда более показательна. как мы видим пакеты уходят со шлюза на сервер. но из-за "dst host" непонятно возвращаются ли ответы))) поэтому надо посмотреть трафик командой
tcpdump -ni eth1 host 192.168.0.20 and port 3389
так мы увидим есть ли ответы от сервера.
пока стоит такая неопределенность могу предположить что :
сервер режет пакеты т.к. они прилетают с интернетным адресом в "src", и быстрое решение:
iptables -t nat -I POSTROUTING -o eth1 -d 192.168.0.20 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.0.1
there is only war...
-A POSTROUTING -s
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
да ты просто гений ;)
да ты просто гений ;)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)