) и где логика? был фаил, но не было каталога в котором он лежит?
Printable View
Логика очень простая - автор не смог или не захотел прочитать FAQ, а также сообщения об ошибках шелла. Более того, достаточно посмотреть на вывод iptables-save, чтобы понять что ЭТО не может быть shell-скриптом...
Твоё предложение - начать всё с нуля, а MercuryV пытается(-лся) пройти по шагам.
Проверил на другом роутере в post-firewall висит:
но не отрабатывает, доступ по прежнему есть :/ совсем не похоже, что Internet Firewall - URL Filter через post-firewall работает :(Code:-A FORWARD -p tcp -m time --timestart 09:00:00 --timestop 13:00:00 --weekdays Mon,Tue,Wed,Thu,Fri -m webstr --url vk.com -j DROP
-A FORWARD -p tcp -m time --timestart 14:00:00 --timestop 17:00:00 --weekdays Mon,Tue,Wed,Thu,Fri -m webstr --url vk.com -j DROP
В первой строке post-firewall есть указание, что файл нужно интерпретировать?
http://www.linuxtime.org/media/linux...go_100x100.png
Code:#!/bin/sh
Действительно отсутствовало, но толку не принесло...
Попробовал через морду создать правило:
Attachment 9162
В Status & Log - Diagnostic Information как раз есть похожая строчка, в отличии от post-firewall:
если пустить iptables-save:Code:IP Tables
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
80 3668 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
2692 282K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
53 22788 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
899 120K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
6 192 ACCEPT 2 -- * * 0.0.0.0/0 224.0.0.0/4
0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.0/4 udp dpt:!1900
76 19558 SECURITY all -- vlan2 * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
1 330 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68
0 0 BRUTE tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 flags:0x17/0x02
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.12.1 tcp dpt:80
6 333 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 529 packets, 39855 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 webstr: url www.mega-porno.ru/ reject-with tcp-reset
68538 91M out_traffic all -- br0 * 0.0.0.0/0 0.0.0.0/0
36228 7726K in_traffic all -- * br0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
127 5080 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.0/4
126K 109M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan2 0.0.0.0/0 0.0.0.0/0
9 436 SECURITY all -- !br0 * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
9 436 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 5134 packets, 2050K bytes)
pkts bytes target prot opt in out source destination
Chain BRUTE (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 600 hit_count: 3 name: BRUTE side: source
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 recent: SET name: BRUTE side: source
Chain MACS (0 references)
pkts bytes target prot opt in out source destination
Chain SECURITY (2 references)
pkts bytes target prot opt in out source destination
9 436 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/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
4 471 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
3 192 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
69 18895 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain UPNP (0 references)
pkts bytes target prot opt in out source destination
Chain in_traffic (1 references)
pkts bytes target prot opt in out source destination
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 ctstate NEW LOG flags 39 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 ctstate NEW LOG flags 39 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain out_traffic (1 references)
pkts bytes target prot opt in out source destination
P.S. В /tmp/local/ есть файлы: inet_auto.sh, inet_off.sh, inet_on.sh В которых криптики от имевших место выше идей как "убивать" детям интернет. Система читая, кроме проши Олеговой и прог для чайника ничего самостоятельно больше не прикручивалось.Code:-A INPUT -d 192.168.12.1/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -p tcp -m webstr --url www.mega-porno.ru/ -j REJECT --reject-with tcp-reset
-A FORWARD -i br0 -j out_traffic
Так и не получив толку, решил зайти с другой стороны и сделать всё топорно:
Создал абсолютные правила:
Attachment 9180
Добавил исключения:
Code:nano /tmp/local/inet_auto.sh
Автоотработка при старте:Code:iptables -I FORWARD -p tcp -m time --timestart 13:00:00 --timestop 14:00:00 --weekdays Mon,Tue,Wed,Thu,Fri -m webstr --url vk.com -j ACCEPT
Прикручиваем исполняемость:Code:mv /tmp/local/inet_auto.sh /opt/etc/init.d/S99inet_rule.sh
Ну и временную (нечего перед коллегами палиться, т.ч. пусь повисит в оперативе :) ) дырку себе делаем:Code:chmod +x /opt/etc/init.d/S99inet_rule.sh
Проверяем наличие правил на всякий:Code:iptables -I FORWARD -p tcp -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
P.S. стали жаловаться, что до 9 всё равно не пускает интернет :confused: плюнул, грохнул глобальные правила и в S99inet_rule.sh прописал их вручную с потиранием предыдущего:Code:iptables-save
Code:iptables -I FORWARD -p tcp -m time --timestart 09:00:00 --timestop 13:00:00 --weekdays Mon,Tue,Wed,Thu,Fri -m webstr --url vk.com -j DROP
iptables -I FORWARD -p tcp -m time --timestart 14:00:00 --timestop 17:00:00 --weekdays Mon,Tue,Wed,Thu,Fri -m webstr --url vk.com -j DROP
как сделать, чтобы допустим с 21-00 по 6-00 все запросы с определенного ip перенаправлялись только на один сайт или одну страницу сайта?
День добрый всем!
Имеется ASUS WL500GpV2, на нем прошивка от Олега+энтузиасты 1.9.2.7-rtn-r4772
Подключен к Интернет по стандартному WAN-порту.
Вот такая конструкция (с фильтрацией по IP) работает:
iptables -I FORWARD -m time --timestart 17:00:00 --timestop 17:05:00 --weekdays Mon,Tue,Wed,Thu,Fri,Sun,Sat -s 192.168.1.10 -j DROP
А вот такая (с фильтрацией по MAC) - не работает:
iptables -I FORWARD -m time --timestart 17:00:00 --timestop 17:05:00 --weekdays Mon,Tue,Wed,Thu,Fri,Sun,Sat -m mac --mac-source 00:11:12:18:25:43 -o ppp0 -j DROP
(МАК-адрес изменен).
А без аргументов "-o ppp0", в таком виде:
iptables -I FORWARD -m time --timestart 17:31:00 --timestop 17:32:00 --weekdays Mon,Tue,Wed,Thu,Fri,Sat,Sun -m mac --mac-source 00:11:12:18:25:43 -j DROP
работает!
Что-то не так с этим "-o ppp0"... Наверное, нет такого интерфейса (точнее - зовется он иначе). В чем вообще идея задавать выходной интерфейс, если без этого параметра выход в Интернет блокируется, а внутренняя сеть - доступна?
Линукс я практически не знаю. Документацию на iptables почитал, в чем причина - не пойму.
Гм, а зачем вам " -o ppp0"?
-o - исходящий интерфейс (-out-interface)
ppp0 - протокол PPPoE
P.S. а что вы вообще хотите получить:confused:
Мне непонятно, куда должен направляться поток. ИМХО - в какой-то Null...
ifconfig сказал следующее:
На "lo" отправлять поток?PHP Code:br0 Link encap:Ethernet HWaddr 00:22:15:13:AA:BA
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3689345 errors:0 dropped:0 overruns:0 frame:0
TX packets:2047726 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3063447921 (2.8 GiB) TX bytes:436672763 (416.4 MiB)
eth0 Link encap:Ethernet HWaddr 00:22:15:13:AA:BA
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5743009 errors:0 dropped:0 overruns:0 frame:0
TX packets:5640069 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3593512290 (3.3 GiB) TX bytes:3554421943 (3.3 GiB)
Interrupt:4 Base address:0x1000
eth1 Link encap:Ethernet HWaddr 00:22:15:13:AA:BA
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19735 errors:0 dropped:0 overruns:0 frame:484848
TX packets:44910 errors:26 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3014748 (2.8 MiB) TX bytes:16184498 (15.4 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:5490 errors:0 dropped:0 overruns:0 frame:0
TX packets:5490 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2568623 (2.4 MiB) TX bytes:2568623 (2.4 MiB)
vlan0 Link encap:Ethernet HWaddr 00:22:15:13:AA:BA
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3670918 errors:0 dropped:0 overruns:0 frame:0
TX packets:2040902 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3076305205 (2.8 GiB) TX bytes:440737709 (420.3 MiB)
vlan1 Link encap:Ethernet HWaddr 00:22:15:13:AA:BA
inet addr:111.11.112.123 Bcast:111.11.112.255 Mask:255.255.254.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2072079 errors:0 dropped:0 overruns:0 frame:0
TX packets:3599167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:413831656 (394.6 MiB) TX bytes:3113684234 (2.8 GiB)
"Работает\не работает" проверял пингом yandex.ru с ноутбука, подключенного через Wi-Fi к WL500GpV2.
Поэксперементировал:
По предварительным тестам прекрасно работает "-o vlan1"
Вечером проверю на реалиях, как все будет работать.
Спасибо ответившим. Я только пробую разобраться.
И так, отчитаюсь.
Мне очень понравилась конструкцияhttp://wl500g.info/showthread.php?25...736#post193736 уважаемого bbsc, и я ее немного модифицировал под свои нужды, поскольку Чилдрена у меня два, одному нужно ложится пораньше, а другому можно попозже и у старшего имеется комп, телефон и планшет...
Получилось вот так, первый вечер - полет нормальный:
В /usr/local/sbin/post-firewall у меня только это:
На этапе отладки в post-firewall разместил закоментированную табличку с МАКами моих железок. Кроме того, Child3 - это мои комп и ноутбук, для теста, отладки и контроля.Code:#!/bin/sh
iptables -N Child1
iptables -A Child1 -j DROP
iptables -N Child2
iptables -A Child2 -j DROP
iptables -N Child3
iptables -A Child3 -j DROP
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:01 -o vlan1 -j Child1
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:02 -o vlan1 -j Child2
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:03 -o vlan1 -j Child2
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:04 -o vlan1 -j Child2
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:05 -o vlan1 -j Child3
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:06 -o vlan1 -j Child3
## Включаем ребенку интернет по времени
iptables -I Child1 -m time --timestart 10:00:00 --timestop 23:30:00 --weekdays Fri,Sat -j RETURN
iptables -I Child2 -m time --timestart 10:00:00 --timestop 01:30:00 --weekdays Fri,Sat -j RETURN
iptables -I Child3 -m time --timestart 08:00:00 --timestop 02:30:00 --weekdays Fri,Sat -j RETURN
iptables -I Child1 -m time --timestart 08:00:00 --timestop 22:30:00 --weekdays Sun,Mon,Tue,Wed,Thu -j RETURN
iptables -I Child2 -m time --timestart 08:00:00 --timestop 00:30:00 --weekdays Sun,Mon,Tue,Wed,Thu -j RETURN
iptables -I Child3 -m time --timestart 08:00:00 --timestop 01:30:00 --weekdays Sun,Mon,Tue,Wed,Thu -j RETURN
Изящность конструкции в том, что для каждого ребенка мы описываем МАКи его железок, а отдельно составлеяемое расписание действует для всех этих железок.
Скрипты для исключений из расписания (OFF; OFFF; ON) предложенные bbsc я пока тестирую (их также три комплекта - для каждого ребенка свой набор). У меня есть подозрение, что стоит мне один раз включить (скриптом ON) доступ к Интернет, и он останется включенным до перезагрузки роутера, или до отмены правила. А скрипт OFF правило запрета не отменяет, а добавляет еще одно - разрешающее (я дуб в этом вопросе, может как раз все будет правильно работать...).
Дабы далеко не искать, покажу предложенные bbsc скрипты здесь.
Скрипт On1 (для первого чилдрена):
Скрипт Off1:Code:#!/bin/sh
iptables -F Child1
iptables -A Child1 -j RETURN
iptables -L Child1 && echo -e "Internet для Child1 ВКлючен\n"
Ну и скрипт Offf1:Code:#!/bin/sh
iptables -F Child1
iptables -A Child1 -j DROP
### Во время действия летнего времени срабатывает на 1 час позже:
iptables -I Child1 1 -m time --timestart 08:00:00 --timestop 22:00:00 --days Sun,Mon,Tue,Wed,Thu,Fri,Sat -j RETURN
echo
iptables -L Child1 && echo -e "Internet для Child1 с 8 до 22\n"
Все описанное проверялось на последней прошивке от Олега и Энтузиастов (1.9.2.7-rtn-r4772). Подключение к Интернет провайдеру через стандартный WAN-порт, тип подключения - "Automatic IP". Для работы внешний накопитель не нужен (винчестер или флешка).Code:#!/bin/sh
iptables -F Child1
iptables -A Child1 -j DROP
echo
iptables -L Child1 && echo -e "Internet для Child1 ВЫключен СОВСЕМ\n"
Вы всё правильно поняли. Только OFF "ещё одно" не добавляет, ибо перед добавлением таблицу опустошает.
Назначение скриптов задумывалось таким:
ON - для Включения доступа вне зависимости от времени.
OFFF - для ВЫключения доступа вне зависимости от времени.
OFF - для отмены действия ON/OFFF и перехода к ограничению по времени по умолчанию.
Скрипты запускались с телефона (с улицы, из маршрутки, автомобиля, в т.ч. во время разговора с ребенком), поэтому короткие названия и большие буквы для исключения путаницы.