Page 2 of 36 FirstFirst 123412 ... LastLast
Results 16 to 30 of 532

Thread: Настройка IPTables

  1. #16
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Во первых, есть комманда iptables-save
    Во вторых, при загрузке по установкам веб-морды генерятся файлы /tmp/filter_rules и /tmp/nat_rules , которые затем заливаются с помощью iptables-restore

  2. #17
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    Поднял SSH сервер, как описано в настройке роутера с нуля, разрешил в iptables доступ по WAN
    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    все заработало, хотя мне не очень понятно, почему данное правило разрешает доступ имено по WAN...
    (т.е. до того как его прописал, ямог толкьо из LAN лезть по SSH, но ведь это-то тоже INPUT ?)

    Но тут понял, что на работе у меня закрыт 22 порт

    как можно на роутере прописать перекидывание пакетов приходящих ИМЕННО ПО WAN на какой-нить 8081 порт на порт 22?
    или можно в настройках SSH сервера изменить порт для внешнего интерфейса?

  3. #18
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22
    или
    dropbear -p 22 -p 8081

  4. #19
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    к сожалению, ни выполнение команды
    dropbear -p 22 -p 8081
    ни прописывания
    iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22 в post-firewall с последующей перезагрузкой не помогли...
    ssh так и соединятется извне и из локалки по 22 порту
    а надо что бы измне по 8081 ,а из локалки по 22...

  5. #20
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    так, конкретизирую.

    По первому вариану обращение из wan к порту 8081 должно привести к перебросу на 22й порт, на котором ssh сервер сидит по умолчанию.

    Второй вариант задает dropbear слушать на двух портах, при этом доступ на 8081 из wan должен быть разрешен:
    iptables -A INPUT -p tcp --syn --dport 8081 -j ACCEPT

    _в_обоих_случаях_ правило iptables -I INPUT -p tcp --dport 22 -j ACCEPT должно отсутствовать.

    Все действия с iptables должны быть записаны в post-firewall

    Если по прежнему не поможет --- приведите вывод следующих комманд
    iptables -L
    iptables -L -t nat
    netstat -na | grep LISTEN
    Last edited by al37919; 05-03-2008 at 10:02.

  6. #21
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    Quote Originally Posted by al37919 View Post
    так, конкретизирую.

    По первому вариану обращение из wan к порту 8081 должно привести к перебросу на 22й порт, на котором ssh сервер сидит по умолчанию.

    Второй вариант задает dropbear слушать на двух портах, при этом доступ на 8081 из wan должен быть разрешен:
    iptables -A INPUT -p tcp --syn --dport 8081 -j ACCEPT

    _в_обоих_случаях_ правило iptables -I INPUT -p tcp --dport 22 -j ACCEPT должно отсутствовать.

    Все действия с iptables должны быть записаны в post-firewall

    Если по прежнему не поможет --- приведите вывод следующих комманд
    iptables -L
    iptables -L -t nat
    netstat -na | grep LISTEN
    Спасибо! Дома попробую...
    но по поводу iptables я не очень понимаю где указывается что правила создается для интрефеса WAN а не LAN?

    а по поводу второго способа вопрос в том, что команду dropbear -p 22 -p 8081 надо просто выполнить или где-то прописать? т.е. как сделать что бы после перезагрузки она осталась в силе
    ?

  7. #22
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    1) по умолчанию файрвол в этих прошивках сидит на wan, а в lan его нет. Это нужно просто принять как утверждение, не требующее доказательства.
    2) в post-boot

  8. #23
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    в post-firewall прописал
    iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22
    iptables -A INPUT -p tcp --syn --dport 8081 -j ACCEPT

    сохранился и даже перезагрузился, но это не помогло

    буду экспериментировать дальше...

  9. #24
    Quote Originally Posted by bocman View Post
    в post-firewall прописал
    iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22
    iptables -A INPUT -p tcp --syn --dport 8081 -j ACCEPT

    сохранился и даже перезагрузился, но это не помогло

    буду экспериментировать дальше...
    Не понимаю в чем проблема, предыдущие советы вполне хороши, вот мой вариант:
    post-boot
    PHP Code:
    dropbear -p 443 > /dev/null 2>&
    post-firewall
    PHP Code:
    iptables -P INPUT DROP
    #remove last default rule
    iptables -D INPUT -j DROP
    iptables 
    -A INPUT -p tcp --syn --dport 443 -j ACCEPT
    iptables 
    -A INPUT -j DROP 
    потом сохраняемся и перегружаемся
    PHP Code:
    /sbin/flashfs save && /sbin/flashfs commit && /sbin/flashfs enable && reboot 
    Все. SSH висит на 443 порту, который соббсно открыт везде.
    Asus WL500g Premium 1.9.2.7-9+Agestar CCB3AT+Seagate 500Gb+Samsung ML-2570; Asus RT-N16 жду прошивок

  10. #25
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    спасибо за совет, я их тоже попробу...
    но на данный момент
    post-firewall содержит:

    Code:
    #!/bin/sh
    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    iptables -t nat -A PREROUTING -i  -p tcp --dport 8081 -j DNAT --to-destination :
    iptables -A INPUT -p tcp --syn --dport 8081 -j ACCEPT
    но
    iptables -L
    возвращает:
    Code:
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination
    ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ssh
    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
    SECURITY   all  --  anywhere             anywhere           state NEW
    ACCEPT     udp  --  anywhere             anywhere           udp spt:bootps dpt:bootpc
    ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ftp
    DROP       all  --  anywhere             anywhere
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    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
    SECURITY   all  --  anywhere             anywhere           state NEW
    ACCEPT     all  --  anywhere             anywhere           ctstate DNAT
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    
    Chain MACS (0 references)
    target     prot opt source               destination
    
    Chain SECURITY (2 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
    iptables -L -t nat
    Code:
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination
    VSERVER    all  --  anywhere             213.xxxxx<мой внешний IP>
    VSERVER    all  --  anywhere             10.16.81.233
    NETMAP     udp  --  anywhere             213.xxxxx<мой внешний IP>     udp spt:6112 192.168.0.0/24
    
    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination
    NETMAP     udp  --  192.168.0.0/24       anywhere           udp dpt:6112 213.141.140.91/32
    MASQUERADE  all  -- !213.xxxxx<мой внешний IP>       anywhere
    MASQUERADE  all  -- !10.16.81.233         anywhere
    MASQUERADE  all  --  192.168.0.0/24       192.168.0.0/24
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    
    Chain VSERVER (2 references)
    target     prot opt source               destination
    DNAT       tcp  --  anywhere             anywhere           tcp dpt:59627 to:192.168.0.147:59627
    DNAT       udp  --  anywhere             anywhere           udp dpt:59627 to:192.168.0.147:59627
    netstat -na | grep LISTEN
    Code:
    tcp        0      0 0.0.0.0:1025            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1026            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:515             0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1028            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1029            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1030            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1031            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1032            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1033            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1034            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1035            0.0.0.0:*               LISTEN
    tcp        0      0 192.168.0.1:139         0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:1036            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:5431            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:3838            0.0.0.0:*               LISTEN
    tcp        0      0 :::22                   :::*                    LISTEN
    tcp        0      0 :::23                   :::*                    LISTEN
    т.е., на сколько я понимаю, post-firewall у меня не сработал?
    если так, то почему это может быть?

  11. #26
    Quote Originally Posted by bocman View Post
    спасибо за совет, я их тоже попробу...
    но на данный момент
    post-firewall содержит:

    Code:
    #!/bin/sh
    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    iptables -t nat -A PREROUTING -i  -p tcp --dport 8081 -j DNAT --to-destination :
    iptables -A INPUT -p tcp --syn --dport 8081 -j ACCEPT
    т.е., на сколько я понимаю, post-firewall у меня не сработал?
    если так, то почему это может быть?
    Меня смущают ключики -I, -t надо читать ман по иптаблес
    А вообше 22 порт открыт все нормально.
    КОгда я себе делал фтп я делал немного по другому :
    PHP Code:
    #FTP Server Local 21, remote 6667
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    iptables 
    -A INPUT -p tcp --dport 6667 -j ACCEPT 
    вроде работало
    Asus WL500g Premium 1.9.2.7-9+Agestar CCB3AT+Seagate 500Gb+Samsung ML-2570; Asus RT-N16 жду прошивок

  12. #27
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    я только что заметил свою невнимательность, al37919 советовал написать
    Code:
    iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22
    тогда как у меня:
    Code:
    iptables -t nat -A PREROUTING -i  -p tcp --dport 8081 -j DNAT --to-destination :
    правда, я не понимаю что занчат $1 и $4...

    строку
    Code:
    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    я ввел в соответствии с руководством по настройку роутера с нуля...
    К сожалению,с линухом только разбираюсь...

  13. #28
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    PHP Code:
    ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ssh 
    означает, что

    PHP Code:
    iptables -I INPUT -p tcp --dport 22 -j ACCEPT 
    запущено (т.е. post-firewall выполняется). Кроме того, это означает, что 22й порт в wan открыт (вы кажется пишете, что это не то, что вы хотите).

    вторая строка действительно приведена с ошибкой, поэтому она не выполняется, следов третье строки тоже не обнаружено. Возможно post-firewall вылетает после первого ошибочного правила iptables (хотя странновато это.)

    $1 и $4 --- это параметры, которые передаются post-firewall при его запуске. Чтобы узнать чему равны эти параметры добавьте к post-firewall такую строку:

    PHP Code:
    echo "$0 $1 $2 $3 $4 $5 $6" > /tmp/post-firewall.log 
    и посмотрите содержимое файла /tmp/post-firewall.log

    Кроме того, в начале post-firewall нужно добавить следующее (для отмены последнего правила в цепочке INPUT, которое дропает все):
    PHP Code:
    iptables -P INPUT DROP
    iptables 
    -D INPUT -j DROP 
    P.S. И, в заключение, мой первый вариант скорее всего не пойдет, т.к. он скорее всего потребует наличия правила:
    PHP Code:
    iptables -А INPUT -p tcp --dport 22 -j ACCEPT 
    которое откроет 22й порт и наружу тоже (а это кажется не то что надо? )...

  14. #29
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    Ну, на первых порах мне надо было открыть др порт для ssh не ради безопастности, а ради того, что бы я мог с работы, где 22 порт закрыт, стучаться к своему роутеру... но почитав и подумав побольше, решил, что действительно лучше закрыть 22 порт...
    может тогда действительно нужно просто открть другой порт в iptables и в dropbear указать что б слушал его.... ?

  15. #30
    Join Date
    Feb 2008
    Location
    Moscow
    Posts
    115
    Попробовал. как сказал Max128:
    Quote Originally Posted by Max128 View Post
    вот мой вариант:
    post-boot
    PHP Code:
    dropbear -p 443 > /dev/null 2>&
    post-firewall
    PHP Code:
    iptables -P INPUT DROP
    #remove last default rule
    iptables -D INPUT -j DROP
    iptables 
    -A INPUT -p tcp --syn --dport 443 -j ACCEPT
    iptables 
    -A INPUT -j DROP 
    потом сохраняемся и перегружаемся
    PHP Code:
    /sbin/flashfs save && /sbin/flashfs commit && /sbin/flashfs enable && reboot 
    Все. SSH висит на 443 порту, который соббсно открыт везде.
    SSH, действительно повис на 443 порту (и локально я по нему подключался), но http://www.pcflank.com/scanner1.htm говорит что 443 порт закрыт...

    iptables -L
    Code:
    Chain INPUT (policy DROP)
    target     prot opt source               destination
    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
    SECURITY   all  --  anywhere             anywhere           state NEW
    ACCEPT     udp  --  anywhere             anywhere           udp spt:bootps dpt:bootpc
    ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ftp
    DROP       all  --  anywhere             anywhere
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    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
    SECURITY   all  --  anywhere             anywhere           state NEW
    ACCEPT     all  --  anywhere             anywhere           ctstate DNAT
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    
    Chain MACS (0 references)
    target     prot opt source               destination
    
    Chain SECURITY (2 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
    iptables -L -t nat
    Code:
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination
    VSERVER    all  --  anywhere             213.141.140.91
    VSERVER    all  --  anywhere             10.16.81.233
    NETMAP     udp  --  anywhere             213.xxxx     udp spt:6112 192.168.0.0/24
    
    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination
    NETMAP     udp  --  192.168.0.0/24       anywhere           udp dpt:6112 213.141.140.91/32
    MASQUERADE  all  -- !213.xxxx       anywhere
    MASQUERADE  all  -- !10.16.81.233         anywhere
    MASQUERADE  all  --  192.168.0.0/24       192.168.0.0/24
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    
    Chain VSERVER (2 references)
    target     prot opt source               destination
    DNAT       tcp  --  anywhere             anywhere           tcp dpt:59627 to:192.168.0.147:59627
    DNAT       udp  --  anywhere             anywhere           udp dpt:59627 to:192.168.0.147:59627
    netstat -na | grep LISTEN
    Code:
    tcp        0      0 0.0.0.0:515             0.0.0.0:*               LISTEN
    tcp        0      0 192.168.0.1:139         0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:5431            0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:3838            0.0.0.0:*               LISTEN
    tcp        0      0 :::23                   :::*                    LISTEN
    tcp        0      0 :::443                  :::*                    LISTEN
    unix  2      [ ACC ]     STREAM     LISTENING     1451   /var/run/pptp/255.255.255.255:10.10.9.53
    я проде понимаю, что последний листинг говорит, какие порты слушаются, т.е. подтверждает, что дропбир работает на 443 порту...
    Но, к сожалению, я пока так и не разобрался, как понимать iptables -L и iptables -L -t nat, но не найдя там 443 порт могу понять, что фаервол его не пропускает... а вот почему...

Page 2 of 36 FirstFirst 123412 ... LastLast

Similar Threads

  1. Help with IPTABLES
    By tomv in forum WL-500gP Q&A
    Replies: 1
    Last Post: 14-01-2008, 21:43
  2. Iptables
    By byteZero in forum WL-500g Q&A
    Replies: 2
    Last Post: 07-11-2006, 20:23
  3. How to configure Firewall/iptables
    By samoht in forum WL-500g/WL-500gx Tutorials
    Replies: 3
    Last Post: 14-08-2005, 02:28
  4. iptables vs web interface
    By bomberman in forum WL-500g Q&A
    Replies: 0
    Last Post: 20-05-2005, 09:06
  5. Iptables
    By barsju in forum WL-500g Q&A
    Replies: 15
    Last Post: 01-03-2005, 02:36

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •