PDA

Bekijk de volledige versie : Настройка IPTables



Pages : [1] 2 3

_Denis_
19-01-2007, 08:01
Приветствую,нужна твоя помощь.

Проблемка следующая:
Есть 2 независимые сети, скажем "A" и "B". Раздавать интернет. Интернет "идет" через местную локльную сеть, Присваивается IP через DHCP.

Что я делаю.
через оболочку настраиваю.
WAN - клиент DHCP (возможно зделать если ответа от сервера нет то по умолчанию выставлялся определленный IP)
LAN - 10.0.9.1/255.255.255.0 - "A"

Через телнет
LAN "B"
robocfg vlan 2 ports "1 5t" vlan 0 ports "2 3 4 5t"
vconfig add eth0 2
ifconfig vlan2 10.0.8.1 broadcast 10.0.8.255 netmask 255.255.255.0 up

все вроде поднимается но в интерент через vlan2 не выходит.
А так же не могу подсоединиться по телнету из сети LAN "B".

А что дальше делать ?
Как я понемаю надо прописывать правила, но какие?

PS: В поиске я искал похожую задачу, но все хотят настраивать 2 WAN интерфейса.

djet
03-11-2007, 11:33
Заметил, что после установления сессии pppd все правила netfilter возвращаются к набору после загрузки. Это баг или фича?

djet
03-11-2007, 17:53
Как я понял, после реконнекта все таблицы очищаются и запускается заново post-firewall?

Добавьте это в FAQ что ли..

Oleg
03-11-2007, 19:20
Угу. Именно поэтому и был придуман post-firewall. Вроде вещь очевидная: меняется внешний адрес, значит нужно обновить и правила в фаерволе, там ведь адреса местами используются.

djet
03-11-2007, 19:26
Угу. Именно поэтому и был придуман post-firewall. Вроде вещь очевидная: меняется внешний адрес, значит нужно обновить и правила в фаерволе, там ведь адреса местами используются.
У меня он не меняется, поэтому в этом направлении как-то не подумал. :) Да и в VSERVER нет ни одной ссылки на wan ip.

Oleg
03-11-2007, 19:27
А в PREROUTING ? :)

djet
03-11-2007, 19:32
А в PREROUTING ? :)
Прероутингу - прероутингово. :) Меня удивила очистка именно VSERVER. Бывает, нужно что-нибудь пробросить временно, неохота или нет времени править post-firewall. И видишь после реконнекта полный сюрприз. Тут на мой взляд не всё так очевидно.

djet
29-01-2008, 23:44
Обнаружил сегодня у себя странную строчку в iptables. Не пойму, откуда она и каков её "физический смысл":

-A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -o br0 -j MASQUERADE

djet
30-01-2008, 14:46
Есть идеи?

Oleg
30-01-2008, 15:47
Ничего странного. Она нужна если Вы обращаетесь по внешнему адресу на вирутальный сервер из внутренней сети.

Ilmarinen
30-01-2008, 15:54
Есть идеи?
Если интересует подробное техническое описание проблемы и способа решения см. http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET

djet
30-01-2008, 21:32
Ничего странного. Она нужна если Вы обращаетесь по внешнему адресу на вирутальный сервер из внутренней сети.
Действительно. Как-то ни разу не приходило в голову, что к локальным хостам можно обращаться через NAT. :) Спасибо за разъяснение.

twinsys
27-02-2008, 21:05
Прошивка WL500gp-1.9.2.7-8.19.trx
Как можно менять правила которые забиты по умолчанию (может есть файл)?
Или единственный способ менять правили IPTables через /usr/local/sbin/post-firewall – (исполняется всякий раз, после того как устройство меняет внутренние правила с помощью команд iptables, с тем, чтобы Вы могли внести свои изменения в firewall)?

djet
28-02-2008, 22:02
А в чём, собственно, проблема?

У меня, например, так:



# Default policy
iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -D INPUT -m state --state INVALID -j DROP
iptables -I INPUT 1 -m state --state INVALID -j logdrop
iptables -F logdrop
iptables -A logdrop -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -A logdrop -j DROP

+ куча строчек для сервисов.

twinsys
29-02-2008, 07:21
Проблемы действительно нет.
Просто хочется понять, где то же должны быть настройки, которые изначально в прошивке… И главное хочется понять можно ли их менять? :confused:
P.S. И спасибо что откликнулись…

al37919
29-02-2008, 07:28
Во первых, есть комманда iptables-save
Во вторых, при загрузке по установкам веб-морды генерятся файлы /tmp/filter_rules и /tmp/nat_rules , которые затем заливаются с помощью iptables-restore

bocman
29-02-2008, 07:49
Поднял SSH сервер, как описано в настройке роутера с нуля, разрешил в iptables доступ по WAN
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
все заработало, хотя мне не очень понятно, почему данное правило разрешает доступ имено по WAN...
(т.е. до того как его прописал, ямог толкьо из LAN лезть по SSH, но ведь это-то тоже INPUT ?)

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

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

al37919
29-02-2008, 08:22
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22
или
dropbear -p 22 -p 8081

bocman
05-03-2008, 08:47
к сожалению, ни выполнение команды
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...

al37919
05-03-2008, 09:00
так, конкретизирую.

По первому вариану обращение из 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

bocman
05-03-2008, 09:06
так, конкретизирую.

По первому вариану обращение из 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 надо просто выполнить или где-то прописать? т.е. как сделать что бы после перезагрузки она осталась в силе
?

al37919
05-03-2008, 14:41
1) по умолчанию файрвол в этих прошивках сидит на wan, а в lan его нет. Это нужно просто принять как утверждение, не требующее доказательства.
2) в post-boot

bocman
05-03-2008, 14:48
в 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

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

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

Max128
05-03-2008, 18:56
в 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

dropbear -p 443 > /dev/null 2>&1
post-firewall

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

потом сохраняемся и перегружаемся

/sbin/flashfs save && /sbin/flashfs commit && /sbin/flashfs enable && reboot

Все. SSH висит на 443 порту, который соббсно открыт везде.

bocman
05-03-2008, 21:53
спасибо за совет, я их тоже попробу...
но на данный момент
post-firewall содержит:



#!/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
возвращает:


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


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


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 у меня не сработал?
если так, то почему это может быть?

Max128
06-03-2008, 04:45
спасибо за совет, я их тоже попробу...
но на данный момент
post-firewall содержит:



#!/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 порт открыт все нормально.
КОгда я себе делал фтп я делал немного по другому :

#FTP Server Local 21, remote 6667
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 6667 -j ACCEPT

вроде работало :)

bocman
06-03-2008, 05:55
я только что заметил свою невнимательность, al37919 советовал написать

iptables -t nat -A PREROUTING -i $1 -p tcp --dport 8081 -j DNAT --to-destination $4:22

тогда как у меня:


iptables -t nat -A PREROUTING -i -p tcp --dport 8081 -j DNAT --to-destination :

правда, я не понимаю что занчат $1 и $4...

строку

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

al37919
06-03-2008, 14:23
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh

означает, что


iptables -I INPUT -p tcp --dport 22 -j ACCEPT

запущено (т.е. post-firewall выполняется). Кроме того, это означает, что 22й порт в wan открыт (вы кажется пишете, что это не то, что вы хотите).

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

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


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

Кроме того, в начале post-firewall нужно добавить следующее (для отмены последнего правила в цепочке INPUT, которое дропает все):

iptables -P INPUT DROP
iptables -D INPUT -j DROP

P.S. И, в заключение, мой первый вариант скорее всего не пойдет, т.к. он скорее всего потребует наличия правила:

iptables -А INPUT -p tcp --dport 22 -j ACCEPT
которое откроет 22й порт и наружу тоже (а это кажется не то что надо? )...

bocman
06-03-2008, 14:41
Ну, на первых порах мне надо было открыть др порт для ssh не ради безопастности, а ради того, что бы я мог с работы, где 22 порт закрыт, стучаться к своему роутеру... но почитав и подумав побольше, решил, что действительно лучше закрыть 22 порт...
может тогда действительно нужно просто открть другой порт в iptables и в dropbear указать что б слушал его.... ?

bocman
06-03-2008, 18:26
Попробовал. как сказал Max128:


вот мой вариант:
post-boot

dropbear -p 443 > /dev/null 2>&1
post-firewall

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

потом сохраняемся и перегружаемся

/sbin/flashfs save && /sbin/flashfs commit && /sbin/flashfs enable && reboot

Все. SSH висит на 443 порту, который соббсно открыт везде.
SSH, действительно повис на 443 порту (и локально я по нему подключался), но http://www.pcflank.com/scanner1.htm говорит что 443 порт закрыт...

iptables -L


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


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


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 порт могу понять, что фаервол его не пропускает... а вот почему...:(

Max128
06-03-2008, 19:17
Попробовал. как сказал Max128:

SSH, действительно повис на 443 порту (и локально я по нему подключался), но http://www.pcflank.com/scanner1.htm говорит что 443 порт закрыт...
(
неверная методика тестирования имхо :) тест проверят открытые НА КОМПЕ порты а не на роутере :)
реккомендую проверить снаружи всетаки
например по гпрсу :)

al37919
06-03-2008, 19:26
Chain INPUT (policy DROP)
говорит, что

iptables -P INPUT DROP
выполнено. С другой стороны никаких признаков выполнения

iptables -A INPUT -p tcp --syn --dport 443 -j ACCEPT
не наблюдается...

подтверждает, что дропбир работает на 443 порту
совершенно справедливо

Но, к сожалению, я пока так и не разобрался, как понимать iptables -L и iptables -L -t nat
у iptables есть три таблицы filter (по умолчанию), nat и mangle (экзотика).
Вообще, хорошее описание iptables есть здесь: http://www.opennet.ru/docs/RUS/iptables/

ИМХО в первую очередь надо разобраться почему чать post-fw выполняется, а часть нет. Один из вариантов такой --- вводить команды с консоли и сразу контролировать, что правило добавлено и куда.

al37919
06-03-2008, 19:36
это внешний тест

bocman
07-03-2008, 07:17
попробовал извне, по 443 порту так и не удалось соединиться....:(
а как можно поэтапно проверять, что iptables выполняет, а что нет?

BlackKovu
07-03-2008, 08:44
Вы можете выполнять все команды по настройке iptables из консоли (не через post-firewall + перезагрузка) в процессе отладки. Тогда вы увидите все сообщения об ошибках и после каждой команды сможете проверять таблицу. Надо только не забывать подменять $1 ... на соотв значения.

+ Очень рекомендую хотя бы по диагонали пробежаться по указанному выше документу по iptables на opennet что бы представлять что означает -I -A -L и пр. Там есть неплохие примеры.

bocman
07-03-2008, 08:58
Да, спасибо за сссылку, обязательно изучу, другой вопрос ,что понимать что означают коммадны и писать их -это разные вещи :))
но, думаю, со времением, решу и эту задачу:)

djet
12-03-2008, 11:46
Есть пара вопросов:

1) можно ли создать одно правило для двух протоколов (tcp+udp);
2) то же самое для несмежной группы портов.

Max128
12-03-2008, 12:19
Есть пара вопросов:

1) можно ли создать одно правило для двух протоколов (tcp+udp);
2) то же самое для несмежной группы портов.

1. Имхо нет
2. --dports xx,xy,xz

djet
12-03-2008, 12:41
1. Имхо нет
2. --dports xx,xy,xz

2) не принимает:

