Редирект с сайтов (запрет однокласников)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

RedOctober
Сообщения: 17

Редирект с сайтов

Сообщение RedOctober »

Сопсно вопрос такой, как с помощью iptables можно сделать так, чтобы человек заходя на одноклассники перебрасывалсо автоматически
на страницу локального веб-сервера или другую страницу (например с надписью " Посещение сайта в рабочее время запрещенно")
Как просто запретить -понятно:
iptables -t filter -D FORWARD -p tcp -s 10.0.0.0/24 -d 81.19.66.70 --dport 80 -j DROP
Эта цепочка просто недаёт ходить по 80 порту на doktor.ru а как сделать более красиво с редиректом?
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Редирект с сайтов

Сообщение Mage-Warrior »

С помощью iptables вы можете перенаправить на другой или тот же порт собственной машины/сервера:
iptables -t nat -A PREROUTING -p tcp -s 10.0.0.0/24 -d 81.19.66.70 --dport 80 -j DNAT --to-destination [local_lan_ip]:[dport]
Где-то так. При этом пакет идущий на указанный адрес будет перенаправлен на [local_lan_ip]. Конечно, тогда следует учесть, что какое-то программное обеспечение должно ожидать этого и в нужный момент вернуть html-страницу. Это может быть squid с redirector-ом, например. Или что-нибудь ещё легче (для одной страницы с одной строчкой держать squid нерационально). Если запрос подхватит локальный веб-сервер, то без нужного преобразования по сути он должен просто отобразить свою 404 страницу.
А лучше вообще всех сразу пускать через squid, то есть замутить нормальный кэширующий proxy. Кстати, squid, хотя и имеет море возможных настроек, но реально для его простейшей работы достаточно всего 10-15 строчек.
Всё, что могу посоветовать.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Редирект с сайтов

Сообщение Voler »

Вот это может помочь.
Спасибо сказали:
HRonik
Сообщения: 140
ОС: Debian

Re: Редирект с сайтов

Сообщение HRonik »

Mage-Warrior писал(а):
07.05.2008 08:25
С помощью iptables вы можете перенаправить на другой или тот же порт собственной машины/сервера:
iptables -t nat -A PREROUTING -p tcp -s 10.0.0.0/24 -d 81.19.66.70 --dport 80 -j DNAT --to-destination [local_lan_ip]:[dport]
Где-то так. При этом пакет идущий на указанный адрес будет перенаправлен на [local_lan_ip]. Конечно, тогда следует учесть, что какое-то программное обеспечение должно ожидать этого и в нужный момент вернуть html-страницу. Это может быть squid с redirector-ом, например. Или что-нибудь ещё легче (для одной страницы с одной строчкой держать squid нерационально). Если запрос подхватит локальный веб-сервер, то без нужного преобразования по сути он должен просто отобразить свою 404 страницу.
А лучше вообще всех сразу пускать через squid, то есть замутить нормальный кэширующий proxy. Кстати, squid, хотя и имеет море возможных настроек, но реально для его простейшей работы достаточно всего 10-15 строчек.
Всё, что могу посоветовать.

(про выделенное)
Разве это должен делать прокси-сервер?
помоему это работа для apache?..

А в идеале конечно, лучше настроить squid с каким-нибудь редиректом, ведь если еще что-нибудь кроме однакласников закрыть понадобится, еще одну строку в iptables добавлять? помоему не-рационально)))
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Редирект с сайтов

Сообщение Mage-Warrior »

HRonik писал(а):
07.05.2008 10:27
Разве это должен делать прокси-сервер?
помоему это работа для apache?..

А в идеале конечно, лучше настроить squid с каким-нибудь редиректом, ведь если еще что-нибудь кроме однакласников закрыть понадобится, еще одну строку в iptables добавлять? помоему не-рационально)))

Несомненно прав! Я привел лишь пример, причем, не очень прямой :blush:
Я тоже за squid с rejik-ом.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
RedOctober
Сообщения: 17

Re: Редирект с сайтов

Сообщение RedOctober »

Спасибо большое, именно то что надо но последний вопрос где хранятся записи например
это iptables -t filter -D FORWARD -p tcp -s 10.0.0.0/24 -d 81.19.66.70 --dport 80 -j DROP храницо вы таблице FORWARD которую я лекко могу просмотреть iptables -L FORWARD а PREROUTING нет где это можно выудить? (например при написании скрипта надо чтоп проводил проверку либо потом выводил сделанно или нет
)
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Редирект с сайтов

