Linux sunucunuzun güvenliğini sağlamanın 7 adımı

Bu yazıda , Linux sunucu üzerinde kısa bir güvenlik kontrolünün nasıl yapılacağını göreceğiz. Debian/Ubuntu özelinde örnekler verilmesine rağmen yazılanlar diğer Linux dağıtımlarında da kolaylıkla uygulanabilir.

1. Sunucunuzu güncelleyin

Sunucunuzun güvenliğini sağlamak için yapmanız gereken ilk şey, en son yamaları uygulayarak yerel depoları güncellemek ve işletim sistemini ve kurulu uygulamaları güncellemektir.

Ubuntu ve Debian’da:

$ sudo apt update && sudo apt upgrade -y

Fedora, CentOS veya RHEL’de:

$ sudo dnf upgrade

2. Yeni bir ayrıcalıklı kullanıcı hesabı oluşturun

Ardından, yeni bir kullanıcı hesabı oluşturun. Sunucunuzda asla root olarak oturum açmamalısınız . Bunun yerine, kendi hesabınızı (” <user> “) oluşturun, ona sudo hakları verin ve sunucunuzda oturum açmak için kullanın.

Yeni bir kullanıcı oluşturarak başlayın:

$ adduser <username>

Sudo grubunu ( -G ) kullanıcının grup üyeliğine ( -a ) ekleyerek yeni kullanıcı hesabınıza sudo hakları verin :

$ usermod -a -G sudo <username>

3. SSH anahtarınızı yükleyin

Yeni sunucunuzda oturum açmak için bir SSH anahtarı kullanabilirsiniz. Eğer önceden oluşturulmuş bir SSH anahtarınız varsa aşağıdaki komut ile sunucuya yükleyebilirsiniz.

$ ssh-copy-id <username>@ip_address

Artık parola girmenize gerek kalmadan yeni sunucunuzda oturum açabilirsiniz.

4. SSH’yi güvenli hale getirin

Ardından, şu üç değişikliği yapın:

  • SSH şifre kimlik doğrulamasını devre dışı bırakın
  • IPv4 veya IPv6’ya erişimi kısıtlayın

tercih ettiğiniz metin editörü ile / etc / ssh / sshd_config dosyasını açarak aşağıdaki satırları,

PasswordAuthentication yes
PermitRootLogin yes

altta bulunan satırlar ile değiştirin:

PasswordAuthentication no
PermitRootLogin no

Ardından, AddressFamily seçeneğini değiştirerek SSH hizmetini IPv4 veya IPv6 ile sınırlayın . Bunu yalnızca IPv4 kullanacak şekilde değiştirmek için (çoğu insan için uygun olması gerekir) şu değişikliği yapın:

AddressFamily inet

Değişikliklerinizi etkinleştirmek için SSH hizmetini yeniden başlatın. SSH sunucusunu yeniden başlatmadan önce sunucunuza iki etkin bağlantı kurmanın iyi bir fikir olduğunu unutmayın. Bu ekstra bağlantıya sahip olmak, yeniden başlatmanın yanlış gitmesi durumunda herhangi bir şeyi düzeltmenize izin verir.

Ubuntu’da:

$ sudo service sshd restart

Fedora veya CentOS veya Systemd kullanan herhangi bir şeyde:

$ sudo systemctl restart sshd

5. Bir güvenlik duvarını etkinleştirin

Şimdi bir güvenlik duvarı kurmanız, etkinleştirmeniz ve yalnızca sizin belirlediğiniz ağ trafiğine izin verecek şekilde yapılandırmanız gerekir. Komplike Olmayan Güvenlik Duvarı (UFW), bir güvenlik duvarını yapılandırma sürecini büyük ölçüde basitleştiren, iptables için kullanımı kolay bir arayüzdür .

UFW’yi şu şekilde yükleyebilirsiniz:

$ sudo apt install ufw

Varsayılan olarak, UFW tüm gelen bağlantıları reddeder ve tüm giden bağlantılara izin verir. Bu, sunucunuzdaki herhangi bir uygulamanın internete erişebileceği, ancak sunucunuza ulaşmaya çalışan hiçbir şeyin bağlanamayacağı anlamına gelir.

Öncelikle, SSH, HTTP ve HTTPS’ye erişimi etkinleştirerek oturum açabildiğinizden emin olun:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

Ardından UFW’yi etkinleştirin:

$ sudo ufw enable

Hangi hizmetlere izin verildiğini ve reddedildiğini şu şekilde görebilirsiniz:

$ sudo ufw status

UFW’yi herhangi bir zamanda devre dışı bırakmak isterseniz, bunu yazarak yapabilirsiniz:

$ sudo ufw disable

Ayrıca zaten kurulu ve bazı dağıtımlara entegre edilmiş olan firewall-cmd’yi de kullanabilirsiniz .

6. Fail2ban’ı yükleyin

Fail2ban , tekrarlanan veya otomatikleştirilmiş saldırıları arayan sunucu günlüklerini inceleyen bir uygulamadır. Herhangi biri bulunursa, saldırganın IP adresini kalıcı olarak veya belirli bir süre için engellemek için güvenlik duvarını değiştirecektir.

Fail2ban’ı yazarak kurabilirsiniz:

$ sudo apt install fail2ban -y

Ardından, dahil edilen yapılandırma dosyasını kopyalayın:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ve Fail2ban’ı yeniden başlatın:

$ sudo service fail2ban restart

Hepsi bu kadar. Yazılım, saldırıları arayan günlük dosyalarını sürekli olarak inceleyecektir. Bir süre sonra, uygulama yasaklanmış IP adreslerinin bir listesini oluşturacaktır. Bu listeyi, SSH servisinin mevcut durumunu şu şekilde talep ederek görüntüleyebilirsiniz:

$ sudo fail2ban-client status ssh

7. Kullanılmayan ağa yönelik hizmetleri kaldırın

Neredeyse tüm Linux sunucu işletim sistemleri, ağa yönelik birkaç hizmet etkinleştirilmiş olarak gelir. Ancak, kaldırmak isteyebileceğiniz birkaç hizmet olabilir. Ss komutunu kullanarak çalışan tüm ağ hizmetlerini görebilirsiniz :

$ sudo ss -atpu

Ss’nin verdiği çıktı, işletim sisteminize bağlı olarak farklılık gösterecektir. Bu, görebileceklerinizin bir örneğidir. SSH (sshd) ve Ngnix (nginx) hizmetlerinin dinlediğini ve bağlantıya hazır olduğunu gösterir:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

Kullanılmayan bir hizmeti nasıl kaldıracağınız, işletim sisteminize ve kullandığı paket yöneticisine bağlı olarak değişir.

Debian / Ubuntu’da kullanılmayan bir hizmeti kaldırmak için:

$ sudo apt purge <service_name>

Red Hat / CentOS’ta kullanılmayan bir hizmeti kaldırmak için:

$ sudo yum remove <service_name>

Çalışan hizmetleri doğrulamak için ss -atpu komutunu kullanabilirsiniz.

Yazının orijinalini buradan okuyabilirsiniz.