Můžete omezit, kteří hostitelé se mohou připojit, konfigurací TCP wrapperů nebo filtrováním síťového provozu (firewalling) pomocí iptables. Pokud chcete používat různé metody ověřování v závislosti na IP adrese klienta, nakonfigurujte místo toho démona SSH (možnost 3).
Možnost 1:Filtrování pomocí IPTABLES
Pravidla iptables se vyhodnocují v pořadí, až do první shody.
Například povolit provoz ze sítě 192.168.0.0/24 a jinak snížit provoz (na port 22). DROP
pravidlo není vyžadováno, pokud je vaše výchozí zásada iptables nakonfigurována na DROP
.
iptables -A INPUT -p tcp --dport 22 --source 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Před pravidlo přetažení můžete přidat další pravidla, aby odpovídala více sítím/hostitelům. Pokud máte mnoho sítí nebo hostitelských adres, měli byste použít ipset modul. Existuje také iprange modul, který umožňuje použití libovolného rozsahu IP adres.
Iptables nejsou trvalé po restartování. Musíte nakonfigurovat nějaký mechanismus pro obnovení iptables při zavádění.
iptables
platí pouze pro provoz IPv4. Systémy, které mají ssh naslouchající na IPv6 adresu, lze potřebnou konfiguraci provést pomocí ip6tables
.
Možnost 2:Použití obalů TCP
Poznámka:Tato možnost nemusí být u moderních distribucí dostupná, protože podpora pro tcpwrappers byla z OpenSSH 6.7 odstraněna
Můžete také nakonfigurovat, kteří hostitelé se mohou připojit pomocí TCP wrapperů. S TCP wrappery můžete kromě IP adres použít v pravidlech také názvy hostitelů.
Ve výchozím nastavení zakázat všechny hostitele.
/etc/hosts.deny
:
sshd : ALL
Poté vypište povolené hostitele v hosts.allow. Chcete-li například povolit síť 192.168.0.0/24 a localhost .
/etc/hosts.allow
:
sshd : 192.168.0.0/24
sshd : 127.0.0.1
sshd : [::1]
Možnost 3:Konfigurace démona SSH
Démona ssh můžete nakonfigurovat v sshd_config tak, aby používal různé metody ověřování v závislosti na adrese klienta/jménu hostitele. Pokud chcete pouze zablokovat připojení ostatních hostitelů, měli byste místo toho použít iptables nebo TCP wrappery.
Nejprve odstraňte výchozí metody ověřování:
PasswordAuthentication no
PubkeyAuthentication no
Poté přidejte požadované metody ověřování za Match Address
na konci souboru. Umístění Match
na konci souboru je důležité, protože všechny konfigurační řádky za ním jsou umístěny do podmíněného bloku až do dalšího Match
čára. Například:
Match Address 127.0.0.*
PubkeyAuthentication yes
Ostatní klienti se stále mohou připojit, ale přihlášení se nezdaří, protože nejsou k dispozici žádné metody ověřování.
Shoda argumentů a povolené podmíněné konfigurační volby jsou zdokumentovány v manuálové stránce sshd_config. Vzory shody jsou zdokumentovány v manuálové stránce ssh_config.
Zde je některá další konfigurace pro démona SSH pro rozšíření předchozí odpovědi:
-
Přidejte filtrování uživatelů pomocí
AllowUsers
možnost vsshd_config
soubor:AllowUsers [email protected]* [email protected]* otherid1 otherid2
To umožňuje johndoe a admin2 pouze od
192.168.1.*
adresy a otherid1 , otherid2 odkudkoli. -
Omezte klíč ssh nebo klíč založený na ca na sadu adres v
.ssh/authorized_keys
soubor domovského adresáře daného uživatele:from="192.168.1.*,192.168.2.*" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA...etc...mnMo7n1DD useralias
V tomto příkladu bude veřejný klíč pro uživatelská alias účinný pouze z daných adres.