Vyhledávání na webu

Jak blokovat SSH a FTP přístup ke konkrétní IP a síťovému rozsahu v Linuxu


Obvykle všichni používáme služby SSH a FTP pro přístup ke vzdáleným serverům a virtuálním privátním serverům. Jako správce Linuxu si musíte být vědomi toho, jak v Linuxu blokovat přístup SSH a FTP ke konkrétním IP nebo síťovým rozsahům, aby bylo možné zabezpečení ještě zpřísnit.

  1. 25 tipů pro posílení zabezpečení pro servery Linux
  2. 5 užitečných tipů pro zabezpečení a ochranu serveru SSH

Tento tutoriál vám ukáže, jak blokovat přístup SSH a FTP ke konkrétní IP adrese a/nebo síťovému rozsahu na serveru CentOS 6 a 7. Tato příručka byla testována na verzích CentOS 6.x a 7.x, ale pravděpodobně bude fungovat i na jiných distribucích Linuxu, jako jsou Debian, Ubuntu a SUSE/openSUSE atd.

Uděláme to dvěma způsoby. První metoda využívá IPTables/firewallD a druhá metoda využívá obaly TCP s pomocí hosts.allow a hosts.deny.

Další informace o IPTables a Firewallu naleznete v následujících příručkách.

  1. Základní příručka pro IPTables (Linux Firewall) Tipy/Příkazy
  2. Jak nastavit Iptables Firewall pro povolení vzdáleného přístupu ke službám v Linuxu
  3. Jak nakonfigurovat „FirewallD“ v RHEL/CentOS 7 a Fedora 21
  4. Užitečná pravidla „FirewallD“ pro konfiguraci a správu brány firewall v systému Linux

Nyní víte, co jsou IPTables a FirewallD a jsou to základy.

Metoda 1: Blokujte přístup SSH a FTP pomocí IPTables/FirewallD

Nyní se podívejme, jak zablokovat přístup SSH a FTP ke konkrétní IP adrese (například 192.168.1.100) a/nebo rozsahu sítě (například 192.168.1.0/24) pomocí IPtables na verzích RHEL/CentOS/Scientific Linux 6.x a FirewallD na CentOS 7.x.

Zablokujte nebo zakažte přístup SSH

--------------------- 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

Chcete-li nová pravidla uplatnit, musíte použít následující příkaz.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Nyní zkuste SSH server z blokovaného hostitele. Mějte prosím na paměti, že zde je blokovaný hostitel 192.168.1.150.

ssh 192.168.1.150

Měli byste vidět následující zprávu.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Odblokujte nebo povolte přístup SSH

Chcete-li odblokovat nebo povolit přístup SSH, přejděte na vzdálený server a spusťte následující příkaz:

--------------------- 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

Uložte změny pomocí následujícího pro přístup k vašemu serveru přes SSH.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Blokovat nebo deaktivovat FTP přístup

Výchozí porty pro FTP jsou obvykle 20 a 21. Chcete-li tedy zablokovat veškerý provoz FTP pomocí IPTables, spusťte následující příkaz:

--------------------- 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

Chcete-li nová pravidla uplatnit, musíte použít následující příkaz.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Nyní se pokuste o přístup k serveru z blokovaného hostitele (192.168.1.100) pomocí příkazu:

ftp 192.168.1.150

Zobrazí se chybová zpráva podobná níže.

ftp: connect: Connection refused

Odblokujte nebo povolte přístup FTP

Chcete-li odblokovat a znovu povolit přístup FTP, spusťte:

--------------------- 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

Uložte změny příkazem:

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Nyní se pokuste připojit k serveru přes FTP:

ftp 192.168.1.150

Zadejte své ftp uživatelské jméno a heslo.

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> 

Metoda 2: Blokujte přístup SSH a FTP pomocí TCP Wrapperů

Pokud si nechcete zahrávat s IPTables nebo FirewallD, pak TCP wrappery představují lepší způsob, jak blokovat SSH a FTP přístup ke konkrétnímu IP a/nebo rozsah sítí.

OpenSSH a FTP jsou kompilovány s podporou TCP wrapperů, což znamená, že v následujících dvou důležitých souborech můžete určit, kteří hostitelé se mohou připojit, aniž byste se dotkli vašeho firewallu:

  1. /etc/hosts.allow
  2. /etc/hosts.deny

Jak název napovídá, první soubor obsahuje položky povolených hostitelů a druhý obsahuje adresy blokovaných hostitelů.

Zablokujme například SSH a FTP přístup k hostiteli, který má IP adresu 192.168.1.100 a síťový rozsah 192.168.1.0. Tato metoda je stejná pro řadu CentOS 6.xa 7.x. A samozřejmě bude fungovat i na jiných distribucích, jako je Debian, Ubuntu, SUSE, openSUSE atd.

Otevřete soubor /etc/hosts.deny a přidejte následující adresy IP nebo rozsah sítě, které chcete blokovat, jak je znázorněno níže.

##### 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

Uložte a ukončete soubor.

Nyní restartujte službu sshd a vsftpd, aby se nové změny projevily.

--------------- 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]

Nyní zkuste SSH serveru nebo z blokovaného hostitele.

ssh 192.168.1.150

Uvidíte následující výstup:

ssh_exchange_identification: read: Connection reset by peer

Nyní zkuste FTP server nebo z blokovaného hostitele.


ftp 192.168.1.150

Uvidíte následující výstup:

Connected to 192.168.1.150.
421 Service not available.

Chcete-li znovu odblokovat nebo povolit služby SSH a FTP, upravte soubor hosts.deny a zakomentujte všechny řádky a nakonec restartujte služby vsftpd a sshd.

Závěr

To je prozatím vše. Abychom to shrnuli, dnes jsme se naučili, jak blokovat konkrétní IP adresu a rozsah sítě pomocí IPTables, FirewallD a TCP wrapperů. Tyto metody jsou docela snadné a přímočaré.

Dokonce i začínající správce Linuxu to zvládne za pár minut. Pokud znáte nějaké další způsoby blokování přístupu SSH a FTP, neváhejte je sdílet v sekci komentářů. A nezapomeňte sdílet naše články na všech vašich sociálních sítích.