Linux'ta Belirli IP ve Ağ Aralığına SSH ve FTP Erişimi Nasıl Engellenir
Genellikle hepimiz uzak sunuculara ve sanal özel sunuculara erişmek için sıklıkla SSH ve FTP hizmetlerini kullanırız. Bir Linux yöneticisi olarak, güvenliği biraz daha sıkılaştırmak için Linux'ta belirli IP veya ağ aralığına SSH ve FTP erişimini nasıl engelleyeceğinizi bilmelisiniz.
- Linux Sunucuları için 25 Sağlamlaştırıcı Güvenlik İpucu
- SSH Sunucusunu Güvenli Hale Getirmek ve Korumak için 5 Faydalı İpucu
Bu eğitim size CentOS 6 ve 7 sunucusundaki belirli bir IP adresine ve/veya bir ağ aralığına SSH ve FTP erişimini nasıl engelleyeceğinizi gösterecektir. Bu kılavuz CentOS 6.x ve 7.x sürümlerinde test edilmiştir ancak muhtemelen Debian, Ubuntu ve SUSE/openSUSE gibi diğer Linux dağıtımlarında da çalışacaktır.
Bunu iki yöntemle yapacağız. İlk yöntem IPTables/firewallD kullanmak, ikinci yöntem ise hosts.allowTCP sarmalayıcılarını kullanmaktır. > ve hosts.deny dosyası.
IPTable'lar ve Güvenlik Duvarı hakkında daha fazla bilgi edinmek için aşağıdaki kılavuzlara bakın.
- IPTable'lar (Linux Güvenlik Duvarı) İpuçları/Komutları Hakkında Temel Kılavuz
- Linux'ta Hizmetlere Uzaktan Erişimi Etkinleştirmek için Iptables Güvenlik Duvarı Nasıl Kurulur
- RHEL/CentOS 7 ve Fedora 21'de 'FirewallD' Nasıl Yapılandırılır
- Linux'ta Güvenlik Duvarını Yapılandırmak ve Yönetmek için Faydalı 'FirewallD' Kuralları
Artık IPTables ve FirewallD'nin ne olduğunu ve temellerini biliyorsunuz.
Yöntem 1: IPTables/FirewallD Kullanarak SSH ve FTP Erişimini Engelleyin
Şimdi belirli bir IP'ye (örneğin 192.168.1.100) ve/veya ağ aralığına (örneğin 192.168.1.0/24) SSH ve FTP erişimini nasıl engelleyeceğimizi görelim. RHEL/CentOS/Scientific Linux 6.x sürümlerinde IPtables'ı ve CentOS 7.x sürümlerinde FirewallD'yi kullanma.
SSH Erişimini Engelleyin veya Devre Dışı Bırakın
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT
Yeni kuralların yürürlüğe girmesi için aşağıdaki komutu kullanmanız gerekir.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Şimdi sunucuyu engellenen ana makineden SSH yapmayı deneyin. Lütfen burada 192.168.1.150'nin engellenen ana makine olduğunu unutmayın.
ssh 192.168.1.150
Aşağıdaki mesajı görmelisiniz.
ssh: connect to host 192.168.1.150 port 22: Connection refused
SSH Erişiminin Engelini Kaldırın veya Etkinleştirin
SSH erişiminin engellemesini kaldırmak veya etkinleştirmek için uzak sunucuya gidin ve aşağıdaki komutu çalıştırın:
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport ssh -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j ACCEPT
Sunucunuza SSH aracılığıyla erişmek için aşağıdakileri kullanarak değişiklikleri kaydedin.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
FTP Erişimini Engelleyin veya Devre Dışı Bırakın
Genellikle FTP için varsayılan bağlantı noktaları 20 ve 21'dir. Bu nedenle, IPTable'ları kullanarak tüm FTP trafiğini engellemek için aşağıdaki komutu çalıştırın:
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j REJECT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
Yeni kuralların yürürlüğe girmesi için aşağıdaki komutu kullanmanız gerekir.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Şimdi, engellenen ana bilgisayardan (192.168.1.100) sunucuya şu komutla erişmeyi deneyin:
ftp 192.168.1.150
Aşağıdakine benzer bir hata mesajı alacaksınız.
ftp: connect: Connection refused
FTP Erişiminin Engelini Kaldırın veya Etkinleştirin
FTP erişiminin engelini kaldırmak ve tekrar etkinleştirmek için şunu çalıştırın:
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
Değişiklikleri şu komutla kaydedin:
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Şimdi sunucuya FTP yoluyla erişmeyi deneyin:
ftp 192.168.1.150
Ftp kullanıcı adınızı ve şifrenizi girin.
Connected to 192.168.1.150.
220 Welcome to TecMint FTP service.
Name (192.168.1.150:sk): tecmint
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Yöntem 2: TCP Sarmalayıcıları Kullanarak SSH ve FTP Erişimini Engelleyin
IPTables veya FirewallD ile uğraşmak istemiyorsanız, TCP sarmalayıcıları belirli bir sunucuya SSH ve FTP erişimini engellemenin daha iyi bir yoludur. IP ve/veya bir ağ aralığı.
OpenSSH ve FTP, TCP sarmalayıcı desteğiyle derlenir; bu, aşağıdaki iki önemli dosyada güvenlik duvarınıza dokunmadan hangi ana bilgisayarların bağlanmasına izin verileceğini belirtebileceğiniz anlamına gelir ve bunlar:
- /etc/hosts.allow
- /etc/hosts.deny
Adından da anlaşılacağı gibi, ilk dosya izin verilen ana bilgisayarların girişlerini, ikincisi ise engellenen ana bilgisayarların adreslerini içerir.
Örneğin, 192.168.1.100 IP adresine ve 192.168.1.0 ağ aralığına sahip ana bilgisayarın SSH ve FTP erişimini engelleyelim. Bu yöntem CentOS 6.x ve 7.x serileri için aynıdır. Ve elbette Debian, Ubuntu, SUSE, openSUSE vb. gibi diğer dağıtımlarda da çalışacaktır.
/etc/hosts.deny
dosyasını açın ve engellemek istediğiniz IP Adreslerini veya ağ aralığını aşağıda gösterildiği gibi ekleyin.
##### To block SSH Access #####
sshd: 192.168.1.100
sshd: 192.168.1.0/255.255.255.0
##### To block FTP Access #####
vsftpd: 192.168.1.100
vsftpd: 192.168.1.0/255.255.255.0
Dosyayı kaydedip çıkın.
Şimdi yeni değişikliklerin yürürlüğe girmesi için sshd ve vsftpd hizmetini yeniden başlatın.
--------------- For SSH Service ---------------
service sshd restart [On SysVinit]
systemctl restart sshd [On SystemD]
--------------- For FTP Service ---------------
service vsftpd restart [On SysVinit]
systemctl restart vsftpd [On SystemD]
Şimdi sunucuyu veya engellenen bir ana bilgisayardan SSH yapmayı deneyin.
ssh 192.168.1.150
Aşağıdaki çıktıyı göreceksiniz:
ssh_exchange_identification: read: Connection reset by peer
Şimdi sunucuya veya engellenen bir ana bilgisayardan FTP göndermeyi deneyin.
ftp 192.168.1.150
Aşağıdaki çıktıyı göreceksiniz:
Connected to 192.168.1.150.
421 Service not available.
SSH ve FTP hizmetlerinin engellemesini kaldırmak veya yeniden etkinleştirmek için hosts.deny dosyasını düzenleyin, tüm satırlara yorum yapın ve son olarak vsftpd ve sshd hizmetlerini yeniden başlatın.
Çözüm
Şimdilik bu kadar. Özetlemek gerekirse, bugün IPTables, FirewallD ve TCP sarmalayıcıları kullanarak belirli bir IP adresini ve ağ aralığını nasıl engelleyeceğimizi öğrendik. Bu yöntemler oldukça kolay ve basittir.
Acemi bir Linux yöneticisi bile bunu birkaç dakika içinde yapabilir. SSH ve FTP erişimini engellemenin başka yollarını biliyorsanız, bunları yorum bölümünde paylaşmaktan çekinmeyin. Yazılarımızı tüm sosyal ağlarınızda paylaşmayı unutmayın.