PDA

Bekijk de volledige versie : Доступ к вебсерверу (lighttpd) из интернет.



unit
19-06-2007, 12:01
Всю голову уже сломал, кучу вариантов перепробывал, помогите!

Есть:
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

То, что я вставил, я выделил синим.

И не работает! Что я только не пробовал, оставил этот вариант как самый правильный на мой взгляд.

al37919
19-06-2007, 12:07
я бы проверил что выдает iptables -L

unit
19-06-2007, 12:24
Вот что выдает:


[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, 13: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

unit
19-06-2007, 13:20
Спасибо огромное, добавил команду открыть 8081 порт и все заработало :)