Apache Tomcat keményedési és biztonsági útmutató

Gyakorlati útmutató az Apache Tomcat Server keményítéséhez és biztonságossá tételéhez a legjobb gyakorlatokkal.

A Tomcat az egyik legnépszerűbb Servlet és JSP Container kiszolgáló. A következő nagy forgalmú webhelyek némelyike ​​használja:

  • LinkedIn.com
  • Dailymail.co.uk
  • Comcast.net
  • Wallmart.com
  • Reuters.com
  • Meetup.com
  • Webs.com

Az alábbi diagram a Tomcat piaci pozícióját mutatja a Java alkalmazásszerverben.

Forrás: Plumbr

Technikailag a Tomcat előtér-kiszolgálóként használhatja a webhelykérések közvetlen kiszolgálására. Éles környezetben azonban érdemes néhány webszervert, például az Apache-t, az Nginxet használni előtérként, hogy a kéréseket a Tomcathez irányítsa.

A webszerver használata a kérések kezelésére teljesítmény- és biztonsági előnyöket biztosít. Ha az Apache HTTP-t front-end webszerverként használja, akkor ennek is meg kell fontolnia annak biztosítását.

Az alapértelmezett Tomcat konfiguráció érzékeny információkhoz juthat, ami segít a hackereknek felkészülni az alkalmazás elleni támadásra.

A következőket Tomcat 7.x UNIX környezetben teszteltük.

Közönség

Ezt a köztesszoftver-adminisztrátornak, alkalmazástámogatónak, rendszerelemzőnek vagy bárkinek, aki dolgozik, vagy szívesen tanulja meg a Tomcat keményítését és biztonságát.

A Tomcat és UNIX parancsok jó ismerete kötelező.

Megjegyzések

Szükségünk van valamilyen eszközre a HTTP-fejlécek ellenőrzéséhez. Ezt kétféleképpen teheti meg.

Internetre néző alkalmazás tesztelésekor a következő HTTP-fejléc-eszközöket használhatja a megvalósítás ellenőrzésére.

Intranet alkalmazáshoz pedig használhatja a Google Chrome és a Firefox fejlesztői eszközeit.

A legjobb gyakorlat szerint minden módosítani kívánt fájlról biztonsági másolatot kell készítenie.

Ebben az útmutatóban a Tomcat telepítési mappáját $tomcat néven fogjuk hívni.

  Üzenetek sugárzása a Google Asszisztens hangszóróin és kijelzőjén

Végezzük el a keményítési és rögzítési eljárásokat.

Távolítsa el a kiszolgáló szalaghirdetését

A kiszolgáló szalaghirdetésének eltávolítása a HTTP-fejlécből az egyik első lépés, amelyet meg kell erősíteni.

A szerver szalaghirdetése felfedi az Ön által használt terméket és verziót, és információszivárgási sebezhetőséghez vezet.

Alapértelmezés szerint a Tomcat által kiszolgált oldal így fog megjelenni.

Rejtsük el a termék és verzió részleteit a Szerver fejlécből.

  • Lépjen a $tomcat/conf mappába
  • Módosítsa a server.xml fájlt a vi használatával
  • Adja hozzá a következőket a csatlakozási porthoz
Server =” “

Pl.: –

<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000" 
Server =" "
redirectPort="8443" />
  • Mentse el a fájlt, és indítsa újra a Tomcatet. Most, amikor hozzáfér egy alkalmazáshoz, a Server fejléc üres értékét kell látnia.

A Tomcat indítása biztonsági kezelővel

A Security Manager megvédi Önt a böngészőjében futó nem megbízható kisalkalmazásoktól.

A Tomcat biztonsági menedzserrel jobb futtatni, mint anélkül. A Tomcat kiváló dokumentációval rendelkezik Tomcat biztonsági menedzser.

Ebben az a jó, hogy nem kell módosítania egyetlen konfigurációs fájlt sem. Csak így futtatja a startup.sh fájlt.

Mindössze annyit kell tennie, hogy elindítja a tomcat -biztonsági érvvel.

[[email protected] bin]# ./startup.sh -security
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using Security Manager
Tomcat started.
[[email protected] bin]#

SSL/TLS engedélyezése

A webes kérések HTTPS-en keresztüli kiszolgálása elengedhetetlen az ügyfél és a Tomcat közötti adatok védelméhez. Ahhoz, hogy webalkalmazását HTTPS-en keresztül elérhetővé tegye, SSL-tanúsítványt kell megvalósítania.

Feltételezve, hogy már készen áll a kulcstár a tanúsítvánnyal együtt, hozzáadhatja az alábbi sort a server.xml fájlhoz a Connector port szakaszban.

SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"

Módosítsa a Keystore fájl nevét és jelszavát a sajátjával.

Ha segítségre van szüksége a kulcstár és CSR folyamathoz, tekintse meg ezt az útmutatót.

  A soron kívül kapott iMessages javítása

HTTPS kényszerítése

Ez csak akkor érvényes, ha engedélyezve van az SSL. Ha nem, akkor megszakítja az alkalmazást.

Ha engedélyezte az SSL-t, jó lenne minden HTTP-kérést átirányítani a HTTPS-re a biztonságos kommunikáció érdekében a felhasználó és a Tomcat alkalmazáskiszolgáló között.

  • Lépjen a $tomcat/conf mappába
  • Módosítsa a web.xml fájlt a vi használatával
  • Adja hozzá a következőt a szintaxis előtt
