Merhabalar,
Bu makalemde, Linux uzak bağlantıların güvenliğini arttırmak için, default SSH portunun nasıl değiştirileceği hakkında bilgiler aktarmak istiyorum.
Uzak bağlantı portları, kolay tahmin edilebilir portlardır. Dolayısıyla, aslında sistemler üzerinde değiştirilmesi önerilen, güvenlik konfigürasyonu değişikliklerinden olduğunu söyleyebiliriz. Saldırgan, direkt olarak o portu hedef alarak çalışacaktır, fakat çok bilinen bu portların değiştirilmesi, onların işlerini biraz daha zorlaştıracaktır.
Şunu unutmayınız ki, %100 güvenli bir ortam yoktur. Saldırganların işlerini, yüksek oranda zorlaştırıcı ortamlar vardır sadece…
Genelde windows tarafında, RDP portları nasıl değiştiriliyorsa, linux tarafında da SSH portunun değiştirilmesi mümkündür. Çok basit birkaç konfigürasyon değişikliğiyle bunu gerçekleştirebiliyoruz. Dilerseniz hemen başlayalım…
Öncelikle /etc/ssh/sshd_config dosyasında bazı düzenlemeler yapacağız.
nano /etc/ssh/sshd_config
Aşağıdaki satırın başında bulunan # işaretini kaldırıyoruz ve port yerine istediğiniz bir portu yazabilirsiniz. Tabi ki kullanılmayan bir port olduğundan emin olmalıyız.
Ben bu örnekte SSH portu olarak, 45022 portunu kullanmak üzere konfigürasyon değişikliği yapmış bulunuyorum. Dosyayı kaydedip çıkış yapıyoruz. Şu an kullandığınız SSH bağlantınızı koparmayınız. Yanlış giden bir durum olursa ve bağlantınız koparsa, uzak bağlantınızı kaybedersiniz. Her ihtimale karşı bir oturum açık kalsın…
sshd servisini restart ediyoruz.
systemctl restart sshd
Fakat SELinux aktif ise, değişiklikten sonra yine de bağlanamayacaksınız. SELinux aktif ise sshd_config dosyasında bir satır dikkatinizi çekmeliydi.
Bu satır diyor ki, eğer port değiştirirsen, SELinux’un da bundan haberdar olabilmesi için ilgili kural tanımını yap.
Şimdi bunu yapacağız.
SELinux aktif ise yapılacak ayarlar
Aşağıdaki komut ile, komut satırından SELinux yönetimi yapabiliriz.
semanage port -a -t ssh_port_t -p tcp 45022
Fakat semanage komutu default kurulumda sisteminizde bulunmayabilir. Bunun için aşağıdaki paketi kuracağız.
dnf install policycoreutils-python-utils -y
Şimdi Selinux için ilgili komutumuzu da yazabiliriz.
semanage port -a -t ssh_port_t -p tcp 45022
Firewall aktif ise yapılacak ayarlar
Ayrıca Firewall aktif ise, firewall tarafında da gerekli kuralları yazmamız gerekiyor. Öncelikle Firewall’un aktif olup olmadığını kontrol edelim.
firewall-cmd –state
Firewall’da hangi zone’lar olduğunu görmek için aşağıdaki komutla kontrol yapıyoruz.
firewall-cmd –get-active-zones
firewall-cmd –list-all
Bakınız mevcut kurallar içinde 45022 portu için herhangi bir tanım bulunmuyor.
Şimdi ise, 45022 portu için firewall tanımını yapıyoruz ve firewall’un, yeni kurallarla tekrar yüklenmesini sağlıyoruz.
firewall-cmd –zone=public –add-port=45022/tcp –permanent
firewall-cmd –reload
Artık kurallarda 45022 portumuzu görebiliyoruz.
Bütün yapmamız gerekenler bunlardan ibaret. Artık yeni portumuzu tanımlayarak SSH bağlantımızı kurabiliriz.
Gördüğünüz gibi login olduk ve ayarlarımız çalışıyor.
Yararlı olması dileğiyle.
Yusuf İşleyen