Linux-palvelimen tietoturvan parantaminen

Linux-palvelimen tietoturva

Ajattelin keräillä tähän listan toimenpiteistä, joilla kukin voi parantaa oman kotipalvelimensa tietoturvaa. Täydentäkää listaa omien tietojenne ja kokemustenne perusteella.

Oletetaan, että palvelimella pyörivät ainakin seuraavat palvelut: Apache2, php, mysql, openssh.

Yleistä:
- Älä aja ohjelmia root-tunnuksilla
- Pidä kaikkien ohjelmistojen päivitykset ajantasalla!


Apache:
- Muuta web-palvelimen portti pois portista 80
- Aja Apache omalla tunnuksellaan ja ryhmällään
- Piilota Apachen versio numero ja muu yksityiskohtainen tieto (httpd.conf: ServerSignature off, ServerTokens Prod)
- Estä Apachea lukemasta tiedostoja web-roottisi ulkopuolelta
- Estä Apache seuraamasta symbolisia linkkeja
- Kytke CGI suoritus pois
- Poistakäytöstä tarpeettomat moduulit
- Varmista, että vain root-käyttäjällä on lukuoikeus apachen binääreihin ja asetustiedostoihin
- Aja Apache chrootatussa ympäristossä
- Käytä mod_security:a http://www.modsecurity.org/
- Päivitä 3. osapuolen scriptit (esim. phpfoorumit), välttääksesi tunnettujen haavoittuvuuksien hyväksikäytön



PHP:
- näytä virheet vain itsellesi (php.ini error_reporting)
- REGISTER_GLOBALS pois päältä php.ini:sta
- MAGIC_QUOTES_GCP päälle php.ini:sta
- SAFE_MODE päälle mikäli käyttösi sallii asetuksen tuomat rajoitukset
- ALLOW_URL_FOPEN pois päältä
- Disabloi vaarallisia funktioita (disable_functions: exec, popen)
- Aja php-sivut .html pääteisistä tiedostoista


MySQL:
- Määritä käyttäjätunnus ja salasana
- Salli pääsy vain tarvittaville ip-osoitteille

OpenSSH:
- Muuta ssh-portti 22 toiseen porttiin
- Käytä salasanan sijasta "Private key"-kirjautumista
- Estä pääsy ulkomaalaisista IP-osoitteista (esim. hosts.allow & hosts.deny -tiedostoista)

Muuta:
- Tarkkaile logeja hyökkäysten varalta (onnistuu vaikka ohjelmalla, joka raportoi sähköpostiisi)
- Asenna FAIL2BAN-ohjelma (tai vastavaa), joka seuraa logeja ja bannii ip:n mikäli havaitseen sen syöttävän X kertaa salasanan väärin ohjelmmassa Y.
31403
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Lokien selailu onnistuneen hyökkäyksen löytämiseksi on ajan hukkaa. Tunkeutumisen havaitsemiseen on tehokkaampiakin työkaluja, kuten

http://www.cs.tut.fi/~rammer/aide.html

Tietoturvan parantaja voisi olla myös kiinnostunut virtuaalikoneista.

Äänestä
  • Currently there are no mirrors. The version at ftp.linux.hr is hacked. So for the moment please get the source from official site below.

    Äänestä

Helpointahan on että blokkaa palomuurilla ulkoa tulevat yhteydet, näin ei pääse Apacheen käsiksi. Ja jos sisäverkon koneista pitää päästä niin sitten sallii niistä. Riippuu tietenkin mimmoinen kotipalvelin. Sekä palvelin kannattaa laittaa ihan eri koneelle kuin päivittäiskäytössä olevaan, nykyään saa kympilläkin käytettyjä koneita palvelin käyttöön.



"- Muuta web-palvelimen portti pois portista 80"
Pikkuinen portti skannaus niin tuo portti selviää. Sekä tuo hankaloittaa jos on tarkoitus tehdä julkinen kotipalvelin.


"- Varmista, että vain root-käyttäjällä on lukuoikeus apachen binääreihin ja asetustiedostoihin"
Meinaat ettei Apache tarvitse noihin tiedostoihin oikeuksia?


"- Aja php-sivut .html pääteisistä tiedostoista"
Miksi? .html tiedostot ovat staattisia eivätkä dynaamisia. Ja yleensä kotipalvelin on opettelu juttuihin, jolloin tulee opittua käyttämään noita asioita väärin.

