Blog’a Dön

Linux Sunucu Güvenliği: Adım Adım Kontrol Listesi

Linux sunucu güvenliği kontrol listesi: otomatik güncellemeler, SSH anahtarı, güvenlik duvarı, Fail2ban, gereksiz servisler, izolasyon, yedek ve denetim.

Nodesty Ekibi4 dk okumaGüvenlik
Koyu Nodesty arka planında Linux Security yazısı ile Updates, SSH ve Firewall ifadeleri

Linux sunucu güvenliği, tek bir ayardan değil, birbirini tamamlayan basit önlemlerden oluşur. İnternete açık her sunucu, kurulduktan dakikalar sonra otomatik taramalarla ve şifre deneme saldırılarıyla karşılaşır. İyi haber şu: Bu saldırıların neredeyse tamamı, bu kontrol listesindeki birkaç temel adımla etkisiz hâle gelir.

Bu rehberde yeni bir Linux sunucuyu adım adım güvenli hâle getirmeyi, her adımın neden önemli olduğunu ve ayrıntılı anlatımlar için ilgili rehberlerimizi bir arada bulabilirsiniz.

Kontrol listesi

AdımNeden?
Sistemi güncelleyinBilinen açıkları kapatır
Otomatik güvenlik güncellemelerini açınSiz meşgulken de açıklar kapanır
Normal bir kullanıcı oluşturunSürekli root ile çalışmayı önler
SSH anahtarıyla girişe geçinŞifre deneme saldırılarını etkisiz kılar
Güvenlik duvarını açınYalnızca gerekli portları dışarıya açar
Fail2ban kurunIsrarcı saldırganları otomatik engeller
Gereksiz servisleri kapatınSaldırı yüzeyini küçültür
Uygulamaları ayrı kullanıcılarla çalıştırınBir açığın bütün sunucuyu etkilemesini önler
Gizli bilgileri koruyunŞifre ve anahtarların sızmasını önler
Yedek alın ve geri yüklemeyi test edinHer şey ters gittiğinde geri dönmenizi sağlar
Günlükleri ve kaynakları izleyinSorunları erken fark etmenizi sağlar

1. Sistemi güncel tutun

Sunucuya ilk bağlandığınızda bütün paketleri güncelleyin:

sudo apt update && sudo apt upgrade

Ardından güvenlik güncellemelerinin kendiliğinden kurulmasını sağlayın:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

unattended-upgrades varsayılan olarak yalnızca güvenlik güncellemelerini kurar. Çekirdek güncellemeleri sunucu yeniden başlatılana kadar etkinleşmez; /var/run/reboot-required dosyası varsa uygun bir zamanda yeniden başlatın. AlmaLinux ve Rocky Linux'ta aynı işi dnf-automatic paketi yapar.

2. Normal bir kullanıcı ve SSH anahtarı

Sürekli root ile çalışmak yerine sudo yetkili bir kullanıcı oluşturun, SSH anahtarıyla girişi ayarlayın ve ardından şifreli girişi ve root girişini kapatın:

PasswordAuthentication no
PermitRootLogin no

Bu ayarları /etc/ssh/sshd_config dosyasında yapmadan önce yeni kullanıcıyla anahtarla bağlanabildiğinizi ayrı bir terminalde mutlaka test edin. Bütün adımları SSH nedir? yazımızda ayrıntılı anlattık.

3. Güvenlik duvarı

Varsayılan olarak gelen her şeyi kapatıp yalnızca gerçekten kullandığınız portları açın:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw enable

OpenSSH kuralını enable komutundan önce eklemeyi unutmayın; aksi hâlde kendinizi dışarıda bırakırsınız. Veritabanı ve yönetim panelleri gibi servisleri internete hiç açmayın; uzaktan erişim için SSH tüneli ya da WireGuard kullanın. Docker kullanıyorsanız yayınlanan portların ufw kurallarını atladığını unutmayın; ayrıntılar Port nedir? ve Docker kurulumu yazılarımızda.

