26

Re: Iptables

felcons, или опечатались (имя файла), используйте автодополнение. Или атрибуты исполнения не присвоились. Или концом строки скрипт не заканчивается. Все легко проверяется.

27

Re: Iptables

То что в имени файла не опечатался то точно.
Вот по поводу конца строки, то просто и незнаю как проверить. я использую akelpad под windows,  е код конца строки я настроил под юникс.
Но странное то, что если скрипт запускать через sh ./firewall.sh
то он отрабатывает.
если просто запустить, как ./firewall.sh, то он не отрабатывает.

28

Re: Iptables

felcons, значит опечатались при изменении прав (chmod), явно для рута нет прав на исполнение скрипта. "ls -al" Вам в помощь. Такие вопросы следует задавать в другой теме. К iptables невозможность запуска шелл скрипта не имеет отношения.

Редактируйте все прямо на кинетике (в mc), это гораздо удобнее.

29

Re: Iptables

Ну что атрибут там на исполнения есть.
То точно.
В ответ же мне написало такое:
-rwxrwxrwx    1 root     root           58 Dec 24 17:29 firewall.sh             
А то значит, что атрибут на исполнение есть.
Но когда находясь в той папке набрать
./firewall.sh
то говорит
ash not found firewall.sh.
Перепроверял всё аккуратно.
Перевод строки в формате unix стоит, так что из строками всё ок.
В конце есть пустая строка, тоесть простой перевод строки.
Что дальше копать?

30

Re: Iptables

Дальше продолжаю эксперементировать.
Всё правильно описал, и есть проблема.
пробую просто указать полный путь
/media/DISK_A1/system/etc/firewall.d/firewall.sh
и в ответ мне пишется
-ash: /media/DISK_A1/system/etc/firewall.d/firewall.sh: not found               
по комманде ls показывает, что он есть.
Просто и незнаю, где дальше копать, и почему он не обрабатывается.

31

Re: Iptables

felcons, начните заново. Я специально проверил все Ваши действия, у меня все работает. Правда файл называл не firewall.sh, а иначе, без расширения. Но это роли не играет.

Давайте выдачу в тегах [ code ]

cat /media/DISK_A1/system/etc/firewall.d/<имя файла>
ls -al /media/DISK_A1/system/etc/firewall.d/

32

Re: Iptables

Вот что я делал, и как оно выглядело.
login as: root                                                                 
root@192.168.1.1's password:                                                   
                                                                               
                                                                               
BusyBox v1.8.2 (2011-11-16 21:08:32 MSK) built-in shell (ash)                   
Enter 'help' for a list of built-in commands.                                   
                                                                               
/media/DISK_A1/system/root # cat /media/DISK_A1/system/etc/firewall.d/firewall.s
h                                                                               
#!/bin/sh                                                                       
iptables -A INPUT -p tcp --dport 22 -j ACCEPT                                   
/media/DISK_A1/system/root # ls -la /media/DISK_A1/system/etc/firewall.d       
drwxrwxrwx    1 root     root            0 Dec 24 18:53 .                       
drwxrwxrwx    1 root     root         4096 Dec 21 15:09 ..                     
-rwxrwxrwx    1 root     root           58 Dec 24 18:52 firewall.sh             
/media/DISK_A1/system/root # /media/DISK_A1/system/etc/firewall.d/firewall.sh   
-ash: /media/DISK_A1/system/etc/firewall.d/firewall.sh: not found               
/media/DISK_A1/system/root #

33

Re: Iptables

felcons, научитесь пользоваться форумными тегами

~$ echo '#!/bin/sh' > /media/DISK_A1/system/etc/firewall.d/firewall.sh
~$ echo 'iptables -A INPUT -p tcp --dport 22 -j ACCEPT' >> /media/DISK_A1/system/etc/firewall.d/firewall.sh
~$ chmod +x /media/DISK_A1/system/etc/firewall.d/firewall.sh
~$ cat /media/DISK_A1/system/etc/firewall.d/firewall.sh
#!/bin/sh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
~$ /media/DISK_A1/system/etc/firewall.d/firewall.sh

Как видите, все работает. ЧЯДНТ?

34

Re: Iptables

через echo всё заработало.
Видимо, что были проблемы или в конце строки или ещё в чём другом.
Спасибо за помощь. Ну а с тегами, то уточню в личной переписке.

35

Re: Iptables

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

из /bin/firewall.sh
...
# In bridge mode, we don't need firewall                                                                                                                                         
if [ "$OP_MODE" = 'WiFi Access Point' -o "$OP_MODE" = 'Wireless Bridge' ] ; then
...   
      exit                                                                                                                                                                     
fi

посмотреть текущий режим,
# flash get OP_MODE
OP_MODE="WiFi Access Point"

