Jump to content
Калькуляторы

Редирект Редирект с помощю IPFW

Может и вопрос совсем глупый, но никак не могу найти решение. Сильно не ругайте. Есть маршртизатор на базе FreeBSD(локальний интерфейс eth0, интернет eth1) с IPFW. Есть локальний ІР - адрес (192.168.0.5), нужно его переадресовать с любого введенного ним сайта например на страничку google.com. Заранее спасибо!

Share this post


Link to post
Share on other sites

Тогда нужно создать виртуальный хост в апаче, привязать его к IP/PORT, на нем разместить файл с редиректом или mod_rewrite.

 

Сделать в IPFW DNAT, который будет перенаправлять на ваш хост и порт где редирект.

 

Связано с тем, что большинство сайтов являются NamedVirtualHost, виртуальными хостами, к которым нужно обращаться не просто на их IP/PORT, но и передавать в URL имя запрашиваемого сайта, иначе ответит default vhost.

Share this post


Link to post
Share on other sites

А если етот сайт находиться в моей локальной сети (хотя и с реальним ІР)?

П.С. Думал както можно с помощю divert nat.

Edited by mlevel

Share this post


Link to post
Share on other sites

1. Поднимаешь например с помощью inetd ридарект-вебсервер =)

 

inetd.conf

http    stream  tcp     nowait  root    /bin/cat                cat /root/redirect.html

 

 

/root/redirect.html

HTTP/1.1 307 Temporary redirect
Location: http://google.com

 

И потом с поомщью IPFW перебрасываешь все запросы с 80 порта на этот комп, на 80 порт. С клиентскими браузерами работает со всеми.

Перебрасывал я вроде с помощью forward

Edited by TiFFolk

Share this post


Link to post
Share on other sites
маршртизатор на базе FreeBSD(локальний интерфейс eth0, интернет eth1)
Точно на базе фряхи? Или балуемся ifconfig блабла name ethX ?

 

Сайты на нестандартном порту как заблокировали?

Внешние прокси как заблокировали?

После этих вопросов: весь оставшийся веб-трафик редиректим на апач в джейле, дефолтный vhost которого выполняет безусловный mod_proxy на гугль. Об этом чуть выше писали уже. Ну, или не апач, а nginx какой - всё полегче будет.

Share this post


Link to post
Share on other sites
1. Поднимаешь например с помощью inetd ридарект-вебсервер =)

 

inetd.conf

http    stream  tcp     nowait  root    /bin/cat                cat /root/redirect.html

 

/root/redirect.html

HTTP/1.1 307 Temporary redirect
Location: http://google.com

интересная реализация.

надо попробовать.

 

я использую

<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=billing.lan">

заблокированым абонентам - перебрасывает

на локальную страничку биллинга с сообщением.

(ну ещё был наваян простенький tcp сервер на Си, который отдаёт этот тэг)

 

только заметил неприятный баг - некоторые браузеры запоминают,

и пока браузер не перезапустишь будет срабатывать редирект

Share this post


Link to post
Share on other sites
1. Поднимаешь например с помощью inetd ридарект-вебсервер =)

 

inetd.conf

http    stream  tcp     nowait  root    /bin/cat                cat /root/redirect.html

 

 

/root/redirect.html

HTTP/1.1 307 Temporary redirect
Location: http://google.com

 

И потом с поомщью IPFW перебрасываешь все запросы с 80 порта на этот комп, на 80 порт. С клиентскими браузерами работает со всеми.

Перебрасывал я вроде с помощью forward

Сделал так и тишина.

Даже когда ввожу ІР сервера где поднят редирект(inetd) то ничего не происходит!

 

Share this post


Link to post
Share on other sites

у меня работает.

/etc/rc.d/inetd restart делал?

в /etc/services нужную строчку добавил?

Share this post


Link to post
Share on other sites

в /etc/services

http             80/tcp    www www-http #World Wide Web HTTP
http             80/udp    www www-http #World Wide Web HTTP
http-mgmt       280/tcp
http-mgmt       280/udp
https           443/tcp
https           443/udp
gss-http        488/tcp
gss-http        488/udp
http-alt        591/tcp    #FileMaker, Inc. - HTTP Alternate (see Port 80)
http-alt        591/udp    #FileMaker, Inc. - HTTP Alternate (see Port 80)
http-rpc-epmap  593/tcp    #HTTP RPC Ep Map
http-rpc-epmap  593/udp    #HTTP RPC Ep Map
multiling-http  777/tcp    #Multiling HTTP
multiling-http  777/udp    #Multiling HTTP
netconfsoaphttp 832/tcp    #NETCONF for SOAP over HTTPS
netconfsoaphttp 832/udp    #NETCONF for SOAP over HTTPS

Рестарт делал...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this