Dit artikel heb ik gekopieerd vanaf H4H (Hackers4Hackers), helaas stond er niet bij van wie het was.
Dit is dus vet kewl en safe! Gelijk bouwen hierVeel webservers zijn lek, Dit is een simpele conclusie als je om je heen kijkt..
Als je je vervolgens gaat afvragen waarom die webservers lek zijn is het vaak zo
dat ze niet op tijd geupgrade zijn...
Als je gaat kijken welk type webserver er vaak lek is dan zie je dat in bijna
alle gevallen het een Microsoft IIS server betreft. Terwijl er veel veiligere
servers bestaan zoal Apache onder Linux. Waarom ze deze veiligere servers dan
niet in plaats van de van de microsoft server inzetten is dan een vraag die je
jezelf dan kan stellen... Nou hier zijn vaak meerdere redenen voor. Beheers
technisch is een Microsoft server vaak makkelijker om te beheren en dus
goedkoper (geen hoog getraind personeel). Ook de standaard extra mogelijkheden
zoals "Frontpage" extenties en "Active Server Page's" maken de IIS server als
een zeer interesante keus. Ook soms bepaalde software oplossingen voor een
bedrijf verplichten hen er vaak toe om een Microsoft server er neer te zetten
(Denk hier bijvoorbeeld aan een Mainframe of ERP pakket dat een Webwinkel bevat
die in ASP geschreven is). Onvoldoende kennis van beveiligingen en de vele
mogelijkheden die een Microsoft IIS server standaard bied maken dit tot een
gevaarlijke combinatie. En als z'n server online staat kan deze vaak binnen
afzienbare tijd gehackt worden. Veel bedrijven denken met een Firewall of iets
dergelijks veilig te zijn... Tot op zekere hoogte is dat zo... Wat een Firewall
doet is niets anders als de poorten blokkeren.. Maar als je zelf je webserver
hebt staan en die wil jij voor internet beschikbaar maken dan zet je in de
Firewall de http poort (80) open en routeer je die naar je webserver in je
netwerk. Deze is dus een IIS server omdat de web pagina's in Frontpage en / of
Interdef gemaakt worden draait deze server de zogenaamde FrontPage Extenties. Er
worden nog regelmatig BUGS in deze extenties gevonden, Dus als deze niet
regelmatig dicht getimmerd wordt dan heb je binnen de kortste keren een server
staan die niet veilig is... En via die webserver zouden ze ook eventueel verder
het bedrijfs netwerk in kunnen komen. De schade is al gauw niet meer te
overzien.
Nou lijkt het allemaal heel simpel op te lossen door een Apache server onder
linux er neer te zetten en die web pagina's te copieeren via een Samba Share
ofzo. Dit werkt in de praktijk niet. Hier is de nodige Automatiserings kennis
voor nodig die een grafische vormgever vaak niet heeft, die immers met Frontpage
of Interdef de webpagina's maakt en laat staan dat het Webwinkel pakket op die
Linux server gaat draaien. Ook een als er een SQL server in het spel is en er
gebruik gemaakt wordt van zogenaamde COM objecten dan is het eigenlijk al
onmogelijk om dit op een Apache server te zetten zonder moeilijke ingrepen.
De meeste bedrijfen laten door deze reddennen Linux links liggen omdat het niet
aan hun oplossing voldoet en denken met een Microsoft server op dat moment wel
goed en veilig te zitten. Helaas bewijst de praktijk vaak het tegendeel en zelfs
Microsoft laat het wel eens achterwegen om zijn IIS te upgraden. Met alle
gevolgen van dien.
Een oplossing die niet voor de hand licht maar wel al deze problemen ondervangt
is een Proxy server. Niet eens zo moeilijk om op te zetten en onderhoud
technisch geen omkijken naar. Het neemt een heleboel server load van de
Microsoft IIS server weg, Het kan bijvoorbeeld een groot deel van de
afbeeldingen cachen. Maar nu zullen de meeste gelijk zeggen dat een Proxy daar
niet voor bedoeld is... Dat klopt, Een proxy is bedoeld om vanuit het bedrijf te
gaan surfen op het internet. Maar draai dit eens om en laat het internet via de
proxy binnen het bedrijf surfen. Wat er nu gebeurd is dat de Firewall alleen nog
naar de proxy hoeft te connecten. Deze vervolgens over het lan van de IIS server
de web pagina's haalt (of de ASP's aanroept) en als de proxy server bijvoorbeeld
een Apache webserver is dan is die nog veilig ook.
Nou moet een proxy vaak appart aangesproken worden en is het standaard geen
webserver. Omdat je altijd via de proxy een webserver aan spreekt en je moet dan
ook de URL ingeven waar je naar toe gaat. Nu kan je een proxy voor dit geval zo
gek krijgen dat je hem laat denken dat hij via een andere Proxy moet gaan...
Wat je vaak ziet in kleine bedrijven is bijvoorbeeld dat je in het bedrijf
zit... die hebben een kleine proxy server om naar buiten te gaan, Deze server
gaat vervolgens inbellen en maakt verbinding met de webproxy server van de
hosting provider. Als je dit om zou draaien kun je bijvoorbeeld zeggen dat
iemand vanaf internet verbinding maakt met jouw proxy server (die op poort 80,
de http poort staat) en deze vervolgens weer contact gaat maken met een volgende
proxy server, Dit is echter geen proxy server maar een Webserver en de truuk is
gelukt.
Klinkt heel simpel en logisch. En dat is het ook. Maar op deze manier kan er dus
op een veilige mannier een goed onderhoudbare webpagina op een Microsoft IIS
server draaien met alle toeters en bellen er aan, En geen enkele persoon kan via
internet direct op de IIS server komen en hem dus ook niet hacken.
Wat moet je daar technisch voor veranderen:
Niet zo gek veel, Ga er vanuit dat het bedrijf standaard een IIS server heeft
draaien met daarop de webpagina, SQL server en nog veel meer. In de Firewall
staat een Forward op poort 80 naar deze web server. Verander in de Firewall de
poort forward naar een Linux server die Apache webserver draait. En deze gaan we
configureren als Incomming Proxy server.
Zoals al eerder gezecht moet de proxy alle aangevraagde pagina's routeren naar
de webserver, Dit omdat hij niet aangeroepen word als proxy. Meerdere domein
namen op 1 server kan nog steeds, In de Apache webserver kunnen gewoon per
domein naam een proxy aangemaakt worden met zijn eigen cache directory.
Ik ga hier niet en detail uitleggen hoe je een Apache webserver moet op zetten
maar wel het meest belangrijke en dat is het deel bij de VirtualHost waar in de
proxy cache staat....
De Firewall heeft een IP nummer op internet, deze stuurd alle http aanvragen
door naar het interne ip nummer van de Proxy server.
De proxy server heeft in dit test geval een ip nummer "192.168.0.2",
De webserver (IIS) heeft een ip nummer "192.168.0.3".
In /etc/httpd/httpd.conf dient de volgende Vhost min of meer overgenomen te
worden.
<VirtualHost 192.168.0.2>
ServerAdmin admin@host.nl
DocumentRoot /wwwroot/test/docs
ServerName www.test.nl
ServerAlias test.nl
ServerAlias *.test.nl
ErrorLog /wwwroot/test/log/error_log
CustomLog /wwwroot/test/log/access_log common
ScriptAlias /cgi-bin/ "/wwwroot/test/cgi-bin/"
ProxyRequests On
ProxyVia Block
ProxyPass / http://192.168.0.3:80
CacheRoot "/var/cache/httpd"
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
</VirtualHost>
Verder hoeft er niets aan de Webserver veranderd te worden.
Ik hoop dat je wat aan deze informatie gehad hebt. En onder het mom van "Maak
nederland veilig" hoop ik dat deze oplossing geimplementeerd gaat worden.