Перенаправление всех hhtp запросов на страницу с UTM
Перенаправление всех hhtp запросов на страницу с UTM
Здравствуйте!
Ситуация знакомая для многих, но, увы, что то никак не прет.
Есть сеть абонентов с выходом в интернет. Выход в интернет осуществляется через роутер Cisco 7507. Есть сервер FreeBSD 6.2, на котором крутится UTM и естесственно Apache. Так вот, задача перенаправлять все http запросы неавторизованных пользователей на страницу UTM.
Нашел на форуме эту тему. Но что то никак не получается.
попробовал для начала просто http запросы, например, на сайт www.power.com (72.249.7.54) перенаправить на FreeBSD.
На циске сделал route-map
!
route-map WWW permit 10
match ip address 101
set ip next-hop 11.22.33.44 (адрес FreeBSD)
!
....
!
access-list 101 deny tcp any host 11.22.33.44
access-list 101 permit tcp 11.22.33.0 0.0.0.255 host 72.249.7.54 eq www
!
...
!
interface FastEthernet0/1
description ##INTERNET
ip address XX.XX.XX.XX 255.255.255.252
ip verify unicast reverse-path allow-self-ping
no ip proxy-arp
ip security dedicated unclassified genser
ip security add
ip security first
ip policy route-map Proxy
!
В итоге запросы на сервер попадают (смотрю tcpdump'ом). Но как заставить эти запросы, которые по сути сервер получает для маршрутизации, как заставить их отлавливать и отдавать собственному Web-серверу Apache, т.е. воспринимать эти "чужие пакеты" как свои. У меня вся загвозка именно в этом. Запросы до Apache не доходят. Предположение есть, что нужно использовать либо ipfw (fwd) или ipnat (rdr) или PF. Подскажите пожалуйста.
Ситуация знакомая для многих, но, увы, что то никак не прет.
Есть сеть абонентов с выходом в интернет. Выход в интернет осуществляется через роутер Cisco 7507. Есть сервер FreeBSD 6.2, на котором крутится UTM и естесственно Apache. Так вот, задача перенаправлять все http запросы неавторизованных пользователей на страницу UTM.
Нашел на форуме эту тему. Но что то никак не получается.
попробовал для начала просто http запросы, например, на сайт www.power.com (72.249.7.54) перенаправить на FreeBSD.
На циске сделал route-map
!
route-map WWW permit 10
match ip address 101
set ip next-hop 11.22.33.44 (адрес FreeBSD)
!
....
!
access-list 101 deny tcp any host 11.22.33.44
access-list 101 permit tcp 11.22.33.0 0.0.0.255 host 72.249.7.54 eq www
!
...
!
interface FastEthernet0/1
description ##INTERNET
ip address XX.XX.XX.XX 255.255.255.252
ip verify unicast reverse-path allow-self-ping
no ip proxy-arp
ip security dedicated unclassified genser
ip security add
ip security first
ip policy route-map Proxy
!
В итоге запросы на сервер попадают (смотрю tcpdump'ом). Но как заставить эти запросы, которые по сути сервер получает для маршрутизации, как заставить их отлавливать и отдавать собственному Web-серверу Apache, т.е. воспринимать эти "чужие пакеты" как свои. У меня вся загвозка именно в этом. Запросы до Apache не доходят. Предположение есть, что нужно использовать либо ipfw (fwd) или ipnat (rdr) или PF. Подскажите пожалуйста.
Re: Перенаправление всех hhtp запросов на страницу с UTM
все прально пакеты приходят на сервере.. а теперь если у тя БЗД сделай fwd правило как ты далешь для прокси аля на локалхост или на ИП.
если Линукс тоже -J REDIRECT 80
и будет тебе щастье.
Точнеен не на локалхост а просто чтото типа iptables -A PREROUTE -s xxx.xxx.xx.xx -j REDIRECT 80
внутри тазитка куда ты рутишь пакеты.
в бзд испольщую к примеру natd и порредирект
если Линукс тоже -J REDIRECT 80
и будет тебе щастье.
Точнеен не на локалхост а просто чтото типа iptables -A PREROUTE -s xxx.xxx.xx.xx -j REDIRECT 80
внутри тазитка куда ты рутишь пакеты.
в бзд испольщую к примеру natd и порредирект
Последний раз редактировалось md2k Вт июл 08, 2008 11:00, всего редактировалось 1 раз.
Форвард нормально опахаит на самого себя если.Digi писал(а):на самой бсде пакет зафорвардить надо..
fwd 11.22.33.44,80 tcp from 11.22.33.0/24 to any 80
а если на удаленный хост то болт.
Вот у меня когда заворот был на веб:
ipfw add 50000 fwd 10.10.10.10,88 tcp from 172.16.190.0/24 to any 80
где 10.10.10.10 внутренний алиас
--
или Линукс
$IPTABLES -t nat -A PREROUTING -p tcp -s 172.22.100.0/23 -m multiport --dports 88 -j REDIRECT --to-ports 80
--
вообще во избежания эксцессов не рекомендую делалть форвард пакетов на тотже порт который тебе понадобится похватить. у меня форвард на 88порт как видно из примеров.
Re: Перенаправление всех hhtp запросов на страницу с UTM
можно сделать так если на линуксе:
в апаче прописал редирект на биллинг (который отдельно)
denyaccess - альтернативная главная страница для входа в кабинет
Код: Выделить всё
#!bin/sh
iptables -t mangle -N set_blocked
iptables -t mangle -F set_blocked
#allow access to portal and billing
iptables -t mangle -A set_blocked -d portal -j RETURN
iptables -t mangle -A set_blocked -d billing -j RETURN
# mark other for redirect
iptables -t mangle -A set_blocked -j MARK --set-mark 100
#Сюда вписывать запрещенные подсети и заблокированных пользователей (rfw запущен с ключами -fo)
iptables -t mangle -N check_blocked
iptables -t mangle -F check_blocked
iptables -t mangle -I check_blocked -s $1 -j set_blocked
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j check_blocked
iptables -t nat -I PREROUTING -p tcp -m mark --mark 100 -j REDIRECT --to-ports 80
Код: Выделить всё
<VirtualHost *:80>
RewriteEngine On
RewriteRule ^(.*)$ https://billing/user/denyaccess? [R,L]
</VirtualHost>
сделал форфард
смотрю tcpdump'ом. Все похоже на реальный обмен между хостами
tcpdump host 11.22.33.xx and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
16:37:46.918859 IP 11.22.33.xx.49254 > 72.249.7.54.http: S 1661078715:1661078715(0) win 65535 <mss 1356,nop,wscale 3,nop,nop,timestamp 458092677 0,sackOK,eol>
16:37:46.918930 IP 72.249.7.54.http > 11.22.33.xx.49254: S 2303078147:2303078147(0) ack 1661078716 win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 3964201 458092677,sackOK,eol>
но в браузере как не было ничего так и нет. Я даже сделал на апаче
listen 0.0.0.0:88
а правило добавил
ipfw add 30 fwd 11.22.33.44,88 from 11.22.33.0/24 to any 80
в чем косяк... не пойму
смотрю tcpdump'ом. Все похоже на реальный обмен между хостами
tcpdump host 11.22.33.xx and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
16:37:46.918859 IP 11.22.33.xx.49254 > 72.249.7.54.http: S 1661078715:1661078715(0) win 65535 <mss 1356,nop,wscale 3,nop,nop,timestamp 458092677 0,sackOK,eol>
16:37:46.918930 IP 72.249.7.54.http > 11.22.33.xx.49254: S 2303078147:2303078147(0) ack 1661078716 win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 3964201 458092677,sackOK,eol>
но в браузере как не было ничего так и нет. Я даже сделал на апаче
listen 0.0.0.0:88
а правило добавил
ipfw add 30 fwd 11.22.33.44,88 from 11.22.33.0/24 to any 80
в чем косяк... не пойму
Ээээ в примере дампа у тебя както ответ от 11.22.33.xx.49254 а не с 80 порта..... ты уверен что точно то что нужно завернул и куда нужно?Фарид писал(а):сделал форфард
смотрю tcpdump'ом. Все похоже на реальный обмен между хостами
tcpdump host 11.22.33.xx and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
16:37:46.918859 IP 11.22.33.xx.49254 > 72.249.7.54.http: S 1661078715:1661078715(0) win 65535 <mss 1356,nop,wscale 3,nop,nop,timestamp 458092677 0,sackOK,eol>
16:37:46.918930 IP 72.249.7.54.http > 11.22.33.xx.49254: S 2303078147:2303078147(0) ack 1661078716 win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 3964201 458092677,sackOK,eol>
но в браузере как не было ничего так и нет. Я даже сделал на апаче
listen 0.0.0.0:88
а правило добавил
ipfw add 30 fwd 11.22.33.44,88 from 11.22.33.0/24 to any 80
в чем косяк... не пойму
кто у тебя отправляет запрос на какой порт, куда ты его форвардишь, и потом куда редиректишь? 11.22.33.xx. -- это у тебя ИП на томже хосте где и правило редиректа?
Если бы молодой человек посмотрел внимательно, то увидел бы что завороты идут на 72.249.7.54 порт http, что видно во вставке с tcpdump'а и соответственно запросы идут от 11.22.33.xx,т.е. это адрес отправителя запроса, поэтому порт его не может быть http а определяется динамически. Перенаправление идет след. образом -
все запросы идущие от 11.22.33.хх на www.power.com (72.249.7.54:80) перенаправляются на 11.22.33.44:80
все запросы идущие от 11.22.33.хх на www.power.com (72.249.7.54:80) перенаправляются на 11.22.33.44:80
Тогда смотри где ты чтото не доделал. у меня все работает.Фарид писал(а):Если бы молодой человек посмотрел внимательно, то увидел бы что завороты идут на 72.249.7.54 порт http, что видно во вставке с tcpdump'а и соответственно запросы идут от 11.22.33.xx,т.е. это адрес отправителя запроса, поэтому порт его не может быть http а определяется динамически. Перенаправление идет след. образом -
все запросы идущие от 11.22.33.хх на www.power.com (72.249.7.54:80) перенаправляются на 11.22.33.44:80
если делаешь ipfw то поставь апач на ту же тачку где это правило делаешь, кидаешь туда страничку с авторизацией в статистикуФарид писал(а):сделал форфард
а правило добавил
ipfw add 30 fwd 11.22.33.44,88 from 11.22.33.0/24 to any 80
в чем косяк... не пойму
и все и не мучаешься, дальше у тебя перейдет куда надо
ipfw не меняет заголовок пакета
менять умеет pf