да нужно, причем в post-firewall
Вопрос - нужно ли специально открывать порт 22 для ssh? Я пытаюсь с работы зайти на роутер по ssh и почему-то не получается. Я настроил DynDNS клиент в роутере но что-то request не доходит до роутера... Если же пытаюсь из дома это сделать то ssh работает нормально (с именем компа, зарегистрированного в DynDNS.
спасиб
gsnake
да нужно, причем в post-firewall
- FAQ
- В роутере используется файрвол iptables(netfilter). Руководство здесь
- Поиск по форуму даёт интересные результаты: 1 2 3
- Если в кратце:
Code:mkdir -p /usr/local/sbin cd /usr/local/sbin echo '#!/bin/sh iptables -I INPUT -p tcp --dport 22 -j ACCEPT ' >> post-firewall chmod +x post-firewall flashfs save && flashfs commit && flashfs enable reboot
кстати это тоже не помогло. я правда настроил dropbear на нестандартном порту и соответственно поменял порт в post-firewall. то есть я с локальной сети нормально вхожу по ssh (на нестандартный порт) но с работы так и не получается..
читаю форум но так толком ничего определенного не нашел. не хочется пробовать все подряд в надежде что получится.
обратил внимание на эту комманду
iptables -D INPUT -j DROP
надо ли ее тоже обязательно вставлять в post-firewall?
обязательно ли делать pre-routing?
ptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1555 -j DNAT --to-destination 192.168.1.1:22
Нужна только единственная команда iptables -I INPUT -p tcp --dport 22 -j ACCEPT которая вставит в начало таблицы правило, которое разрешает все входящие пакеты на 22 tcp порт. Другое дело - может быть закрыт порт либо домашним провайдером, либо на работе.
Ну я думаю еще можно показать результат выполнения команд iptables -L INPUT -vn и iptables -L -vnt nat для уверенности, что файрвол настроен правильно.
В веб-интерфейсе делается похожее, окромя того, что в том примере перекидываются соединения только с vpn туннеля а в вебе будут перекидываться также соединения с MAN. Но это о5 же не избавляет от необходимости открывать локальный порт в файрволе.
22 порт не закрыт ни на работе, ни у провайдера - проверено. Я же не на 22-ом слушаю, а на другом (скажем на 1555). То есть я в firewall открыл порт не 22, а 1555 вот так:
iptables -I INPUT -p tcp --dport 1555 -j ACCEPT
И соответственно dropbear работает на этом же порту (1555). Неужели надо 22 тоже открывать? Я позже напишу что эта команда выдает (iptables -L ...) когда домой доберусь..
gsnake
Я 22 порт в качестве примера привел.
где вывод iptables -L ?
http://wl500g.info/showpost.php?p=68635&postcount=7
Ну да, в post-firewall строказапуск dropbearCode:iptables -A INPUT -p tcp --dport 1555 -j ACCEPTи вот так все работаетCode:#!/bin/sh killall dropbear dropbear -p 1555 -d /usr/local/etc/dropbear/dropbear_dss_host_key -r /usr/local/etc/dropbear/dropbear_rsa_host_key
и вот ещеCode:[I'm@Router /]$ iptables -L INPUT -vn Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1443 75004 ACCEPT tcp -- vlan1 * 0.0.0.0/0 10.131.4.163 tcp dpt:81 flags:0x16/0x02 4161 409K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 50M 13G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 43697 2622K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW 5482 726K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW 0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.1 tcp dpt:80 696 38181 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 579 29256 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 7 336 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1555 0 0 ACCEPT icmp -- * * 194.84.10.0/24 192.168.1.0/24 icmp type 8 0 0 ACCEPT icmp -- * * 195.239.98.16/28 192.168.1.0/24 icmp type 8 0 0 ACCEPT icmp -- * * 212.164.199.16/28 192.168.1.0/24 icmp type 8 0 0 ACCEPT icmp -- * * 193.178.135.16/28 192.168.1.0/24 icmp type 8 0 0 ACCEPT udp -- * * 194.84.10.0/24 192.168.1.0/24 udp dpts:33434:33700 0 0 ACCEPT udp -- * * 195.239.98.16/28 192.168.1.0/24 udp dpts:33434:33700 0 0 ACCEPT udp -- * * 212.164.199.16/28 192.168.1.0/24 udp dpts:33434:33700 0 0 ACCEPT udp -- * * 193.178.135.16/28 192.168.1.0/24 udp dpts:33434:33700 0 0 ACCEPT tcp -- * * 194.84.10.0/24 192.168.1.0/24 tcp spt:200 dpts:1024:65535 0 0 ACCEPT tcp -- * * 195.239.98.16/28 192.168.1.0/24 tcp spt:200 dpts:1024:65535 0 0 ACCEPT tcp -- * * 212.164.199.16/28 192.168.1.0/24 tcp spt:200 dpts:1024:65535 0 0 ACCEPT tcp -- * * 193.178.135.16/28 192.168.1.0/24 tcp spt:200 dpts:1024:65535 654K 76M DROP all -- * * 0.0.0.0/0 0.0.0.0/0 [I'm@Router /]$ iptables -L -vnt nat Chain PREROUTING (policy ACCEPT 2442K packets, 371M bytes) pkts bytes target prot opt in out source destination 1620 81484 DNAT tcp -- * * 0.0.0.0/0 10.131.4.163 tcp dpt:80 to:10.131.4.163:81 0 0 DROP tcp -- vlan1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:81 920K 75M VSERVER all -- * * 0.0.0.0/0 10.131.4.163 Chain POSTROUTING (policy ACCEPT 698K packets, 44M bytes) pkts bytes target prot opt in out source destination 938K 95M MASQUERADE all -- * vlan1 !10.131.4.163 0.0.0.0/0 9947 630K MASQUERADE all -- * br0 192.168.0.0/22 192.168.0.0/22 Chain OUTPUT (policy ACCEPT 44341 packets, 2772K bytes) pkts bytes target prot opt in out source destination Chain VSERVER (1 references) pkts bytes target prot opt in out source destination 0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8082 to:192.168.1.1:80 55632 2743K DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20658 to:192.168.1.68:20658 3426 173K DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4662 to:192.168.1.75:4662 603K 39M DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:4672 to:192.168.1.75:4672 173 8950 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20659 to:192.168.1.75:20659 0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7523 to:192.168.1.68:7523 0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:7524 to:192.168.1.68:7524 0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5190 to:192.168.1.68:5190 872 41856 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 to:192.168.1.68:3306 0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:3306 to:192.168.1.68:3306
WL-500gP(v1, 64mb) (1.9.2.7-d-r2624 by Oleg) + 3 x USB HDD
Работают: analog, syslog-ng, cron, samba 3, RTorrent+RuTorrent, lighttpd, vsftpd+, настроена сеть и сетевая печать
Не стоит путать людей. Если использовать -A то это добавит правило в конец цепочки INPUT, в которой в конце по-умолчанию у всех прописано правило DROP, что неприемлемо в данном случае. Нужно использовать -I, что добавит правило в начало цепочки и что будет самое простое в реализации.
Если уж очень охота (в целях оптимизации) добавить правило в конец цепочки (-A) тогда:
Code:# Устанавливаем действие по-умолчанию(DROP или ACCEPT), которое будет выполнено при достижении конца цепочки. По-дефолту стоит ACCEPT. iptables -P INPUT DROP # Удаляем последнее правило в цепочке, которое дропает пакеты. iptables -D INPUT -j DROP # Добавляем в конец цепочки правило, разрешающее входящие tcp пакеты на 1555 порт iptables -A INPUT -p tcp --dport 1555 -j ACCEPT
вот что получается при выполнении команд
что-то явно не то с firewall.. eще раз - вот что у меня в post-firewallCode:$ iptables -L INPUT -vn Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 187K 17M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED, ESTABLISHED 16687 1001K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW 96672 35M ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW 4537 1650K ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68 245 139K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 root]$ iptables -L -vnt nat Chain PREROUTING (policy ACCEPT 14153 packets, 1462K bytes) pkts bytes target prot opt in out source destination 251 139K VSERVER all -- * * 0.0.0.0/0 xx.xx.x.36 0 0 NETMAP udp -- * * 0.0.0.0/0 xx.xx.x.36 udp spt:6112 192.168.1.0/24 Chain POSTROUTING (policy ACCEPT 17490 packets, 1051K bytes) pkts bytes target prot opt in out source destination 0 0 NETMAP udp -- * * 192.168.1.0/24 0.0.0.0/0 udp dpt:6112 xx.xx.x.36/32 8553 446K MASQUERADE all -- * vlan1 !xx.xx.x.36 0.0.0.0/0 59 18726 MASQUERADE all -- * br0 192.168.1.0/24 192.168.1.0/24 Chain OUTPUT (policy ACCEPT 17549 packets, 1070K bytes) pkts bytes target prot opt in out source destination Chain VSERVER (1 references) pkts bytes target prot opt in out source destination 0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6881 to:192.168.1.196:6881 0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:6881 to:192.168.1.196:6881
iptables -I INPUT -p tcp --dport xxxx -j ACCEPT
где хххх - номер порта
Last edited by Mam(O)n; 09-11-2007 at 04:46. Reason: не забываем про теги [code][/code]
Если бы было сделано, как я написал, то в post-firewall было бы:
где xxxx - номер порта. Или это в конец пост-файрвола добавилось бы. Главное, чтоб первая строчка - #!/bin/sh. Вывод iptables -L INPUT -vn был бы таким:Code:#!/bin/sh iptables -I INPUT -p tcp --dport xxxx -j ACCEPT
где xxxx - номер порта. Надеюсь post-firewall не в венде(допустим в блокноте) правил?Code:$ iptables -L INPUT -vn Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:xxxx 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 187K 17M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED, ESTABLISHED 16687 1001K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW 96672 35M ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW 4537 1650K ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68 245 139K DROP all -- * * 0.0.0.0/0 0.0.0.0/0
На данном этапе интересны выводы команд:
cat /usr/local/sbin/post-firewall
ls -la /usr/local/sbin/