Det glæder vel egentlig alle u*nix løsninger, men nu sidder jeg jo med en helt fresh VPS, så her er lidt yderligere til sikkerheden. Iøvrigt til listen husk at tilføje Denyhosts til din liste over "must-have" programmer. Ligeledes til de tiltag/programmer du får nævnt her - så skal du helt sikkert også have en aktiv Firewall på dit VPS.

Chkrootkit

Er et program der checker et væld af ting på din VPS. For at installere det skal du SSH til din VPS og køre følgende;

cd /root/
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar xvzf chkrootkit.tar.gz
cd chkrootkit-0.44
make sense 

Herefter kan du afvikle programmet blot ved at køre det ala ./chkrootkit. Da jeg kørte det første gang fik jeg bl.a. følgende;

You have     1 process hidden for ps command
chkproc: Warning: Possible LKM Trojan installed

Det fik mig da lidt op af stolen, men efter en hel del søgning hvor flere og flere indikerede at LKM kan være "a false positive" - Fandt jeg ud af, at de fleste med chkrootkit også havde rootkit hunter installeret, se nedenfor.

Det er en god ide at køre chkrootkit ofte jeg har en daglig kørsel via cron - der benytter -q som option - dvs. vis mig kun mulige exploits og ikke en lang rapport.

00 08 * * * /root/chkrootkit-0.47/chkrootkit -q > /var/log/chkrootkit.log 2>&1

 

Rootkit hunter er som ovenstående et værktøj der scanner for alle de syge ting, bag døre til systemet mv. Det er et ret komplext script - og efter min mening en af de mest omfattende derude - et "must have". Rootkit hunter kan hentes herfra.

/etc/motd

Editer i ovenstående fil - eksisterer den ikke så opret den. Det har, når den eksisterer, den effekt at hvergang der logges på via SSH vises indholdet af filen, som f.eks kunne være

ALERT! You are entering a secured area! Your IP and login information
have been recorded. System administration has been notified.
This system is restricted to authorized access only. All activities on
this system are recorded and logged. Unauthorized access will be fully
investigated and reported to the appropriate law enforcement agencies.

Andre beskeder kan også være på sin plads :)

SSH

Nu har jeg jo tidligere bl.a. talt om nogen ting man kan ændre ved SSH men her er de samlet et sted; Editer filen /etc/ssh/sshd_config og find den sektion der ligner nedenstående

#Port 22
#Protocol 2, 1
#ListenAddress 0.0.0.0
#ListenAddress ::

  1. Udkommenter Port 22 og ændre 22 til f.eks 5643
  2. Udkommenter Protocol så der står Protocol 2
  3. Udkommenter ListenAdress 0.0.0.0 og erstat nullerne med en IP adresse på dit VPS
  4. Sæt PermitRootLogin parameteren til NO

Herefter genstarter du SSH vha. /etc/rc.d/init.d/sshd restart. Luk din SSH session og forsøg nu vha. IP og port som angivet ovenfor.

Logwatch

Logwatch er en log analyse værktøj, der traver gennem alle dine logs og får lave en rapport, hvor du kan se alle mulige ting som antal fejl login fra en bruger eller IP adresse, gennemgang af CRON, httpd, init, pam_unix, proftpd m.fl. Alt dette ryger i en rapport til enten mail, html eller text. Jeg har selv sat logwatch op i min cron som;

30 07 * * * logwatch --detail Med --output unformatted > /var/log/logwatch.log 2>&1

Kompilers

Skal vi virkelig gå efter det, er det også en god ide evt. via et script at ændre eksekverings rettigheder på systemets kompilere.

chmod 000 /usr/bin/perlcc
chmod 000 /usr/bin/byacc
chmod 000 /usr/bin/yacc
chmod 000 /usr/bin/bcc
chmod 000 /usr/bin/kgcc
chmod 000 /usr/bin/cc
chmod 000 /usr/bin/gcc
chmod 000 /usr/bin/i386*cc
chmod 000 /usr/bin/*c++
chmod 000 /usr/bin/*g++
chmod 000 /usr/lib/bcc /usr/lib/bcc/bcc-cc1
chmod 000 /usr/i386-glibc21-linux/lib/gcc-lib/i386-redhat-linux/2.96/cc1

Når du skal bruge disse kompilere kan du lave et script der sætter rettigheder igen som nedenstående;

chmod 755 /usr/bin/perlcc
chmod 755 /usr/bin/byacc
chmod 755 /usr/bin/yacc
chmod 755 /usr/bin/bcc
chmod 755 /usr/bin/kgcc
chmod 755 /usr/bin/cc
chmod 755 /usr/bin/gcc
chmod 755 /usr/bin/i386*cc
chmod 755 /usr/bin/*c++
chmod 755 /usr/bin/*g++
chmod 755 /usr/lib/bcc /usr/lib/bcc/bcc-cc1
chmod 755 /usr/i386-glibc21-linux/lib/gcc-lib/i386-redhat-linux/2.96/cc1

Apache

Jeg omtalte tidligere at slå fra at man udefra kunne se hvilken versioner os, web server via http - for at fuldende det sættes følgende i httpd.conf

ServerSignature Off

ServerTokens ProductOnly

For ændringere træder i kraft laves en httpd -k restart

Spamassassin 

Hvis du kører med Spamassassin på dit VPS er der en masse fine artikler på nettet mht. hvordan du optimerer denne - specielt hvis du kører med cPanel er der bare at trykke her og der så har du spamdconf og kan sætte nogle snedige ting. Kører du som jeg med gude produktet INTERWORX - så gør du noget helt andet.

Editer filen spamassassin i /etc/rc.d/init.d og find linien SPAMDOPTIONS="-d -q -x -u spamd -m3" - default står der m10 og det betyder max antal prosesser el. children - og da hver tager en smule memory kan man med fordel sætte antallet ned til f.eks 2 eller 3 - og dermed spare noget mem på VPSen til andre ting.