Tomcat 10’u Apache veya Nginx ile Ubuntu 20.04 Üzerinde Güvenli Hale Getirme
Giriş: Web Uygulamalarının Kalbi Tomcat ve Güvenliğin Önemi
Apache Tomcat, Java tabanlı web uygulamalarını barındırmak için yaygın olarak kullanılan açık kaynaklı bir web sunucusudur ve aynı zamanda bir servlet konteyneridir. Dünya genelinde milyonlarca kurumsal ve kişisel web uygulamasına güç veren Tomcat, esnekliği ve geniş topluluk desteği sayesinde popülerliğini korumaktadır. Ancak, herhangi bir internete açık hizmet gibi, Tomcat de doğru şekilde yapılandırılmadığında güvenlik açıkları barındırabilir. Bu açıkları kapatmak ve uygulamalarımızı kötü niyetli saldırılardan korumak, modern web altyapılarının temel bir gerekliliğidir.
Tek başına çalışan bir Tomcat sunucusu, güvenlik, performans ve yönetim açısından bazı sınırlamalara sahip olabilir. Özellikle SSL/TLS sonlandırma, yük dengeleme, statik içerik sunumu ve gelişmiş güvenlik politikaları gibi konularda, Apache HTTP Sunucusu veya Nginx gibi güçlü ters proxy’ler devreye girer. Bu ters proxy’ler, Tomcat’in önünde bir katman oluşturarak gelen istekleri yönetir, zararlı trafiği filtreler ve Tomcat sunucusunu doğrudan internete maruz kalmaktan korur. Bu makalede, Ubuntu 20.04 işletim sistemi üzerinde Tomcat 10’u Apache veya Nginx ile nasıl güvenli bir şekilde yapılandıracağımızı adım adım inceleyeceğiz. Amacımız, hem Tomcat’in iç güvenlik ayarlarını güçlendirmek hem de bir ters proxy kullanarak çok katmanlı bir savunma mekanizması oluşturmaktır.
Ön Koşullar
Bu makaledeki adımları takip edebilmek için aşağıdaki ön koşulların sağlanmış olması gerekmektedir:
* Ubuntu 20.04 LTS Sunucu: Temiz bir Ubuntu 20.04 kurulumuna sahip, root veya sudo yetkilerine sahip bir kullanıcı.
* Java Geliştirme Kiti (JDK): Tomcat 10, Java 8 veya üzeri bir sürüm gerektirir. OpenJDK 11 veya 17 önerilir.
* Apache Tomcat 10: En son kararlı sürümü kullanacağız.
* Apache HTTP Sunucusu veya Nginx: Tercihinize göre bir ters proxy sunucusu.
* Alan Adı (Domain Name): SSL/TLS sertifikası almak ve ters proxy’yi yapılandırmak için bir alan adına sahip olmanız önerilir.
Tomcat 10 Kurulumu ve Temel Yapılandırması
Tomcat’i kurmadan önce Java’yı kurmalı ve Tomcat için ayrı bir kullanıcı oluşturarak güvenlik risklerini azaltmalıyız.
Java Kurulumu
Tomcat 10 için OpenJDK 11’i kuralım:
sudo apt update
sudo apt install openjdk-11-jdk -y
Kurulumu doğrulayın:
java -version
Tomcat Kullanıcısı Oluşturma
Tomcat’i root kullanıcısı yerine ayrı bir kullanıcı altında çalıştırmak, güvenlik açısından kritik öneme sahiptir.
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Tomcat 10 İndirme ve Çıkarma
Tomcat’in resmi web sitesinden en son kararlı sürümünü indirin. Bu makale yazıldığı sırada Tomcat 10.1.x kararlı sürümünü kullanacağız.
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.18/bin/apache-tomcat-10.1.18.tar.gz
sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-10.1.18.tar.gz -C /opt/tomcat --strip-components=1
Dosya İzinlerini Ayarlama
Tomcat kullanıcısının /opt/tomcat dizinine ve alt dizinlerine doğru erişim izinlerine sahip olduğundan emin olun.
sudo chown -R tomcat:tomcat /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'
Systemd Servis Dosyası Oluşturma
Tomcat’i bir sistem servisi olarak çalıştırmak, yönetimi kolaylaştırır.
sudo nano /etc/systemd/system/tomcat.service
Dosyanın içine aşağıdaki içeriği ekleyin:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/urandom"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Servisi etkinleştirin ve başlatın:
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
sudo systemctl status tomcat
Tomcat’in varsayılan olarak 8080 portunda çalıştığını kontrol edin: http://.
Tomcat Yönetici Arayüzü Yapılandırması
Tomcat Manager ve Host Manager uygulamalarına erişmek için kullanıcı kimlik bilgileri oluşturmalısınız.
sudo nano /opt/tomcat/conf/tomcat-users.xml
etiketinin içine aşağıdaki satırları ekleyin. admin ve manager için güçlü parolalar seçtiğinizden emin olun.
Bu kullanıcılar, Tomcat Manager (uygulama dağıtımı) ve Host Manager (sanal host yönetimi) arayüzlerine erişim sağlar. Bu arayüzlere internetten doğrudan erişimi kısıtlamak güvenlik için çok önemlidir.
Tomcat 10 İç Güvenlik En İyi Uygulamaları
Ters proxy yapılandırmasına geçmeden önce, Tomcat’in kendi iç güvenlik ayarlarını güçlendirmek kritik öneme sahiptir.
Varsayılan Uygulamaları Kaldırma veya Kısıtlama
Üretim ortamında docs, examples, host-manager ve manager gibi varsayılan uygulamaların çoğu gereksizdir ve potansiyel güvenlik açıkları barındırabilir.
* Kaldırma: En güvenli yöntem, bu dizinleri tamamen silmektir:
sudo rm -rf /opt/tomcat/webapps/docs
sudo rm -rf /opt/tomcat/webapps/examples
* Kısıtlama: Eğer manager veya host-manager uygulamalarını kullanmanız gerekiyorsa, erişimi belirli IP adresleriyle kısıtlayın.
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
etiketinin içine aşağıdaki satırı ekleyin veya mevcut Valve etiketini güncelleyin. Kendi IP adresinizi veya güvenilir ağ IP’lerinizi allow niteliğine ekleyin.
Bu, yalnızca belirtilen IP adreslerinden erişime izin verir.
AJP Konnektörünü Devre Dışı Bırakma veya Güvenliğini Sağlama
AJP (Apache JServ Protocol), Apache HTTP Sunucusu ile Tomcat arasında optimize edilmiş bir iletişim protokolüdür. Ancak, çoğu modern kurulumda HTTP proxy yeterlidir ve AJP’nin yanlış yapılandırılması güvenlik riskleri oluşturabilir. Eğer kullanmıyorsanız, AJP konnektörünü devre dışı bırakın:
sudo nano /opt/tomcat/conf/server.xml
Aşağıdaki satırı yorum satırı haline getirin veya silin:
Eğer AJP kullanmanız gerekiyorsa, aşağıdaki gibi güvenliğini sağlayın:
address="127.0.0.1" ile yalnızca yerel makineden erişime izin verilir ve secret niteliği ile güçlü bir parola belirlenir. Bu parola, Apache veya Nginx yapılandırmasında da kullanılacaktır.
Tomcat Loglarını Yapılandırma ve İzleme
Tomcat’in logları, güvenlik olaylarını ve potansiyel saldırıları tespit etmek için hayati öneme sahiptir. conf/logging.properties dosyasını inceleyin ve log seviyelerini gerektiği gibi ayarlayın. Logları düzenli olarak izlemek için bir log yönetim aracı (örn. ELK Stack, Splunk) kullanmayı düşünün.
JVM Güvenliği
Tomcat’i çalıştıran JVM’in güvenliği de önemlidir. JAVA_OPTS ortam değişkeninde java.security.egd=file:/dev/./urandom gibi ayarlar, kriptografik işlemler için daha güvenli rastgele sayılar üretilmesini sağlar. Ayrıca, JMX (Java Management Extensions) kullanıyorsanız, erişimi kısıtladığınızdan ve güçlü kimlik doğrulaması kullandığınızdan emin olun.
Tomcat yapılandırmasında yaptığınız her değişiklikten sonra Tomcat servisini yeniden başlatmayı unutmayın:
sudo systemctl restart tomcat
Ters Proxy (Reverse Proxy) Kavramı ve Avantajları
Ters proxy, istemciden gelen istekleri alıp bir veya daha fazla arka uç sunucuya (bu durumda Tomcat) ileten bir sunucudur. İstemci, arka uç sunucuyla doğrudan iletişim kurmaz; tüm iletişim ters proxy üzerinden gerçekleşir. Bu mimari, birçok güvenlik ve performans avantajı sunar:
* Güvenlik: Arka uç sunucuların IP adreslerini gizler ve onları doğrudan internete maruz kalmaktan korur. Kötü niyetli istekleri filtreleyebilir ve DDoS saldırılarına karşı bir ilk savunma hattı oluşturabilir.
* SSL/TLS Sonlandırma: SSL/TLS şifrelemesini ters proxy üzerinde sonlandırarak arka uç sunucuların bu yükten kurtulmasını sağlar. Bu, Tomcat’in daha fazla uygulama isteği işlemesine olanak tanır.
* Yük Dengeleme: Gelen trafiği birden fazla arka uç sunucuya dağıtarak yüksek kullanılabilirlik ve ölçeklenebilirlik sağlar.
* Statik İçerik Sunumu: Resimler, CSS ve JavaScript dosyaları gibi statik içerikleri doğrudan ters proxy üzerinden sunarak Tomcat’in yükünü azaltır ve performansı artırır.
* Gelişmiş Güvenlik Başlıkları: HTTP güvenlik başlıklarını (HSTS, CSP vb.) kolayca uygulayarak modern web güvenliğini artırır.
* URL Yeniden Yazma: Gelen isteklerin URL’lerini yeniden yazarak daha esnek yönlendirme ve SEO dostu URL’ler sağlar.
Şimdi Apache ve Nginx ile bu avantajları nasıl uygulayacağımıza bakalım.
Apache 2 ile Tomcat’i Güvenli Hale Getirme
Apache HTTP Sunucusu, modüler yapısı sayesinde güçlü bir ters proxy olarak görev yapabilir.
Apache Kurulumu ve Gerekli Modülleri Etkinleştirme
sudo apt install apache2 -y
Gerekli Apache modüllerini etkinleştirin:
sudo a2enmod proxy proxy_http proxy_ajp ssl headers rewrite
sudo systemctl restart apache2
* proxy: Temel proxy işlevselliği.
* proxy_http: HTTP protokolü üzerinden proxy.
* proxy_ajp: AJP protokolü üzerinden proxy (eğer kullanılıyorsa).
* ssl: SSL/TLS şifrelemesi.
* headers: HTTP başlıklarını yönetme.
* rewrite: URL yeniden yazma.
Apache Sanal Host Yapılandırması (HTTP Proxy)
Tomcat’i 8080 portundan değil, standart HTTP portu (80) üzerinden erişilebilir hale getirelim.
sudo nano /etc/apache2/sites-available/tomcat.conf
Dosyanın içine aşağıdaki içeriği ekleyin. example.com yerine kendi alan adınızı kullanın.
ServerName example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPreserveHost On
Require all granted
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ErrorLog ${APACHE_LOG_DIR}/tomcat_error.log
CustomLog ${APACHE_LOG_DIR}/tomcat_access.log combined
Bu yapılandırma, example.com adresine gelen tüm istekleri yerel Tomcat sunucusunun 8080 portuna yönlendirir.
Apache Sanal Host Yapılandırması (HTTPS Proxy ve Let’s Encrypt)
Web sitenizi HTTPS üzerinden yayınlamak, modern web güvenliğinin temelidir. Let’s Encrypt ile ücretsiz SSL/TLS sertifikaları alabiliriz.
Certbot Kurulumu ve SSL Sertifikası Alma
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com
Certbot, otomatik olarak Apache yapılandırmanızı güncelleyecek ve SSL sertifikasını kuracaktır.
SSL Yapılandırmasını Güçlendirme
Certbot’un oluşturduğu SSL yapılandırmasını daha da güçlendirebiliriz. ssl.conf dosyasını düzenleyin:
sudo nano /etc/apache2/mods-enabled/ssl.conf
Aşağıdaki satırları bulun ve güncelleyin (veya ekleyin):
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets Off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling_cache(128K)"
Bu ayarlar, daha güçlü şifreleme algoritmaları ve protokolleri kullanılmasını sağlar.
Gelişmiş Güvenlik Başlıkları Ekleme
HTTP güvenlik başlıkları, tarayıcı tabanlı saldırılara karşı ek koruma sağlar. Bu başlıkları tomcat.conf dosyanıza ekleyin:
ServerName example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPreserveHost On
Require all granted
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
# SSL Ayarları (Certbot tarafından eklenir)
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
# Güvenlik Başlıkları
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set X-Frame-Options "DENY"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "no-referrer-when-downgrade"
# Content-Security-Policy başlığı uygulamanıza özel olarak yapılandırılmalıdır.
# Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';"
ErrorLog ${APACHE_LOG_DIR}/tomcat_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/tomcat_ssl_access.log combined
* Strict-Transport-Security (HSTS): Tarayıcıları her zaman HTTPS kullanmaya zorlar.
* X-Frame-Options: Sitenizin iframe’lerde görüntülenmesini engeller (clickjacking koruması).
* X-Content-Type-Options: Tarayıcıların MIME tiplerini tahmin etmesini engeller (MIME sniffing saldırılarına karşı).
* X-XSS-Protection: Tarayıcıların XSS saldırılarına karşı yerleşik korumalarını etkinleştirir.
* Referrer-Policy: Yönlendiren bilgilerinin nasıl gönderileceğini kontrol eder.
* Content-Security-Policy (CSP): XSS ve veri enjeksiyonu saldırılarını önlemek için güvenli içerik kaynaklarını belirler. (Bu başlık uygulamanızın gereksinimlerine göre dikkatlice yapılandırılmalıdır.)
HTTP’den HTTPS’ye Yönlendirme
Tüm HTTP isteklerini otomatik olarak HTTPS’ye yönlendirmek için tomcat.conf dosyasındaki 80 portu sanal hostunu aşağıdaki gibi güncelleyin:
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
Yapılandırmayı Etkinleştirme ve Yeniden Başlatma
sudo a2ensite tomcat.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
UFW Güvenlik Duvarı Yapılandırması (Apache için)
Yalnızca gerekli portlara (80 ve 443) izin verin:
sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache' # Eğer önceden sadece 80 portuna izin verdiyseniz
sudo ufw enable # Eğer ufw etkin değilse
sudo ufw status
Nginx ile Tomcat’i Güvenli Hale Getirme
Nginx, yüksek performanslı ve hafif bir web sunucusu ve ters proxy’dir.
Nginx Kurulumu
sudo apt install nginx -y
Nginx Server Block Yapılandırması (HTTP Proxy)
Tomcat’i 80 portu üzerinden Nginx ile erişilebilir hale getirelim.
sudo nano /etc/nginx/sites-available/tomcat
Dosyanın içine aşağıdaki içeriği ekleyin. example.com yerine kendi alan adınızı kullanın.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
* proxy_pass: İstekleri Tomcat’in çalıştığı adrese yönlendirir.
* proxy_set_header: Tomcat’in istemci IP’si ve protokolü gibi gerçek bilgileri almasını sağlar.
Nginx Server Block Yapılandırması (HTTPS Proxy ve Let’s Encrypt)
Apache’de olduğu gibi, Nginx için de Let’s Encrypt ile SSL sertifikası alacağız.
Certbot Kurulumu ve SSL Sertifikası Alma
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
Certbot, Nginx yapılandırmanızı otomatik olarak güncelleyecek ve SSL sertifikasını kuracaktır.
SSL Yapılandırmasını Güçlendirme
Certbot’un oluşturduğu Nginx SSL yapılandırmasını daha da güçlendirebiliriz. sites-available/tomcat dosyanızı tekrar düzenleyin ve aşağıdaki SSL ayarlarını ekleyin/güncelleyin:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; # Nginx için gerekli olabilir
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
# Diffie-Hellman parametreleri (güvenliği artırır, önceden oluşturulmuş olmalı)
# sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048
# ssl_dhparam /etc/nginx/dhparam.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header X-Frame-Options "DENY";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
# Content-Security-Policy başlığı uygulamanıza özel olarak yapılandırılmalıdır.
# add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';";
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
Nginx için Diffie-Hellman parametrelerini oluşturmak isteyebilirsiniz:
sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048
Sonra ssl_dhparam /etc/nginx/dhparam.pem; satırını Nginx yapılandırmanıza ekleyin.
HTTP’den HTTPS’ye Yönlendirme
Certbot, HTTP’den HTTPS’ye yönlendirme için ayrı bir server bloğu oluşturacaktır. Eğer oluşturmadıysa, aşağıdaki gibi manuel olarak ekleyebilirsiniz:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Yapılandırmayı Etkinleştirme ve Yeniden Başlatma
sudo ln -s /etc/nginx/sites-available/tomcat /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
UFW Güvenlik Duvarı Yapılandırması (Nginx için)
Yalnızca gerekli portlara (80 ve 443) izin verin:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP' # Eğer önceden sadece 80 portuna izin verdiyseniz
sudo ufw enable # Eğer ufw etkin değilse
sudo ufw status
Yapılandırma Sonrası Güvenlik Kontrolleri ve Bakım
Güvenlik, tek seferlik bir işlem değil, sürekli bir süreçtir.
Erişim Testleri
* Web tarayıcınızdan alan adınızı (örn. https://example.com) ziyaret ederek uygulamanızın HTTPS üzerinden doğru şekilde çalıştığını doğrulayın.
* Tomcat Manager ve Host Manager arayüzlerine doğrudan 8080 portundan erişmeye çalışın (http://). Eğer IP kısıtlaması yaptıysanız, erişimin engellendiğini görmelisiniz.
* curl -I https://example.com komutunu kullanarak HTTP güvenlik başlıklarının doğru ayarlandığını kontrol edin.
* SSL Labs gibi araçlarla (https://www.ssllabs.com/ssltest/) SSL/TLS yapılandırmanızın derecesini kontrol edin.
Log İzleme
Hem Tomcat hem de ters proxy (Apache/Nginx) loglarını düzenli olarak izleyin. Anormal istekleri, hata mesajlarını veya yetkisiz erişim denemelerini tespit etmek için log analiz araçları kullanın.
Düzenli Güncellemeler
İşletim sistemi, Java, Tomcat, Apache/Nginx ve diğer tüm bağımlılıkları düzenli olarak güncelleyin. Güvenlik yamaları, bilinen zafiyetleri kapatır.
sudo apt update && sudo apt upgrade -y
Güvenlik Taramaları ve Denetimleri
Sitenizi düzenli olarak güvenlik tarayıcıları (örn. OWASP ZAP, Nessus, OpenVAS) ile tarayın. Bu araçlar, uygulamanızdaki ve altyapınızdaki potansiyel zafiyetleri ortaya çıkarabilir.
Yedeklemeler
Tomcat uygulamalarınızın, yapılandırma dosyalarınızın ve veritabanlarınızın düzenli yedeklerini alın. Bir güvenlik ihlali durumunda hızlı bir şekilde kurtarma yapabilmek için bu kritik öneme sahiptir.
Sonuç
Tomcat 10’u Apache veya Nginx ile Ubuntu 20.04 üzerinde güvenli hale getirmek, çok katmanlı bir yaklaşım gerektirir. Bu makalede, Tomcat’in kendi iç güvenlik ayarlarından başlayarak, Apache veya Nginx’i güçlü bir ters proxy olarak nasıl yapılandıracağımızı, SSL/TLS şifrelemesini nasıl uygulayacağımızı ve gelişmiş HTTP güvenlik başlıklarını nasıl ekleyeceğimizi detaylı bir şekilde inceledik.
Bir ters proxy kullanmak, Tomcat sunucunuzu doğrudan internete maruz kalmaktan koruyarak, SSL/TLS sonlandırma, yük dengeleme ve statik içerik sunumu gibi önemli avantajlar sağlar. Ayrıca, güvenlik başlıkları ve düzenli güncellemelerle birlikte, web uygulamanızın genel güvenlik duruşunu önemli ölçüde güçlendirir. Unutmayın ki güvenlik, sürekli dikkat ve bakım gerektiren dinamik bir süreçtir. Bu adımları uygulayarak ve düzenli olarak güvenlik pratiklerinizi gözden geçirerek, Tomcat tabanlı uygulamalarınızı kötü niyetli saldırılara karşı daha dirençli hale getirebilirsiniz.