Toon posts:

Web- en mailserver(s) beschermen tegen indringers

Pagina: 1
Acties:

Verwijderd

Topicstarter
Iedereen die een (kleine) website onderhoudt kent het wel, er zijn genoeg online tutorials te vinden die instructies geven hoe je een LAMP moet installeren, of mailserver op moet zetten en dergelijke. Echter de keerzijde is dat door een gebrek aan kennis en ervaring de security vaak tekortschiet. Daarom zou ik in dit topic graag ervaringen willen uitwisselen hoe beginnende en ervaren websitebeheerders hiermee omgaan.

Als het om datalekken gaat loop je vaak achter de feiten aan, alleen ik kan nergens recente best practices vinden hoe je een simpele LAMP nou vrij houdt van indringers.

Vaak is het zo dat een lek pas gedicht wordt als de server allang geplunderd is en al je informatie op straat ligt. Dan is het al te laat met alle gevolgen van dien. :F

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Stap 1 is : Bedenken hoe je het wilt gaan bijwerken (ssh of ftp of anders) en beheren
Stap 2 is : Firewall ervoor die alles dichtzet behalve poort 80 (of 443 als je die wilt) met enkele whitelistings voor je bijwerk en beheer opties vanaf je huis-ip adres

De essentiele stap is gewoon bedenken wie je erop wilt hebben.
Richt je je op NL en Belgie dan kan je al het verkeer uit de rest van de wereld gewoon droppen, kans is groot dat namelijk het verkeer uit Nigeria enkel poging tot scammen is, China en Rusland zijn twijfelachtige connecties etc. etc.

Ook al wil je een admin pagina hebben enkel voor jezelf, maar die je wel bijv via je mobiel wilt benaderen, dan alsnog moet je jezelf afvragen naar welke buitenlanden je reeel in de komende weken gaat, want de rest van de buitenlanden kan je gewoon droppen.

Oftewel whitelisten, whitelisten en nog eens whitelisten. Daarmee sluit je 99% van de hackers uit.

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Ik ben met deze basis begonnen:
  • SSH/SFTP alleen met keys
  • MySQL alleen via SSH tunnel
    code:
    1
    
    ssh root@server -L 33060:127.0.0.1:3306
  • IMAP alleen via TLS
  • SMTP alleen via TLS
  • geen ongebruikte services (FTP, bind, etc. etc.)
  • alle poorten die niet worden gebruikt dicht
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    $ iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
    ACCEPT     icmp --  anywhere             anywhere            
    ACCEPT     all  --  anywhere             anywhere            
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:smtp 
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https 
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:imap 
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:submission 
    REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
Vervolgens is het instellen van je favoriete actieve firewall om IP adressen te gaan blokkeren op basis van hack attempts in de services die toegankelijk zijn

Maak je niet druk, dat doet de compressor maar


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Hoevaak gebruik je nou daadwerkelijk SFTP / SSH vanuit China / Rusland? Doe je het uberhaupt wel eens buiten NL? Oftewel niet anywhere, maar gewoon dicht voor de hele wereld behalve IP-adressen die jij absoluut wilt.
• MySQL alleen via SSH tunnel
code:
1
ssh root@server -L 33060:127.0.0.1:3306

Wat doe jij concreet met MySQL van buiten? Is dat echt nodig?
Vervolgens is het instellen van je favoriete actieve firewall om IP adressen te gaan blokkeren op basis van hack attempts in de services die toegankelijk zijn
Dat is dus achter de feiten aanlopen, dan zijn ze al aan het proberen en ben je afhankelijk van hoe je fail2ban hebt ingesteld of hoe snel jij zelf bent...

Maar als je echt wilt kunnen SSH'en en SFTP'en (en zeker met MySQL erbij) waarom zet je dan niet een OpenVPN op dan hoef je alleen die maar toegang te verlenen vanuit je iptables en dan kan je vanuit daar of alles bereiken of wederom IPTables instellen.

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Gomez12 schreef op donderdag 28 april 2016 @ 13:48:
Hoevaak gebruik je nou daadwerkelijk SFTP / SSH vanuit China / Rusland? Doe je het uberhaupt wel eens buiten NL? Oftewel niet anywhere, maar gewoon dicht voor de hele wereld behalve IP-adressen die jij absoluut wilt.
Ik doe dat inderdaad ook vanuit het buitenland. De WIFI in de trein gaat/ging ook via IP's uit Duitsland.
Daarnaast gebruik ik ook IPv6, maak daar maar eens "allowed" lijstje van.
Gomez12 schreef op donderdag 28 april 2016 @ 13:48:
Wat doe jij concreet met MySQL van buiten? Is dat echt nodig?
Nee, phpmyadmin of poort 3306 open dat is pas veilig 8)7 (NOT)
Gomez12 schreef op donderdag 28 april 2016 @ 13:48:
Dat is dus achter de feiten aanlopen, dan zijn ze al aan het proberen en ben je afhankelijk van hoe je fail2ban hebt ingesteld of hoe snel jij zelf bent...