[routah:root] iptables -A INPUT -p tcp --dports 1,2,3,4 -j ACCEPT
iptables v1.2.7a: Unknown arg `--dports'

Max128
12-03-2008, 13:57
2) не принимает:

занчит идем все вместе читать мануал по iptables :) тем более он тут есть дето

boby7
13-03-2008, 17:40
А какую строчку надо прописать и в каком файле, что бы в Firewall закрыть порт FTP для доступа из WAN, который открыт по умолчанию.


Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp

naves
18-03-2008, 22:16
А какую строчку надо прописать и в каком файле, что бы в Firewall закрыть порт FTP для доступа из WAN, который открыт по умолчанию.

в /usr/local/sbin/post-firewal

iptables -A INPUT -p tcp -m tcp -i vlan1 --dport 21 -j DROP
iptables -A INPUT -p tcp -m tcp -i ppp0 --dport 21 -j DROP

djet
18-03-2008, 23:03
Не сработает, порядок обхода правил другой.

Идеологически правильнее удалить имеющуюся с разрешением:

iptables -D INPUT -p tcp -m tcp --dport 21 -j ACCEPT

Либо отключить из вебморды ftp и запускать вручную.

shell
19-03-2008, 13:53
post-boot

dropbear -p 2120 > /dev/null 2>&1
/opt/bin/dbhub

post-mount

mount -obind /tmp/harddisk/opt /opt
post-firewall

iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 2120 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 411 -j ACCEPT
iptables -A INPUT -j DROP

Кто-нибудь подскажет - после перезагрузки роутера правила перестают работать :( т.е. не стартуют ? Дропбеар запускается и работает нормально, но правило открывающее порт при загрузке не срабатывает ... прошивка последняя.

shell
22-03-2008, 21:49
Ну так никто и не подскажет ???

al37919
22-03-2008, 22:36
смотреть вывод iptables -L

shell
22-03-2008, 23:01
смотреть вывод iptables -L

А чего там смотреть ? естественно после перезагрузки роутера этих правил моих в таблице нет :(, я наверное чето не так делаю...

al37919
22-03-2008, 23:03
значит post-firewall не выполняется

bocman
24-03-2008, 07:13
А после перезагрузки post-firewall сождержит все изменения?
post-farewall точно исполняемый? первая строка какая в этом файле?
если вполнять команды, которые прописаны в post-farewall, вручную, они срабатывают? (лучше проверять копируя то, что написано в файле, что бы проверить и синтаксис)

shell
25-03-2008, 19:05
Да post-firewall после перезагрузки сохраняет изменения, исполняемый ли он я если честно не знаю :( и не знаю как проверить это.
первая строка #!/bin/sh
да строчки которые в нём копи-пастом срабатывают без проблем, ни каких больше идей что может быть ? Только вот ещё проблема 1-2 раза в сутки эти правила слетают сами по себе даже если роутер не перезагружался :( и самое обидное - слетают только для wan для lana всё пашет, и в iptables -L эти правила также существуют (когда слетели), но не выполняются, допустим - я заметил что правила слетели - загоняю их через командную строку снова, вывожу опять iptables -L и вижу как эти правила успешно задублировались в таблице - бред какойто.
я уже всю голову сломал что может быть такое :(, отключений эл-ва при этом нет ...
Сами правила выглядят так:
iptables -I INPUT -p tcp --dport 411 -j ACCEPT
iptables -I INPUT -p tcp --dport 2120 -j ACCEPT
и тоже самое
iptables -A INPUT -p tcp --syn --dport 411 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 2120 -j ACCEPT
или не тоже самое? вобщем пробовал итак и эдак.

bocman
26-03-2008, 05:58
Да post-firewall после перезагрузки сохраняет изменения, исполняемый ли он я если честно не знаю :( и не знаю как проверить это.

после команды
chmod +x /usr/local/sbin/post-firewall
этот файл станет испоняемым...

leniviy
04-06-2008, 10:52
Привет. Я хочу в эксп. целях сделать так, чтобы на 9901 порту у меня открывалась страничка яндекса, и чтобы к этому порту можно было подключиться снаружи. Не получается. Может быть это потому, что у пакетов источник не меняется, и их провайдер не пускает?
Мой внешний интерфейс vlan1


iptables -i vlan1 -I INPUT -p tcp --dport 9900:9999 -j ACCEPT
iptables -t nat -I PREROUTING -i vlan1 -p tcp --dport 9901 -j DNAT --to 213.180.204.8:80

Ilmarinen
04-06-2008, 18:10
Привет. Я хочу в эксп. целях сделать так, чтобы на 9901 порту у меня открывалась страничка яндекса, и чтобы к этому порту можно было подключиться снаружи. Не получается. Может быть это потому, что у пакетов источник не меняется, и их провайдер не пускает?
Мой внешний интерфейс vlan1


iptables -i vlan1 -I INPUT -p tcp --dport 9900:9999 -j ACCEPT
iptables -t nat -I PREROUTING -i vlan1 -p tcp --dport 9901 -j DNAT --to 213.180.204.8:80

Читаем внимательно http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
Дело в том что адрес получателя Вы заменили, а адрес отправителя нет, пакет ушел яндексу и от ответ отправил не Вашему асусу, а реальному отправителю пакета. Нужно еще сделать SNAT, в указанном выше руководстве это все хорошо описано.
Что-то вроде

iptables -t nat -A POSTROUTING -p tcp --dst 213.180.204.8 --dport 80 \
-j MASQUERADE

leniviy
04-06-2008, 19:24
получается пробрасывать порты либо изнутри наружу, либо снаружи внутрь. А снаружи наружу не получается.

Ilmarinen
05-06-2008, 13:03
получается пробрасывать порты либо изнутри наружу, либо снаружи внутрь. А снаружи наружу не получается.
А Вы читали IPTables Tutorial, пробовали описанный рецепт?
Обращаю внимание на то, что нужны два правила -- первое для замены адреса получателя пакета (DNAT) и второе для замены адреса отправителя (SNAT).
У меня работает

iptables -i vlan1 -I INPUT -p tcp --dport 9900 -j ACCEPT
iptables -t nat -I PREROUTING -i vlan1 -p tcp --dport 9900 -j DNAT --to IP-адрес-сайта:80
iptables -t nat -I POSTROUTING -p tcp --dst IP-адрес-сайта --dport 80 -j MASQUERADE

Closer
21-06-2008, 13:45
Привет All
Извиняюсь за глупый вопрос.

У меня следующая проблема: я получил внешний IP, соответственно с компа за пределами моей локальной сети он пингуется, а вот внутри самой локальной сети нет. Из-за этого возникают проблемы: например отлаживая web сайт на своём компе внутри сети идёт запрос на получение рисунка по внешнему IP, соответственно URL не находится и рисунок не грузиться.

Как я понял поискав по этому форуму проблема с NAT.

Помогите пожалуйсто его настроить или поделитесь ссылкой на описание решения моей проблемы (я думаю она возникает довольно часто и уже где-то описано что нужно делать в такой ситуации).

Заранее спасибо :)

P.S.
Если для решения необходима дополнительная информация, то я готов её предоставить.

vectorm
21-06-2008, 14:24
Привет All
Извиняюсь за глупый вопрос.

У меня следующая проблема: я получил внешний IP, соответственно с компа за пределами моей локальной сети он пингуется, а вот внутри самой локальной сети нет. Из-за этого возникают проблемы: например отлаживая web сайт на своём компе внутри сети идёт запрос на получение рисунка по внешнему IP, соответственно URL не находится и рисунок не грузиться.

Как я понял поискав по этому форуму проблема с NAT.

Помогите пожалуйсто его настроить или поделитесь ссылкой на описание решения моей проблемы (я думаю она возникает довольно часто и уже где-то описано что нужно делать в такой ситуации).

Заранее спасибо :)

P.S.
Если для решения необходима дополнительная информация, то я готов её предоставить.
А почему на сайте жесткие ссылку по IP?? разве по-человечески нельзя сделать? Тогда и изнутри он будет по внутреннему адресу работать.

Closer
21-06-2008, 15:59
А почему на сайте жесткие ссылку по IP?? разве по-человечески нельзя сделать? Тогда и изнутри он будет по внутреннему адресу работать.

Потому как приложение под Facebook. И относительные URL Facebook не хавает, ему нужны полные. Соответственно и он и я должны эти внешние IP видеть. Настроить так чтобы он видел внешние, а я внутренние я тоже не могу. Да даже если и смогу то при каждом деплое приложения прийдётся перелопачивать все локальные адреса.
Вобщем ИМХО проще разобраться раз и навсегда с внешним IP.

---

Я вот тут ещё ссылку нашол: http://wl500g.info/showthread.php?t=12348
Прочитал его и часть статьи на opennet, но так и не понял что конкретно надо сделать, а эксперементировать боюсь...

Правило с POSTROUTING у меня есть:


*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:VSERVER - [0:0]
-A PREROUTING -d 10.125.20.203 -j VSERVER
-A VSERVER -p tcp -m tcp --dport 5000 -j DNAT --to-destination 192.168.1.13:5000
-A POSTROUTING -o vlan1 ! -s 10.125.20.203 -j MASQUERADE
-A POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE
COMMIT

Соответственно здест 192.168.1.13 это комп в локальной сети.

ИМХО надо всего лишь выполнить на роутере команду (судя по статье на opennet):

iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.13 --dport 5000 -j SNAT --to-source 192.168.1.1

Так?

Closer
07-08-2008, 18:29
Вобщем всё те предположения что я написал до этого не верны :( Прочитав мануал по iptables и посматрев на таблицу nat я пришел к следующему правилу которое решает мою проблему:


iptables -t nat -A PREROUTING -d <EXTERNAL_IP> -j VSERVER

т.е. все пакеты которые идут на <EXTERNAL_IP> передаются в цепочку VSERVER которая в свою очередь передаёт их на компьютеры в моей локальной сети(в том числе и на мой комп если он прописан в VSERVER).

Вобщем получилось то что мне надо :)

redkaa
17-10-2008, 22:44
всем привет.
дома на роутере как раз стоит эта прошивка. вопрос такой: можно ли (и если можно, то как?) перенаправлять запрос из сети с одного сайта на другой. лучше, попробую объяснить на примере. в домашней сети есть некое устройство, которое обращается к сайту (по имени). Нужно, чтобы роутер автоматически переадресовывал этот запрос к другому сайту. Возможно ли это? где почитать примеры? нужно именно по имени. Примеров пока нигде не нашел... :-(

redkaa
17-10-2008, 23:31
всем привет.
дома на роутере как раз стоит эта прошивка. вопрос такой: можно ли (и если можно, то как?) перенаправлять запрос из сети с одного сайта на другой. лучше, попробую объяснить на примере. в домашней сети есть некое устройство, которое обращается к сайту (по имени). Нужно, чтобы роутер автоматически переадресовывал этот запрос к другому сайту. То есть нужно, чтобы роутер модифицировал http запрос. Возможно ли это? где почитать примеры? нужно именно по имени. Примеров пока нигде не нашел... :-(

DfDf
18-10-2008, 00:41
Transparent proxy с фильтрацией. Наверное можно прикрутить. Говорю чисто теоретически - ищите, может, и обрящите ;-)

redkaa
18-10-2008, 11:51
уже ночью понял (товарищи объяснили), что iptables только для манипуляции заголовками пакетов, но не для модификации http запросов.
вот еще как вариант - может, можно средствами встроенного веб-сервера переадресацию делать на внешний сервер? ну то есть если бы там работал php и можно бы было залить php файл в веб-каталог роутера - наверное, задача была бы решена. такое возможно?

lionfish0
18-10-2008, 15:48
Первое, что приходит на ум - поставить прозрачный прокси на роутере, тут пробегало несколько. squid нормально встает на роутер, он наверняка может модифицировать любые http-заголовки.

tiny
18-10-2008, 17:37
Как вариант - настроить файл hosts в устройстве на связку внешнего dns с внутренним ip и на сервере с этим ip настроить virtual hosts в настройках Web сервера. Но это для случая если нужно перенаправлять именно на свой сайт. А если на чужой, тогда через прокси.

redkaa
19-10-2008, 09:59
Боюсь что squid для меня сложен и невозможен (у меня поставлена прошивка на другой роутер). Впрочем, как и любой другой пакет - элементарно не хватит памяти.
Файлы настроек веб-севера не позволит менять провайдер :-(
Сейчас подумал о другом: встроенный веб-сервер поддерживает php или cgi скрипты?
Если поддерживает php - как узнать, где находится веб-папка, как в нее поместить свой файл с его сохранением после перезагрузки роутера?
Если поддерживает cgi - вдобавок в предыдущим двум вопросам - как добавить в настройки сервера еще одну cgi-папку и как заставить сервер обрабатывать php файл как если бы это был файл cgi?

Kid
18-11-2008, 00:37
добрый день!
есть кусок правил в таблице nat:
Chain VSERVER (2 references)
num target prot opt source destination
1 DNAT tcp -- anywhere anywhere tcp dpt:webcache to:192.168.1.1:80
2 DNAT tcp -- anywhere anywhere tcp dpt:57698 to:192.168.171.1:57698
3 DNAT tcp -- anywhere anywhere tcp dpt:5190 to:192.168.1.2:5190
4 DNAT tcp -- anywhere anywhere tcp dpt:46928 to:192.168.171.1:46928

мне нужно прибить 2 и 4 правило из пользовательской цепочки делаю iptables -t nat -D VSERVER 2, iptables -t nat -D VSERVER 4 отлично правил нет.
все бы хорошо но правила после рестарта роутера появляются загадочным образом вновь.
Как я пробовал играться удалял напрямую из vi путем редактирования файла /tmp/nat_rules с последующими командами
flashfs save
flashfs commit
flashfs enable

пробовал делать iptables-save правда куда он сохраняет я так и не понял или это тока вывод на консоль, перенаправление > в файл я не делал.

Собственно вопрос откуда берет настройки правил iptables при старте коробки с какого файла считывает видимо iptables-restore?
И как же мне по итогу прибить эти 2 правила из разряда полтергейст?
Как вариант уже расматриваю сохранение новых правил iptables-save > fileblabla c последующим востановлением из cat fileblabla | iptables-restore -c прописанных в /usr/local/sbin/post-firewall

P.S. дайте правильный бубен :rolleyes:

Power
18-11-2008, 01:45
Файлы /tmp/*_rules генерируются прошивкой после поднятия интерфейсов на основе данных из веб-морды и внутренних установок, а затем импортируются с помощью iptables-restore. Сохранять эти файлы смысла нет, т.к. каждый раз они создаются заново.
iptables-save не поможет по этой же причине.
Вам нужно просто удалить ненужные правила из таблицы Virtual Server List на странице NAT Setting - Virtual Server в веб-морде.

Kid
18-11-2008, 02:15
В том то и дело, что в веб морде таких правил давно нет, тока правила остались по факту, а в веб морде не отражаются среди других.

svk4286
18-11-2008, 05:55
Посмотрите

nvram show|grep forw
там UPnP прописывает проброс портов и иногда криво удаляет.И отключите его в вебморде.

Kid
18-11-2008, 11:58
Посмотрите

nvram show|grep forw
там UPnP прописывает проброс портов и иногда криво удаляет.И отключите его в вебморде.

О спасибо большое именно Вы дали хорошую наводку куда копать.
сделал получил то что искал
nvram show|grep forw
forward_port0=57698-57698>192.168.171.1:57698-57698,tcp,on,PURPLE_UPNP_PORT_FORWARD
forward_port1=5190-5190>192.168.1.2:5190-5190,tcp,on,PURPLE_UPNP_PORT_FORWARD
forward_port2=46928-46928>192.168.171.1:46928-46928,tcp,on,PURPLE_UPNP_PORT_FORWARD
size: 15272 bytes (17496 left)

ну дальше поисков по форуму слово nvram и о чудо nvram unset forward_portX

Всех благодарю за помощь, удачи! :)

dimka2000
20-11-2008, 22:04
только что поставил dd-wrt mega generic прошивку. Очень не нравится как настроен iptables по дефолту там. Прилагаю цепочку INPUT.
Что за дела с первыми двумя разрешенними сабнетами? И почему несколько повторяющихся строк с dpt 520?
Я хочу последовать совету из етой статьи:
http://www.dd-wrt.com/wiki/index.php/Firewall_Builder
и сделать мою собственную конфигурацию на jffs

Может кто-нибудь поделится хорошей базовой iptables конфигурацией? или придется пользоваться firewall builder?

Еще вопрос, если я так сделаю, смогу ли я по прежнему пользоваться веб-интерфейсом чтобы например добавить port forwarding, или все придется через консоль добавлять??


Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT 0 -- 194.231.229.20 0.0.0.0/0
ACCEPT 0 -- 212.65.2.116 0.0.0.0/0
ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:520
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:520
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:520
logaccept tcp -- 0.0.0.0/0 192.168.123.254 tcp dpt:22
logdrop icmp -- 0.0.0.0/0 0.0.0.0/0
logdrop 2 -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5060
ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 state NEW
logaccept 0 -- 0.0.0.0/0 0.0.0.0/0 state NEW
logdrop 0 -- 0.0.0.0/0 0.0.0.0/0

Power
21-11-2008, 21:43
Нерепрезентативный вывод iptables. Нужно использовать ключ -v или вообще запускать iptables-save, если таковой в этой прошивке имеется.

kondrat
22-11-2008, 19:49
Прошу помощи в создании правил в iptables. Для блокировки Контакта, ICQ, Mail.

lagshmi
23-11-2008, 12:36
до коле будут задавать тупые вопросы!!!!
удалите тему

matrix200
03-12-2008, 17:39
http://bifrost.heimdalls.com

Насколько реально портировать такую штуку?
Я посмотрел у них на сайте ,там не совсем понятно платное оно или нет.
Сама апликация вроде на перле.
Нужно только iptables > 1.23 , iproute2 и апач.
По моему сильно упростит работу с файрволлом.

angel_il
03-12-2008, 19:04
License cost is currently $25US for home use, or $100US for commercial use.

OMG $25?! и что такая нереально великая мегаутилита?!

Alexander B.
03-12-2008, 19:09
Работу с файрволлом предельно упростит не наворачивание веб-морды, которая только маскирует реальные настройки, а прочтение http://iptables-tutorial.frozentux.net/iptables-tutorial.html

matrix200
03-12-2008, 19:41
Angel-il , там не совсем понятно нужно ли платить или нет.
Сам автор говорит что можно использовать и без лицензии.
Кроме того если посмотрите оно не обновлялось с 2003 года.
Возможно если обратиться к автору он будет заинтересован помочь.

Александр , никто не говорит что не надо изучать работу iptables , но я полагаю что такая вебморда все же упростит работу с девайсом .
Все таки удобнее работать с файрволлом когда можно посмотреть рулы как удобный список , чем сидеть и скрулить вверх вниз iptables -L :)

lagshmi
04-12-2008, 08:42
Да знание - сила:-) на опеннете есть хорошие статьи по настройке iptables.
а можно сделать так:
скачать с http://www.fwbuilder.org прогу
в ASUS# iptables-save > some_file_dump.conf
скачиваете. подгружаете в прогу и крутите раз уж так хочтся в графическом интерфейсе, правда я думаю что все таки нагряднее в стандартном iptables -t nat -L -n -v -x и дамп настроек.

Boris2777
14-12-2008, 22:55
вкратце - irc сервер слушает lan порт роутера - 172.16.99.1
внешний ип 81.88.216.132

если серверу сказать слушать все ип, то извне он все равно не доступен..
есть ли какое-нибудь правило iptables, которое разрешит извне (с внешнего ип из интернета) конектится к внутреннему серверу 172.16.99.1 по порту 6667?

и ещё - как расшарить альтернативный порт 443 с наружи (с адреса 81.88.216.132) на порт 6667 внутри? заранее спасибо!

DafT
15-12-2008, 06:35
вкратце - irc сервер слушает lan порт роутера - 172.16.99.1
внешний ип 81.88.216.132

если серверу сказать слушать все ип, то извне он все равно не доступен..
есть ли какое-нибудь правило iptables, которое разрешит извне (с внешнего ип из интернета) конектится к внутреннему серверу 172.16.99.1 по порту 6667?

NAT Setting - Virtual Server заполните на роутере



и ещё - как расшарить альтернативный порт 443 с наружи (с адреса 81.88.216.132) на порт 6667 внутри? заранее спасибо!

тамжеж тока в порт рэйндж ставиться 443 а в локал порт 6667

ну или как альтернатива через
iptables -i vlan1 -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination <внутренний IP>:6667
ну и естессно не забыть добавить правило на открытие данного порта и форвардинг =)

Megarem
12-01-2009, 18:55
Рутер у меня давно, но вот внешний адрес появился недавно и сразу же начали подбирать пароли на ssh (у меня лог на винте и он как-то разросся до неприличных 50 метров за несколько дней). Решил я добавить блокировку брута через ipt_recent и посмотрел внимательно на дефолтные iptables (если в post-firewall ничего не писать). Сразу же появились вопрос.
Что там делают цепочки logdrop, logaccess, SECURITY, MAC? Они хоть когда-нибудь используются (если чего-нибудь настроить по другому в вебинтерфейсе)? У меня они никуда не подключены.

Power
12-01-2009, 20:16
logaccept и logdrop используются, если включить в веб-морде логгирование пакетов (Logged packets type) - Accepted, Dropped или Both.
SECURITY используется, если включить защиту от DoS-атак (Enable DoS protection).
MAC (сам не проверял, но будет логично, что) используется, если включить фильтрацию по MAC (Internet Firewall - MAC Filter).

vectorm
12-01-2009, 21:05
Рутер у меня давно, но вот внешний адрес появился недавно и сразу же начали подбирать пароли на ssh (у меня лог на винте и он как-то разросся до неприличных 50 метров за несколько дней). Решил я добавить блокировку брута через ipt_recent и посмотрел внимательно на дефолтные iptables (если в post-firewall ничего не писать). Сразу же появились вопрос.
Что там делают цепочки logdrop, logaccess, SECURITY, MAC? Они хоть когда-нибудь используются (если чего-нибудь настроить по другому в вебинтерфейсе)? У меня они никуда не подключены.
А что мешает съехать SSH на нестандартный порт?
Всякие "кулхацкеры" сразу идут лесом.
У меня за все время ни разу никто не ломился по SSH, а вот на почтовые порты - постоянно - видимо особо грамотных, кто знает что такое nmap например, мало. И хорошо.

dimmer
10-02-2009, 12:28
ALL, здоавствуй.

Подскажи, пожалуйста, что за 2 строкb в цепочке INPUT iptables:
3 ACCEPT all -- anywhere anywhere state NEW
4 ACCEPT all -- anywhere anywhere state NEW

Остальное вроде бы всё нужное, а это... Подскажите, пожалуйста. В инете часто тоже видел, но единственный смысл правила, который мне удалось сложить в него - это разрешение входящих новых пакетов без син-флага по любому порту/протоколу.
Зачем?? Или я неправильно понимаю правило?

Less
10-02-2009, 12:56
ALL, здоавствуй.
...
3 ACCEPT all -- anywhere anywhere state NEW
...


Странно но одна 4-я строка дублирует 3-ю.
А по сути: принимать (ACCEPT) новые (state NEW) соединения, по любому порту/протоколу (proto all) со всех адресов.

Дальше читаем http://iptables-tutorial.frozentux.net/


...
В пределах iptables, соединение может иметь одно из 4-х базовых состояний:
NEW, ESTABLISHED, RELATED и INVALID. Позднее мы остановимся на каждом из них
более подробно.
Для управления прохождением пакетов, основываясь на их состоянии, используется
критерий --state.
...

dimmer
10-02-2009, 13:45
Less, спасибо за ответ!
Но указанную информацию я нашёл. Поясните, пожалуйста: правильно ли я понимаю, что по этим правилам все входящие соединения (новые, но без SYN) будут разрешены, в т.ч. снаружи? Или неправильно?
Нужна эта строчка или нет?

al37919
10-02-2009, 13:59
насчет дублирования --- посмотрите iptables -L --verbose

Power
10-02-2009, 18:53
Эти две строчки различаются, но, как правильно заметили выше, вы этого не увидите без опции --verbose (или, сокращённо, -v), как не увидите без неё и многие другие детали.

Less
10-02-2009, 18:55
Less, спасибо за ответ!
Но указанную информацию я нашёл. Поясните, пожалуйста: правильно ли я понимаю, что по этим правилам все входящие соединения (новые, но без SYN) будут разрешены, в т.ч. снаружи? Или неправильно?
Нужна эта строчка или нет?

Смотрите по ссылке указаной в предыдущем посте



Признак NEW сообщает о том, что пакет является первым для данного соединения. Это означает, что это первый пакет в данном соединении, который увидел модуль трассировщика. Например если получен SYN пакет являющийся первым пакетом для данного соединения, то он получит статус NEW. Однако, пакет может и не быть SYN пакетом и тем не менее получить статус NEW. Это может породить определенные проблемы в отдельных случаях, но может оказаться и весьма полезным, например когда желательно "подхватить" соединения, "потерянные" другими брандмауэрами или в случаях, когда таймаут соединения уже истек, но само соединение не было закрыто.

dimmer
11-02-2009, 07:25
al37919, Poer, Less, спасибо!

Действительно, всё оказалось просто: понимал я правильно, но без verbose не было видно интерфейс. :)
Спасибо, вопрос закрыт!

mindgen
14-02-2009, 07:16
С Linux'ом только начинаю знакомиться, поэтому возник вопрос. Поставил сервак lighttpd, крутится он на 8081 порту, а затем ADOS. Из локалки все отлично. Все открывается. Т.е. приходится набирать <ip-router>:8081/ados. Что не очень нравится. Хочется, чтобы нужно было набирать в строке браузера пользователям адрес вида <ip-router>/ados. Но на 80 порту крутится похоже встроенный сервак в прошивку для доступа к Web-интерфейсу настройки роутера. Вот теперь вопрос. Каким образом нужно задать правила через iptables чтобы:
1) Набирать в строке браузера адрес вида <ip-router>/ados
2) Открыть доступ к веб-серверу из WAN. И чтобы также набирать в строке браузера адрес вида <ip-router>/ados.

P.S. Может кто поповетует книги, статьи где детально обсуждается структура и механизм работы iptables. Т.е. какие таблицы за что отвечаю и т.д.

al37919
14-02-2009, 08:00
http://www.opennet.ru/docs/RUS/iptables/

mindgen
14-02-2009, 08:14
Спасибо, буду разбираться :)

mindgen
15-02-2009, 05:45
Уже 2 дня сижу, ни как не получаестся настроить. :( Может кто поможет прямым советом? :) Кто-нибудь уже сталкивался наверно с такой проблемой...

StaREViL
15-02-2009, 13:23
Во-первых, думаю есть смысл перенести встроенный httpd на другой порт не на 80. Тогда ты сможешь запустить свой lighttpd на 80 порту и вообще не париться с редиректом...

swetlov
15-02-2009, 18:20
весь день тоже самое пытаюсь сделать что и топикстартер
хочу пакеты из WAN перенаправлять с 80 порта на 8081
а с локального компьютера при этом не редиректить чтобы был доступ к веб интерфейсу по 80 порту
делаю вот так:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i wan+ -p tcp --dport 80 -j REDIRECT --to-ports 8081

в результате любой адрес в браузере ведет на роутер..
что не так?

StaREViL
15-02-2009, 19:02
весь день тоже самое пытаюсь сделать что и топикстартер
хочу пакеты из WAN перенаправлять с 80 порта на 8081
а с локального компьютера при этом не редиректить чтобы был доступ к веб интерфейсу по 80 порту
делаю вот так:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i wan+ -p tcp --dport 80 -j REDIRECT --to-ports 8081

в результате любой адрес в браузере ведет на роутер..
что не так?

А почему перенос не устраивает веб-морды на другой порт?

mindgen
15-02-2009, 19:12
Не могу найти файл конфига для встроенного web-сервера. Поиск по маске *.conf его не выдает... :(
Искал httpd.conf

P.S. Задание правил через iptables делал как swetlov - результат такой же...
Так что придется все таки переносить стандартную веб-морду.

vectorm
15-02-2009, 20:09
весь день тоже самое пытаюсь сделать что и топикстартер
хочу пакеты из WAN перенаправлять с 80 порта на 8081
а с локального компьютера при этом не редиректить чтобы был доступ к веб интерфейсу по 80 порту
делаю вот так:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i wan+ -p tcp --dport 80 -j REDIRECT --to-ports 8081

в результате любой адрес в браузере ведет на роутер..
что не так?
Выделенное красным - это что такое? :eek:
И по-хорошему, надо не to-ports указать, а -to-destination, чтобы роутеру не мучиться с выбором.
Например так:

iptables -A INPUT -p tcp -m tcp -d 192.168.1.1 --dport 8081 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
Тут сначала разрешаем прием на порту 8081, а потом перенаправляем порт (я в курсе, что реальная последовательность выполнения команд обратная, для восприятия так проще объяснить).

swetlov
15-02-2009, 22:43
Красное выделение это ppp0 должно было быть, но что то не вышло 8(

Сейчас пробую вот так:

iptables -A INPUT -p tcp -m tcp -d 192.168.1.1 --dport 8081 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -d 192.168.1.1 --dport 80 -j ACCEPT

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8081

Пакет пришедший с ppp0 на порт 80 перенаправляется на порт 8081..
не работает ни так ни так:


iptables -A INPUT -p tcp -m tcp -d 192.168.1.1 --dport 8081 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -d 192.168.1.1 --dport 80 -j ACCEPT

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j REDIRECT --to-ports 8081

все сверял с мануалом, не понимаю в чем дело..

theMIROn
16-02-2009, 05:13
# allow http access from wan & lan
iptables -t nat -I VSERVER 1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8081
iptables -A INPUT -p tcp -m tcp --dport 8081 -j ACCEPT

mindgen
16-02-2009, 11:27
# allow http access from wan & lan
iptables -t nat -I VSERVER 1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8081
iptables -A INPUT -p tcp -m tcp --dport 8081 -j ACCEPT

Попробовал так, мне не помогло... :( Буду еще разбираться...

swetlov
16-02-2009, 15:45
iptables -t nat -A VSERVER -p tcp -m tcp --dport 81 -j DNAT --to-destination 192.168.1.1:8081

так работает..
с 80ым нет
где собака зарыта?

al37919
16-02-2009, 16:11
предлагаю свой вариант:


iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
iptables -t nat -A PREROUTING -i ! $3 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8081


при ручном тестировании $3 заменить на br0

при этом строки типа этой

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
быть не должно

а вообще, еще провайдер может блокировать 80й порт

theMIROn
16-02-2009, 16:54
Попробовал так, мне не помогло... :( Буду еще разбираться...
первыми строчками в post-firewall еще должны быть


# set default input rule
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP

иначе добавляемые в конец входящие правила (iptabled -A INPUT ...) просто не будут работать

al37919
16-02-2009, 17:58
эт точно. И вообще, во-первых, добавлять правила надо сначала вручную --- на грубые ошибки iptables будет сразу ругаться. Во-вторых, добавив правило, надо проверять куда оно попало и попало ли вообще куда-нибудь:

iptables -L
iptables -L -t nat

mindgen
16-02-2009, 19:13
Вот полное содержание моего post-firewall из /usr/local/sbin/



#!/bin/sh
# set default input rule
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
# allow http access from wan & lan
iptables -t nat -A VSERVER -p tcp -m tcp --dport 80 -j DNAT
--to-destination 10.0.0.1:8081
iptables -A INPUT -p tcp -m tcp --dport 8081 -j ACCEPT

У роутера ip=10.0.0.1

Захожу с телефона -> облом. :(

Выполняю эти команды вручную -> заходит... :)
Посмотрел по iptables -L -t nat -> В VSERVER нет правила. Когда добавляешь вручную - правило есть.

Что не так в моем post-firewall?

theMIROn
16-02-2009, 19:47
Выполняю эти команды вручную -> заходит... :)
Посмотрел по iptables -L -t nat -> В VSERVER нет правила. Когда добавляешь вручную - правило есть.
Что не так в моем post-firewall?
Все так, просто не включено "Enable Virtual Server" на странице NAT Settings / Virtual Server

mindgen
17-02-2009, 03:38
Супер! :) Спасибо всем откликнувшимся!

al37919
17-02-2009, 06:54
а чтобы его не включать нужно слово VSERVER заменить на PREROUTING, что уже предлагалось

ivantest
07-03-2009, 23:35
iptables -L -nv или просто iptables -L показывает пустую таблицу


Chain INPUT (policy ACCEPT 16030 packets, 1325K bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 15511 packets, 2359K bytes)
pkts bytes target prot opt in out source destination

что делаю нетак?

Less
08-03-2009, 01:22
Выполните команду и посмотрим

iptables-save

А вообще у Вас нету правил в таблице, возможно была коанда

iptables -F

al37919
08-03-2009, 06:10
а может надо просто включить файрволл в веб-морде?

Power
08-03-2009, 14:27
А вы эту команду на роутере выполняли? Или на компе? Уж очень смущают меня цифры:


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Или он у вас не в home gateway режиме?

ivantest
08-03-2009, 17:41
все настройки стандартные. роутер работает в режиме Access Point. или разве в этом режиме фаервол не пашет? разница та какая, там линукс крутится и по идее iptables должен работать. в режиме Access Point в вебинтерфейсе нету такой опции Firewall. а режим Home Gateway мне незачем. iptables всеравно должен работать.
еще в режиме Home Gateway были проблемы со скачиванием файлов и через ipkg и через wget. просто встает после нескольких секунд закачки и все. и не только у меня.
все команды выполняю на роутере=))))

iptables -F никто не говорил.

iptables-save показывает

# Generated by iptables-save v1.2.7a on Sun Mar 8 20:48:38 2009
*nat
:PREROUTING ACCEPT [1502:71854]
:POSTROUTING ACCEPT [7527:451934]
:OUTPUT ACCEPT [7527:451934]
COMMIT
# Completed on Sun Mar 8 20:48:38 2009
# Generated by iptables-save v1.2.7a on Sun Mar 8 20:48:38 2009
*mangle
:PREROUTING ACCEPT [99344:8314507]
:INPUT ACCEPT [98096:8275535]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [97473:10290295]
:POSTROUTING ACCEPT [97473:10290295]
COMMIT
# Completed on Sun Mar 8 20:48:38 2009
# Generated by iptables-save v1.2.7a on Sun Mar 8 20:48:38 2009
*filter
:INPUT ACCEPT [98100:8275695]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [97482:10291363]
COMMIT
# Completed on Sun Mar 8 20:48:38 2009

:FORWARD ACCEPT [0:0] а вот это действительно очень интересно. в Home Gateway переключаться чтоли? дык опять косяки со скачиванием будут...

Power
08-03-2009, 18:10
Ну смотрите: в Home Gateway режиме трафик локальной (вашей домашней) подсети обслуживается свичем (встроенным в роутер), а трафик между подсетями обслуживается самим роутером. В режиме Access Point вторая функция отключается и роутер становится таким же клиентом, как и все остальные в сети, т.е. от него остаётся свич и беспроводной интерфейс, соединённый программно с тем же свичем.

ivantest
08-03-2009, 18:26
с самого начала когда пошли косяки при закачках я нашел на форуме что надо просто переключить роутер в режим Access Point и все сразу станет нормально. я так и сделал. и все действительно стало работать и все закачивается и ipkg нормально все качает и т.д. а тут ведь вот какая штука действительно.

al37919
08-03-2009, 18:44
а кто инет то раздает?

ivantest
08-03-2009, 19:05
а кто инет то раздает?

адсл модем

al37919
08-03-2009, 19:10
значит на нем и надо файрвол ваять

ivantest
08-03-2009, 20:01
на адсл модеме понятно можно порты открывать, айпишники разрешать и прочие штуки. но хотелось бы чтобы все что идет на роутер разруливалось силами самого роутера. то есть запрещалось/разрешалось и т.д. для чего там iptables и существует. и вроде как должен на существующем интерфейсе работать. но на INPUT и OUTPUT тоже нет правил (не показывает). хотя очевидно что траффик есть и там и там.

Chain INPUT (policy ACCEPT 110K packets, 9286K bytes)
Chain OUTPUT (policy ACCEPT 108K packets, 11M bytes)
ну как минимум для ssh точно правило работает ведь.

Power
08-03-2009, 23:53
Ну iptables-то работает. Просто ему правила никакие не прописаны и весь трафик по умолчанию разрешён. Если нужно - пропишите сами, post-boot вам в помощь (не уверен, что post-firewall в режиме Access Point вызывается когда-либо).

ivantest
09-03-2009, 15:19
Ну iptables-то работает. Просто ему правила никакие не прописаны и весь трафик по умолчанию разрешён. Если нужно - пропишите сами, post-boot вам в помощь (не уверен, что post-firewall в режиме Access Point вызывается когда-либо).

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

ivantest
09-03-2009, 23:33
роутер работает в режиме Access Point. как в таком случае сделать чтобы работал iptables? прописываю например самые простые правила в post-boot (потому как говорят что post-firewall в этом режиме не отрабатывает)

iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
flashfs save && flashfs commit && flashfs enable && reboot
после чего вообще никак не пускает, не через ssh, не через telnet, никак вообще. или здесь без вариантов и надо переключаться в режим Home Gateway (в котором понятно что все будет замечательно)?

кстати, как переключится в Home Gateway? в вебинтерфейсе переключаю все ок вроде показывает, но видно что на самом деле ничего не срабатывает и после перезагрузки все опять как было в режиме Access Point.

al37919
10-03-2009, 05:21
если Finish и Save&Restart и взаправду не помогают, то можно сбросить настройки в дефолт. По умолчанию режим = home gateway

Zyxmon
10-03-2009, 05:52
А зачем iptables в режиме Access Point? Не нужен он. В этом режиме все eth интерфейсы и wlan сбриджеваны.

ivantest
10-03-2009, 14:14
если Finish и Save&Restart и взаправду не помогают, то можно сбросить настройки в дефолт. По умолчанию режим = home gateway

там есть только Apply. после чего он перекидывает на первый шаг Quick Wizard - выбор time zone.
значит вариант тогда через вебинтерфейс закинуть только содержимое флэша, а остальное все придется настроить с нуля.


А зачем iptables в режиме Access Point? Не нужен он. В этом режиме все eth интерфейсы и wlan сбриджеваны.

как зачем? ну и что что сбриджеваны. iptables всеравно должен висеть на существущем интерфейсе и управлять траффиком - разрешать/запрещать и т.д. если существует интерфейс - значит должен быть фаервол, которым надо зыкрывать нафик все что возможно. ну а далее уже разруливать. другой вопрос - почему iptables как-то странно работает вернее вообще не работает в режиме Access Point?

kom1
10-03-2009, 17:08
Есть 2 counter-strike server на разный портах, одном ip опубликованный через WL500gp вот таким вот макаром:
http://savepic.ru/466936.jpg

Есть проблема: сервера периодически недоступены, что видно из мониторинга http://www.cs.yukhnov.ru/monitor/
Людей уже играющих не выкидывает, но подключится к серверу трудно, пишет, что он не доступен. В мониторинге тоже периодически offline:confused:

Вот лог:

Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=81.243.218.33 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=50 ID=39119 PROTO=UDP SPT=4222 DPT=27015 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=87.116.229.39 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=122 ID=29440 PROTO=UDP SPT=1246 DPT=27015 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=77.241.45.102 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=116 ID=44168 PROTO=UDP SPT=4988 DPT=27016 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=77.241.45.102 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=116 ID=44169 PROTO=UDP SPT=4989 DPT=27016 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=216.165.55.148 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=51 ID=620 PROTO=UDP SPT=50105 DPT=27015 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=201.243.51.133 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=112 ID=19284 PROTO=UDP SPT=49602 DPT=27016 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=83.10.9.192 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=117 ID=5594 PROTO=UDP SPT=1194 DPT=27015 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=83.10.9.192 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=117 ID=5595 PROTO=UDP SPT=1194 DPT=27016 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=95.133.224.169 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=117 ID=52473 PROTO=UDP SPT=28211 DPT=27016 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=201.26.4.73 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=112 ID=7266 PROTO=UDP SPT=1243 DPT=27015 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=195.182.194.1 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=21160 PROTO=UDP SPT=56304 DPT=27015 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=92.100.123.3 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=119 ID=45026 PROTO=UDP SPT=2794 DPT=27016 LEN=33
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=212.1.94.99 DST=192.168.1.21 LEN=40 TOS=0x00 PREC=0x00 TTL=114 ID=35361 PROTO=UDP SPT=10958 DPT=27015 LEN=20
Mar 10 20:01:43 kernel: DROP IN=ppp0 OUT=br0 SRC=80.108.162.149 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=116 ID=481 PROTO=UDP SPT=1041 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=77.241.45.102 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=116 ID=44170 PROTO=UDP SPT=4990 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=77.241.45.102 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=116 ID=44171 PROTO=UDP SPT=4991 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=89.34.16.215 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=115 ID=58306 PROTO=UDP SPT=1445 DPT=27015 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=94.178.183.145 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=118 ID=14994 PROTO=UDP SPT=2303 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=89.178.240.161 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=121 ID=60380 PROTO=UDP SPT=2529 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=94.31.237.5 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=119 ID=25854 PROTO=UDP SPT=1051 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=79.118.177.35 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=20680 PROTO=UDP SPT=1195 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=81.30.195.109 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=28563 PROTO=UDP SPT=62380 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=95.71.7.39 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=119 ID=15882 PROTO=UDP SPT=1546 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=81.236.253.32 DST=192.168.1.21 LEN=53 TOS=0x10 PREC=0x20 TTL=118 ID=8750 PROTO=UDP SPT=58170 DPT=27016 LEN=33
Mar 10 20:01:44 kernel: DROP IN=ppp0 OUT=br0 SRC=81.236.253.32 DST=192.168.1.21 LEN=53 TOS=0x10 PREC=0x20 TTL=118 ID=8813 PROTO=UDP SPT=58170 DPT=27015 LEN=33

Подскажите, что не так?

Less
10-03-2009, 18:25
А что не так, всё так.
Пакеты дропает предположытельно вот ето правило:

-A SECURITY -p udp -m limit --limit 5/sec -j RETURN

Но так как Вы не показали правила

iptables-save

Мы можем только догадываться...

Либо добавте правило в цепочку FORWARD либо в SECURITY.

kom1
10-03-2009, 18:42
Вот правила:

[kom1@WL root]$ iptables-save
# Generated by iptables-save v1.2.7a on Tue Mar 10 21:36:19 2009
*nat
:PREROUTING ACCEPT [6242:1251443]
:POSTROUTING ACCEPT [32422:1719192]
:OUTPUT ACCEPT [727:44423]
:VSERVER - [0:0]
-A PREROUTING -d выделленный ип -j VSERVER
-A PREROUTING -d 10.27.67.222 -j VSERVER
-A PREROUTING -d выделленный ип -p udp -m udp --sport 6112 -j NETMAP --to 192.168
1.0/24
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -p udp -m udp --dport 6112 -j NETMA
--to выделленный ип/32
-A POSTROUTING -s ! выделленный ип -o ppp0 -j MASQUERADE
-A POSTROUTING -s ! 10.27.67.222 -o vlan1 -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 MASQUERADE
-A VSERVER -p tcp -m tcp --dport 15055 -j DNAT --to-destination 192.168.1.22:15
55
-A VSERVER -p udp -m udp --dport 15055 -j DNAT --to-destination 192.168.1.22:15
55
-A VSERVER -p tcp -m tcp --dport 29636 -j DNAT --to-destination 192.168.1.22:29
36
-A VSERVER -p udp -m udp --dport 14436 -j DNAT --to-destination 192.168.1.22:14
36
-A VSERVER -p tcp -m tcp --dport 8500 -j DNAT --to-destination 192.168.1.22:850

-A VSERVER -p udp -m udp --dport 29636 -j DNAT --to-destination 192.168.1.22:29
36
-A VSERVER -p tcp -m tcp --dport 29426 -j DNAT --to-destination 192.168.1.22:29
26
-A VSERVER -p udp -m udp --dport 29426 -j DNAT --to-destination 192.168.1.22:29
26
-A VSERVER -p tcp -m tcp --dport 27015 -j DNAT --to-destination 192.168.1.21:27
15
-A VSERVER -p udp -m udp --dport 27015 -j DNAT --to-destination 192.168.1.21:27
15
-A VSERVER -p tcp -m tcp --dport 27020 -j DNAT --to-destination 192.168.1.21:27
20
-A VSERVER -p udp -m udp --dport 27020 -j DNAT --to-destination 192.168.1.21:27
20
-A VSERVER -p tcp -m tcp --dport 21380 -j DNAT --to-destination 192.168.1.21:22
-A VSERVER -p udp -m udp --dport 21380 -j DNAT --to-destination 192.168.1.21:22
-A VSERVER -p tcp -m tcp --dport 21381 -j DNAT --to-destination 192.168.1.21:59
0
-A VSERVER -p udp -m udp --dport 21381 -j DNAT --to-destination 192.168.1.21:59
0
-A VSERVER -p tcp -m tcp --dport 27016 -j DNAT --to-destination 192.168.1.21:27
16
-A VSERVER -p udp -m udp --dport 27016 -j DNAT --to-destination 192.168.1.21:27
16
-A VSERVER -p tcp -m tcp --dport 20:21 -j DNAT --to-destination 192.168.1.21:21
-A VSERVER -p tcp -m tcp --dport 27015 -j DNAT --to-destination 192.168.1.21:27
15
-A VSERVER -p tcp -m tcp --dport 27016 -j DNAT --to-destination 192.168.1.21:27
16
-A VSERVER -j DNAT --to-destination 192.168.1.21
COMMIT
# Completed on Tue Mar 10 21:36:19 2009
# Generated by iptables-save v1.2.7a on Tue Mar 10 21:36:19 2009
*mangle
:PREROUTING ACCEPT [11979785:1146731919]
:INPUT ACCEPT [14621:2209339]
:FORWARD ACCEPT [11960817:1143415849]
:OUTPUT ACCEPT [14743:4566681]
:POSTROUTING ACCEPT [11903476:1145211130]
COMMIT
# Completed on Tue Mar 10 21:36:19 2009
# Generated by iptables-save v1.2.7a on Tue Mar 10 21:36:19 2009
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [1444:69594]
:OUTPUT ACCEPT [14657:4551695]
: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 -d 224.0.0.0/240.0.0.0 -p 2 -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp ! --dport 1900 -j ACCEPT
-A INPUT -i ppp0 -m state --state NEW -j SECURITY
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -j logdrop
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j logdrop
-A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j TCPMSS --clamp-mss-to-p
tu
-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 -m conntrack --ctstate DNAT -j ACCEPT
-A SECURITY -p tcp -m tcp --tcp-flags 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/se
-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-seque
ce --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 Tue Mar 10 21:36:19 2009

Я в linux новичек:(

Нашел:

-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN

Увеличить время?

Less
10-03-2009, 19:01
Добавте


iptables -I FORWARD 3 -i vlan7 -p tcp --dport 27015 -d 192.168.1.21 -j ACCEPT
iptables -I FORWARD 4 -i vlan7 -p udp --dport 27015 -d 192.168.1.21 -j ACCEPT



iptables -I FORWARD 3 - означает что правило будет под №3 в цепочке FORWARD после етих правил

-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j logdrop

kom1
10-03-2009, 19:13
iptables -I FORWARD 3 -i vlan7 -p tcp --dport 27015 -d 192.168.1.21 -j ACCEPT
iptables -I FORWARD 4 -i vlan7 -p udp --dport 27015 -d 192.168.1.21 -j ACCEPT

reboot

Результат:

Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=81.88.114.134 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=38699 PROTO=UDP SPT=4321 DPT=27015 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=193.110.113.78 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=1964 PROTO=UDP SPT=1429 DPT=27015 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=201.27.46.211 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=112 ID=41740 PROTO=UDP SPT=60451 DPT=27016 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=57 TOS=0x00 PREC=0x00 TTL=120 ID=28316 PROTO=UDP SPT=27005 DPT=27016 LEN=37
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=122.162.115.157 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=114 ID=1057 PROTO=UDP SPT=1074 DPT=27016 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=57 TOS=0x00 PREC=0x00 TTL=120 ID=28317 PROTO=UDP SPT=27005 DPT=27016 LEN=37
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=81.88.114.134 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=38700 PROTO=UDP SPT=4322 DPT=27015 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=89.200.227.100 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=116 ID=14652 PROTO=UDP SPT=2077 DPT=27016 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=57 TOS=0x00 PREC=0x00 TTL=120 ID=28318 PROTO=UDP SPT=27005 DPT=27016 LEN=37
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=189.73.252.57 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=115 ID=41779 PROTO=UDP SPT=2470 DPT=27015 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=81.88.114.134 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=38703 PROTO=UDP SPT=4324 DPT=27015 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=78.58.80.253 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=122 ID=56840 PROTO=UDP SPT=1647 DPT=27015 LEN=33
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=57 TOS=0x00 PREC=0x00 TTL=120 ID=28320 PROTO=UDP SPT=27005 DPT=27016 LEN=37
Jan 1 03:00:16 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=57 TOS=0x00 PREC=0x00 TTL=120 ID=28321 PROTO=UDP SPT=27005 DPT=27016 LEN=37
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=193.110.113.78 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=120 ID=2120 PROTO=UDP SPT=1429 DPT=27016 LEN=33
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=55 TOS=0x00 PREC=0x00 TTL=120 ID=28322 PROTO=UDP SPT=27005 DPT=27016 LEN=35
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=95.37.107.80 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=119 ID=45746 PROTO=UDP SPT=1638 DPT=27016 LEN=33
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=77.54.79.15 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=106 ID=7567 PROTO=UDP SPT=1150 DPT=27016 LEN=33
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=55 TOS=0x00 PREC=0x00 TTL=120 ID=28323 PROTO=UDP SPT=27005 DPT=27016 LEN=35
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=201.27.46.211 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=112 ID=41775 PROTO=UDP SPT=60451 DPT=27015 LEN=33
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=77.54.79.15 DST=192.168.1.21 LEN=53 TOS=0x00 PREC=0x00 TTL=106 ID=7579 PROTO=UDP SPT=1150 DPT=27015 LEN=33
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=81.88.114.134 DST=192.168.1.21 LEN=51 TOS=0x00 PREC=0x00 TTL=120 ID=38712 PROTO=UDP SPT=27005 DPT=27015 LEN=31
Jan 1 03:00:17 kernel: DROP IN=ppp0 OUT=br0 SRC=95.52.123.154 DST=192.168.1.21 LEN=57 TOS=0x00 PREC=0x00 TTL=120 ID=28324 PROTO=UDP SPT=27005 DPT=27016 LEN=37

Less
10-03-2009, 19:28
Обясню у Вас WAN интерфейсом есть ppp0 я дал Вам пример.

А теперь по сути добавте в файл /usr/local/sbin/post-firewall


# Для сервера cs1
iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 27015 -j DNAT --to-destination 192.168.1.21:27015
iptables -t nat -I PREROUTING -i ppp0 -p udp --dport 27015 -j DNAT --to-destination 192.168.1.21:27015
iptables -I FORWARD 3 -i ppp0 -p tcp --dport 27015 -d 192.168.1.21 -j ACCEPT
iptables -I FORWARD 4 -i ppp0 -p udp --dport 27015 -d 192.168.1.21 -j ACCEPT
# Для сервера cs2
iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 27016 -j DNAT --to-destination 192.168.1.21:27016
iptables -t nat -I PREROUTING -i ppp0 -p udp --dport 27016 -j DNAT --to-destination 192.168.1.21:27016
iptables -I FORWARD 5 -i ppp0 -p tcp --dport 27016 -d 192.168.1.21 -j ACCEPT
iptables -I FORWARD 6 -i ppp0 -p udp --dport 27016 -d 192.168.1.21 -j ACCEPT


Не забудьте выполнить flashfs save && flashfs commit && flashfs enable

avk
10-03-2009, 20:04
Извините за глупый вопрос, а может Вам нужен режим Router?

Power
10-03-2009, 21:41
роутер работает в режиме Access Point. как в таком случае сделать чтобы работал iptables? прописываю например самые простые правила в post-boot (потому как говорят что post-firewall в этом режиме не отрабатывает)

iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
flashfs save && flashfs commit && flashfs enable && reboot
после чего вообще никак не пускает, не через ssh, не через telnet, никак вообще. или здесь без вариантов и надо переключаться в режим Home Gateway (в котором понятно что все будет замечательно)?

кстати, как переключится в Home Gateway? в вебинтерфейсе переключаю все ок вроде показывает, но видно что на самом деле ничего не срабатывает и после перезагрузки все опять как было в режиме Access Point.

Ещё бы он вас пустил, с такими-то правилами. Вы запретили весь входящий трафик кроме первого (syn) пакета tcp-соединения на 22 порт. Первый пакет он пропускает, а остальные сбрасывает. Такие дела. Подсказка:


iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


А переключение режимов ищите на странице System Setup - Operation Mode.

ivantest
11-03-2009, 12:09
за подсказку конечно спасибо. если не вдаваться в опции iptables, сходу, еще когда с самого начала все настраивал встретил правило

iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
это якобы для того, чтобы ssh наружу открыть. его и прописал.
а вот такое правило ниже - здесь подобного нигде не встречал

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ну этого так, отвлеклись немного. а разве не достаточно будет просто

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

А переключение режимов ищите на странице System Setup - Operation Mode.
нет ну с этим то все понятно=) только простое переключение режима не срабатывает.

bbsc
11-03-2009, 12:43
ivantest, прямое переключение режима срабатывает, если Вы потрудитесь после переключения и нажимания "Apply" зайти на любую страницу в настройках, где есть кнопка "Finish" и таки нажать эту кнопку.

Power
12-03-2009, 14:21
а вот такое правило ниже - здесь подобного нигде не встречал

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


Это потому что оно по умолчанию в роутере есть (в режиме home gateway). А у вас таблицы чистые и ничего нет. Эти 2 правила, в общем-то, первым делом добавляют:


iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP

Первое разрешает прохождение пакетов, связанных с установленными соединениями (таких пакетов - большинство). Второе отбрасывает пакеты, принадлежность которых невозможно определить.
А вот после уже добавляют правила, связанные с установлением новых соединений.




ну этого так, отвлеклись немного. а разве не достаточно будет просто

iptables -A INPUT -p tcp --dport 22 -j ACCEPT


Этого будет достаточно, но этим вы лишите фаерволл одной из самых больших фич - наблюдения за состоянием соединений.

lagshmi
15-03-2009, 20:09
Посоветуйте пожалуйста как настроить фаерволл для защиты от атак типа SYN ping и так далее

Less
15-03-2009, 21:43
Когдато давно скачал с инета (откуда точно не помню...)

al37919
15-03-2009, 21:47
а включить в веб интерфейсе Enable DoS protection не катит?

Power
16-03-2009, 09:22
Когдато давно скачал с инета (откуда точно не помню...)

Особенно хорошо в этом скрипте смотрится строчка


echo 0 > /proc/sys/net/ipv4/ip_forward

(у нас роутер или как?)

Less
16-03-2009, 09:42
Особенно хорошо в этом скрипте смотрится строчка


echo 0 > /proc/sys/net/ipv4/ip_forward

(у нас роутер или как?)

А я что сказал что скрипт под роутер написан, или что это панацея?
Выложыл так как скачал! :mad:

А вообще от "правильного" DDoS-a защиты фактичиски нету только интерфейс в down с IP который бомбят (вариант блокировки подсетей с которых бомбят опять же не выход, если это "бот сеть").

smsu
16-03-2009, 19:49
iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP

Не совсем от атак,но тоже полезно.

Play-Boy
17-03-2009, 08:12
Видел где-то на форуме тред про защиту SSH от перебора паролей, о перенаправлении портов и прочих интересностях.. сейчас найти не могу, выложите сюда, пожалуйста, если у кого сохранилось..:rolleyes:

Less
17-03-2009, 08:17
Видел где-то на форуме тред про защиту SSH от перебора паролей, о перенаправлении портов и прочих интересностях.. сейчас найти не могу, выложите сюда, пожалуйста, если у кого сохранилось..:rolleyes:

Смотреть тут (http://wl500g.info/showthread.php?t=11436&page=1)

cipipi
17-03-2009, 11:30
А разве вот этого не достаточно



$iptables-save
...
-A SECURITY -p tcp -m tcp --tcp-flags 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 DROP
...

, когда устанавливаешь в веб морде
Internet Firewall - Basic Config/Enable Firewall? - YES
Internet Firewall - Basic Config/Enable DoS protection? - YES

Less
17-03-2009, 11:53
А разве вот этого не достаточно



$iptables-save
...
-A SECURITY -p tcp -m tcp --tcp-flags 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 DROP
...

, когда устанавливаешь в веб морде
Internet Firewall - Basic Config/Enable Firewall? - YES
Internet Firewall - Basic Config/Enable DoS protection? - YES

Для чего не достаточно? То что Вы указали защита от flood-а (первые две строчки от SYN, FYN, 3-udp, 4-icmp).

cipipi
17-03-2009, 12:08
Ага, понятно flood - разновидность DoS атаки http://ru.wikipedia.org/wiki/DDoS.

al37919
17-03-2009, 12:21
эти 4 строки и есть защита от DoS

а вот это:


Видел где-то на форуме тред про защиту SSH от перебора паролей, о перенаправлении портов и прочих интересностях.. сейчас найти не могу, выложите сюда, пожалуйста, если у кого сохранилось..

называется brute force

и от нее защиту можно сделать вручную, по ссылке Less, либо если используется 1.9.2.7-d старше r156, то эту защиту можно включить и в веб-интерфейсе

brv555
24-03-2009, 17:12
Ребят, помогите.
дано:
на роутер постедвтвом ssh туннеля приходит порт 8877
на роутере "слушается" порт 8877 только на 127.0.0.1
на роутере, на 192.168.1.1 этот же порт не "слушается"

вот вывод netstat -lnt | grep 8877

netstat -lnt | grep 8877
tcp 0 0 127.0.0.1:8877 0.0.0.0:* LISTEN
tcp 0 0 ::1:8877 :::* LISTEN
из консоли на роутере телнетом на 127,0,0,1 8877 тоже заходится.
настройки iptables стандартные дефолтные с прошивкой от Олега 10.7

Хочу сделать так, чтобы работало перенаправление с 192.168.1.1:8877 на 127.0.0.1:8877 из LAN сети, с любого из компов из диапазона (192.168.1.2-192.168.1.255) был доступ к 192.168.0.1 8877 прту на роутере.

как назначить перенаправление с 192.168.1.1:8877 на 127.0.0.1:8877

пробовал

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 8877 -j DNAT --to-destination 127.0.0.1:8877
результат ноль. телнетом на 192.168.1.1. 8877 не зайдешь.

еще раз вопрос - как назначить перенаправление с 192.168.1.1:8877 на 127.0.0.1:8877

Less
24-03-2009, 18:16
Вот так

iptables -A INPUT -p tcp -d 192.168.1.1 --dport 8877 -j ACCEPT

Только странно что не пускает с внутри сети.

Дайте вывод

iptables-save -t filter

brv555
25-03-2009, 02:41
Вот так

iptables -A INPUT -p tcp -d 192.168.1.1 --dport 8877 -j ACCEPT

Только странно что не пускает с внутри сети.

Дайте вывод

iptables-save -t filter

попробовал то что вы посоветывали - не помогло.
вот ptables-save -t filter

# Generated by iptables-save v1.2.7a on Wed Mar 25 09:27:08 2009
*filter
:INPUT DROP [8:2029]
:FORWARD ACCEPT [12:624]
:OUTPUT ACCEPT [883:111623]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -m state --state INVALID -j DROP
-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 -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22888 -j ACCEPT
-A INPUT -d 192.168.1.1 -p tcp -m tcp --dport 8877 -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o ppp0 -j DROP
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A SECURITY -p tcp -m tcp --tcp-flags 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 DROP
-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 Wed Mar 25 09:27:08 2009

Даже если политику для INPUT делаю ACCEPT все равно не работает.


telnet 192.168.1.1 8877
telnet: Unable to connect to remote host (192.168.1.1): Connection refused

brv555
25-03-2009, 04:43
пробовал SNAT в обратную сторону. не помогло


iptables -t nat -I POSTROUTING -p tcp -s 127.0.0.1 --sport 8877 -j SNAT --to-source 192.168.1.1:8877

вот такой вот вывод iptables -L -t nat


Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere my_router tcp dpt:8877 to:127.0.0.1:8877
VSERVER all -- anywhere brv.vzletka.net
VSERVER all -- anywhere brv.vzletka.net

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- localhost.localdomain anywhere tcp spt:8877 to:192.168.1.1:8877
MASQUERADE all -- !brv.vzletka.net anywhere
MASQUERADE all -- !brv.vzletka.net anywhere
MASQUERADE all -- 192.168.1.0/24 192.168.1.0/24

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain VSERVER (2 references)
target prot opt source destination

по прежнему не могу добиться цели
жду помощи

Less
25-03-2009, 09:13
Что у Вас на том порту?

SNAT, DNAT - это изврат имхо.

Попробуйте отключить firewall, отключите кабель от WAN порта и наберите

iptables -t nat -F
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

И протестируйте если работает, уже хорошо.

Перегрузите роутер правила востановлятся.

Отпишытесь.

brv555
25-03-2009, 13:46
Разобрался сам.
Спасибо всем кто отозвался.

Объясняю:
проблема состояла в том что на роутере интерфейс 127.0.0.1 слушал порт 8877
а интерфейс 192.168.1.1 тотже порт не слушал.

Поэтому я пытался настроить перенезначение портов.

Ворос:
что сидело у меня на 127.0.0.1:8877
Ответ обратный ссш туннель, отправленный с компа на работе.
типа так

ssh -R *:8877:work_comp:4555 home_comp

Оказалось что несмотря на *:8877 в команде запуска ссш (назначение порта 8877 на ВСЕ интерфейсы роутера) , сервер dropbear не умеет назначать пришедший по ссш туннелю порт, всем интерфейсам роутера.

Проблему решил поставив sshd. он полноценно умеет назначать пришедший по ссш туннелю порт, любому интерфейсу роутера.

glaziche
01-04-2009, 08:36
Имеется роутер wl500gp v2 с белым ip адресом.

Во внутренний сети на адресе 192.168.0.99 порт 8081 сидит сервер обновлений нод.

В virtual server добавил правило, чтобы можно было обновляться из вне.

Все работает, но обновиться можно с любого компа из вне, а хочется чтоб только с определенного адреса. Содержание post-firewall:

#!/bin/sh
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 24853 -j ACCEPT
iptables -A INPUT -p 91.143.0.5 -s --dport 8081 -j ACCEPT


Хочу обновляться только вот с этого адреса 91.143.0.5, но обновляется с любых внешних :(
Спасибо большое и не пинайте сильно, я только начинаю разбираться.

velsi
01-04-2009, 09:04
iptables -A INPUT -p 91.143.0.5 -s --dport 8081 -j ACCEPT

-p ПРОТОКОЛ, а не IP
-s ИСТОЧНИК, а не пусто

al37919
01-04-2009, 09:10
из INPUT это чудо можете убрать сразу и из виртуального сервера правило тоже уберите

попробуйте такой вариант:

iptables -A VSERVER -p tcp -m tcp --dport 8081 -s 91.143.0.5 -j DNAT --to-destination 192.168.0.99:8081

glaziche
01-04-2009, 10:53
из INPUT это чудо можете убрать сразу и из виртуального сервера правило тоже уберите

попробуйте такой вариант:

iptables -A VSERVER -p tcp -m tcp --dport 8081 -s 91.143.0.5 -j DNAT --to-destination 192.168.0.99:8081

Не получается. После того как убрал правило из виртуального сервера достучаться до машины в локальной сети не может.
post-firewall
#!/bin/sh
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 24853 -j ACCEPT
iptables -A VSERVER -p tcp -m tcp --dport 8081 -s 91.143.0.5 -j DNAT --to-destination 192.168.0.99:8081

al37919
01-04-2009, 11:12
а что кажет iptables-save

glaziche
01-04-2009, 11:21
а что кажет iptables-save

# Generated by iptables-save v1.2.7a on Wed Apr 1 15:15:59 2009
*nat
:PREROUTING ACCEPT [1479:109695]
:POSTROUTING ACCEPT [308:15578]
:OUTPUT ACCEPT [133:9992]
:VSERVER - [0:0]
-A PREROUTING -d 213.87.34.89 -j VSERVER
-A POSTROUTING -s ! 213.87.34.89 -o vlan1 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -o br0 -j MASQUERADE
-A VSERVER -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.5:80
-A VSERVER -p tcp -m tcp --dport 11406 -j DNAT --to-destination 192.168.0.59:114 06
COMMIT
# Completed on Wed Apr 1 15:15:59 2009
# Generated by iptables-save v1.2.7a on Wed Apr 1 15:15:59 2009
*mangle
:PREROUTING ACCEPT [22324:5034014]
:INPUT ACCEPT [3577:458506]
:FORWARD ACCEPT [18649:4567102]
:OUTPUT ACCEPT [2891:849025]
:POSTROUTING ACCEPT [21614:5441992]
COMMIT
# Completed on Wed Apr 1 15:15:59 2009
# Generated by iptables-save v1.2.7a on Wed Apr 1 15:15:59 2009
*filter
:INPUT DROP [328:30453]
:FORWARD ACCEPT [814:46287]
:OUTPUT ACCEPT [2164:525133]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -m state --state INVALID -j DROP
-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 -d 192.168.0.5 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 24853 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A SECURITY -p tcp -m tcp --tcp-flags 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 DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequen ce --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

Wolfgun
01-04-2009, 11:36
Выполни
iptables -L -nv и
iptables -t nat -L -nv

Результаты в студию.
В зависимости от того что у тебя есть надо будет писать привила Forward и POSTROUTING писать

al37919
01-04-2009, 11:37
sorry должно быть так:

iptables -t nat -A VSERVER -p tcp -m tcp --dport 8081 -s 91.143.0.5 -j DNAT --to-destination 192.168.0.99:8081
вообще, при комманды iptables можно вводить вручную и грубые ошибки она сама должна указывать.

Wolfgun
01-04-2009, 11:42
sorry должно быть так:

iptables -t nat -A VSERVER -p tcp -m tcp --dport 8081 -s 91.143.0.5 -j DNAT --to-destination 192.168.0.99:8081
вообще, при комманды iptables можно вводить вручную и грубые ошибки она сама должна указывать.

Во это ближе к телу :)

Попробуй еще так чистый форвард.

iptables -I FORWARD -p tcp -m tcp --dport 8081 -s 91.143.0.5 -d 192.168.0.99 -j ACCEPT

glaziche
01-04-2009, 11:45
sorry должно быть так:

iptables -t nat -A VSERVER -p tcp -m tcp --dport 8081 -s 91.143.0.5 -j DNAT --to-destination 192.168.0.99:8081
вообще, при комманды iptables можно вводить вручную и грубые ошибки она сама должна указывать.

Спасибо. Все получилось.

glaziche
01-04-2009, 13:09
Во это ближе к телу :)

Попробуй еще так чистый форвард.

iptables -I FORWARD -p tcp -m tcp --dport 8081 -s 91.143.0.5 -d 192.168.0.99 -j ACCEPT

А вот так попробовал - не получилось.

nETPOBu4
06-04-2009, 13:54
Добрый день!
На роутере настроен веб-сервер на порте $P1; Хочу добавить правило в iptables, что бы соединения на некоторый внешний адрес, $REMOTE_ADDR по порту http перенаправлялись на локальный веб-сервер на порт $P1; Т.е. когда пользователь из внутренний сети (или с самого роутера) обращался на $REMOTE_ADDR, то получал страницу-затычку с локального веб-сервера.

Начал разбираться с iptables, сварганил такое правило:
iptables -t nat -I OUTPUT 1 -p tcp -d $REMOTE_ADDR --dport 80 -j REDIRECT --to 127.0.0.1:$P1
для пакетов с самого роутера

Less
06-04-2009, 14:28
Должно быть такое


iptables -t nat -I PREROUTING -o vlan1 -d $REMOTE_ADDR -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:$P1

nETPOBu4
06-04-2009, 14:47
Должно быть такое


iptables -t nat -I PREROUTING -o vlan1 -d $REMOTE_ADDR -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:$P1


На это говорит: iptables v1.2.7a: Can't use -o with PREROUTING

И согласно этому мануалу http://www.opennet.ru/docs/RUS/iptables/ пакеты от локальлных приложений вообще на попадают в цепочку PREROUTING таблицы nat.

dimvia
07-04-2009, 10:47
iptables -I FORWARD -i br0 -p tcp -s ip --dport 80 -j DROP
добавляет правило
iptables -D FORWARD -i br0 -p tcp -s ip --dport 80 -j DROP
правило удаляется


iptables -I FORWARD -m time --timestart 9:00:00 --timestop 16:00:00 --days Mon,Tue,Wed,Thu,Fri -i br0 -p tcp -m mac --mac-source mac --dport 80 -j
DROP
Добавляет правило но удалить я его не могу. Что не правильно?

Less
07-04-2009, 10:53
Тот же принцып iptables -D

Что у Вас конкретно не получается, что пишет в ответ (ошыбка).

dimvia
07-04-2009, 10:56
iptables -D FORWARD -m time --timestart 9:00:00 --timestop 16:00:00 --days Mon,Tue,Wed,Thu,Fri -i br0 -p tcp -m mac --mac-source 00:00:00:35:47:00 --dport 80 -j DROP
iptables: Bad rule (does a matching rule exist in that chain?)


Часть iptables -L -n

Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 TIME from 09:00:00 to 16:00:00 on Mon,Tue,Wed,Thu,Fri MAC 00:00:00:35:47:00 tcp dpt:80

al37919
07-04-2009, 11:09
чтобы получить правило в том виде в котором iptables полагает, что оно было добавлено сделайте iptables-save

dimvia
07-04-2009, 11:25
-A FORWARD -i br0 -p tcp -m time --timestart 09:00:00 --timestop 16:00:00 --days Mon,Tue,Wed,Thu,Fri -m mac --mac 00:00:00:35:47:00 -m tcp --dport 80 -j DROP

Строчка из iptables-save

Less
07-04-2009, 11:35
-A FORWARD -i br0 -p tcp -m time --timestart 09:00:00 --timestop 16:00:00 --days Mon,Tue,Wed,Thu,Fri -m mac --mac 00:00:00:35:47:00 -m tcp --dport 80 -j DROP

Строчка из iptables-save

Так удаляйте

iptables -D FORWARD -i br0 -p tcp -m time --timestart 09:00:00 --timestop 16:00:00 --days Mon,Tue,Wed,Thu,Fri -m mac --mac 00:00:00:35:47:00 -m tcp --dport 80 -j DROP

dimvia
07-04-2009, 11:37
Так и удаляю , не удаляется. Сначала пишу правило с -I потом повторяю строчку вставляя -D.

ivlis
07-04-2009, 11:39
Самый универсальный способ это вывести все правила
iptables -vL $CHAIN --line-number

А потом удалить iptables -D $CHAIN $LINE_NUMBER

dimvia
07-04-2009, 11:45
Так удаляется, но хотелоcь бы просто скрипт запускать на удаление.
Как бы это сделать лучше?

vectorm
07-04-2009, 12:06
iptables -D FORWARD -m time --timestart 9:00:00 --timestop 16:00:00 --days Mon,Tue,Wed,Thu,Fri -i br0 -p tcp -m mac --mac-source 00:00:00:35:47:00 --dport 80 -j DROP
iptables: Bad rule (does a matching rule exist in that chain?)


Часть iptables -L -n

Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 TIME from 09:00:00 to 16:00:00 on Mon,Tue,Wed,Thu,Fri MAC 00:00:00:35:47:00 tcp dpt:80
А где правило добавления было прописано?

dimvia
07-04-2009, 12:18
По разному пробовал.И в post-firewall. И руками пробовал.

al37919
07-04-2009, 13:14
это сделать уже гораздо проще, примерно так:

iptables -D FORWARD `iptables -nvL FORWARD --line-number | awk '/Mon,Tue,Wed,Thu,Fri/{print $1}'`

dimvia
07-04-2009, 13:38
Не работает - где то ошибка.

al37919
07-04-2009, 13:56
отладить это --- уже ваша забота. Добейтесь, чтобы работало сначало это (возможно надо менять условие после awk между / и /):
iptables -nvL FORWARD --line-number | awk '/Mon,Tue,Wed,Thu,Fri/{print $1}

Power
07-04-2009, 14:22
Вместо "--line-number" лучше писать "--line-numbers", хотя iptables и так понимает.

dimvia
07-04-2009, 14:29
iptables -nvL FORWARD --line-number | awk '/Mon,Tue,Wed,Thu,Fri/{print $1}'

Так выводит список правил. Но вроде не понимает много правил.

Как сделать чтобы несколько правил уьивалось типа
iptables -D FORWARD 1-30
1-30 не работает.Как сделать перечисление?

LevT
08-04-2009, 20:39
Предыстория темы: http://wl500g.info/showthread.php?t=19213&page=3

Остаются вопросы о происхождении выделенных строк:

1) Почему различается destination в INPUT-правилах созданных вручную (для ssh) и специальным пунктом вебморды (для http)?


[myself@usb-router root]$ iptables -L -nv
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
6076 606K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
495 29700 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
2585 952K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
1 48 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 flags:0x16/0x02
0 0 ACCEPT tcp -- * * 0.0.0.0/0 10.10.10.2 tcp dpt:80
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
1899 155K DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT
0 0 DROP all -- * br0 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 9106 packets, 1605K bytes)
pkts bytes target prot opt in out source destination

Chain MACS (0 references)
pkts bytes target prot opt in out source destination

Chain SECURITY (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x16/0x02 limit: avg 1/sec burst 5
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logaccept (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `ACCEPT '
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0