4. Fail2ban

Fail2ban, art arda başarısız giriş deneyen IP adreslerini otomatik olarak bir süre engeller. SSH anahtarıyla giriş zaten asıl korumayı sağlar, ama Fail2ban günlüklerdeki gürültüyü azaltır ve Nginx gibi diğer servisleri de korur. Kurulumu Fail2ban kurulumu rehberimizde anlattık.

5. Gereksiz servisleri kapatın

Sunucuda dışarıyı dinleyen her servis bir kapıdır. Neyin dinlediğini görün:

sudo ss -tulpn

Tanımadığınız ya da kullanmadığınız bir servis görüyorsanız durdurup açılışta başlamasını engelleyin:

sudo systemctl disable --now servis-adi

Kullanmadığınız paketleri kaldırmak da saldırı yüzeyini küçültür.

6. Uygulamaları ayrı kullanıcılarla çalıştırın

Web uygulamalarını, botları ve oyun sunucularını root yerine her biri için ayrı bir kullanıcıyla çalıştırın. Bir uygulamada çıkan bir güvenlik açığı böylece yalnızca o kullanıcının dosyalarına ulaşabilir. Dosya izinlerinde de ölçülü olun: chmod 777 gibi herkese yazma izni veren ayarlar sorunları çözüyormuş gibi görünür, ama ciddi bir güvenlik açığıdır. İzinleri Temel Linux komutları rehberimizde anlattık.

7. Gizli bilgileri koruyun

  • Şifreleri, API anahtarlarını ve veritabanı bilgilerini koda değil .env gibi dosyalara yazın ve bu dosyaları Git deposuna eklemeyin.
  • Gizli dosyaların yalnızca ilgili kullanıcı tarafından okunabildiğinden emin olun (chmod 600).
  • Her servis ve kişi için ayrı şifre ve anahtar kullanın; bir şey sızdığında yalnızca onu değiştirmeniz yeterli olur.

Gizli bilgileri yayın sürecinde nasıl yöneteceğinizi Git ile deploy rehberimizde anlattık.

8. Yedekler

Güvenlik önlemleri bir gün yetmeyebilir; o gün sizi kurtaracak olan yedektir. 3-2-1 kuralına göre yedek alın, en az bir kopyayı sunucudan bağımsız bir yerde ve şifreli tutun ve geri yüklemeyi düzenli olarak test edin. Ayrıntılar Sunucu yedekleme rehberimizde.

9. İzleme ve denetim

  • Giriş kayıtları: last son girişleri, sudo journalctl -u ssh SSH günlüklerini gösterir. Tanımadığınız bir IP adresinden başarılı bir giriş görüyorsanız hemen harekete geçin.
  • Kaynak kullanımı: Tanımadığınız ve sürekli işlemci kullanan bir süreç, ele geçirilmiş bir sunucunun işareti olabilir. Bunu nasıl kontrol edeceğinizi Sunucu neden yavaş? yazımızda anlattık.
  • Güvenlik denetimi: Açık kaynaklı Lynis aracı, sunucunuzu yüzlerce kontrol noktasına göre tarar ve öneriler sunar:
    sudo apt install lynis
    sudo lynis audit system
    
  • Erişilebilirlik: Bir izleme servisiyle sunucunuzun ayakta olduğunu takip edin; Uptime nedir? yazımıza göz atın.

10. Hesabınızı da koruyun

Sunucunuz kadar onu yönettiğiniz hesap da önemlidir. Sağlayıcınızın müşteri panelinde iki faktörlü kimlik doğrulamayı açın ve her hizmet için benzersiz bir şifre kullanın. Panele erişimi olan biri sunucunuzu yeniden kurabilir, yedeklerinize ulaşabilir ya da şifreleri sıfırlayabilir.

Nodesty'de güvenlik

