Bekijk de volledige versie : Доступ к вебсерверу (lighttpd) из интернет.
Всю голову уже сломал, кучу вариантов перепробывал, помогите!
Есть:
wl500gp прошивка последняя
стоит lighttpd версия последняя, порт 8081.
Внешний ИП пусть будет 212.1.230.111
Соединение с инетом происходит по ВПН
Из локалки все замечательно, задача открыть из инета по стандартному порту (80). Из локалки по этому же порту пусть отвечает встроенный вебсервер.
Содержимое post-firewall:
#!/bin/sh
iptables -D INPUT -j DROP
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i "$1" -p tcp --dport 80 -j REDIRECT --to-port 8081
iptables -A INPUT -j DROP
iptables -I INPUT -i tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
То, что я вставил, я выделил синим.
И не работает! Что я только не пробовал, оставил этот вариант как самый правильный на мой взгляд.
я бы проверил что выдает iptables -L
Вот что выдает:
[admin@wl500g root]$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:5190
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere state NEW
ACCEPT all -- anywhere anywhere state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere state INVALID
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN TCPMSS clamp to PMTU
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
DROP tcp -- anywhere 10.XX.XX.XX tcp dpts:ftp-data:ftp
ACCEPT all -- anywhere anywhere ctstate DNAT
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain MACS (0 references)
target prot opt source destination
Chain SECURITY (0 references)
target prot opt source destination
RETURN tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN limit: avg 1/sec burst 5
RETURN tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5
RETURN udp -- anywhere anywhere limit: avg 5/sec burst 5
RETURN icmp -- anywhere anywhere limit: avg 5/sec burst 5
DROP all -- anywhere anywhere
Chain logaccept (0 references)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning tcp-sequence tcp-options ip-options prefix `ACCEPT '
ACCEPT all -- anywhere anywhere
Chain logdrop (0 references)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning tcp-sequence tcp-options ip-options prefix `DROP '
DROP all -- anywhere anywhere
[admin@wl500g root]$
На порт 5190 не обращайте внимание, он у меня тоже открыт.
Ilmarinen
19-06-2007, 12:05
Всю голову уже сломал, кучу вариантов перепробывал, помогите!
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i "$1" -p tcp --dport 80 -j REDIRECT --to-port 8081
И не работает! Что я только не пробовал, оставил этот вариант как самый правильный на мой взгляд.
Ну так к тому моменту когда пакет окажется в цепочке INPUT --dport уже будет 8081, поэтому нужно
iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
у меня вот так "проброшены" порты 8080 и 2222 для нескольких доверенных адресов
iptables -t mangle -A PREROUTING -i $WAN_IF -s $tructed_IP -j MARK --set-mark 5
iptables -t nat -A PREROUTING -m mark --mark 5/5 -p tcp --dport 8080 -j REDIRECT --to-ports 80
iptables -t nat -A PREROUTING -m mark --mark 5/5 -p tcp --dport 2222 -j REDIRECT --to-ports 22
iptables -A INPUT -m mark --mark 5/5 -p tcp -m mport --dport 22,80 -i $WAN_IF -j ACCEPT
Спасибо огромное, добавил команду открыть 8081 порт и все заработало :)