2) Откуда берутся эти строки после перезагрузки роутера? В предыдущей теме было высказано предположение, что это остатки uPnP. Каким образом они умудряются сохраняться после перезагрузок и переконфигурации интерфейсов из вебморды?


[myself@usb-router root]$ iptables -L -nvt nat
Chain PREROUTING (policy ACCEPT 2017 packets, 167K bytes)
pkts bytes target prot opt in out source destination
1 48 VSERVER all -- * * 0.0.0.0/0 10.10.11.254

Chain POSTROUTING (policy ACCEPT 530 packets, 31808 bytes)
pkts bytes target prot opt in out source destination
0 0 SNAT all -- * vlan1 !10.10.11.254 0.0.0.0/0 to:10.10.11.254
0 0 SNAT all -- * br0 10.10.10.0/24 10.10.10.0/24 to:10.10.10.2

Chain OUTPUT (policy ACCEPT 530 packets, 31808 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:8080 to:10.10.10.2:80
0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:18830 to:10.10.11.129:18830
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:18830 to:10.10.11.129:18830
1 48 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 to:10.10.10.2:22
[myself@usb-router root]$

LevT
08-04-2009, 20:59
Вдогонку

Поменял входящий порт для ssh. Причем правило NAT изменил из вебморды, а INPUT подредактировал в post-firewall из консоли.
Результат: НЕ РАБОТАЕТ. Почему????


[myself@usb-router root]$ iptables -L -nv
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
449 30310 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
7 420 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
132 41131 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22322 flags:0x16/0x02
1 48 ACCEPT tcp -- * * 0.0.0.0/0 10.10.10.2 tcp dpt:80
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
32 2714 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT
0 0 DROP all -- * br0 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 845 packets, 637K bytes)
pkts bytes target prot opt in out source destination