Сообщение Mage-Warrior »

Почти угадал со строкой :tongue:
iptables -t nat -L PREROUTING
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
RedOctober
Сообщения: 17

Re: Редирект с сайтов

Сообщение RedOctober »

Спасибо получилось нечто такоее:

Код: Выделить всё

bin/sh
echo "Начало работы....."
echo "Редирект одноклассников"
echo "Используйте 1-разблокировать, 2-заблокировать"
read wtd

case "$wtd" in

  1)
    act="-D"
    message="Разблокированно!"
   ;;
  0)
    act="-A"
    message="Заблокированно!"
   ;;
  *)
    echo "Usage: {start|stop}"
    sleep 5
    exit 1
esac
iptables -t nat $act PREROUTING -p tcp -s 10.0.0.0/24 -d 81.177.141.135 --dport 80 -j DNAT --to-destination 10.0.0.1:80
iptables -t nat $act PREROUTING -p tcp -s 10.0.0.0/24 -d 81.177.141.137 --dport 80 -j DNAT --to-destination 10.0.0.1:80
iptables -t nat $act PREROUTING -p tcp -s 10.0.0.0/24 -d 81.177.141.207 --dport 80 -j DNAT --to-destination 10.0.0.1:80
iptables -t nat $act PREROUTING -p tcp -s 10.0.0.0/24 -d 81.177.141.209 --dport 80 -j DNAT --to-destination 10.0.0.1:80



    echo "Готово!"
    echo "Вывожу таблицу PREROUTING"
iptables -t nat  -L PREROUTING
    sleep 5

По крайней мере не особо напрягаясь можно разблокировать\заблокировать определённые сайты
Конечно умнее было бы поднять проксю на серваке и тд, но из за отсутствия практического опыта пока не представляетсо возможным
Кстати в начале скрипта можно сделать nslookup odnoklassniki.ru чтоб потом , после выполнения скрипта, когда выводится таблица forward увидеть что именно то что нужно заблокировванно.
Спасибо огромное тем кто помог советом.
Спасибо сказали:
tramX
Сообщения: 200

Re: Редирект с сайтов

Сообщение tramX »

а как сделать чтоб через инет шлюз к локальному серверу контры подключались? Например к шлюзу прикреплен домен csgame.net и сетевуха которая смотрит в сеть имеет ip 192.168.4.1 а на локальной машине 192.168.4.2 запушен сервер контры на 27015 порту. нужно перенаправить с домена на локальный ip.
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Редирект с сайтов

Сообщение Mage-Warrior »

tramX писал(а):
07.05.2008 13:15
а как сделать чтоб через инет шлюз к локальному серверу контры подключались? Например к шлюзу прикреплен домен csgame.net и сетевуха которая смотрит в сеть имеет ip 192.168.4.1 а на локальной машине 192.168.4.2 запушен сервер контры на 27015 порту. нужно перенаправить с домена на локальный ip.

В таком случае нужно воспользоваться MASQUERADE. Но говорят, что его использование не экономит ресурсы. Так что рекомендую такое:
Предположим, что у Вас внешний IP 105.13.120.120, а eth2 - интервейс в глобальную сеть...

Код: Выделить всё

iptables -P FORWARD DROP
iptables -t nat -A PREROUTING -t tcp,udp -d 105.13.120.120 --dport 27015 -i eth2 -j DNAT --to-destination 192.168.4.2
iptables -t nat -A POSTROUTING -t tcp,udp -s 192.168.4.2 -o eth2 -j SNAT --to-source 105.13.120.120
iptables -A FORWARD -p tcp,udp -i eth2 -d 192.168.4.2 -j ACCEPT
iptables -A FORWARD -p tcp,udp -o eth2 -s 192.168.4.2 -j ACCEPT


Вроде бы так. Куда приткнуть эти правила - решать Вам в соответствии с существующими правилами на сервере.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
tramX
Сообщения: 200

Re: Редирект с сайтов

Сообщение tramX »

У меня внешний IP Динамический. Это нужно будет каждый раз узнавать какой у меня внешний IP
Если я напишу так
iptables -t nat -A PREROUTING -t tcp,udp -d csgame.net --dport 27015 -i eth2 -j DNAT --to-destination 192.168.4.2 будет работать?
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Редирект с сайтов

