Tento článek popisuje, jak zabezpečit přístup SSH k vašemu serveru provedením následujících akcí:
- Zabránit pokusům o přihlášení pro konkrétní IP adresy v povolené konfiguraci
- Povolit přístup pro konkrétní IP adresy v restriktivní konfiguraci
Povolená konfigurace
Povolená konfigurace umožňuje přístup všem kromě odepřené IP adresy. Přístup ke specifickým IP adresám můžete odepřít následujícími způsoby:
Obálky TCP
Tuto konfiguraci proveďte v souboru /etc/hosts.deny přidáním následujícího pravidla:
# vi /etc/host.deny
Nastavte pravidlo odmítnutí jedním z následujících způsobů:
sshd: Bad_IP_address
sshd: 192.168.0.8
sshd: Bad_Segment/CIDR
sshd: 192.168.0.0/24
sshd: Bad_IP_address, Bad_IP_address
sshd: 192.168.0.3, 192.168.0.4
iptables
Tato konfigurace se nachází v konfiguraci pravidel brány firewall OS.
# iptables -A INPUT -s "BAD_IP" -p tcp --dport SSH_Port -j DROP
Blokovat IP adresu :
# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j DROP
Blokovat segment :
# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j DROP
Omezující konfigurace
Tato konfigurace umožňuje přístup pouze ke konkrétním IP adresám a snižuje další příchozí provoz.
Obálky TCP
Nejprve zakažte veškerý provoz přicházející do SSH v /etc/hosts.deny soubor:
# vi /etc/hosts.deny
sshd: ALL
Poté povolte přístup důvěryhodným adresám IP:
# vi /etc/hosts.allow
sshd: Trusted_IP_address
sshd: 192.168.0.8
sshd: Trusted_Segment/CIDR
sshd: 192.168.0.0/24
sshd: Trusted_IP_address, Trusted_IP_address
sshd: 192.168.0.3, 192.168.0.4
iptables
U tabulek IP je velmi důležité pořadí, ve kterém pravidla umístíte. Proto musíte nejprve nakonfigurovat povolovací pravidla a poté pravidlo odepření.
# iptables -A INPUT --source Trusted_IP -p tcp --dport SSH_PORT -j ACCEPT
Přijetí provozu z IP:
# iptables -A INPUT --source 192.168.0.8 -p tcp --dport 22 -j ACCEPT
Přijetí návštěvnosti ze segmentu:
# iptables -A INPUT --source 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
Nastavení pravidla blokování:
iptables -A INPUT -p tcp --dport 22 -j DROP
Jak zlepšit změny
Své změny můžete zkontrolovat provedením následujících příkazů v závislosti na omezující nebo povolující konfiguraci:
# cat /etc/hosts.deny
# cat /etc/hosts.allow
# iptables -L
Poznámka: Některé distribuce zahrnují výchozí firewallový software, jako je UFW pro Debian® a operační systém Ubuntu® a odvozený, Firewalld pro Red Hat® Enterprise Linux® 7 a odvozený.
Nakonfigurujte ufw, aby odmítal konkrétní IP, číslo portu a protokol
Pro blokování IP adresy na TCP portu 22:
# ufw deny proto tcp from 192.168.0.8 to any port 22
Pro blokování podsítě:
# ufw deny proto tcp from 192.168.0.0/24 to any port 22
Pro výpis nakonfigurovaných pravidel:
# ufw status numbered
Nakonfigurujte firewall tak, aby odmítal konkrétní IP adresu, číslo portu a protokol
Na firewallu můžete zakázat IP adresu nebo segment, ale neumožní to žádný druh připojení:
Blokovat IP adresu:
# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.8' reject"
Blokování segmentu:
# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.0/24' reject"
Proto se můžete rozhodnout přidat důvěryhodné IP adresy na seznam povolených pro připojení k portu SSH:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.20" port protocol="tcp" port="22" accept'
Musíte znovu načíst konfiguraci brány firewall:
# firewall-cmd --reload
Seznam pravidel nakonfigurovaných na bráně firewall:
# firewall-cmd --list-all