LINUX.ORG.RU

Ограничение доступа к опр. сайту на роутере


0

0

Друзья, требуется ограничить доступ к определенному журналу на сервисе livejournal.com на уровне роутера. Но только к нему! Я в настройках вижу ограничение по IP, а по имени (маске?) вообще возможно ограничить?

Ответ на: комментарий от jet_bird

Судя по мануалу на этот роутер - ограничить не получится.

Опиши конкретно кому надо блокировать доступ, может есть другие варианты. В ЖЖ журналы вроде имеют вид user.livejournal.com - пропиши в /etc/hosts:

127.0.0.1 user.livejournal.com

kernelpanic ★★★★★
()
Ответ на: комментарий от kernelpanic

>127.0.0.1 user.livejournal.com

Я так понимаю, тут не для одного компа надо, а для всей сети. И сеть рулится железкой.

mr_D
()
Ответ на: комментарий от kernelpanic

не, у меня 2 компа; но спасибо за идею, это тоже вариант

jet_bird
() автор топика

HTML-запрос идёт на IP-адрес сервера, а в HTML-заголовке передаётся путь до страницы (грубо говоря http://user.lj.com/20100711.html). Пытаться фильтровать все HTML-GET запросы наверное ни один роутер не потянет. Тебе будет проще настроить прозрачный squid-прокси который будет блокировать конкретный http://user.lj.com . Только ты уверен что это тебе поможет? Бесплатных cgi-прокси в сети сколько угодно, или можно через кеш гугла или яндекса запретную страницу прочитать.

pupok ★★
()
Ответ на: комментарий от vasya_pupkin

в смысле он просматривает каждый TCP пакет отправляющийся на 80-тый порт, анализирует HTML-заголовок и принимает решение? Это ведь нагрузка даже большая чем iptables, который только IP-заголовок анализирует: например HTML может быть пожат gzip, если всё распаковывать — это сколько памяти и CPU надо...

pupok ★★
()
Ответ на: комментарий от pupok

есть прокси, есть ВПН, есть мобильники и есть ёты. Кому надо - до сайта доберутся всё равно.

anonymous
()
Ответ на: комментарий от pupok

>в смысле он просматривает каждый TCP пакет отправляющийся на 80-тый порт, анализирует HTML-заголовок и принимает решение?

[admin@wl500gp root]$iptables -L

.......

Chain FORWARD (policy ACCEPT) target prot opt source destination DROP tcp  — anywhere anywhere webstr: url www.mail.ru

Управление из WEB GUI, нагрузку на проц особо не заметил, правда у меня всего два компа и канал в 5Мбит

vasya_pupkin ★★★★★
()
Ответ на: комментарий от vasya_pupkin

ты путаешь, хотя с твоим форматированием ничего не понятно (приведи выхлоп iptables-save заключенный в [code][/code]) но подозреваю что у тебя просто дропаются все пакеты отправляемые на порт TCP 80 на IP который совпадает с www.mail.ru. Для этого, как я уже сказал, не надо анализировать HTML-заголовок. И таким способом нельзя например разрешить www.mail.ru/books и одновременно запретить www.mail.ru/porno

pupok ★★
()
Ответ на: комментарий от vasya_pupkin

А оно по имени всегда работает или вычисляет адрес ип?

anonymous
()
Ответ на: комментарий от pupok
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [71:19864]
:BRUTE - [0:0]
: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 224.0.0.0/240.0.0.0 -p igmp -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp ! --dport 1900 -j ACCEPT
-A INPUT -i wmx0 -m state --state NEW -j SECURITY
-A INPUT -i vlan1 -m state --state NEW -j SECURITY
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 --tcp-flags FIN,SYN,RST,ACK SYN -j BRUTE
-A INPUT -j DROP
-A FORWARD -p tcp -m webstr --url www.mail.ru -j DROP
-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 SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o wmx0 -j DROP
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -i ! br0 -m state --state NEW -j SECURITY
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A BRUTE -m recent --update --seconds 600 --hitcount 3 --name BRUTE --rsource -j DROP
-A BRUTE -m recent --set --name BRUTE --rsource -j ACCEPT
-A SECURITY -p tcp -m tcp --tcp-flags FIN,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
vasya_pupkin ★★★★★
()
Ответ на: комментарий от pupok

И таким способом нельзя например разрешить http://www.mail.ru/books и одновременно запретить http://www.mail.ru/porno

Можно, достаточно изменить

-A FORWARD -p tcp -m webstr --url www.mail.ru -j DROP

на

-A FORWARD -p tcp -m webstr --url mail.ru/porno -j DROP

таким образом можно заходить на mail.ru, но на mail.ru/porno уже хрен войдешь.. Точнее можно явно запрещать определенные УРЛы

Хотя если этого мало, есть порт squid'a на ASUS WL500gP

Для Асуса дофига пакетов есть, притом с пакетным менеджером :)

anonymous (12.07.2010 22:19:34),

оно имя ищет, точнее строку содержащую последовательность, если по ип обратиться, то не сработает. Но к твоим рукам там вся мощь iptables + если нужно, можено сквида поставить.

vasya_pupkin ★★★★★
()
Ответ на: комментарий от vasya_pupkin

хмм... что это за зверь такой "-m webstr"? Судя по svn.dd-wrt.com:8000/dd-wrt/browser/src/router/iptables/extensions/libipt_webstr.c что-то сугубо специфичное для dd-wrt и давно заброшенное. Наверное именно потому что полноценно копаться в HTML-заголовках всё равно не получится (again, hint: gzip).

pupok ★★
()
Ответ на: комментарий от pupok

ИМХО вроде как HTTP заголовки не жмутся GZIP'ом, а жмется только контент, но могу ошибаться...

Что за зверь -m webstr не знаю, я его не ковырял за ненадобностью. Но у меня такая схема работает. Прошивка у меня не dd-wrt, а c code.google.com/p/wl500g/ хотя думаю это не столь важно

vasya_pupkin ★★★★★
()
Ответ на: комментарий от vasya_pupkin

А как оно рабоает-то? Насколько я понимаю, все соединения-сокеты работают с IP-адресом. Его получение для заданного URL - отдельная задача. Как URL попадает в iptables?

anonymous
()
Ответ на: комментарий от anon_666

Как? Обращение к лору происходит в 2 этапа. Для www.linux.org.ru определяется адрес 217.76.32.61 (или из кеша, которых может быть много уровней, начиная от самой программы) . Потом этот адрес берётся и устанавливется соединение TCP с этим адресом и там уже идёт запрос GET протокола HTTP. Пакеты сети пойдут на адрес 217.76.32.61. Как iptables определит, что этому адресу соответствует http://www.linux.org.ru/rules.jsp? Это возможно только через анализ самого запроса GET.

anonymous
()

Нехорошо так. Свободу душите.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.