Maar als je echt wilt kunnen SSH'en en SFTP'en (en zeker met MySQL erbij) waarom zet je dan niet een OpenVPN op dan hoef je alleen die maar toegang te verlenen vanuit je iptables en dan kan je vanuit daar of alles bereiken of wederom IPTables instellen.
Natuurlijk is dat achter de feiten aanlopen, maar dat doen we toch altijd bij Joomla/Drupal/WordPress en weet niet wat allemaal?

En een OpenVPN instellen die veiliger is dan een SSH met private keys is zeker niet makkelijk.

[ Voor 3% gewijzigd door DJMaze op 28-04-2016 15:46 ]

Maak je niet druk, dat doet de compressor maar


  • Thralas
  • Registratie: December 2002
  • Laatst online: 22:09
Gomez12 schreef op donderdag 28 april 2016 @ 13:48:
Hoevaak gebruik je nou daadwerkelijk SFTP / SSH vanuit China / Rusland? Doe je het uberhaupt wel eens buiten NL? Oftewel niet anywhere, maar gewoon dicht voor de hele wereld behalve IP-adressen die jij absoluut wilt.
Als je de boel juist configureert (zoals DJMaze voorstelt) dan voegt IP-filteren op ssh praktisch niets toe.

Tenzij je je ergert aan wat noise in je auth.log.
Wat doe jij concreet met MySQL van buiten? Is dat echt nodig?
Met tunnelen over SSH is nooit wat mis.
Maar als je echt wilt kunnen SSH'en en SFTP'en (en zeker met MySQL erbij) waarom zet je dan niet een OpenVPN op dan hoef je alleen die maar toegang te verlenen vanuit je iptables en dan kan je vanuit daar of alles bereiken of wederom IPTables instellen.
En hoe beheer je die OpenVPN instance? Via de VPN zelf? Spannend..

Je zult SSH toch direct bereikbaar moeten houden om op een zinnige manier de zaken te kunnen administreren.

Pas als je een heel netwerk wil bereiken/administreren, of services bereiken die je niet met een simpele portforward kunt bereiken zou ik aan de slag gaan met OpenVPN. Lijkt me niet bijzonder relevant in de situatie die TS schetst.

----

Naast het advies dat al gegeven is (draai SSH veilig, FTP niet, de rest enkel indien strikt noodzakelijk): houd je webapplicaties up-to-date, een ongepatchte Wordpress/Joomla/whatever instance is oorzaak #1 van een gecompromiteerde LAMP-stack.

Onderzoek of je automatische updates kunt aanzetten (vergeet plugins niet) en subscribe je op de security-announcements list van je webapplicaties (en liefst ook van je Linuxdistro, maar dat levert veel noise op).

  • Paul
  • Registratie: September 2000
  • Laatst online: 20:19
Services die je net gebruikt uitzetten en poorten dichtzetten op IP is allemaal erg leuk (en zeker niet onverstandig) maar nog veel belangrijker is zorgen dat je software up to date is.

Je kunt SSH nog zo dicht timmeren, als je Wordpress-site achter loopt zitten de "hackers" nog zo binnen. Zodra je webspace beschikbaar gaat stellen aan anderen wordt dit nog een hele kluif, want als die mensen zelf WordPress (of een ander CMS) gaan installeren heb jij er al snel niet zo veel zicht meer op welke versie mensen draaien en of ze dat wel bijgewerkt houden...

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • gekkie
  • Registratie: April 2000
  • Laatst online: 05-11 19:05
Als je niet persé ssh op de standaard poort hoeft te draaien .. dan scheelt een andere poort een berg werk voor je fail2ban / pam_abl en co.

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Paul schreef op donderdag 28 april 2016 @ 22:04:
Je kunt SSH nog zo dicht timmeren, als je Wordpress-site achter loopt zitten de "hackers" nog zo binnen. Zodra je webspace beschikbaar gaat stellen aan anderen wordt dit nog een hele kluif, want als die mensen zelf WordPress (of een ander CMS) gaan installeren heb jij er al snel niet zo veel zicht meer op welke versie mensen draaien en of ze dat wel bijgewerkt houden...
Ik draai elke dag een cron script op de server die alle outdated software checkt.
Als er een outdated WordPress/Joomla/whatever tussen zit dan wordt de klant geïnformeerd en na 1 week zonder resultaat wordt elke POST request geblokkeerd.

Maak je niet druk, dat doet de compressor maar

Pagina: 1