PDA

Bekijk Volledige Versie : Nieuwe dedi server, Debian/DirectAdmin, configuratie tips?



Alexio
03/12/08, 09:06
Hallo allen,

Ik heb sinds gister een dedicated server met Debian+DirectAdmin onder mijn beheer.
Natuurlijk wil ik dat deze server zo veilig mogelijk is, aangezien er wel sites op komen die (hopelijk!) veel worden bezocht.
Nu zou ik graag een aantal tips willen qua dingen die ik zou moeten instellen/activeren of juist deactiveren, om het geheel veiliger (of sneller/geoptimaliseerd?) te maken. Beveiliging heeft bij mij prioriteit nummer 1.

Ik heb gewoon SSH toegang, en heb al ietwat ervaring ermee (Op eigen linux bak met terminal werken, op een VPS met SSH, and so on..), maar aangezien dit niet een experimentele server is, moet alles zo goed mogelijk.

Dus, heeft iemand een goede tip die hij bereid is te delen met een beginner?

(Ik hoop dat deze topic in de juiste categorie staat overigens..)

jeffrey
03/12/08, 09:37
De beste tip is misschien of je geen managed server had moeten nemen.

Alexio
03/12/08, 09:43
De beste tip is misschien of je geen managed server had moeten nemen.
Dat niet zozeer, ik draai al een jaar lang een aantal websites op een andere dedicated server, en dat draait zonder problemen (en voor zover ik weet is de beveiliging ook goed), maar deze server is ietwat zakelijker en op grotere bezoekersaantallen georiƫnteerd, waardoor ik er zeker van wil zijn dat het veilig is.

t.bloo
03/12/08, 09:54
Als je een standaard install van Debian hebt gedaan, kun je beginnen met nutteloze daemons weer uit te schakelen.

Verder een update van alle software componenten naar courante versies. Vergeet je SSH libraries niet, hier is "recent" een belangrijke update van geweest.

Voor apache installeer je het best iets als mod_ruid of in ieder geval een CGI wrapper voor PHP.

SSH zet je dicht voor root natuurlijk. Neem een sterk password voor zowel admin als root.

Denk ook aan een firewall en rootkit scanners en de hele rimbim.

t.bloo
03/12/08, 14:01
ik denk niet dat de TS nog apache 1 gebruikt, dus die jailed shell gaat niet lukken

wat je wel kunt gebruiken is:
- installeer jailkit en leer er mee werken
- create user in da
- maak van deze user een jailed user
- symlink van de home naar de jail

Alexio
03/12/08, 14:59
Dank allen, voor het reageren.

- De nutteloze daemons moet ik nog bekijken & uitschakelen. Daar ga ik later met een collega (die zelf redelijk veel in het linux wezen zit) over praten, en hij gaat me daarbij hopelijk helpen. Alleen is het zo dat hij niet bepaald vaak aanwezig is... Maar dat komt zeker in de lijst van 'to-do'.

- Het eerste dat ik deed zodra ik de server ontving was natuurlijk alles updaten :) Maar bedankt voor de tip.
- mod_ruid is denk ik niet echt nodig? De websites die op de server komen te staan worden door ons geƫxploiteerd, dus alleen interne medewerkers zullen toegang verkrijgen.
- SSH root zal ik uiteindelijk uitknallen, vind het nu persoonlijk wel even fijn om zonder limitaties de benodigde configuraties te doen. Maar daarna word die natuurlijk uitgezet. Weeral, bedankt voor de tip.
- Qua Firewall & scanners zal ik ook even navragen bij mijn collega wat hij adviseert/waarmee hij ervaring heeft. Maar is de volledige pack (Firewall lijkt mij zowiezo wel handig, maar scanner ook?) wel handig als alleen websites van onszelf erop worden geplaatst?
- De enigsten die met SSH zullen werken ben ik, en mogelijk nog 1 a 2 collega's, maar zeker niet meer. Dus dat jailen zal ook niet hoeven.

En ik ga dus niet hosting aanbieden, het is puur en alleen voor het hosten van eigen websites & mogelijk andere applicaties (Maar dat heeft natuurlijk niks te maken met apache/php/directadmin)

avanmessen
03/12/08, 15:58
- SSH root zal ik uiteindelijk uitknallen, vind het nu persoonlijk wel even fijn om zonder limitaties de benodigde configuraties te doen. Maar daarna word die natuurlijk uitgezet. Weeral, bedankt voor de tip.


Je zet enkel directe toegang voor root via SSH af.
Je kan er echter steeds aan via het "su" commando.
Dus aanloggen via een lame user en su-en naar root.
sshd_config even editen en klaar ... piece of cake ...

Serveo
03/12/08, 16:06
Ik zou SSH op een ander poort doen ;)

WeServIT
03/12/08, 16:26
Of gebruik de hosts.allow en de hosts.deny ;)

