Servers

Lighttpd als vervanger voor Apache

De basisinstallatie van Lighttpd met php werkt nu, zowel voor ipv4 als ipv6. Volgende stap wordt het mogelijk maken van verschillende virtual hosts. Nu wordt met de standaardinstallatie de module mod_simple_vhost gebruikt. Dat werkt weliswaar, maar er is een andere module die wat krachtiger is, mod_evhost. Mijn eerste gedachte was als volgt: # vi /etc/lighttpd/lighttpd.conf -> toevoegen module mod_evhost -> toevoegen evhost.path-pattern = "/var/www/%0/%3/" # /etc/init.d/lighttpd force-reload Hierna zou het dus zou moeten zijn dat als de directory bestaat, de virtualhost dus wijst naar de directory zoals die in het pattern is opgegeven (%0 is domein+tld, %3 is 1e sub).

Lighttpd als vervanger voor Apache (2)

Eerder dacht ik nog dat het niet mogelijk was om ipv4 en ipv6 tegelijk actief te laten zijn in Lighttpd. Vandaag kwam ik er achter dat het toch mogelijk is met de volgende regels: # IPv6 Config $SERVER["socket"] == "[::]:80" { accesslog.filename = "/var/log/lighttpd/ipv6.access.log" server.document-root = "/var/www/" }

Lighttpd als vervanger voor Apache

Omdat Apache in combinatie met php best wel veel geheugen vraagt, wil ik eens gaan onderzoeken of Lighttpd een goed alternatief is voor mij. Er zijn al legio mensen die veel grotere sites als de mijne hebben en naar volle tevredenheid Lighttpd gebruiken. Installatie is als volgt: # aptitude install lighttpd php5-cgi Na afloop krijg ik een waarschuwing dat het geheel niet gestart kan worden, maar dat natuurlijk omdat poort 80 al in gebruik is door Apache.

Installatie Mysql

Op de nieuwe server moet natuurlijk ook Mysql worden geïnstalleerd. # aptitude install mysql-server-5.1 mysql-common mysql-client-5.1 php5-mysql Tijdens installatie wordt nu ook gevraagd om het wachtwoord voor de mysql-root te wijzigen. De vorige keer moesten we dat nog handmatig doen. Volgende stap is het aanmaken van de diverse databases en de database users. Het aanmaken van de tabellen zelf zit opgesloten in de exports die ik op de oude server heb gemaakt.

Installatie Postfix en Courier

Met deze commando’s heb ik Postfix en Courier overgezet naar de nieuwe server: # aptitude install postfix postfix-mysql -> configuratie van oude server overnemen # aptitude install courier-authdaemon courier-authlib-mysql courier-authlib courier-base courier-imap-ssl courier-imap courier-ssl # adduser vmail -> controle group en userid -> database, database-user aanmaken -> export van maildatabase inlezen op nieuwe server Hierna moest nog 1 commando worden gegeven: # cd /etc # postfix stop # new aliases -> bestand /etc/aliases.

Installatie Apache

De volgende stappen zijn nodig om Apache en php5 werkend te krijgen: # aptitude install apache2 # aptitude install php5 -> configuratie sites van oude server kopieren -> modules controleren -> bestanden sites van oude server kopieren # /etc/init.d/apache2 restart # aptitude install awstats -> kopieren configuratie van oude server Nu alleen nog even de default site instellen voor diegenen die op ip adres naar de server gaan: root@echo /etc/apache2/sites-enabled# ls -l totaal 32 lrwxrwxrwx 1 root root 27 okt 3 12:22 000-default -> .

Inrichting server: de basiszaken

Ben nu op het punt aanbeland dat ik de nieuwe server kan gaan inrichten. Allereerst maar een aantal basiszaken geïnstalleerd: locales nl_NL.utf8 user aanmaken Daarnaast moeten in ieder geval geïnstalleerd worden: Apache Mysql PHP Postfix Courier Natuurlijk komt er pakket nog het een en ander aan afhankelijkheden mee, maar dit zijn in ieder geval de basisonderdelen.

Nieuwe server

In augustus 2006 kreeg ik de virtuele sleutel van de server waar op het moment dat ik dit schrijf, de site op draai. Vier jaar is een behoorlijke tijd, en gelukkig zijn we al die jaren zonder al te veel grote problemen doorgekomen. Maar met het klimmen der jaren is de geheugenhonger van Debian en alle geinstalleerde software steeds groter geworden. Kortom, de server is gewoon te krap geworden. Daarom is besloten om de stap te maken naar een nieuwe, grotere en sneller server.

Apache roteren grote logs

Vandaag bezig geweest met het uitzoeken of het mogelijk is om automatisch de logbestanden van Apache te roteren op het moment dat deze een bepaalde grootte bereiken. Dit kan door de volgende regel op te nemen in de configuratie: CustomLog "|bin/rotatelogs /var/logs/access_log 5M" common Dit specifieke voorbeeld zorgt ervoor dat de access_log geroteerd wordt op het moment dat deze 5mb groot is. Het mooie is, dat Apache gewoon door blijft draaien, de website blijft dus normaal bereikbaar!

Iptables

Al geruime tijd ben ik bezig met het zoeken naar een manier om ssh aanvallen te voorkomen. Ik gebruik goede wachtwoorden, dus de kans dat zulk soort aanvallen slagen is heel klein. Maar al die aanvallen kosten wel cpu-tijd. Iptables heeft hiervoor een module genaamd ipt_recent. Hiermee is het mogelijk om brute force aanvallen te blokkeren. De volgende commando’s zorgen voor alles: # iptables --new-chain SSHSCAN # iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSHSCAN # iptables -A SSHSCAN -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH # iptables -A SSHSCAN -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG --log-level info --log-prefix "SSH SCAN blocked: " # iptables -A SSHSCAN -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --rttl --name SSH -j DROP Via het commando cat /proc/net/ipt_recent/SSH kunnen we zien wat er zoal wordt tegengehouden.