<security-constraint> 
<web-resource-collection> 
<web-resource-name>Protected Context</web-resource-name> 
<url-pattern>/*</url-pattern>
</web-resource-collection> 
<user-data-constraint> 
<transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint> 
</security-constraint>
  • Mentse el a fájlt, és indítsa újra a Tomcatet

Lehetőség van a webalkalmazás-munkamenet és a cookie-k ellopására vagy manipulálására biztonságos cookie nélkül. Ez egy zászló, amely a válaszfejlécbe kerül.

Ezt úgy teheti meg, hogy a web.xml fájl session-config szakaszában hozzáadja a sor alá

<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>

Konfigurációs képernyőkép:

Mentse el a fájlt, és indítsa újra a Tomcat programot a HTTP-válasz fejlécének vizsgálatához.

Futtassa a Tomcat-ot nem privilegizált fiókból

Érdemes külön, nem privilegizált felhasználót használni a Tomcathez. Az ötlet itt az, hogy megvédjük a többi futó szolgáltatást, ha valamelyik fiókot feltörik.

  • Hozzon létre egy UNIX-felhasználót, mondjuk a tomcat-et
useradd tomcat
  • Állítsa le a Tomcatet, ha fut
  • Módosítsa a $tomcat tulajdonjogát a tomcat felhasználóra
chown -R tomcat:tomcat tomcat/

Indítsa el a Tomcatet, és győződjön meg arról, hogy fut a tomcat felhasználóval

Távolítsa el az alapértelmezett/nem kívánt alkalmazásokat

Alapértelmezés szerint a Tomcat a következő webalkalmazásokkal érkezik, amelyekre éles környezetben szükség lehet, vagy nem.

Törölheti őket, hogy tiszta maradjon, és elkerülje az ismert biztonsági kockázatokat a Tomcat alapértelmezett alkalmazással.

  • ROOT – Alapértelmezett üdvözlőoldal
  • Dokumentumok – Tomcat dokumentáció
  • Példák – JSP és servletek a demonstrációhoz
  • Menedzser, host-manager – Tomcat adminisztráció

A $tomcat/webapps mappában érhetők el

[[email protected] webapps]# ls -lt
drwxr-xr-x 14 tomcat tomcat 4096 Sep 29 15:26 docs
drwxr-xr-x 7 tomcat tomcat 4096 Sep 29 15:26 examples
drwxr-xr-x 5 tomcat tomcat 4096 Sep 29 15:26 host-manager
drwxr-xr-x 5 tomcat tomcat 4096 Sep 29 15:26 manager
drwxr-xr-x 3 tomcat tomcat 4096 Sep 29 15:26 ROOT
[[email protected] webapps]#

Változtassa meg a SHUTDOWN portot és a parancsot

Alapértelmezés szerint a tomcat úgy van beállítva, hogy a 8005-ös porton leálljon.

  Az összes névjegy törlése az iPhone 5-ről iCloud nélkül

Tudja, hogy leállíthatja a tomcat példányt úgy, hogy egy telnet IP: portra lép, és kiadja a SHUTDOWN parancsot?

Chandans # telnet localhost 8005
Trying ::1... telnet:
connect to address ::1:
Connection refused Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SHUTDOWN Connection closed by foreign host.
Chandans #

Veszélyes!

Látod, az alapértelmezett konfiguráció magas biztonsági kockázatot jelent.

Javasoljuk, hogy a tomcat shutdown portot és az alapértelmezett parancsot valami kiszámíthatatlanra módosítsa.

  • Módosítsa a következőket a server.xml fájlban
<Server port="8005" shutdown="SHUTDOWN">

8005 – Váltás egy másik nem használt portra

LEÁLLÍTÁS – Válts valami bonyolultra

Volt-

<Server port="8867" shutdown="NOTGONNAGUESS">

Cserélje ki az alapértelmezett 404, 403, 500 oldalt

A nem található, tiltott, szerverhiba alapértelmezett oldala megjeleníti a verzió részleteit.

Nézzük az alapértelmezett 404-es oldalt.

A probléma enyhítése érdekében először létrehozhat egy általános hibaoldalt, és beállíthatja a web.xml fájlt, hogy átirányítsa az általános hibaoldalra.

  • Nyissa meg a $tomcat/webapps/$application webhelyet
  • Hozzon létre egy error.jsp fájlt a vi szerkesztővel
<html>
<head> 
<title>Error Page</title>
</head>
<body> That's an error! </body>
</html>
  • Lépjen a $tomcat/conf mappába
  • Adja hozzá a következőt a web.xml fájlhoz. Ügyeljen arra, hogy a szintaxis előtt adja meg
<error-page> 
<error-code>404</error-code> 
<location>/error.jsp</location>
</error-page>
<error-page> 
<error-code>403</error-code> 
<location>/error.jsp</location>
</error-page>
<error-page> 
<error-code>500</error-code> 
<location>/error.jsp</location>
</error-page>
  • Indítsa újra a tomcat szervert a teszteléshez

Sokkal jobb!

Ezt megteheti a java.lang.Exception esetén is. Ez segít abban, hogy ne fedjük fel a tomcat verzióinformációit, ha bármilyen java lang kivétel van.

Csak adja hozzá a következőt a web.xml fájlhoz, és indítsa újra a tomcat szervert.

<error-page> 
<exception-type>java.lang.Exception</exception-type> 
<location>/error.jsp</location>
</error-page>

Remélem, a fenti útmutató ötletet ad a Tomcat biztosításához. Ha többet szeretne megtudni a Tomcat adminisztrációjáról, nézze meg ezt online tanfolyam.
Itt megtudhatja, hogyan konfigurálhatja a WAS-t úgy, hogy ne kérjen jelszót leállítás közben.