XBL
03/12/08, 16:55
SSH beperken tot een aantal IP's.

Firewall de server met iptables (evt. een frontend gebruiken ala APF, wel zo makkelijk). Hiermee beperk je meteen de SSH toegang tot een X aantal IP's en knal je alle poorten dicht die je niet nodig hebt (mochten er dan overhoopt toch vreemde deamons gaan draaien, dan zijn die niet benaderbaar).

Ondanks dat je zelf alle sites beheerd, toch gewoon PHP gebruiken met suPHP of Apache met mod_ruid - je weet het maar nooit als je een foutje maakt of andermans scripts gebruikt.

Dit zijn de eerste paar dingetjes die snel en makkelijk te doen zijn.

Daarnaast zijn er natuurlijk mogelijkheden om de integriteit van van de server zelf te monitoren, mocht je wel gehackt worden (belangrijke bestanden worden gecheckt of ze niet stiekem aangepast zijn); je kan dan tijdig actie ondernemen om verdere problemen te voorkomen.

avanmessen
03/12/08, 17:10
Of zelfs SSH crypteren mbv een RSA key, je kan
dan enkel aanloggen indien je de key (bestand)
hebt, maar dat is wat overkill denk ik ...

:thumbup:

Randy
03/12/08, 17:32
SSH: Voor SSH werk je met een key, die je weer beveiligd met een password. Je configureerd SSH zo, dat je enkel met een key kan inloggen en deze niet meer met wachtwoorden werkt. Is dit te moeilijk, laat SSH dan op een andere poort luisteren en neem een sterk wachtwoord (hoofd- en kleine letters, 2 cijfers, minimaal 9 tekens).

Apache/PHP: Draai PHP in CGI. Dit biedt een hoop voordelen. Geen 666/777 chmods meer, geen apache:apache bestanden meer na uploads, safe_mode en open_basedir restricties zet je uit. Met PHPSecInfo (http://sv03.ispi.nl/phpsecinfo/) loop je je bestanden na en zet je 'evil' instellingen zoals allow_url_fopen, globals, etc. uit. Ga hiermee door tot in ieder geval alle rode errors weg zijn.

Debian: Debian staat nu niet echt bekend om de nieuwste libraries. Zelf prefereer ik Ubuntu als je een Debian based systeem wilt, voor DirectAdmin gaat mijn voorkeur altijd uit naar CentOS. Maar smaakjes verschillen... Update in ieder geval de packages die belangrijk zijn voor de beveiliging en encryptie van je systeem: OpenSSH en OpenSSL. Dit kan met het update.script. Vergeet nooit direct na de update van OpenSSL om OpenSSH te hercompileren binnen dezelfde SSH sessie (en werk in een screen). Daarna moet je Apache/PHP ook hercompileren.

Firewalling: Een firewall is veelal compleet nutteloos daar de meeste aanvallen toch op poort 80 binnen komen, die je gewoon open zet. De meeste firewalls doen geen DPI (Deel Packet Inspection). Mijn tip: firewall gewoon niet. Het is compleet nutteloos. Zorg dat alle achterliggende dingen (PHP, XSS) veilig zijn, en maskeer deze niet met schijnveiligheid als een firewall of safe_mode. Wil je toch firewallen, controleer dan de _uitgaande_ verbindingen. Scripts die met allow_url_fopen (die uit moet staan!) troep binnen halen en in je /tmp gaan exen. (Al zal je /tmp een noexec mount moeten hebben).

Nobodycheck: Draai de nobydycheck tool die iedere xx minuten kijkt welke processen er draaien die niet horen te draaien. Via het update.script installeer je deze binnen een minuut. Stel een e-mailadres in voor warnings en maak een crontab aan.

Zomaar even wat tips. Vanzelfsprekend zijn er veel meer, maar ik ga ze niet allemaal noemen hier. Serverbeheer is mijn dagelijks brood en ik eet niet graag een droge boterham. Bovenstaande zal je in ieder geval helpen je systeem stukken veiliger te maken. Begin eens met de installatie van PHPSecInfo en kijk eens hoeveel rode warnings je krijgt. Dat geldt trouwens voor iedereen hier op Webhostingtalk.

Voor de allow_url_fopen functie: Het kan zijn dat je problemen krijgt met bijvoorbeeld deimport van RSS feeds in scripts. Er is maar 1 goede manier hiervoor; CURL. Haal de scripts met CURL op en cache ze lokaal. Zo 'hangt' je website ook niet ergens halverwege als de bron even onbereikbaar is.

Alexio
05/12/08, 08:35
Hallo allen,

Alweer bedankt voor de tips, ik zal iedere tip bekijken en zo nodig ook uitvoeren.
Echt, heel erg bedankt. Dit heeft mij goed geholpen en zomenteen, als ik de bovenstaande dingen heb toegepast, kan ik weer met een gerust hart door het leven ;)