Nodesty AMD Ryzen 9 9950X VDS ve AMD EPYC 7763 VDS paketlerinde tam root erişimiyle bu kontrol listesindeki her adımı uygulayabilirsiniz. L3–L7 nShield DDoS koruması ağ düzeyindeki saldırıları sunucunuza ulaşmadan süzer, 7 gün saklanan ücretsiz günlük yedekler son güvenlik ağınızı oluşturur ve SSH erişiminiz kesildiğinde web konsolu üzerinden sunucunuza her zaman ulaşabilirsiniz. Müşteri panelinizde iki faktörlü kimlik doğrulamayı açarak hesabınızı da koruma altına alabilirsiniz.

Sıkça Sorulan Sorular

Yeni bir sunucuda ilk yapılması gereken nedir?

Sistemi güncellemek, sudo yetkili normal bir kullanıcı oluşturmak, SSH anahtarıyla girişi açıp şifreli girişi kapatmak ve güvenlik duvarını yalnızca gerekli portlara izin verecek şekilde etkinleştirmek. Bu dört adım, internete açık bir sunucuya yönelik otomatik saldırıların büyük çoğunluğunu daha ilk günden etkisiz kılar.

Sunucuma antivirüs kurmalı mıyım?

Linux sunucularda klasik antivirüs programlarından çok daha önemlisi güncel yazılım, güçlü kimlik doğrulama ve kapalı portlardır. Kullanıcıların dosya yüklediği sunucularda ClamAV gibi bir tarayıcı ek bir katman olarak kullanılabilir. Paylaşımlı web hostingde ise bu tür korumaları sağlayıcı üstlenir.

Sunucumun ele geçirildiğini nasıl anlarım?

Tanımadığınız ve sürekli yüksek işlemci kullanan süreçler, bilmediğiniz kullanıcılar ya da SSH anahtarları, beklenmedik giden trafik ve sağlayıcınızdan gelen kötüye kullanım bildirimleri en sık işaretlerdir. Böyle bir durumda sunucuyu temizlemeye çalışmak yerine temiz bir yedekten yeniden kurmak en güvenli yoldur.

Otomatik güncellemeler sunucuyu bozar mı?

unattended-upgrades varsayılan olarak yalnızca güvenlik güncellemelerini kurar ve bu güncellemeler mevcut sürümlerle uyumlu olacak şekilde hazırlanır. Sorun çıkarma olasılığı düşüktür ve bilinen bir açığın kapanmadan kalması çok daha büyük bir risktir. Büyük sürüm yükseltmelerini ise her zaman elle ve yedek aldıktan sonra yapın.

Root ile giriş yapmak neden tehlikeli?

root, sunucuda her şeyi yapabilen hesaptır ve kullanıcı adı herkesçe bilindiği için otomatik saldırıların ilk hedefidir. Normal bir kullanıcıyla giriş yapıp yalnızca gerektiğinde sudo kullanmak, hem saldırı yüzeyini küçültür hem de yanlışlıkla yapılan hataların etkisini azaltır.

Nodesty hesabımı nasıl korurum?

Sunucunuz kadar onu yönettiğiniz hesap da önemlidir. Nodesty müşteri panelinde iki faktörlü kimlik doğrulamayı açın, güçlü ve benzersiz bir şifre kullanın ve hesabınızdaki oturumları ve erişim değişikliklerini düzenli olarak kontrol edin.

Nodesty

Yazar hakkında

Nodesty Ekibi · Altyapı ve Destek

Nodesty ekibi sunucularımızı, ağımızı ve DDoS korumamızı her gün işletir ve müşteri destek taleplerini 7/24 yanıtlar. Bu rehberler o deneyimden yazılır.

İlgili yazılar

Sunucunuzu şimdi başlatın.

Nodesty'nin üstün altyapısı ile projelerinizi özgürce inşa edin ve sınır tanımadan ölçeklendirin.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································