Chain MACS (0 references)
pkts bytes target prot opt in out source destination

Chain SECURITY (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x16/0x02 limit: avg 1/sec burst 5
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logaccept (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `ACCEPT '
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
[myself@usb-router root]$ iptables -L -nvt nat
Chain PREROUTING (policy ACCEPT 205 packets, 16445 bytes)
pkts bytes target prot opt in out source destination
4 192 VSERVER all -- * * 0.0.0.0/0 10.10.11.254

Chain POSTROUTING (policy ACCEPT 50 packets, 3002 bytes)
pkts bytes target prot opt in out source destination
0 0 SNAT all -- * vlan1 !10.10.11.254 0.0.0.0/0 to:10.10.11.254
0 0 SNAT all -- * br0 10.10.10.0/24 10.10.10.0/24 to:10.10.10.2

Chain OUTPUT (policy ACCEPT 50 packets, 3002 bytes)
pkts bytes target prot opt in out source destination

Chain VSERVER (1 references)
pkts bytes target prot opt in out source destination
1 48 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 to:10.10.10.2:80
0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:18830 to:10.10.11.129:18830
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:18830 to:10.10.11.129:18830
3 144 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22322 to:10.10.10.2:22

al37919
08-04-2009, 22:50
1) Почему различается destination в INPUT-правилах созданных вручную (для ssh) и специальным пунктом вебморды (для http)?
http://www.google.de/search?q=man+iptables

2) Откуда берутся эти строки после перезагрузки роутера? В предыдущей теме было высказано предположение, что это остатки uPnP. Каким образом они умудряются сохраняться после перезагрузок и переконфигурации интерфейсов из вебморды?
они хранятся в nvram. Выключите upnp, либо не смотрите таблицы iptables

Поменял входящий порт для ssh. Причем правило NAT изменил из вебморды, а INPUT подредактировал в post-firewall из консоли.
Результат: НЕ РАБОТАЕТ. Почему????
http://www.google.de/search?q=man+iptables

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

Вы свою неуважительную позицию по отношении к форуму вполне ясно сформулировали в теме, которую я закрыл. Однако, при этом вы не постеснялись прийти сюда со своими проблемами. Полагаю зря --- это будет трата времени одинаково пустая для обоих сторон.

Чисто по человечески рекомендую почитать руководство по iptables, имеющему "безумный, отвратительно документированный синтаксис", либо копить на столь любимую вами циску.

Да, я злой сегодня. Но если будут новые поптыки продолжения "патопсихологического" флейма --- удалю тему нахрен без всякого дальнейшего предупреждения.

Это так сказать на перспективу.

LevT
09-04-2009, 04:43
http://www.google.de/search?q=man+iptables

Почему бы Вам, как модератору здешнего форума, не прикрыть его нахрен, вывесив вместо него любезно предоставленную Вами ссылку?

дайте КОНКРЕТНУЮ ссылку с ответом на МОЙ вопрос.
Вопрос не о значении destination (сетки или адреса) - а о том, чье правило ПРАВИЛЬНЕЕ: автора прошивки(вебморды) или тех, кто здесь порекомендовал мне подправить post-firewall



они хранятся в nvram. Выключите upnp, либо не смотрите таблицы iptables

Спасибо. Лично для меня достаточно было первого предложения из двух. Не считайте окружающих тупее себя. Но где по Вашей ссылке об этом написано? :spy: Подозреваю, что нигде.

Форумы для того и существуют, чтобы делиться конкретным опытом и КОНКРЕТНЫМИ ссылками.



Если же Вы хотели мне указать на существование манов и неземную мудрость оных - то я в курсе. Но повторюсь: документация в виде манов, сопровождаемая кордебалетом отсылальщиков к ней - отвратительна! Особенно на фоне интерактивной справки netsh или ios.



либо копить на столь любимую вами циску.


Это и есть чувство неполноценности, которое культивируется линуксоидами в новых адептах.

Извините, но я на это не поведусь. Никсами помаленько пользуюсь, всё более плотно и квалифицированно - но никак не оргазмирую по поводу оных, и не собираюсь уподобляться.


А солнечные ваши священные маны со временем изучу, куды ж я денусь - но железки типа топичного роутера покупаются именно для быстрого старта и практического изучения предмета в не сильно критичных песочницах. В том числи и теми людьми, для которых неприемлемо изучение священных манов в качестве пререквизита любой деятельности.

Если Вы видите свою функцию как здешнего модератора в формировании определённого склада личности в ньюбах - то выходит, что я, к сожалению, прав. В случае удаления темы пожалуюсь Олегу. Если того это не возмутит - оттрясу прах.


они хранятся в nvram. Выключите upnp, либо не смотрите таблицы iptables


Виноват, лично мне тоже недостаточно было первого предложения: во второй части также есть весьма неожиданный смысл.

uPnP - выходит, механизм, КОНКУРИРУЮЩИЙ с iptables. Я этого не знал, и в "манах" об этом не написано.

Я правильно понял, что например удалённое администрирование помимо iptables не организовать? Тогда выключать uPnP людям с запросами вроде моих - НЕОБХОДИМО.

Я сюда пришел более ради того, чтобы определиться с мотивацией к выбору стратегии, а не чтобы порасспрашивать о конкретных ключиках. На эту последнюю тему действительно есть маны - но для спокойного ознакомления с ними надо запустить шелезяку "в первом приближении".

Ответа на заданный во втором сообщении темы вопрос здесь по-прежнему не прозвучало. Сгодится КОНКРЕТНАЯ ссылка, дать которую проще, чем флеймить (читать мне в очередной раз мораль).

В качестве конкретной ссылки сойдёт и указание поискового запроса. КОНКРЕТНОГО.

Это я опять, про недоступность ssh по порту 22322.

Для страдающих ложной телепатией уточню: никакой провайдер не мог ничего мне закрыть, т.к. все шнурки и WAN, и LAN расположены сейчас целиком в радиусе двух метров от моей задницы.

(Это я попытался последовать мудрому совету и самостоятельно поискать иголку в стоге сена. Нашёл: http://wl500g.info/showpost.php?p=69225&postcount=31)


Вопрос актуален. Вывод iptables во втором сообщении темы.

theMIROn
09-04-2009, 08:19
Так вам что надо то?
Если по ssh в роутер получить доступ, в прошивке 1.9.2.7-d ssh доступ настраивается из web интерфейса на нужный порт.
Если вручную, то запускаем dropbear ручками и достаточно одного правила в INPUT


iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp -m tcp --syn --dport 22322 -j ACCEPT

Если вам нужно прокинуть ssh на другой компьютер, то:
1. настраиваете VSERVER в web интерфейсе (src:22322 dst:10.10.10.10:22) или включаете VSERVER и прописываете правило, чтобы при перепрошивке порт назначения (22) не стал равен входящему порту (22322)


iptables -t nat -A VSERVER -p tcp -m tcp --dport 22322 -j DNAT --to-destination 10.10.10.10:22

2. устанавливаете Port Forwarding default policy в ACCEPT
3. устанавливаете Packets(WAN to LAN) not specified will be в ACCEPT, или в DROP и добавляете в таблицу (dst:dst:10.10.10.10:22), или прописываете


iptables -I FORWARD -d 10.10.10.10 -p tcp -m tcp --dport 22 -j ACCEPT


Резюмирую: все можно было настроить через web интефейс и все так же можно было настроить руками с использованем мануалов (и примеров) по iptables, плюс конечо, поиск.
Вопросы доступа, проброса портов обсуждались гораздо более чем 1 раз.

p.s есть еще один способ прокидывания портов - включаем upnp и в свойствах соединения "Подключение к Интернету" делаем все, что хотим

LevT
09-04-2009, 08:43
theMIROn
Спасибо! Надо мне вот что:

у меня заработал SSH доступ к роутеру по схеме WAN:22 -> LAN:22, сукцес стори в предыдущей теме (ссылка в первом сообщении этой темы). Теперь я попытался поменять схему на WAN:22322 -> LAN:22

Теперешняя выдача iptables во втором сообщении этой темы, telnet WAN 22322 снаружи не работает. Я хочу узнать, почему. Прошивка 1.9.2.7-10

делаю одновременно оба правила: работают оба
удаляю правило для WAN:22 - перестают работать оба


делаю так (умею только так): DNAT правило через вебморду, INPUT правило через добавление или удаление второй строчки

iptables -I INPUT 5 -p tcp -m tcp --dport 22322 --syn -j ACCEPT
iptables -I INPUT 5 -p tcp -m tcp --dport 22 --syn -j ACCEPT

(антифлейм: разумеется, потом flashfs бла-бла-бла и перезагрузка)


theMIROn
о тонком управлении иптаблесом, ручном прокидывании портов и проч. речь пока не идет: мне бы самим роутером научиться управлять надежно, без непредсказуемых фокусов (или, на худой конец, знать их в лицо и уметь обходить).

Я ведь правильно понимаю, что обычный Vserver на внутренний комп делается одинаково, из вебморды, или через UPnP - и результат стабилен и не зависит от настроек иптаблес для самого роутера?

avk
09-04-2009, 15:12
Чтобы не разводить помойку, предлагаю эту тему присоединить к ранее открытой теме gP v1: административный доступ из WAN (http://wl500g.info/showthread.php?t=19213), сняв блокировку с нее, и позволить автору порезвиться вволю - просто не обращать внимания.


В случае удаления темы пожалуюсь Олегу.

Что касается жалоб, то любезный LevT, жалуйтесь - Олег выпишет Вам недельный отпуск, я так полагаю.

ps: отпуск для того, чтобы появилось время не только писать, но и почитать, и подумать.

Power
09-04-2009, 15:32
Ответа на заданный во втором сообщении темы вопрос здесь по-прежнему не прозвучало. Сгодится КОНКРЕТНАЯ ссылка, дать которую проще, чем флеймить (читать мне в очередной раз мораль).

В качестве конкретной ссылки сойдёт и указание поискового запроса. КОНКРЕТНОГО.

Вот вам конкретная ссылка: Как правильно задавать вопросы (http://ln.com.ua/~openxs/articles/smart-questions-ru.html). Потрудитесь, прочитайте. Ведь понять вас с каждым сообщением становится всё сложнее и сложнее.

LevT
09-04-2009, 17:08
Потрудитесь, прочитайте. Ведь понять вас с каждым сообщением становится всё сложнее и сложнее.

Я этот текст читал впервые ещё в ФИДО...

Чтобы понять, в чём состоит актуальный вопрос, достаточно прочесть два последних сообщения (11:43) и (16:12). Всё написанное выше можно игнорировать.

Стандартная процедура осваивания нового мелкими шажками.

WAN:22 -> LAN:22 наконец работает
исправляю: WAN:22322 -> LAN:22 - не работает
исправляю: (и WAN:22 -> LAN:22, и WAN:22322 -> LAN:22 одновременно) - работают оба порта
исправляю: только WAN:22322 -> LAN:22 - не работает не только 22, но и 22322 порт.

Как именно исправляю, я неоднократно повторял: последний раз в 16:12
Диагностическую выдачу iptables в состоянии "не работает" я приводил вверху, во втором сообщении темы.

theMIROn
09-04-2009, 17:31
Гн LevT, отстаньте от роутера и нашего мозга. Все что необходимо написано выше, мне несложно повторить в картинках.
Включите на роутере upnp и сделайте вот так.

LevT
09-04-2009, 17:47
1) Извините, но у меня под рукой только сервер, 64-битный. Кажется, там нет UPnP клиента.

2) Вы уверены, что с помощью клиентской винды можно эффективно управлять трансляцией на роутере без тех вывихов и закидонов, что я успел пронаблюдать в консоли и вебморде? В том числе и трансляцией к LAN интерфейсу самого роутера?

3) Как должен выглядеть рабочий вариант iptables -L -nv && iptables -L -nvt nat с включённой трансялцией WAN:22322 -> LAN:22 ?
Или при управлении через UPnP вывод иптаблес вообще нерелевантен?

theMIROn
09-04-2009, 17:55
1) Извините, но у меня под рукой только сервер, 64-битный. Кажется, там нет UPnP клиента.
все там есть. откройте для себя гугл
http://www.msfn.org/board/index.php?showtopic=77022&st=20&start=20


2) Вы уверены, что с помощью клиентской винды можно эффективно управлять трансляцией на роутере без тех вывихов и закидонов, что я успел пронаблюдать в консоли и вебморде? В том числе и трансляцией к LAN интерфейсу самого роутера?
я уверен что ничего из предложенного ни в этой, ни в предыдущей теме не было попробовано.

LevT
09-04-2009, 18:20
Ага, я не ходил ни в гугль, ни в ман иптаблес...

Припоминаю, что я видел единственный ответ, который мне сейчас представляется "горячим" и по существу. В предыдущей теме его уже нет. Удалён модератором?

Там было написано, как запускать dropbear на нестандартном порту. По-моему, это именно то, что мне нужно. Если так - то напомните плиз синтаксис и файл, куда прописывать комстроку.

Power
09-04-2009, 18:36
Там было написано, как запускать dropbear на нестандартном порту. По-моему, это именно то, что мне нужно. Если так - то напомните плиз синтаксис и файл, куда прописывать комстроку.

Вот это точно можно найти поиском по "dropbear порт". http://wl500g.info/showthread.php?p=140244

LevT
09-04-2009, 18:37
нашел, в post-boot

dropbear -p 22322

пока не заработало - но перевесить dropbear явно было необходимо.
Ща попробую поставить nmap и поглядеть, что вышло....


Update.

Как бы я его поставил, гы-гы....
Демон перевесился, но доступа из WAN к нему по-прежнему нет.

Power
09-04-2009, 18:52
А давайте по порядку:

Что вам нужно получить?
Что конкретно вы пытались сделать, чтобы достичь желаемого?
Что конкретно не получилось?

LevT
09-04-2009, 19:23
Спасибо большое.

Я думаю, что теперь уже достаточно набил руку, чтобы самостоятельно пройти по этому хав-ту: http://wl500g.info/showthread.php?t=12833


Здесь хотелось бы закрыть теоретический вопрос. Выше мне был дан совет "или выключить UPnP, или не глядеть в iptables", только что советовали фактически то же самое: включить UPnP и не глядеть в iptables.

Я правильно понимаю, что iptables и UPnP - взаимно независимые системы управления роутером, точнее его подсистемой NAT? Между UPnP и иптаблес предлагается выбирать, в частности, потому, что следы UPnP в iptables проявляются - но это только сбивает с толку ньюбов.

Ответы на вопросы были, увы, крайне ангажированными и зашоренными.

Единственный правильный ответ (модератора) был удалён им самим - надеюсь, что по недоразумению, а не по побуждению враждебности. Тем более, что он действительно был вроде как не по предыдущей теме. А в этой теме автор ответа сегодня уже не появлялся: надеюсь, что он ответил бы односложно и пресек флейм.

Понятно, что после исправления такого косяка, как неверно повешенный демон - все выводы надо перетряхивать заново, а эксперименты повторять. Чем я сейчас и займусь.

vectorm
09-04-2009, 20:00
Отвечу я односложно и коротко:
1. Учитесь ПРАВИЛЬНО формулировать вопросы, не распыляясь сразу на несколько направлений.
2. Вы подходите к решению Ваших задач с какого-то бока, в результате и возникают вопросы, ставящие тучу народа в тупик.
3. Все, кто будут технические вопросы переводить на личности - станут читателями, пока нервы не успокоят. Этот пункт не конкретно автору темы.

LevT
09-04-2009, 21:19
Отвечу я односложно и коротко:
2. Вы подходите к решению Ваших задач с какого-то бока, в результате и возникают вопросы, ставящие тучу народа в тупик.



Непонимание - оттого, что у меня нестандартные запросы. Ни в коем случае я не прошу помощи "тщательно настроить роутер" под определенные задачи.

Моя цель - 1) достаточно быстро и 2) достаточно дёшево научиться им управлять 3) достаточно качественно. (Управлять - значит уметь решать еще не возникшие задачи, и самостоятельно их ставить)

Или даже ещё круче: я вполне готов к неудаче. Настоящая моя цель - определить границы возможного: вот такое-то качество управления достижимо только с непремлемыми для меня затратами. А вот такое-то вполне реально, если вложить такие-то доступные мне ресурсы.


Мне же предлагают начинать с инвестиций - не денег, так времени и когнитивных способностей - там, где я ещё не определился с мотивацией к ним. "Не нравится курить ман иптаблес - копи денег на циску". Навязывают одномерную логику там, где, по моему убеждению, необходим сложный многофакторный процесс. В том числе и acceptance tests, с пробными запусками на фоне почти нулевого понятия об иптаблес.

Надеюсь, с этим постом недоразумение развеется.

Гкхм.. Подскажите плиз (чтобы не плодить тем), можно ли попросить (a)sh после ребута вспоминать предысторию команд - или для этого потребно менять шелл на bash?

LevT
09-04-2009, 22:29
Мда-сь... Роутер у меня продолжает партизанить:



[myself@usb-router root]$ cat /usr/local/sbin/post-firewall
#!/bin/sh
#iptables -t nat -nvL POSTROUTING | grep MASQUERADE | awk '{
# "ifconfig "$7" | grep Mask" | getline ip;
# split(ip,ip,":"); split(ip[2],ip," ");
# split($8,src,"!");
# if (src[1]=="") {src="! -s "src[2]} else {src="-s "src[1]};
# if ($9=="0.0.0.0/0") {dst=""} else {dst="-d "$9};
# system("iptables -t nat -A POSTROUTING -o "$7" "src" "dst" -j SNAT --to-source "ip[1]);
# system("iptables -t nat -D POSTROUTING -o "$7" "src" "dst" -j MASQUERADE");
#}'

#set default policy
iptables -P INPUT DROP
#remove last default rule
iptables -D INPUT -j DROP
iptables -I INPUT -p tcp --dport 22322 --syn -j ACCEPT


[myself@usb-router root]$ iptables -L -nv
Chain INPUT (policy DROP 92 packets, 7388 bytes)
pkts bytes target prot opt in out source destination
1 48 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22322 flags:0x16/0x02
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
328 28003 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
22 1320 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
88 7015 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
0 0 ACCEPT tcp -- * * 0.0.0.0/0 10.10.10.2 tcp dpt:80
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT
0 0 DROP all -- * br0 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 309 packets, 28461 bytes)
pkts bytes target prot opt in out source destination

Chain MACS (0 references)
pkts bytes target prot opt in out source destination

Chain SECURITY (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x16/0x02 limit: avg 1/sec burst 5
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logaccept (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `ACCEPT '
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0


[myself@usb-router root]$ iptables -L -nvt nat
Chain PREROUTING (policy ACCEPT 105 packets, 8772 bytes)
pkts bytes target prot opt in out source destination
3 144 VSERVER all -- * * 0.0.0.0/0 10.10.11.254

Chain POSTROUTING (policy ACCEPT 28 packets, 1710 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * vlan1 !10.10.11.254 0.0.0.0/0
0 0 MASQUERADE all -- * br0 10.10.10.0/24 10.10.10.0/24

Chain OUTPUT (policy ACCEPT 28 packets, 1710 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:8080 to:10.10.10.2:80
3 144 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22322 to:10.10.10.2:22



-----
По WAN интерфейсу не коннектится по-прежнему
C:\Documents and Settings\Administrator>telnet 10.10.11.254 22322
Connecting To 10.10.11.254...Could not open connection to the host, on port 22322: Connect failed

По внутреннему интерфейсу всё путём.

LevT
10-04-2009, 11:29
Как проверить судьбу входящих из WAN:22322 tcp пакетов?

Куда и как повесить логгирование, где будут собираться логи? Сислог если и есть какой - то умолчательный для прошивки, ничего сам пока не настраивал.ll

vectorm
10-04-2009, 14:49
Мда-сь... Роутер у меня продолжает партизанить:

По WAN интерфейсу не коннектится по-прежнему
C:\Documents and Settings\Administrator>telnet 10.10.11.254 22322
Connecting To 10.10.11.254...Could not open connection to the host, on port 22322: Connect failed

По внутреннему интерфейсу всё путём.
Повторю свой вопрос: Вы из какой сети пытаетесь проверять коннекты к роутеру по внешним интерфейсам? Из сети "внутри" локалки роутера? Или подключившись к роутеру со стотоны WAN?

LevT
10-04-2009, 16:41
Конечно, из WAN.
Отвечаю на этот вопрос не в первый раз - но после вчерашнего флейма не удивительно, что Вы пропустили ответ :(

И вот, двумя сообщениями выше:
Как проверить судьбу входящих из WAN:22322 tcp пакетов?

Во, нашёл краткое введение в иптаблес, без "многабуков":
http://ornellas.apanela.com/dokuwiki/pub:firewall_and_adv_routing

Кстати, то, что там внизу описано (target MARK) в Олеговой прошивке будет работать?

Основная проблема решена

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:8080 to:10.10.10.2:80
3 144 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22322 to:10.10.10.2:22

Это результат неверного использования вебморды. Удалил правило из вебморды же - заработало.


На побочные вопросы жду ответов.

Ещё один побочный вопрос: нужно ли/можно ли заставить роутер слушать 22322 порт только на LAN интерфейсе? Если да - то как?

Из 600+ заглядывателей в эту тему косяк не углядел НИКТО. Показательно :(

EMan
12-04-2009, 14:49
сервер dropbear не умеет назначать пришедший по ссш туннелю порт, всем интерфейсам роутера


Если в post-boot запускать dropbear с ключом "-a" (dropbear -a), то он тоже отлично справляется с задачей прослушивания порта для всех интерфейсов (0.0.0.0) и не нужно заморачиваться с DNAT (с ним у меня тоже данную задачу почему-то не получилось решить).

akovalenko
13-04-2009, 01:53
Не подскажет ли уважаемый кто-нибудь, зачем нужна проверка -s !$localIP при маскарадинге?

Chain POSTROUTING (policy ACCEPT 505 packets, 30836 bytes)
pkts bytes target prot opt in out source destination
339 20983 MASQUERADE all -- * ppp0 !95.31.130.1 0.0.0.0/0
8 552 MASQUERADE all -- * vlan1 !10.209.194.175 0.0.0.0/0
31 1860 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.170

Я уже мозг сломал, пытаясь придумать ситуацию, когда она сработает (в смысле, когда она даст отрицательный результат). Пакеты с самого роутера в POSTROUTING не идут. Ответы от VSERVER не идут через таблицу nat... Кто, ёлы-палы, может сгенерировать пакет с моего адреса, и при этом так, чтобы он попал в nat-POSTROUTING и занатился бы, если не проверять? Разве что NETMAP какой-нибудь?

Вопрос не праздный: делаю развесистое решение для multi-wan (то, что здесь пролетало, очень помогло, но само оно недостаточно развесистое); по определённым причинам хотелось бы вообще не трогать правила iptables при реконнектах, а это чуть ли не единственное место, где их потенциально надо трогать (если я хочу сохранить проверку --src; надеюсь, правда, что если узнаю, для чего она нужна - придумаю другой способ добиться того же самого).

akovalenko
13-04-2009, 02:15
Интересно, что это меня проглючило, что через POSTROUTING не идут локальные пакеты (сам ведь на этом прокалывался когда-то)? В общем, всё понятно.

MrGalaxy
14-04-2009, 15:51
Вечер добрый!
Почему при выводе iptables-save роутера wl500gP отсутствуют правила, прописанные в post-firewall?

BlackCat
03-05-2009, 17:07
Дико извиняюсь, но пытаюсь запретить доступ с конкретного IP но результат нулевой.

iptables -A INPUT -s 10.168.51.17 -i vlan1 -j DROP

Вопрос: Как это сделать правильно?

Спасибо.

2bars
03-05-2009, 19:08
iptables -I INPUT -s 10.168.51.17 -j DROP

dadittoz
03-05-2009, 21:16
Смотря что Вы пытаетесь запретить. Возможно Вам правило надо в FORWARD добавлять, а не в INPUT. Возможно до этого там уже есть правило разрешающее доступ.

iptables -L -v -n

пришлите после того как добавите правило и попытаетесь что-нибудь сделать с того компьютера, который нужно запретить.

BlackCat
04-05-2009, 04:09
Смотря что Вы пытаетесь запретить. Возможно Вам правило надо в FORWARD добавлять, а не в INPUT. Возможно до этого там уже есть правило разрешающее доступ.

iptables -L -v -n

пришлите после того как добавите правило и попытаетесь что-нибудь сделать с того компьютера, который нужно запретить.

Хочу полностью запретить доступ с этого компьютера. Достал он уже - StrongDC аж моргает весь (уж не знаю что там с этого IP идет за хлам).
Ну и соответственно я сам что-нибудь сделать с этого компьютера не в силах.

dadittoz
04-05-2009, 21:55
Попробуйте как написал 2bars, через несколько минут вывод iptables -L -v -n посмотрите. Будут ли пакеты попадать в это правило. Вывод если сюда пришлете - будет проще понять почему не работает, если не заработает.

dnk2009
11-05-2009, 18:41
ситуация такова.
есть dir 320 прошитый олеговской прошивкой.
роутер в режиме AP.
задача состоит в том чтобы юзверям с вай фая разрешать доступ только на определённый ай-пи адрес (172.30.62.254). на сетевушке точки: адрес 172.30.62.253.
просто с никогда не работал с AP.
или можно просто указать FORWARD -j DROP

ifconfig
br0 Link encap:Ethernet HWaddr 00:90:4C:C0:00:00
inet addr:172.30.62.253 Bcast:172.30.63.255 Mask:255.255.252.0
inet6 addr: fe80::290:4cff:fec0:0/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:180565 errors:0 dropped:0 overruns:0 frame:0
TX packets:803 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12574615 (11.9 MiB) TX bytes:107146 (104.6 KiB)

eth0 Link encap:Ethernet HWaddr 00:90:4C:C0:00:00
inet6 addr: fe80::290:4cff:fec0:0/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:181769 errors:0 dropped:0 overruns:0 frame:0
TX packets:181093 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:17112484 (16.3 MiB) TX bytes:16018861 (15.2 MiB)
Interrupt:4 Base address:0x1000

eth1 Link encap:Ethernet HWaddr 00:90:4C:C1:00:00
inet6 addr: fe80::290:4cff:fec1:0/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:546 errors:0 dropped:0 overruns:0 frame:93997
TX packets:180126 errors:228 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:121617 (118.7 KiB) TX bytes:16910084 (16.1 MiB)
Interrupt:13 Base address:0x5000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:4826 errors:0 dropped:0 overruns:0 frame:0
TX packets:4826 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:416960 (407.1 KiB) TX bytes:416960 (407.1 KiB)

vlan0 Link encap:Ethernet HWaddr 00:90:4C:C0:00:00
inet6 addr: fe80::290:4cff:fec0:0/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:181761 errors:0 dropped:0 overruns:0 frame:0
TX packets:1354 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:13840210 (13.1 MiB) TX bytes:234487 (228.9 KiB)

vlan2 Link encap:Ethernet HWaddr 00:90:4C:C0:00:00
inet6 addr: fe80::290:4cff:fec0:0/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:179735 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:15784086 (15.0 MiB)

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.30.60.0 0.0.0.0 255.255.252.0 U 0 0 0 br0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 br0

ANVIL
15-05-2009, 12:02
Доброго времени суток всем!

Необходима помощь с настройкой iptables для работы с интерфейсом tun.
Описание: роутер подключенный по openvpn через интерфейс tun видит другую сеть. Здесь он выступает в роли клиента. На роутере уже имеется подключение по PPTP и все настроено по веб интерфейсу.
Требуется: направлять пакеты из сети за роутером через tun в другую сеть и получать их обратно. Нужно, как я понял, использовать NAT. При этом, возможно, что будет несколько tun интерфейсов.

oleg71
15-05-2009, 13:40
Руководство по iptables (Iptables Tutorial) (http://opennet.ru/docs/RUS/iptables/index.html)

igor77777
15-05-2009, 21:41
В скриптах не силен, помогите пожалуйста соорудить решение.
Думаю для профи, это будет легко.

Кроме всего прочего (ppp0 и vlan1) у меня установлен клиент openvpn (tap0). IP на tap0 раздает dhcp-сервер.
udhcpc я научил получать этот ip и прописывать маршруты.
Запнулся я на iptables.
Время аренды IP установлено 600 сек, и по моим наблюдениям но действительно может поменяться :-(
В общем я хочу следующее:
при получении IP добавлять следующее правило:
в таблицу nat PREROUTING -d <мой IP> -j VSERVER
а старое правило со старым IP удалять

PS: Я так понимял это правило нужно для работы uPnP.

2bars
16-05-2009, 16:53
iptables -t nat -A PREROUTING -i tap0 -j VSERVER

статическое не пойдет?

igor77777
18-05-2009, 09:52
iptables -t nat -A PREROUTING -i tap0 -j VSERVER

статическое не пойдет?

Может и пойдет.
Но наверно мне это не поможет.
Я так понял uPnP из прошивки заускается либо на WAN, либо на MAN.
И я преполагаю, что на на tap0 работать не будет. :-(

А вообще, я хочу, чтобы мой rTorrent работал и в сети провайдера (tap0) и в инете (ppp0)
Что для этого нужно я пока не понял.
и вообще нужно ли открывать и/или пробрасывать порты.
Вроде сейчас работает, но вот скорость меня не впечатляет.

Less
18-05-2009, 10:07
Пропишыте руками port forwarding.
Вариантов 3:
1) UPnP
2) VSERVER
3) ручками правила написать в post-firewall


## uTorrent
iptables -t nat -I PREROUTING -i $WANIF -p tcp --dport 25544 -j DNAT --to-destination 192.168.1.2:25544
iptables -t nat -I PREROUTING -i $WANIF -p udp --dport 25544 -j DNAT --to-destination 192.168.1.2:25544
iptables -I FORWARD -i $WANIF -p tcp --dport 25544 -d 192.168.1.2 -j ACCEPT
iptables -I FORWARD -i $WANIF -p udp --dport 25544 -d 192.168.1.2 -j ACCEPT

dnk2009
19-05-2009, 05:53
народ ну помогите скажите хотябы к какому интерфейсу что вешать. правила я как нибудь напишу. просто мне непонятно где тут карточка которая смотрит в инет а какая на вай фай. или делать форвард дроп для бридж интерфейса.

ANVIL
19-05-2009, 07:03
Руководство по iptables (Iptables Tutorial) (http://opennet.ru/docs/RUS/iptables/index.html)

Это я все уже просмотрел. Разве так сложно просто написать как это осуществить? Или надо обязательно перед этим прочитать все руководство и забить на эту идею? :D

igor77777
19-05-2009, 08:51
Для меня сейчас проблема на самих правилах, а в том, что перед добавлением правил в iptables, удалить правила со "старым" ip на tap0

Ну и я так понимаю, что uPnP и VSERVER из прошивки работают только с интерфесами ppp0 и vlan1.
А мне нужно это организовать на tap0.

vectorm
19-05-2009, 09:10
Для меня сейчас проблема на самих правилах, а в том, что перед добавлением правил в iptables, удалить правила со "старым" ip на tap0

Ну и я так понимаю, что uPnP и VSERVER из прошивки работают только с интерфесами ppp0 и vlan1.
А мне нужно это организовать на tap0.
А зечем вешать правила на IP ??? Вешайте на интерфейс, тогда заморачиваться не придется с удалением.
Вообще - по идее, правила с несуществующими путями должны автоматом нивелироваться.

igor77777
19-05-2009, 10:17
А зечем вешать правила на IP ???
Я не большой специалист в сетях и файрволах.
Поэтому пытаюсь делаю по аналогии с тем что вижу.
В правилах которые генерит сам роутер для ppp0 и vlan1, ip этих интерфейсов прописаны. Поэтому и пытаю реализовать добавление правил для tap0, аналогичные тем, что есть для ppp0 и vlan1.


Вешайте на интерфейс, тогда заморачиваться не придется с удалением.
Т.е. на IP можно забить? Все будет работать с указанием только интерфейса?


Вообще - по идее, правила с несуществующими путями должны автоматом нивелироваться.
Не совсем понял.
Чтобы что-то автоматически сделалось, нужно чтобы алгоритм этого автомата, был где-то описан, и при наступлении соответствующего события выполнился.
Возможно для ppp0 и vlan1 это так, а вот для того, что создается не из прошивки то врядли :(

Вообще меня тут смущает следующее:
1. Если я буду только добавлять правила с IP то таблица(ы) iptables будет разрастаться.
2. Что будет проиcходить с пакетами, адресованными "моим старым IP", когда(если) они будут попадать на роутер? И вообще, будут ли они в него попадать?

igor77777
19-05-2009, 10:46
Решение у меня уже почти есть, вот как его реализовать в виде скрипта, я пока не знаю. Может кто подскажет.
Идея такая, для post-firewall:
1. Проверяю наличие файла с ранее добавленными правилами. (примерно представляю, как это сделать)
2. Если файл есть, то п.п. 3
3. Если скрипт запущен из udhcpc-клиент на tap0, то пробегаю по этому файлу и удаляю эти правила (вообще не представляю, как это реализовать) переходим к п.п. 8
4. Иначе (т.е. скрипт запущен вследствии реконекта к ppp0 или vlan1),
пробегаю по этому файлу и добавяю эти правила (вообще не представляю, как это реализовать) переходим к п.п. КОНЕЦ
5. Если файла нет, то п.п.6
6. Если скрипт запущен из udhcpc-клиент на tap0, то переходим к п.п. 8
7. Иначе (т.е. скрипт запущен вследствии реконекта к ppp0 или vlan1),
переходим к п.п. КОНЕЦ
8. Добавляем правило(а) в iptables и суть этого правил(а) пишем в какой-нибудь файл (это я знаю как сделать)
~КОНЕЦ

Вот что типа такого.

Этот файл, где будут храниться добавленные правила, я думал положить в /etc/my_iptables.conf. Тогда, при загрузке/перегрузке роутера, этого файла точно не будет.
Или может лучше его положить на /opt/etc ???

2bars
19-05-2009, 20:04
нарисуйте, ничё не понял кто куда должен ходить и причем тут пптп

Less
20-05-2009, 08:19
Это я все уже просмотрел. Разве так сложно просто написать как это осуществить? Или надо обязательно перед этим прочитать все руководство и забить на эту идею? :D

Вам необходимо помимо настройки правил iptables настроить routing (маршрутизацию).

Дайте схему что Вам надо, например так:
сеть 172.1.1.0/24 <---> VPN (172.1.1.11/24) (wl500gp) tun0 (192.2.2.23/24) <---> 192.2.2.0/24

eskander
25-05-2009, 22:09
сообственно нужно заблокировать исходящие на ppp0 411 порт
тоесть заблокировать все интернет дц++ хабы (ну те что на стандартном 411 порту)
при том те что в локалке должны работать
вообщем не получается , не силён я в линуксе

Power
25-05-2009, 23:28
Добавить в post-firewall


iptables -A FORWARD -o ppp0 -p tcp -m tcp --dport 411 -j DROP

Если нужно, чтобы и сам роутер не мог соединиться, добавить ещё такую же строчку, только заменить FORWARD на OUTPUT

eskander
29-05-2009, 00:33
спасибо работает

skelet
15-06-2009, 09:28
чисто теоретический вопрос, для общего развития... :)

asp
15-06-2009, 10:19
Ээээ... iptables? %)

al37919
15-06-2009, 11:03
полагаю, kernel

skelet
15-06-2009, 12:45
в принципе да, только это не процесс ... чем то же должно быть представлено всё это, что-бы хоть мониторинг провести

Less
15-06-2009, 13:13
Курим... :cool:
http://www.opennet.ru/base/net/iptables_inside.txt.html

skelet
15-06-2009, 14:27
сие здорово и интересно, но ... абсолютно не по теме :(((


Переформулирую вопрос:
есть некоторый траффик через роутер, часть идёт из локалки прова, часть - из инета (pptp).

Надо определить сколько примерно % проца сжирает WAN->LAN преобразование, т.е. NAT и файрвол.

Сколько сжирает инет понятно - смотрим pptp. (конечно пакеты, приходящие из pptp также подвергаются фильтрованию, но сие не критично, т.к. нужна лишь общая оценка, а не тонкости )

Prot_XT
29-06-2009, 10:04
В rTorrent отсутствует IP -фильтр, как в uTorrent. Ну и как я почерпнул из этого форума, его можно реализовать средствами IpTables.
Подскажите пожалуйста, как это сделать? Я в Linux ничегошеньки не понимаю... Почитал туториал об IpTables... весьма смутные впечатление оставило это мероприятие. Мог бы кто нить написать пример, как это сделать. Как это вбить, чтобы запускалось всегда где потом смотреть и т.д.
Для примера заблокировать диапазон IP адресов 0.0.0.0 - 82.200.197.255

Prot_XT
01-07-2009, 08:26
Неужели никто не поможет?

Prot_XT
01-07-2009, 08:40
Порыскав по инету, посмотрев примеры накидал вот такой вариант:
Допусти мне нужно чтобы rtorrent качал только из диапазона сетей 82.200.127.255-82.201.0.0, таким образом как я понял должна быть
приблизительно такие строки:

iptables -A OUTPUT -p tcp --destination-port 12304:12305 -m iprange --dst-range 82.200.127.255-82.201.0.0 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 12304:12305 -m iprange --dst-range 82.200.127.255-82.201.0.0 -j ACCEPT

12304:12305 - это порты на которых работает rtorrent, ну и соответственно ACCEPT, значит пакеты принимаются.
Правда я не понял как запретить остальные?
Опробовав сии строки, описаные выше пришел к выводу, что модем не понимает команду iprange, ну и соответственно таким образом диапазон
ip адресов не задашь. Пришлось разбивать все это дело на подсети

82.200.127.255-82.201.0.0

82.200.127.255/32
82.200.128.0/17
82.201.0.0/32

таким образом получилось следующее

iptables -A OUTPUT -p tcp --source-port 12304:12305 -s 82.200.127.255/32 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 12304:12305 -d 82.200.127.255/32 -j ACCEPT

кто понимает в этом посмотрите, правильно ли я делаю?
как запретить остальные пакеты, не принадлежащие этим сетям?

iptables -A OUTPUT -p tcp --source-port 12304:12305 -j DROP
iptables -A INPUT -p tcp --destination-port 12304:12305 -j DROP

правильно ли это?
что вбивать вперед, что после?

DarthSemafor
11-07-2009, 09:24
Есть роутер асус, подключенный к интернету (LAN 192.168.0.1), к нему подключен Большой Linux-роутер с двумя сетевухами (eth1-192.168.0.2 - к асусу, eth1-192.168.1.1-смотрит в локалку).На большом роутере стоит веб-сервер на порту 8081. Асус перенаправляет веб-запросы с инета по правилу:

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8081
iptables -t nat -D PREROUTING -i ppp0 -p tcp --dport 80 -j DROP
Есть очень большая необходимость посылать запросы к веб-серверу из локалки (192.1681.1/24), обращаясь при этом по хостнейму блаблабла.dyndns.org (http://блаблабла.dyndns.org), однако он выкидывает меня на 192.168.0.1:80. вместо 192.168.1.1:8081 :(
Заранее спасибо!
P.S.: man iptables не предлагать)

DarthSemafor
11-07-2009, 11:25
Если завернуть исходящие соединения вот так
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8081

то веб-сервер работает по хостнейму, но инета нет

EugeenB
11-07-2009, 21:42
Если завернуть исходящие соединения вот так
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8081

то веб-сервер работает по хостнейму, но инета нет

iptables -t nat -A PREROUTING -i br0 -p tcp -d внешний_IP_Asus_на_ppp0 --dport 80 -j DNAT --to-destination 192.168.0.2:8081