Сообщение Mage-Warrior »

tramX писал(а):
07.05.2008 20:45
У меня внешний IP Динамический. Это нужно будет каждый раз узнавать какой у меня внешний IP
Если я напишу так
iptables -t nat -A PREROUTING -t tcp,udp -d csgame.net --dport 27015 -i eth2 -j DNAT --to-destination 192.168.4.2 будет работать?

Нет, не будет. Если ip-адрес динамический, то правильнее использовать MASQUERADE. В таком случае правила становятся такими:

Код: Выделить всё

iptables -P FORWARD DROP
iptables -t nat -A PREROUTING -t tcp,udp --dport 27015 -i eth2 -j DNAT --to-destination 192.168.4.2
iptables -t nat -A POSTROUTING -t tcp,udp -s 192.168.4.2 -o eth2 -j MASQUERADE
iptables -A FORWARD -p tcp,udp -i eth2 -d 192.168.4.2 -j ACCEPT
iptables -A FORWARD -p tcp,udp -o eth2 -s 192.168.4.2 -j ACCEPT

Мы убрали внешний IP из правила PREROUTING (основываемся на том, что на интерфейсе один IP). Заодно заменили SNAT во втором правиле (POSTROUTING) на MASQUERADE, получая при этом динамическое и автоматическое определение IP исходящего интерфейса eth2 и подстановки его в адрес источника пакета.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Редирект с сайтов

Сообщение Voler »

Сквид вам хорошо поможет в связке с squidGuard. Я тоже раньше делал с помощью iptables, но лучше вске таки сквид.
Спасибо сказали:
MOPO3
Сообщения: 7
ОС: Mandriva 2007

Re: Редирект с сайтов

Сообщение MOPO3 »

RedOctober писал(а):
07.05.2008 07:43
Сопсно вопрос такой, как с помощью iptables можно сделать так, чтобы человек заходя на одноклассники перебрасывалсо автоматически на страницу локального веб-сервера или другую страницу


Не iptables конечно, но можно попробовать изменением файла /etc/hosts
строки в нем
88.212.295.226 www.odnoklasniki.ru
88.212.295.226 odnoklasniki.ru
88.212.295.226 www.odnoklassniki.ru
88.212.295.226 odnoklassniki.ru
будут перебрасывать пользователя на этот форум. Поменяв 88.212.295.226 на ваш адрес локального сайта будет перебрасывать на локальный сайт.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Редирект с сайтов

Сообщение pelmen »

Mage-Warrior писал(а):
07.05.2008 14:29
В таком случае нужно воспользоваться MASQUERADE. Но говорят, что его использование не экономит ресурсы.
MASQUERADE тут вообще не нужен (если эта тачка - шлюз, в чем я уверен на 99,9%)
Mage-Warrior писал(а):
07.05.2008 14:29
Так что рекомендую такое:
Предположим, что у Вас внешний IP 105.13.120.120, а eth2 - интервейс в глобальную сеть...

Код: Выделить всё

iptables -P FORWARD DROP
iptables -t nat -A PREROUTING -t [b]tcp[/b],udp -d 105.13.120.120 --dport 27015 -i eth2 -j DNAT --to-destination 192.168.4.2
iptables -t nat -A POSTROUTING -t tcp,udp -s 192.168.4.2 -o eth2 -j SNAT --to-source 105.13.120.120
iptables -A FORWARD -p tcp,udp -i eth2 -d 192.168.4.2 -j ACCEPT
iptables -A FORWARD -p tcp,udp -o eth2 -s 192.168.4.2 -j ACCEPT

1) Там только udp.
2) POSTROUTING не нужен (опять-же если эта тачка - шлюз)
tramX писал(а):
07.05.2008 20:45
У меня внешний IP Динамический. Это нужно будет каждый раз узнавать какой у меня внешний IP
Если у тебя динамический ip - то ты даже ping csserver.ru не сможешь сделать, т.к. каждый день тебе нужно будет менять в зоне ДНС ip-адрес на тот, который у тебя будет завтра, а ты этого не можешь узнать, пока это "завтра" не наступит :)
Придется покупать тебе постоянный внешний ip, либо каждый раз узнавать свой ip.
Спасибо сказали: