Поиск по этому блогу

воскресенье, 21 февраля 2010 г.

Перенаправление портов в ASUS wl500gP

«Теоретические» основы перенаправления портов знал давно, но случая проверить их на практике до последнего времени не предоставлялось.
Для проверки работоспособности решения я использовал «однострочный» веб-сервер, открывающий в моём случае порт 8088 на компьютере внутренней сети и предоставляющий доступ к файлам своей рабочей директории.
Подключение извне будет происходить к порту 8888.
При отсутствии статического внешнего адреса следует воспользоваться услугой DynDNS.
Подключившись к web-интерфейсу роутера ASUS wl500gP, производим следующие изменения

  1. Для включения собственно самого перенаправления портов в секции «NAT Setting»«Virtual Server» вводим
    Port Range8888 (номер порта на внешнем, видимом из Интернета интерфейсе);
    Local IP192.168.1.100 (IP-адрес компьютера внутренней сети);
    Local Port8088 (номер порта, открытого на компьютере внутренней сети).
    ProtocolTCP (в данном случае).
    Нажимаем справа вверху кнопку «Add», затем справа внизу «Apply».
  2. Теперь, если, конечно, firewall не отключен, разрешаем прохождение траффика.
    а) Быстрый , но не совсем правильный с точки зрения безопасности способ:
    в секции «Internet Firewall»«WAN & LAN Filter»«WAN to LAN Filter» выбираем для «Port Forwarding default policy»ACCEPT.
    Нажимаем справа внизу «Apply».
    б) Теперь чуть по-труднее:
    в секции «Port Forwarding default policy»DROP.
    Source IP — оставляем пустое поле;
    Port Range — оставляем пустое поле;
    Destination IP — оставляем пустое поле;
    Port Range8088 (номер порта, на котором на компьютере во внутренней сети поднят сервер);
    ProtocolTCP (в данном случае).
    Нажимаем справа вверху кнопку «Add», затем справа внизу «Apply».
  3. Если адреса на компьютеры в сети раздаёт роутер, в секции «Assign IP Address Manually» включаем «Yes», в секции «IP Config»«DHCP Server»«Manually Assigned IP List» вводим
    MAC Address0018D188637E (адрес сетевой карты, можно узнать, выполнив, к примеру, на компьютере, где wlan0 — имя сетевой карты);

    ifconfig wlan0 | grep HWaddr | awk '{print $5}' | tr -d ':' | tr "[a-z]" "[A-Z]"

    IP Address — IP-адрес, который присвоится компьютеру, должен соответствовать Local IP, указанному в п. 1.
    Host Name — имя компьютера, можно узнать, выполнив на компьютере

    hostname

    Нажимаем справа вверху кнопку «Add», затем справа внизу «Apply».
    Нажимаем внизу по центру «Finish», затем «Save&Restart».
Настроенные таким образом правила iptables выглядят так:

[root@ha0s-router root]$
iptables-save
# Generated by iptables-save v1.3.8 on Sun Feb 21 09:10:35 2010
*nat
:PREROUTING ACCEPT [5049:364825] :POSTROUTING ACCEPT [275:17679] :OUTPUT ACCEPT [275:17954] :VSERVER - [0:0] -A PREROUTING -d 178.123.176.98 -j VSERVER
-A POSTROUTING -s ! 178.123.176.98 -o ppp0 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -o br0 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -o tun0 -j MASQUERADE 

-A VSERVER -p tcp -m tcp --dport 8888 -j DNAT --to-destination 192.168.1.100:8088
COMMIT # Completed on Sun Feb 21 09:10:35 2010
# Generated by iptables-save v1.3.8 on Sun Feb 21 09:10:35 2010
*mangle :PREROUTING ACCEPT [16277:5495021] :INPUT ACCEPT [6354:585356] :FORWARD ACCEPT [9377:4798389] :OUTPUT ACCEPT [1571:166012] :POSTROUTING ACCEPT [10948:4964401] COMMIT # Completed on Sun Feb 21 09:10:35 2010
# Generated by iptables-save v1.3.8 on Sun Feb 21 09:10:35 2010
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [223:13380] :OUTPUT ACCEPT [1573:166276] :BRUTE - [0:0] :MACS - [0:0] :SECURITY - [0:0] :logaccept - [0:0] :logdrop - [0:0]
-A INPUT -m state --state INVALID -j logdrop
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -i ppp0 -m state --state NEW -j SECURITY
-A INPUT -i vlan1 -m state --state NEW -j SECURITY
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -j logdrop
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j logdrop
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o ppp0 -j logdrop
-A FORWARD -i ! br0 -o vlan1 -j logdrop
-A FORWARD -i ! br0 -m state --state NEW -j SECURITY
-A FORWARD -o br0 -p tcp -m tcp --dport 8088 -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j logdrop
-A FORWARD -o br0 -j logdrop
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN
-A SECURITY -j logdrop
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
# Completed on Sun Feb 21 09:10:35 2010

1 комментарий:

Анонимный комментирует...

Спасибо. Очень помог.