Právě proto. Strojaři dělají sítě, síťaři dělají strojařinu a vypadá to, jak to vypadá.
Přesměrovávat jen HTTP a nechat zbytek žít je špatně - čím dál více webů totiž zákazníkovi bude fungovat (jak se tlačí na HTTP), naopak v mnoha případech budou věci fungovat divně (když je ve stránce část nešifrovaného obsahu a stránka se tak načte z půlky nebo se v části stránky zobrazí "zmršená" stránka s upozorněním anebo začnou padat na hubu skripty, které si něco dotahovaly třeba AJAXem a místo toho jim chodí nějaké nesmysly...
Je potřeba povolit DNS + přesměrovat HTTP + zakázat ostatní.
Kus mé konfigurace
CISCO
! ACL co povoluje DNS + nas webserver
ip access-list extended redirect-except
permit udp any any eq domain - povoleni DNS
permit ip any host x.x.x.x
! ACL s odpojenyma IPckama (stacilo by to jednosmerne ale generuje to script, co generuje ACL i pro shaper. V TCAM mame mista dost, takze to nevadi)
ip access-list extended redirect-disconn
permit ip any host 10.101.30.19
permit ip host 10.101.30.19 any
permit ip any host 10.101.31.10
permit ip host 10.101.31.10 any
deny ip any any
! filtr na VLAN iface na kterem je na /30 spojovackou redirect webserver (virtualka)
ip access-list extended redirect-iffilter
permit tcp any any eq www
permit ip any host 10.0.253.2
deny ip any any
! interface kam je pripojen webserver
interface Vlan2004
ip address 10.0.253.1 255.255.255.252
ip access-group redirect-iffilter out
! route-mapa, ktera zajistuje presmerovani
route-map redirect permit 10
match ip address redirect-except
route-map redirect permit 20
match ip address redirect-disconn
set ip next-hop 10.0.253.2
! interface smerem DO internetu, kudy prochazi vsechen provoz
interface Port-channel41
ip address x.x.x.x m.m.m.m
ip policy route-map redirect
Linux webserver - startup script
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 81
Linux webserver - sysctl.conf
net.ipv4.ip_forward=1
Linux webserver - Apache
<VirtualHost *:81>
ServerAdmin info@ispfirma.cz
DocumentRoot /var/www/redir
ErrorDocument 404 /index.html
ExpiresDefault "access plus 1 seconds"
Header merge Cache-Control no-cache
Header merge Cache-Control no-store
Header merge Pragma no-cache
Header merge Expires "Tue, 01 Jan 1980 1:00:00 GMT"
... zkraceno o veci kolem pristupu k adresari, logovani...
</VirtualHost>
Linux webserver - index.html
<HTML>
<HEAD>
<META http-equiv="refresh" content="1;url=http://www.ispfirma.net/user/disconnected.php">
<META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="expires" content="0">
<META HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</HEAD>
<BODY>
<H1>Presmerovavam...</H1>
Redirecting, please wait...
<!-- lorem ipsum aby se natahla stranka a i MSIE ji pouzil a nejen vyhodil vlastni 404
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas vestibulum....(min. 512 byte)
-->
</BODY>
</HTML>
Stránka na adrese http://www.ispfirma.net/user/disconnected.php a celý mechanizmus načítání z DB, automatické úpravy access-listu, inicializace aktualizace potom, co uživatel klikne na čudlík... je jiná a složitější pohádka...