Re: Iptables
felcons, или опечатались (имя файла), используйте автодополнение. Или атрибуты исполнения не присвоились. Или концом строки скрипт не заканчивается. Все легко проверяется.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
felcons, или опечатались (имя файла), используйте автодополнение. Или атрибуты исполнения не присвоились. Или концом строки скрипт не заканчивается. Все легко проверяется.
То что в имени файла не опечатался то точно.
Вот по поводу конца строки, то просто и незнаю как проверить. я использую akelpad под windows, е код конца строки я настроил под юникс.
Но странное то, что если скрипт запускать через sh ./firewall.sh
то он отрабатывает.
если просто запустить, как ./firewall.sh, то он не отрабатывает.
felcons, значит опечатались при изменении прав (chmod), явно для рута нет прав на исполнение скрипта. "ls -al" Вам в помощь. Такие вопросы следует задавать в другой теме. К iptables невозможность запуска шелл скрипта не имеет отношения.
Редактируйте все прямо на кинетике (в mc), это гораздо удобнее.
Ну что атрибут там на исполнения есть.
То точно.
В ответ же мне написало такое:
-rwxrwxrwx 1 root root 58 Dec 24 17:29 firewall.sh
А то значит, что атрибут на исполнение есть.
Но когда находясь в той папке набрать
./firewall.sh
то говорит
ash not found firewall.sh.
Перепроверял всё аккуратно.
Перевод строки в формате unix стоит, так что из строками всё ок.
В конце есть пустая строка, тоесть простой перевод строки.
Что дальше копать?
Дальше продолжаю эксперементировать.
Всё правильно описал, и есть проблема.
пробую просто указать полный путь
/media/DISK_A1/system/etc/firewall.d/firewall.sh
и в ответ мне пишется
-ash: /media/DISK_A1/system/etc/firewall.d/firewall.sh: not found
по комманде ls показывает, что он есть.
Просто и незнаю, где дальше копать, и почему он не обрабатывается.
felcons, начните заново. Я специально проверил все Ваши действия, у меня все работает. Правда файл называл не firewall.sh, а иначе, без расширения. Но это роли не играет.
Давайте выдачу в тегах [ code ]
cat /media/DISK_A1/system/etc/firewall.d/<имя файла>
ls -al /media/DISK_A1/system/etc/firewall.d/
Вот что я делал, и как оно выглядело.
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 #
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
Как видите, все работает. ЧЯДНТ?
через echo всё заработало.
Видимо, что были проблемы или в конце строки или ещё в чём другом.
Спасибо за помощь. Ну а с тегами, то уточню в личной переписке.
привет всем,
небольшое замечание, возможно уже было, но тем не менее может пригодится кому-либо
из /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 не вызывается по опис выше причине.
следует иметь это ввиду.
fr0st84, а в режима точки доступа правила iptables на кинетике все разрешают. Никакие скрипты в firewallюв и не нужны.
Такая задача именно для 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?
Как правильно сделать с помощью 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)
Для информации (из присланного письма, сам не проверял). Встроенный в прошивку 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
...
Через 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)
Разобрался и примерно будет вот так
iptables -A FORWARD -p tcp -s 192.168.1.128/25 -m webstr --url "odnoklasniki" -j DROP
Но всё-таки хотел бы, чтоб оно как-то прописалось в сам роутер, а не было на флешке.
На сколько реально прописать правило в сам роутер, чтоб оно работало и после перезагрузки? Какие комманды надо для этого?
В каких файлах сам роутер держит правила?
Отредактировано felcons (2012-01-20 16:07:01)
Да, но как описать в правиле это всё для определённой группы адресов?
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)
felcons :Да, но как описать в правиле это всё для определённой группы адресов?
iptables -I FORWARD -s 192.168.1.34-192.168.1.254 -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP
Попробуйте
попробовать то попробовал, но проще так, как я описал выше.
Ещё б как-то сохранить в сам роутер, и было б ок.
попробовать то попробовал, но проще так, как я описал выше.
Ещё б как-то сохранить в сам роутер, и было б ок.
Это к разработчикам или пересобирать прошивку
И в продолжение к теме, обнаружил, что не всё работает.
пишу набор вот таких правил:
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 положить ему файл с протоколами.
Но вот задачка, где его взять?
felcons, ничего в /etc "положить" нельзя. Файловая система кинетика readonly. Этого функционала в iptables кинетика нет.
Значит ли это, что тогда брак в прошивке?
Тоесть в документации функцию предвидели, а вот она не реализована?
А может положить этот файл по пути
/media/DISK_A1/system/etc
Может и так будет работать?
как реализовать функцию l7proto?
А то вроди она и есть и её нету.
как реализовать функцию l7proto?
Пересобрать прошивку, добавить нужный модуль netfilter.
Не путайте полноценный linux и linux на маршрутизаторе с небольшой памятью и слабым процом. Многие возможности полноценного linux при сборке отрезаются.
Но в функциях l7proto описан, а не работает.
Может они со временем добавят?
На сколько реально самому пересобрать и добавить netfilter? где про то прочитать?
Но в функциях l7proto описан
В каком описании - разве в описании кинетика?
Может они со временем добавят?
Спросите.
На сколько реально самому пересобрать и добавить netfilter? где про то прочитать?
Исходники прошивки выложены на zyxel.ru - изучайте.
На основе PunBB, при поддержке Informer Technologies, Inc.