Pazartesi, Aralık 23, 2024

Apache Web Sunucusunda Sorun Giderme Yolları

yüksek çözünürlüklü apache web sunucu logosu

Bağlantıların güvenliğe alınarak SSLv3, SSLv2 ve TLSv1 sürümlerinin kapatılması işlemi gerekiyorsa nano /etc/apache2/mods-available/ssl.conf dosyasına aşağıdaki değişiklik yapılır.

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off

Apache logların da aşağıdaki hata dönüyorsa ve kurallarınız geçerli olmuyorsa.

Apache 2.4.3+ "Client Denied By Server Configuration"

Sanal konak ayarlarınıza require all granted eklemesi yapmanız yeterlidir.


POST isteklerinin engellenmesi

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_METHOD} POST
  RewriteRule .* - [F,L]
</IfModule>
<LimitExcept GET HEAD OPTIONS>
  Order Allow,Deny
  Deny from all
</LimitExcept>
# POST aktif edilecek sayfa
<Files /contact>
  order allow,deny
  allow from all
</Files>

Loglar’da aşağıdaki gibi satırlar yer alıyorsa ve Apache’de SSL yapılandırmanız bozulmuşsa.

(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.

Bu hayatı çözmek için sanal konaklarınıza port tanımlaması yapabilirsiniz.

<VirtualHost *:443>

eğer bu tanımlama geçerli olmadıysa ve hala hata alıyorsanız. Aşağıdaki tanımlamayı SSL’in aktif olmasını istediğiniz sanal konak yapılandırmasına tanımlayın.

SetEnv nokeepalive ssl-unclean-shutdown

Kullanılmayan modüllerin Apache üzerinden kaldırılması

apache2ctl -M # Modüller listelenir
a2dismod mime_magic
apache2ctl configtest
systemctrl restart apache2

htpasswd tanımlaması yapmak istediniz ama eklediniz çalışmadı, aşağıdaki modülü kurun. Ön tanımlı olarak bu paket kurulu gelmiyor.

apt install apache2-utils

w00tw00t isteklerinin engellenmesi, eski bir yöntem lakin ara sıra gelebiliyor. Aşağıdaki eklemeyi yapıp engellemenizde fayda var.

iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.' -j DROP

HTTP isteklerinin kalıcı olarak HTTPS yönlendirilmesi

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/\ [R,L]

Sanal konaklar üzerinde yönlendirilmenin yapılması

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName mertcangokgoz.com
   Redirect permanent / https://mertcangokgoz.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName mertcangokgoz.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On
</VirtualHost>

Apache sürüm numarasının gizlenmesi

ServerTokens ProductOnly
ServerSignature Off

Apache‘de dizinlerin kapatılması

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

HTTP Trace metodunun kapatılması

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]