Ik zal eens vanuit technisch en persoonlijk oogpunt reageren:
Door Named: Quote: "als je het ECHT veilig wilt hebben, dan moet het niet aan het internet verbonden zijn."
Echter, daar heb je natuurlijk helemaal niks aan als je een publieke website wil draaien.
Sterker nog, deze website, security.nl, zit ook aan het internet. (Niet echt veilig?)
Daar heb je wel iets aan... Het geeft weer dat wat je op internet zet, vroeger of later op straat komt te liggen. Je moet daar dus NIETS op zetten wat belangrijk is dat het niet op straat mag komen.
Dus jouw oma's GEHEIME appeltaartrecept, mwa, niet zo erg... lanceercodes voor nucleaire raketten? liever niet..
In die context moet je dat dus zien..
En inderdaad, deze website security.nl zal ook wel eens gehacked worden. Userdatabase van websites zijn interessant, voor harvesten van e-mail adressen, en de plaintext wachtwoorden en zelfs gehashte wachtwoorden zijn interessant. Want ook die kun je gebruiken. De hashes kun je namelijk zelf ook aanmaken, en daarmee een soort van modernere rainbowtable maken. Oldschool techniek, maar verbazingwekkend effectief met genoeg rekenkracht. (een Ryzen7 met Samsung 970 is al voldoende).
Ik zag laatst een reactie die een setup beschreef met dichte firewall.
Enkel ICMP, SSH (privkey & portknocking) en HTTP/HTTPS zouden open staan.
Dit leek mij redelijk goed, maar dit was volgens iemand anders niet goed genoeg of juist extra zwak.
Dat is dus geen 'dichte' firewall... ICMP is erg handig om te zien of iets online is... En online betekent 'kansen'... als je al een ICMP pakket toestaat, wat nog meer dan? HTTP, HTTPS, SSL zullen in de top 10 van meest gescande poorten staan (naast SMB, telnet enz). Portknocking is zinloos als je al andere poorten hebt open staan. Je 'presence' is al bekend.. kwestie van genoeg interesse of obfus of mgnjeb technieken toepassen.
Meningen op internet zijn als anussen, iedereen heeft een en is niet perse iets wat je wilt zien... Net zoals de mijne maar 1 mening is van 17 miljoen Nederlanders... Wellicht met meer ervaring maar ook mijn eigen referentiekaders die beperken of misschien wel GOM syndroom bevatten.
Nu is dus mijn vraag:
Wat moet je doen om een webserver ECHT beveiligd te hebben?
Ik weet dat het nooit 100% veilig te maken is, maar je zult toch iets moeten.
De gezamenlijke kennis van deze forum zou toch wel tot een goed resultaat moeten komen?
Een zo'n dom mogelijk systeem, gemaakt voor domme mensen (slimme mensen maken slimme fouten namelijk en domme fouten zijn makkelijker te spotten) met zo min mogelijk fratsen en GEEN plugins. NOOIT NEVER NIET plugins.
Als voorbeeld neem ik een VPS voor de fictieve "
https://onhackbaaronline.nl" website.
Daarbij ga ik uit van IP v4+v6, SSH toegang, de webserver zelf en optioneel een mailserver.
(Niet ingaand op kwetsbaarheden in de web applicatie zelf, gezien daar
van alles mis mee kan zijn.)
Elke entry tot het systeem is er 1... elke mogelijkheid tot communicatie is een mogelijk tot binnendringen. Is IPv6 nodig? Nee zet dan uit. Firewalls en andere beveiligingstechnieken zijn zwaar onderontwikkeld op het gebied van IPv6, dus die moet je zo veel mogelijk proberen te voorkomen. SSH toegang leuk, maar doe dat dan niet op TCP22.. Webserver? aub geen poort 80 openzetten... mailserver? wil je dat risico echt lopen? Ik zou het niet doen op een 'zo veilig mogelijk' systeem. Dat is een beetje als een bepanserde auto kopen en dan landsail bandjes eronder leggen..
Een aantal dingen waar ik aan denk:
- Ik weet dat je public key authentication moet gebruiken en password login uit moet zetten voor SSH.
Heb je al gedacht dat je misschien niet SSH voor de wereld moet openzetten maar alleen vanaf 1 (of redundantie 2) punt(en)? VPN naar die ene endpoint en daarvandaan hop je verder, soort van steppingstone server... dat scheelt namelijk 3402823669209379999999999999999999999999 mogelijke IP adressen waarvab je gehacked kan worden.. Wat niet binnen mag, komt er moeilijker bij.
Je kunt asymetrisch en symetrisch tegelijk gebruiken, ook wat meer toekomstproof.
- Maar is dat voldoende? is Fail2Ban goed genoeg, of toch maar dat port knocking inzetten?
F2B is zwaar beinvloed door de NSA... ik weet niet of je die moet vertrouwen... Maar als je die vertrouwd, kun je ook Kaspersky antivirus installeren.
- En je standaard TLS configuratie gebruikt zwakke ciphers, maar wat is nog meer standaard zwak?
Zolang je webserver implementatie daar niet vatbaar voor is, is dat een probleem die niet zo spannend is als een brakke http deamon met 30 plugins van heel internet.
- ICMP ja/nee? Het zou kritiek zijn voor IPv6. Is het echt zo gevaarlijk, gezien het vaak gewoon aan staat?
Nee... IPv6 moet je toch al niet willen.
- Er is HTTP op poort 80 voor HTTPS redirect of voor certificate challenges. Beter wel dan niet, toch?
poort een keer in de 6 dagen aanzetten... anders gewoon uit. gebruikersvriendelijkheid is niet secure.