т.е. в данном режиме работы кинетика, скрипты из  /media/DISK_A1/system/etc/firewall.d/ вызываться не будут т.к. /DISK_A1/system/bin/ext_firewall.sh не вызывается по опис выше причине.
следует иметь это ввиду.

36

Re: Iptables

fr0st84, а в режима точки доступа правила iptables на кинетике все разрешают. Никакие скрипты в firewallюв и не нужны.

37

Re: Iptables

Такая задача именно для iptables. Надо для определённой группы адресов, тоесть от 192.168.1.50 до 192.168.1.60 прикрыть ресурсы типа vkontakte.ru, odnoklasniki.ru, и в том роде. читал документацию и понял, что надо будет развязывать конкретный ресурс по ип, и потом прикрывать по ип.
пробовал описать правилом вот так

iptables -A INPUT -s 192.168.1.50-192.168.1.60 -d 217.20.154.59 -p tcp -j REJECT

и что-то оно не работает.
Может такая задача не под силу iptables? в keenetic, ещё есть в веб конфигураторе url filter, но там вроди нет для группы ип адресов.
Как правильно сделать с помощью iptables?

38

Re: Iptables

felcons :

Как правильно сделать с помощью iptables?

Я делаю так:

iptables -I FORWARD -s 192.168.1.34 -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP

Отредактировано AndreyUA (2012-01-20 08:00:37)

39

Re: Iptables

Для информации (из присланного письма, сам не проверял). Встроенный в прошивку url фильтр добавляет такого рода правила

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       tcp  --  br0    *       0.0.0.0/0            0.0.0.0/0           WEBSTR match url odnoklasniki 
...

40

Re: Iptables

Через web конфигуратор добавил odnoklassniki.ru и все закрылось (правда для всех ip) как положено.
iptables -L выдает в FORWARD-е

Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP       tcp  --  anywhere             anywhere            WEBSTR match url odnoklassniki.ru 

Отредактировано laforsh (2012-01-20 12:06:27)

41

Re: Iptables

Разобрался и примерно будет вот так

iptables -A FORWARD -p tcp -s 192.168.1.128/25 -m webstr --url "odnoklasniki" -j DROP

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

Отредактировано felcons (2012-01-20 16:07:01)

42

Re: Iptables

felcons :

Да, но как описать в правиле это всё для определённой группы адресов?

iptables -I FORWARD -s 192.168.1.34-192.168.1.254 -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP

Попробуйте

Отредактировано AndreyUA (2012-01-20 15:23:57)

43

Re: Iptables

AndreyUA :
felcons :

Да, но как описать в правиле это всё для определённой группы адресов?

iptables -I FORWARD -s 192.168.1.34-192.168.1.254 -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP

Попробуйте

попробовать то попробовал, но проще так, как я описал выше.
Ещё б как-то сохранить в сам роутер, и было б ок.

44

Re: Iptables

felcons :

попробовать то попробовал, но проще так, как я описал выше.
Ещё б как-то сохранить в сам роутер, и было б ок.

Это к разработчикам или пересобирать прошивку

45

Re: Iptables

И в продолжение к теме, обнаружил, что не всё работает.
пишу набор вот таких правил:

 iptables -A FORWARD -m layer7 --l7proto skypetoskype -j DROP
 iptables -A FORWARD -m layer7 --l7proto skypeout -j DROP

в ответ он говорит вот так:
scandir: No such file or directory                                             
iptables v1.3.8: Couldn't open /etc/l7-protocols                                 
в хелпе есть описано, что  должно работать.

тоесть опция l7proto описана.
Как я понял, что просто надо в /etc положить ему файл с протоколами.
Но вот задачка, где его взять?

46

Re: Iptables

felcons, ничего в /etc "положить" нельзя. Файловая система кинетика readonly. Этого функционала в iptables  кинетика нет.

47

Re: Iptables

Значит ли это, что тогда брак в прошивке?
Тоесть в документации функцию предвидели, а вот она не реализована?
А может положить этот файл по пути
/media/DISK_A1/system/etc
Может и так будет работать?
как реализовать функцию l7proto?
А то вроди она и есть и её нету.

48

Re: Iptables

felcons :

как реализовать функцию l7proto?

Пересобрать прошивку, добавить нужный модуль netfilter.
Не путайте полноценный linux и linux на маршрутизаторе с небольшой памятью и слабым процом. Многие возможности полноценного linux при сборке отрезаются.

49

Re: Iptables

Но в функциях l7proto описан, а не работает.
Может они со временем добавят?
На сколько реально самому пересобрать и добавить netfilter?  где про то прочитать?

50

Re: Iptables

felcons :

Но в функциях l7proto описан

В каком описании - разве в описании кинетика?

felcons :

Может они со временем добавят?

Спросите.

felcons :

На сколько реально самому пересобрать и добавить netfilter?  где про то прочитать?

Исходники прошивки выложены на zyxel.ru - изучайте.