Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Bu rehberde çalışan bir VPN sunucusunu (WireGuard veya OpenVPN) sertleştirmek için uygulayabileceğiniz bir kontrol listesini adım adım izleyeceksiniz: sistem güncellemeleri, SSH, güvenlik duvarı, çekirdek ayarları, anahtar yönetimi, günlükleme ve düzenli bakım. Hosting yöneticileri ve kendi VPN'ini işletenler için hazırlanmıştır. Tahmini süre 40-60 dakikadır.
VPN sunucusu internete açık ve ağınıza giriş kapısı olduğu için değerli bir hedeftir. Sertleştirme, bu kapıyı gereksiz saldırı yüzeylerinden arındırmak ve kötü bir durumda hasarı sınırlamaktır.
Gereksinimler
- Debian/Ubuntu veya AlmaLinux/Rocky üzerinde çalışan bir VPN sunucusu
- sudo yetkili bir hesap ve SSH anahtarı
- Sağlayıcının web konsolu erişimi (kilitlenme durumunda geri dönüş)
- Yapılandırma yedekleri: SSH, güvenlik duvarı ve VPN dosyalarını değiştirmeden önce kopyalayın
- SSH ve güvenlik duvarı değişikliklerinde mutlaka ikinci bir açık oturum
Adım adım VPN sunucusu sertleştirme
1. Sistemi güncelleyin ve otomatik güvenlik güncellemelerini açın
Debian/Ubuntu:
sudo apt update && sudo apt upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgradesAlmaLinux/Rocky:
sudo dnf upgrade
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timerÇekirdek güncellemelerinin ardından yeniden başlatma gerekebilir; bakım penceresi planlayın.
2. SSH erişimini sıkılaştırın
Önce SSH anahtarıyla girişin çalıştığından emin olun. Uyarı: parolayla girişi kapatmadan önce ikinci bir oturumu açık tutun, aksi halde sunucuya erişemeyebilirsiniz. /etc/ssh/sshd_config dosyasında (yedek alarak) şu satırları ayarlayın:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3sudo sshd -t
sudo systemctl reload sshRHEL tabanlı sistemlerde servis adı sshd'dir: sudo systemctl reload sshd. /etc/ssh/sshd_config.d/ altındaki dosyalar (örneğin bulut imajlarındaki PasswordAuthentication yes satırı) ana dosyadaki ayarı geçersiz kılabilir; etkin değeri doğrulama bölümündeki sshd -T ile kontrol edin. Yeni bir terminalden girişi test edin, ancak ondan sonra eski oturumu kapatın.
3. Güvenlik duvarını varsayılan reddet olarak kurun
Yalnızca SSH ve VPN portu açık olsun. WireGuard ve ufw örneği:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 51820/udp
sudo ufw enableOpenVPN için 1194/udp (veya yapılandırdığınız port) açın. firewalld kullanıcıları sudo firewall-cmd --permanent --add-port=51820/udp ve --reload komutlarını kullanır. Mümkünse SSH'ı yalnızca yönetici IP adreslerine açın.
4. Gereksiz servisleri kapatın
sudo ss -tulpn
sudo systemctl list-unit-files --state=enabledVPN için gerekmeyen servisleri (posta, web, veritabanı vb.) kaldırın veya devre dışı bırakın: sudo systemctl disable --now servis_adi. Hangi servisin ne işe yaradığından emin olmadan kapatmayın.
5. Çekirdek ağ ayarlarını güvenli hale getirin
VPN yönlendirme için ip_forward gerekir; diğer ayarlar ise koruyucudur.
sudo tee /etc/sysctl.d/90-vpn-sertlestirme.conf > /dev/null <<'EOF'
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_syncookies = 1
EOF
sudo sysctl --system6. İstemci erişimini en az yetkiyle sınırlayın
VPN istemcilerinin sunucu ağındaki her şeye erişmesi gerekmez. Güvenlik duvarı FORWARD kurallarıyla yalnızca gerekli hedeflere izin verin. Her cihaz için ayrı anahtar veya sertifika kullanın ve ayrılan kullanıcıların erişimini hemen kaldırın (WireGuard'da peer silin, OpenVPN'de sertifikayı iptal edin).
7. Anahtar ve sertifika yönetimini düzenleyin
sudo ls -l /etc/wireguard /etc/openvpn/server
sudo sh -c 'chmod 600 /etc/wireguard/*.key'/etc/wireguard dizini yalnızca root tarafından okunabildiği için joker karakter (*) normal kullanıcının kabuğunda genişlemez; bu yüzden komut sudo sh -c ile çalıştırılır.
Özel anahtar dosyaları yalnızca root tarafından okunabilir olmalı, yedekleri şifrelenmiş olarak saklanmalıdır. Sertifika yetkilisi anahtarını mümkünse VPN sunucusundan uzakta tutun.
8. Brute force korumasını ve günlüklemeyi ekleyin
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshdRHEL tabanlı sistemlerde fail2ban için EPEL deposu gerekebilir ve sshd jail'i varsayılan olarak etkin olmayabilir; /etc/fail2ban/jail.local içinde etkinleştirin. /var/log/auth.log bulunmayan, yalnızca journald kullanan sistemlerde jail için backend = systemd ayarı gerekebilir. Günlükleri düzenli inceleyin: sudo journalctl -u ssh --since today (RHEL'de -u sshd). Merkezi bir günlük sunucusuna göndermek tespiti kolaylaştırır.
9. Düzenli kontrol takvimi oluşturun
Aylık olarak açık portları, kullanıcı ve anahtar listesini, bekleyen güncellemeleri ve yedeklerin geri yüklenebilirliğini gözden geçirin. Sonuçları kısa bir not defterinde tutun.
Doğrulama
sudo ss -tulpn
sudo ufw status verbose
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication'
sysctl net.ipv4.ip_forwardfirewalld kullanıyorsanız ufw status yerine sudo firewall-cmd --list-all çalıştırın. Beklenen sonuç: yalnızca SSH ve VPN portlarının dinlemede olması, permitrootlogin no ve passwordauthentication no çıktıları, güvenlik duvarının etkin olması. Dışarıdaki bir makineden hedefli bir port taramasıyla da beklenmeyen açık port olmadığını doğrulayın.
Sık karşılaşılan sorunlar
- SSH ile giriş yapamıyorum: anahtar eklenmeden parolayı kapattınız; sağlayıcı konsolundan geri alın.
- VPN bağlantıları kesildi: güvenlik duvarında VPN portu kapanmış ya da
ip_forwardsıfırlanmış olabilir. - Güncelleme sonrası servis çalışmıyor: çekirdek güncellendiyse yeniden başlatma gerekebilir; servis günlüklerine bakın.
- fail2ban kendi IP adresimi engelledi:
fail2ban-client set sshd unbanip IPile kaldırın ve güvenilir IP'yiignoreiplistesine ekleyin. - Yönlendirme çalışmıyor: sysctl dosyası yüklenmemiş;
sudo sysctl --systemçıktısındaki hataları kontrol edin.
Güvenlik ve bakım notları
- Sertleştirme tek seferlik değil sürekli bir süreçtir; kontrol listesini periyodik tekrarlayın.
- Yönetim erişimini VPN trafiğinden ayırın ve mümkünse IP kısıtlaması uygulayın.
- Tutulan günlüklerde kullanıcı gizliliğini göz önünde bulundurun; gereksiz bağlantı verisi saklamayın ve yasal gereklilikleri kontrol edin.
- Yedekleri şifreleyin ve uzak bir konumda saklayın.
- Şüpheli bir durumda anahtarları yenileyin ve etkilenen istemcileri yeniden yapılandırın.
- Sağlayıcı tarafı ağ koruması varsa etkinleştirin; sunucu içi önlemler hacimli saldırıları tek başına karşılamaz.
Sık sorulan sorular
Sertleştirmeye nereden başlamalıyım?
Önce güncellemeler, SSH anahtarı ve güvenlik duvarı gibi en etkili üç adımdan başlayın. Sonra gereksiz servisleri kapatıp izleme ve bakım düzenini kurun.
SSH portunu değiştirmek gerekli mi?
Zorunlu değildir; yalnızca otomatik tarama gürültüsünü azaltır. Asıl koruma anahtarla kimlik doğrulama, root girişini kapatmak ve erişimi kısıtlamaktır.
VPN sunucusu günlükleri tutulmalı mı?
Güvenlik izleme için sınırlı günlükler yararlıdır ancak kullanıcı gizliliği ve yasal yükümlülükler dikkate alınmalıdır. Neyi, ne kadar süre tuttuğunuzu belirleyin ve belgeleyin.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- HAProxy ile TCP yük dengeleme ve sağlık kontrolleriHAProxy ile TCP yük dengeleme kurun: frontend ve backend tanımı, sağlık kontrolleri, istatistik sayfası, yapılandırma doğrulama ve arka uç sunucu devre dışı kalma testi.
- SSH tüneli ve SOCKS proxy (yerel, uzak ve dinamik yönlendirme)SSH tüneli ile yerel (-L), uzak (-R) ve dinamik (-D) port yönlendirmeyi öğrenin; SOCKS proxy kurun, kalıcı tünel için systemd kullanın ve sunucuda tünel yetkilerini kısıtlayın.
- VPN kullanıcı yönetimi ve yapılandırma dağıtımı (ekleme, kaldırma, anahtar yenileme)WireGuard VPN sunucusunda kullanıcı ekleme, kaldırma ve anahtar yenilemeyi düzenli bir süreçle yönetin; istemci yapılandırmalarını güvenli biçimde dağıtın ve kayıt tutun.
- WireGuard ile siteden siteye (site-to-site) VPNİki ağı WireGuard ile birbirine bağlayan site-to-site VPN kurun: anahtar üretimi, iki uçta yapılandırma, IP yönlendirme, güvenlik duvarı kuralları ve el sıkışma doğrulaması.