Bekijk de volledige versie : Настройка IPTables
don-pedro
04-07-2012, 14:47
Вывожу список правил iptables -L -n
Почему правила не применяются?
Лучше посмотреть всю таблицу командой iptables-save.
Может нужно рестартить сервис iptables?
http://www.opennet.ru/docs/RUS/iptables/
Без ребута никак нельзя применять правила? Это очень не удобно.
Можно.
P.S. 9 лет - это возраст? И это правда? :)
Kostik_9_let
04-07-2012, 23:00
don-pedro,
Через сейв сделал. Там есть нужная строка.
-A INPUT -s 91.219.194.29/32 -j DROP
service iptables restart из мануала
/bin/sh: service: not found
все же как его перезапустить?
Не возраст.
service iptables restart из мануала
/bin/sh: service: not found
все же как его перезапустить?
Для применения правила перезапуск не требуется, правило действует сразу после добавления ... Вы запускали "PING 91.219.194.29" на роутере или на машине за ним???
don-pedro
05-07-2012, 06:22
don-pedro,
Через сейв сделал. Там есть нужная строка.
-A INPUT -s 91.219.194.29/32 -j DROP
Важно, в каком именно месте она есть.
Kostik_9_let
05-07-2012, 16:03
tempik,
На роутере и на машине. Пинг идет.
don-pedro,
Вот полный выхлоп команды iptables-save
http://xeon.lolo.pro/private/iptables.rures.zip
Вот полный выхлоп команды iptables-save
http://xeon.lolo.pro/private/iptables.rures.zip
замени -A на -I
iptables -I INPUT -s 91.219.194.29 -j DROP
Kostik_9_let
05-07-2012, 21:53
Сделал, но результат тот же.
Записи добавились после строк
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [4001531:252455545]
:OUTPUT ACCEPT [1401727:227392541]
:BRUTE - [0:0]
:MACS - [0:0]
:SECURITY - [0:0]
:UPNP - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
Сделал, но результат тот же.
Записи добавились после строк
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [4001531:252455545]
:OUTPUT ACCEPT [1401727:227392541]
:BRUTE - [0:0]
:MACS - [0:0]
:SECURITY - [0:0]
:UPNP - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
Если после этих записей стоит
iptables -I INPUT -s 91.219.194.29 -j DROP
то адрес 91.219.194.29 не будет пинговаться с РОУТЕРА (при условии что остальные строки остались без изменений) ... Может Вам имеет смысл разобраться для чего вообще применяют правила iptables??? Например почитать http://www.opennet.ru/docs/RUS/iptables/
Цепочка INPUT это не все что идет ИЗВНЕ .... Если на пальцах, то представьте роутер в виде стакана ... Наливаем воду в него это цепочка INPUT. Выливаем воду из него это цепочка OUTPUT. А вот солнечный луч что проходит сквозь него Вам в глаз это цепочка FORWARD ... Где-то так (сорри за образность)
пытаюсь заблокировать доступ из локалки к определенному IP, подскажите что делаю не так :
iptables -A OUTPUT -d 1.2.3.4 -j DROP
после этого с клиентского ПК :
ping 1.2.3.4
все равно пинг проходит
пытаюсь заблокировать доступ из локалки к определенному IP, подскажите что делаю не так :
iptables -A OUTPUT -d 1.2.3.4 -j DROP
Наверное стоит поставить -A INPUT, и кстати, если не указан протокол, то если не изменяет мне мой склероз, то правило обрабатывает TCP/UDP соединения, но не обрабатывает ICMP.
попробовал разные варианты :
iptables -I INPUT -d 1.2.3.4 -j DROP
iptables -A INPUT -d 1.2.3.4 -j DROP
iptables -A OUTPUT -d 1.2.3.4 -j DROP
правила видно через iptables -L -n , но никакого эффекта нет (проверяю tcp через httping)
все равно остается доступ к этим ip из локалки
а если добавить
iptables -t NAT -A INPUT -d 1.2.3.4 -j DROP (или как там эту таблицу зовут, просто девайса под рукой нет ...)
попробовал разные варианты :
iptables -I INPUT -d 1.2.3.4 -j DROP
iptables -A INPUT -d 1.2.3.4 -j DROP
iptables -A OUTPUT -d 1.2.3.4 -j DROP
правила видно через iptables -L -n , но никакого эффекта нет (проверяю tcp через httping)
все равно остается доступ к этим ip из локалки
Посмотрите на мое сообщение (http://wl500g.info/showthread.php?13231-%CD%E0%F1%F2%F0%EE%E9%EA%E0-IPTables&p=252739#post252739) и попробуйте сделать правильный вывод ... Да и вот это (http://www.opennet.ru/docs/RUS/iptables/) изучить не помешает ...
AndreyPopov
10-08-2012, 13:42
пытаюсь заблокировать доступ из локалки к определенному IP, подскажите что делаю не так :
iptables -A OUTPUT -d 1.2.3.4 -j DROP
после этого с клиентского ПК :
ping 1.2.3.4
все равно пинг проходит
iptables работает между wan-lan, внутри lan пакеты проходят через коммутатор.
потому вы можете:
- запретить доступ избранным IP адресам к WAN
- вы можете запретить доступ к устройству устройствам с определенными MAC адресами или запретить отсылать пакеты на определенные MAC адреса - но этим занимается не iptables.
Почему при добавлении следующего правила (iptables -I INPUT 1 -i vlan1 -j DROP или iptables -I INPUT 1 -i vlan1 -m conntrack -ctstate NEW -j DROP) клиенты по проводу работают, а Wi-Fi отваливается? В первом случае подсоединяется, но не открывает страницы, а во втором - даже не удается подсоединиться? Просто я хочу заблокировать точку доступа на вход по данному интерфейсу, который в данном случае имеет внешний IP. Заранее спасибо!
ConstAntz
05-02-2013, 15:34
Почему при добавлении следующего правила (iptables -I INPUT 1 -i vlan1 -j DROP или iptables -I INPUT 1 -i vlan1 -m conntrack -ctstate NEW -j DROP) клиенты по проводу работают, а Wi-Fi отваливается?
Потому что vlan1, как раз и отвечает за вайфай клиентов, а vlan0 - за проводных. С таблицами (http://dic.academic.ru/dic.nsf/mas/68835/%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0) можно познакомиться там (http://linuxshare.ru/docs/security/iptables/iptables-tutorial.html).
Простите! (заметил спустя 3 часа), вместо vlan имелось ввиду eth
Есть ли способ через морду разрешить произвольный порт, а не только ftp/ssh ?
Или только через post-firewall?
У меня на 514 udp порту крутится syslog-ng.
Потому что vlan1, как раз и отвечает за вайфай клиентов, а vlan0 - за проводных. С таблицами (http://dic.academic.ru/dic.nsf/mas/68835/%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0) можно познакомиться там (http://linuxshare.ru/docs/security/iptables/iptables-tutorial.html).
Тогда как все-таки написать правило так, чтобы Wi-Fi не зарубался? И почему тогда этому интерфейсу присваевается WAN-овский IP?
ConstAntz
06-02-2013, 18:17
Тогда как все-таки написать правило так, чтобы Wi-Fi не зарубался?
отредактировал предыдущее сообщение.
Просто я хочу заблокировать точку доступа на вход по данному интерфейсу, ...
С учетом предыдущего, мысль не совсем ясна. Распишите подробнее. Из того, что написано - самое простое=отключить в морде вайфай, или там-же, поставить фильтр по маку.
отредактировал предыдущее сообщение.
С учетом предыдущего, мысль не совсем ясна. Распишите подробнее. Из того, что написано - самое простое=отключить в морде вайфай, или там-же, поставить фильтр по маку.
Нет, вайфай не хочется отключать. Про мак-фильтр я тоже знаю. Конкретизирую: я хочу заблокировать те пакеты, которые идут на роутер (именно на роутер) из внешней сетки, которая, насколько я понимаю, сидит на vlan1! Короче, закрыть все порты для внешней сетки!
ConstAntz
09-02-2013, 06:45
Нет, вайфай не хочется отключать. Про мак-фильтр я тоже знаю. Конкретизирую: я хочу заблокировать те пакеты, которые идут на роутер (именно на роутер) из внешней сетки, которая, насколько я понимаю, сидит на vlan1! Короче, закрыть все порты для внешней сетки!
Неназойливую рекламу у своих вайфай клиентов блокирую правкой /usr/local/etc/hosts (flashfs commit && flashfs save на конце)
[root@root]$ cat /usr/local/etc/hosts
127.0.0.1 media.admob.com pagead.l.doubleclick.net csi.gstatic.com ad.leadboltapps.net api.airpush.com content.leadbolt.
net ad1rotator.com s.mobclix.com
А второе правило не срабатывает, потому что клиент отправил запрос и роутер обязан пропустить ответ обратно.
Неназойливую рекламу у своих вайфай клиентов блокирую правкой /usr/local/etc/hosts (flashfs commit && flashfs save на конце)
[root@root]$ cat /usr/local/etc/hosts
127.0.0.1 media.admob.com pagead.l.doubleclick.net csi.gstatic.com ad.leadboltapps.net api.airpush.com content.leadbolt.
net ad1rotator.com s.mobclix.com
А второе правило не срабатывает, потому что клиент отправил запрос и роутер обязан пропустить ответ обратно.
А для чего этот файл нужен? Что он делает? Какие адреса туда нужно вписывать? По-умолчанию в прошивке его нет! И как его создать? Попытался поискать по форуму, но почему-то возникает ошибка "Database Error".
Гхм, у ми обратная задача - разделить (separate) Wi-Fi и LAN, вычитал под DD-WRT аналогичное и собрал такое:
iptables -I INPUT -i eth1 -m state --state NEW -j DROP
iptables -I FORWARD -i eth1 -o eth0 -j DROP
iptables -I FORWARD -i eth0 -o eth1 -j DROP
Однако при запуске -m state --state NEW вываливается, что мол нет такой фитчи :( Остальные 2 правила принимаются, но не отрабатываются.
makaka86
24-02-2013, 11:20
На роутере стоит socks прокси сервер srelay. К нему разрешён доступ с одного внешнего IP на порт 2013 (vlan1)
Задача ограничить скорость интернета для внешнего пользователя.
QOS гонять не хочется ради одного этого правила, да и по iptables не хватит опыта.
Может кто поможет или подскажет альтернативное решение?
Нашёл в сети такой пример ограничения доступа к веб серверу, но у меня не получается подстроить под свои нужды
в правилах прописал следующее:
/sbin/iptables -N bad_adress
/sbin/iptables -A bad_adress -p TCP -i $INET_IFACE -s 192.168.2.43 --dport 80 -m limit --limit 2/second --limit-burst 2 -j ACCEPT
/sbin/iptables -A bad_adress -p TCP -i $INET_IFACE -s 192.168.2.43 --dport 80 -j DROP
/sbin/iptables -A bad_adress -p TCP -i $INET_IFACE -s 192.168.2.42 --dport 80 -m limit --limit 2/second --limit-burst 2 -j ACCEPT
/sbin/iptables -A bad_adress -p TCP -i $INET_IFACE -s 192.168.2.42 --dport 80 -j DROP
получилась скорость около 6 кБ/с определял экспериментально при закачке файла с сервера....
для веб просмотра страниц скорость примерно получается около 900 Б/с
ну вот, что и требовалось сделать, без всяких там заморочек!!!
Здравствуйте
Как прописать закрыть какой либо порт?
Открыть, понятно echo "/usr/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT" >> /usr/local/sbin/post-firewall
а если наоборот
unaceept или no accept
буду признателен если посоветуете литературу
какая система стоит линукс, какой применяется язык
don-pedro
14-11-2013, 07:58
Как прописать закрыть какой либо порт?
unaceept или no accept
DROP
буду признателен если посоветуете литературу
http://ru.wikibooks.org/wiki/Iptables
http://atkritka.com/288032/
Может ли iptables фильтровать пакеты в LAN? Или (как я здесь прочитал) он сидит на WAN'е? Если может, то как можно написать правило, ограничивающее доступ к определенному хосту от клиента этой же сетки? Насколько я понимаю, INPUT в таблице filter - это для пакетов, адресованных роутеру; FORWARD - это транзитные пакеты (т.е. извне внутрь локалки и наоборот)! Если iptables такое может, то как написать и где? Спасибо
don-pedro
03-12-2013, 13:16
Может ли iptables фильтровать пакеты в LAN? Или (как я здесь прочитал) он сидит на WAN'е? Если может, то как можно написать правило, ограничивающее доступ к определенному хосту от клиента этой же сетки?
Нет.
Такими пакетами занимается встроенный свитч, до netfilter они не доходят.
imho.
Нет.
Такими пакетами занимается встроенный свитч, до netfilter они не доходят.
imho.
Хорошо! А возможность конфигурирования из телнета свитча есть?
Мое почтение.
Такая штука, у меня есть железка дома, настроенная на работу в MAN провайдера.
MAN провайдер отключил, железка не работает, доступа к ее настройкам нет.
Но я знаю что если изменить на ней сервер к которому она обращается то все заработает.
Так вот как сделать так чтобы железка думала что она общается с одним IP, а на самом деле общалась с другим. Причем, второй IP заканчивается на ноль (не знаю важно ли это).
Подозреваю что надо крутить правила iptables, но еще не особо в этом разбираюсь.
Поскажите как правильно сделать?..
--> RTFM: http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
Вот так почему-то не срабатывает:
iptables -t nat -I PREROUTING -d 10.39.252.2 -j DNAT --to-destination 89.20.155.0
iptables -t nat -I POSTROUTING -s 89.20.155.0 -j SNAT --to-source 10.39.252.2
mzhuravlev
11-11-2016, 06:57
Сотоварищи, надеюсь на Вашу помощь.
Есть скрипт на Python, который прекрасно работает на компьютере с Ubuntu. Скрипт отправляет в сеть broadcast пакет.
Пытаюсь запустить его на роутере, не работает, пакет не приходит.
Меняю broadcastовый адрес на конкретный, работает.
У меня возникла две идеи, почему не работает:
- что то не так в iptable, возможно нужно что-то прописать, может он отбивает broadcast, или пакеты идут на другой интерфейс сетевой....
- что-то нет так в настройках сокета, хотя почему тогда под убунтой работает....(маловероятно с моей точки зрения)
- что-то, чего я не знаю.
Подскажите что сделать чтобы заработало... Правила iptables по умолчанию, в post-firewall ничего не меняю, прошивка от интузиастов, и скрипт ниже...
#!/opt/bin/python
import sys, os, socket
addr = ('255.255.255.255', 1111)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
t_s ="000000000000000"
sock.sendto(t_s, addr)
sock.close()
Решено, нужно добавить sock.bind('192.168.1.1',1)