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]