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.

  1. Linux Sunucuları için 25 Sağlamlaştırıcı Güvenlik İpucu
  2. 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.

  1. IPTable'lar (Linux Güvenlik Duvarı) İpuçları/Komutları Hakkında Temel Kılavuz
  2. Linux'ta Hizmetlere Uzaktan Erişimi Etkinleştirmek için Iptables Güvenlik Duvarı Nasıl Kurulur
  3. RHEL/CentOS 7 ve Fedora 21'de 'FirewallD' Nasıl Yapılandırılır
  4. 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:

  1. /etc/hosts.allow
  2. /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.