Debian/Ubuntu tabanlı sunucular için temel güvenlik önlemlerini otomatik uygulayan script. UFW, Fail2ban, SSH sertleştirmesi, sysctl ve otomatik güvenlik güncellemeleri kurar.
Kaynak:hexarch/linux-security
SSH key şart! Script çalışmadan önce
ssh-copy-id root@sunucuile SSH key ekleyin. Aksi halde sunucuya tekrar bağlanamazsınız.PermitRootLogin no varsayılan olarak root ile SSH girişini kapatır. Root ile key ile bağlanmak için
PERMIT_ROOT_LOGIN=prohibit-passwordkullanın.VPN/Port yönlendirme kullanıyorsanız
net.ipv4.ip_forward=0sorun çıkarabilir. Scripti çalıştırmayın.Proxmox kullanıyorsanız port 8006 (web panel) firewall'da açık olmayacak. Nginx reverse proxy ile 443 üzerinden erişim kurun.
- Root erişimi
- Debian veya Ubuntu
- SSH key (önerilir)
# 1. SSH key ekle (kendi bilgisayarında)
ssh-copy-id root@sunucu-ip
# 2. Scripti indir ve çalıştır
curl -O https://raw.githubusercontent.com/hexarch/linux-security/main/script.sh
chmod +x script.sh
sudo bash script.sh| Değişken | Varsayılan | Açıklama |
|---|---|---|
SSH_PORT | 22 | SSH portu |
PERMIT_ROOT_LOGIN | no | no = root kapalı, prohibit-password = root sadece key ile |
ALLOWED_IPS | (boş) | Virgülle ayrılmış IP listesi. Boş = tüm IPler |
ALLOW_HTTP | true | 80 portu açık |
ALLOW_HTTPS | true | 443 portu açık |
DISABLE_SSH_PASSWORD_AUTH | false | Şifre ile SSH kapat (SSH key şart!) |
ENABLE_UNATTENDED_UPGRADES | true | Otomatik güvenlik güncellemeleri |
ENABLE_FAIL2BAN | true | Brute-force koruma |
NONINTERACTIVE | 0 | 1 = onay sormadan devam |
DRY_RUN | 0 | 1 = değişiklik yapma, sadece simülasyon |
# Normal kullanım (her adımda onay ister)
sudo bash script.sh
# Sadece belirli IPlerden erişim
ALLOWED_IPS="141.98.205.37,192.168.1.100" sudo bash script.sh
# Root sadece SSH key ile giriş yapabilsin
PERMIT_ROOT_LOGIN=prohibit-password sudo bash script.sh
# Otomatik mod (onay sormaz)
NONINTERACTIVE=1 sudo bash script.sh
# Değişiklik yapmadan ne yapacağını gör
DRY_RUN=1 sudo bash script.sh
# Şifre ile SSH tamamen kapalı (sadece key)
DISABLE_SSH_PASSWORD_AUTH=true sudo bash script.shUFW Firewall
- Gelen trafik varsayılan red
- SSH (rate limit), HTTP, HTTPS açık
- İsteğe bağlı IP kısıtlaması
sysctl
- Reverse path filtering, ICMP redirect kapalı
- TCP syncookies, IP forwarding kapalı
- Kernel bilgi sızıntısı azaltma
SSH
- PermitRootLogin, X11Forwarding, Tunneling kısıtlamaları
- MaxAuthTries 4, LoginGraceTime 30
Fail2ban
- SSH brute-force koruma
- 10 dk’da 5 hata = 1 saat ban
Otomatik Güncellemeler
- Güvenlik yamaları otomatik kurulur
Yedekleme
- Eski config’ler
/root/security-backups-*altında saklanır
- Eski config’ler
Script sonunda yedek dizini gösterilir. Geri almak için:
# SSH config
cp /root/security-backups-YYYYMMDD-HHMMSS/sshd_config.bak /etc/ssh/sshd_config
systemctl restart ssh
# sysctl
cp /root/security-backups-YYYYMMDD-HHMMSS/99-hardening.conf.bak /etc/sysctl.d/99-hardening.conf
sysctl --systemOrijinal repo: hexarch/linux-security