Toki tiedosto päätteen vaihtaminen tuo hitusen turvallisuutta, mutta tämä asia on niin ja näin varsinkin jos käyttää tunnettuja PHP-scriptejä, silloin pienellä päättelyllä tuo asia selviää. Tosin tuo kannattaa tehdä niin että vaihtaa vain niiden tiedostojen päätteet joiden sisällöstä ei pysty päättelee että on jokin serveripuolenkieli.

Jos pääte halutaan .html niin silloin dynaamiset sivut .html ja staattiset .htm, näin staattisia sivuja ei laiteta turhaan PHP-tulkin kautta.


"- REGISTER_GLOBALS pois päältä php.ini:sta"
Näin on oletuksena, ja tuo asetus poistuu PHP 6


"- SAFE_MODE päälle mikäli käyttösi sallii asetuksen tuomat rajoitukset"
Kyllä ja ei. Tuo asetus poistuu PHP 6, sekä usein web-hotelleissa tuo on tehty hieman eritavalla jolloin päästään melkein samaan kuin safe mode, mutta ilman sen ongelmi.


"- Salli pääsy vain tarvittaville ip-osoitteille"
Yleensä järkevintä on estää pääsy IP-osotteista(verkosta), vain lokaali kirjaantuminen sallitaan (--skip-network) tällöin toki palvelimella olevat MySQL foorumit jne... toimivat normaalisti. Mikäli kantaa tarttee hallita netin kautta niin se hoidetaan scriptien kautta esim http://www.phpmyadmin.net .

Äänestä

Kommentoi aloitusta


2hhs kirjoitti:

Linux-palvelimen tietoturva

Ajattelin keräillä tähän listan toimenpiteistä, joilla kukin voi parantaa oman kotipalvelimensa tietoturvaa. Täydentäkää listaa omien tietojenne ja kokemustenne perusteella.

Oletetaan, että palvelimella pyörivät ainakin seuraavat palvelut: Apache2, php, mysql, openssh.

Yleistä:
- Älä aja ohjelmia root-tunnuksilla
- Pidä kaikkien ohjelmistojen päivitykset ajantasalla!


Apache:
- Muuta web-palvelimen portti pois portista 80
- Aja Apache omalla tunnuksellaan ja ryhmällään
- Piilota Apachen versio numero ja muu yksityiskohtainen tieto (httpd.conf: ServerSignature off, ServerTokens Prod)
- Estä Apachea lukemasta tiedostoja web-roottisi ulkopuolelta
- Estä Apache seuraamasta symbolisia linkkeja
- Kytke CGI suoritus pois
- Poistakäytöstä tarpeettomat moduulit
- Varmista, että vain root-käyttäjällä on lukuoikeus apachen binääreihin ja asetustiedostoihin
- Aja Apache chrootatussa ympäristossä
- Käytä mod_security:a http://www.modsecurity.org/
- Päivitä 3. osapuolen scriptit (esim. phpfoorumit), välttääksesi tunnettujen haavoittuvuuksien hyväksikäytön



PHP:
- näytä virheet vain itsellesi (php.ini error_reporting)
- REGISTER_GLOBALS pois päältä php.ini:sta
- MAGIC_QUOTES_GCP päälle php.ini:sta
- SAFE_MODE päälle mikäli käyttösi sallii asetuksen tuomat rajoitukset
- ALLOW_URL_FOPEN pois päältä
- Disabloi vaarallisia funktioita (disable_functions: exec, popen)
- Aja php-sivut .html pääteisistä tiedostoista


MySQL:
- Määritä käyttäjätunnus ja salasana
- Salli pääsy vain tarvittaville ip-osoitteille

OpenSSH:
- Muuta ssh-portti 22 toiseen porttiin
- Käytä salasanan sijasta "Private key"-kirjautumista
- Estä pääsy ulkomaalaisista IP-osoitteista (esim. hosts.allow & hosts.deny -tiedostoista)

Muuta:
- Tarkkaile logeja hyökkäysten varalta (onnistuu vaikka ohjelmalla, joka raportoi sähköpostiisi)
- Asenna FAIL2BAN-ohjelma (tai vastavaa), joka seuraa logeja ja bannii ip:n mikäli havaitseen sen syöttävän X kertaa salasanan väärin ohjelmmassa Y.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu