Een praktische gids voor het verharden en beveiligen van Apache Tomcat Server met de best practices.
Tomcat is een van de meest populaire Servlet- en JSP Container-servers. Het wordt gebruikt door een aantal van de volgende websites met veel verkeer:
- LinkedIn.com
- Dailymail.co.uk
- Comcast.net
- Wallmart.com
- Reuters.com
- Meetup.com
- Webs.com
Onderstaande grafiek toont de marktpositie van Tomcat in de Java-toepassingsserver.
Bron: Plumbr
Technisch gezien kun je Tomcat gebruiken als een front-end server om rechtstreeks siteverzoeken af te handelen. In een productieomgeving wilt u misschien enkele webservers zoals Apache, Nginx gebruiken als front-end om de verzoeken naar de Tomcat te leiden.
Een webserver gebruiken om de verzoeken af te handelen prestatie en veiligheid voordelen. Als je Apache HTTP gebruikt als front-end webserver, dan moet je overwegen om dat ook te beveiligen.
Een standaard Tomcat-configuratie kan gevoelige informatie blootleggen, wat de hacker helpt om zich voor te bereiden op een aanval op de applicatie.
De volgende zijn getest op Tomcat 7.x, UNIX-omgeving.
Contents
- 1 Serverbanner verwijderen
- 2 Tomcat starten met een Security Manager
- 3 Schakel SSL / TLS in
- 4 Dwing HTTPS af
- 5 Veilig toevoegen & Http Alleen markeren naar Cookie
- 6 Voer Tomcat uit vanaf een niet-geprivilegieerd account
- 7 Verwijder standaard / ongewenste applicaties
- 8 Wijzig de SHUTDOWN-poort en Command
- 9 Vervang standaard 404, 403, 500 pagina
Publiek
Dit is ontworpen voor Middleware Administrator, Application Support, System Analyst, of iedereen die werkt of graag Tomcat Hardening and Security wil leren.
Goede kennis van Tomcat & UNIX-opdracht is verplicht.
Opmerkingen
We hebben een tool nodig om HTTP-headers te onderzoeken voor verificatie. U kunt dit op twee manieren doen.
Als testen Op internet gericht applicatie, dan kunt u de volgende HTTP-headertools gebruiken om de implementatie te verifiëren.
- HTTP-headercontrole
- Hacker-doelwit
En voor een Intranet applicatie, u mag Google Chrome, Firefox-ontwikkeltools gebruiken.
Als best practice moet u een back-up van elk bestand dat u gaat wijzigen.
We zullen de Tomcat-installatiemap noemen als $ kater in deze richtlijnen.
Laten we door de verharding gaan & procedures beveiligen.
Serverbanner verwijderen uit HTTP-header is een van de eerste dingen die u moet doen als verharding.
Het hebben van een serverbanner laat het product en de versie zien die u gebruikt en leidt tot een kwetsbaarheid voor het lekken van informatie.
Standaard wordt een door Tomcat beheerde pagina als volgt weergegeven.
Laten we de product- en versiedetails verbergen voor de serverkop.
- Ga naar de map $ tomcat / conf
- Wijzig server.xml met vi
- Voeg het volgende toe aan de connectorpoort
Server = “”
Bijv .: –
- Sla het bestand op en start de Tomcat opnieuw op. Wanneer u nu een toepassing opent, zou u een lege waarde voor de serverkop moeten zien.
Tomcat starten met een Security Manager
Security Manager beschermt u tegen een niet-vertrouwde applet die in uw browser wordt uitgevoerd.
Tomcat gebruiken met een beveiligingsmanager is beter dan zonder een te draaien. Tomcat heeft uitstekende documentatie over Tomcat Security Manager.
Het goede hieraan is dat u geen configuratiebestand hoeft te wijzigen. Het is gewoon de manier waarop u het startup.sh-bestand uitvoert.
Het enige wat je hoeft te doen is om kater te starten met een –veiligheidsargument.
[[email beveiligd] bin] # ./startup.sh -beveiliging
CATALINA_BASE gebruiken: / opt / tomcat
CATALINA_HOME gebruiken: / opt / tomcat
CATALINA_TMPDIR gebruiken: / opt / tomcat / temp
JRE_HOME gebruiken: / usr
CLASSPATH gebruiken: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Security Manager gebruiken
Tomcat begon.
[[email beveiligd] bin] #
Schakel SSL / TLS in
Het leveren van webverzoeken via HTTPS is essentieel om gegevens tussen de klant en Tomcat te beschermen. Om uw webapplicatie toegankelijk te maken via HTTPS, moet u een SSL-certificaat implementeren.
Ervan uitgaande dat u al keystore klaar hebt met het certificaat, kunt u onderstaande regel toevoegen in het bestand server.xml onder het gedeelte Connectorpoort.
SSLEnabled ="waar" regeling ="https" keystoreFile ="ssl / bloggerflare.jks" keystorePass ="chandan" clientAuth ="false" sslProtocol ="TLS"
Verander de Keystore bestandsnaam en wachtwoord met die van jou.
Als je hulp nodig hebt bij de sleutelopslag & CSR-proces en raadpleeg dan deze gids.
Dwing HTTPS af
Dit is alleen van toepassing als je SSL hebt ingeschakeld. Zo niet, dan wordt de toepassing verbroken.
Zodra u SSL heeft ingeschakeld, is het goed om alle HTTP-verzoeken om te leiden naar HTTPS voor veilige communicatie tussen de gebruiker en de Tomcat-toepassingsserver.
- Ga naar de map $ tomcat / conf
- Pas web.xml aan met vi
- Voeg het volgende toe vóór de syntaxis
Beschermde context
/ *
VERTROUWELIJK
- Sla het bestand op en start de Tomcat opnieuw op
Veilig toevoegen & Http Alleen markeren naar Cookie
Het is mogelijk om webapplicatiesessies en cookies te stelen of te manipuleren zonder een beveiligde cookie te hebben. Het is een vlag die wordt geïnjecteerd in de antwoordkop.
Dit wordt gedaan door onder de regel toe te voegen in de sessie-configuratie sectie van het web.xml bestand
waar
waar
Configuratiescherm:
Sla het bestand op en start Tomcat opnieuw om de HTTP-antwoordkop te bekijken.
Voer Tomcat uit vanaf een niet-geprivilegieerd account
Het is goed om voor Tomcat een aparte niet-geprivilegieerde gebruiker te gebruiken. Het idee hier is om andere services te beschermen in het geval dat een account wordt gehackt.
- Maak een UNIX-gebruiker, laten we zeggen kater
useradd tomcat
- Stop de Tomcat als hij draait
- Verander het eigendom van $ tomcat in gebruiker tomcat
chown -R kater: kater kater /
Start de Tomcat en zorg ervoor dat deze werkt met een tomcat-gebruiker
Verwijder standaard / ongewenste applicaties
Tomcat wordt standaard geleverd met de volgende webapplicaties, die al dan niet vereist zijn in een productieomgeving.
Je kunt ze verwijderen om het schoon te houden en elk bekend veiligheidsrisico te vermijden met de standaard Tomcat-applicatie.
- ROOT – Standaard welkomstpagina
- Documenten – Tomcat-documentatie
- Voorbeelden – JSP en servlets voor demonstratie
- Manager, host-manager – Tomcat-administratie
Ze zijn beschikbaar onder de map $ tomcat / webapps
[[email beveiligd] webapps] # ls -lt
drwxr-xr-x 14 tomcat tomcat 4096 29 september 15:26 docs
drwxr-xr-x 7 tomcat tomcat 4096 29 september 15:26 voorbeelden
drwxr-xr-x 5 tomcat tomcat 4096 29 september 15:26 host-manager
drwxr-xr-x 5 tomcat tomcat 4096 29 september 15:26 manager
drwxr-xr-x 3 tomcat tomcat 4096 29 september 15:26 WORTEL
[[email beveiligd] webapps] #
Wijzig de SHUTDOWN-poort en Command
Tomcat is standaard geconfigureerd om te worden afgesloten op de 8005-poort.
Weet je dat je tomcat-instantie kunt afsluiten door een telnet naar IP: port te doen en SHUTDOWN-opdracht te geven?
Chandans # telnet localhost 8005
Proberen :: 1 … telnet:
verbinding maken met adres :: 1:
Verbinding geweigerd Probeer 127.0.0.1…
Verbonden met localhost.
Escape-teken is ‘^]’.
SHUTDOWN Verbinding verbroken door buitenlandse host.
Chandans #
Gevaarlijk!
U ziet dat een standaardconfiguratie leidt tot een hoog beveiligingsrisico.
Het wordt aanbevolen om de tomcat-uitschakelpoort en de standaardopdracht te wijzigen in iets onvoorspelbaars.
- Wijzig het volgende in server.xml
8005 – Ga naar een andere ongebruikte poort
SHUTDOWN – Verander naar iets ingewikkelds
Ex-
Vervang standaard 404, 403, 500 pagina
Een standaardpagina hebben voor niet gevonden, verboden, serverfout onthult versiedetails.
Laten we eens kijken naar de standaard 404-pagina.
Om dit te verhelpen, kunt u eerst een algemene foutpagina maken en web.xml configureren om door te verwijzen naar een algemene foutpagina.
- Ga naar $ tomcat / webapps / $ application
- Maak een error.jsp-bestand met de vi-editor
Foutpagina
Dat is een fout!
- Ga naar de map $ tomcat / conf
- Voeg het volgende toe aan het bestand web.xml. Zorg ervoor dat u vóór de syntaxis toevoegt
404
/error.jsp
403
/error.jsp
500
/error.jsp
- Start de tomcat-server opnieuw om deze te testen
Veel beter!
Je kunt dit ook voor java.lang.Exception doen. Dit zal helpen bij het niet weergeven van tomcat-versie-informatie als er een Java Lang-uitzondering is.
Voeg gewoon het volgende toe in web.xml en start de tomcat-server opnieuw.
java.lang.Exception
/error.jsp
Ik hoop dat de bovenstaande gids je een idee geeft om Tomcat te beveiligen. Als je meer wilt weten over het beheer van Tomcat, kijk dan hier online cursus.