Jak ograniczyć dostęp do „Zdalnego logowania” (ssh) tylko do niektórych zakresów adresów IP?

20

Czy ktoś może mi powiedzieć, jak ograniczyć dostęp SSH tylko do niektórych zakresów adresów IP (np. Sieć lokalna), a nie do całego Internetu? Myślę, że należy to zrobić za pośrednictwem zapory ogniowej.

Michał M.
źródło

Odpowiedzi:

23

Od man sshd:

/etc/hosts.allow
/etc/hosts.deny
Access controls that should be enforced by tcp-wrappers are defined here.  
Further details are described in hosts_access(5).

https://debian-administration.org/article/87/Keeping_SSH_access_secure oferuje następujące przykłady:

# /etc/hosts.allow
sshd: 1.2.3.0/255.255.255.0
sshd: 192.168.0.0/255.255.255.0

# /etc/hosts.deny
sshd: ALL

Program owijający TCP w Mac OS X to: tcpd

TJ Luoma
źródło
3

Nie testowałem tego, ale spróbuję tego w terminalu:

sudo ipfw add allow src-ip 10.0.0.0/8,172.16.0.0/16,192.168.0.0/16 dst-ip me dst-port 22
sudo ipfw add reject src-ip any dst-ip me dst-port 22
Max Ried
źródło
1

Jeśli jesteś za routerem i nie odwzorowałeś portu na komputer, to skutecznie wyłącza dostęp SSH z Internetu.

Gerry
źródło
Tak, jestem tego świadomy. Niestety nie jest to dla mnie rozwiązanie, ponieważ dotyczy to mojego MacBooka Pro, który czasami jest podłączony do sieci z zewnętrznym adresem IP i bez routera pomiędzy nimi.
Michal M,
1
Wydaje się to bardzo mało prawdopodobne i zakładając, że masz tylko jedną kartę sieciową, oznacza to, że nie ma sieci „lokalnej”, jeśli jest do niej przypisany publiczny adres IP.
Gerry
Mało prawdopodobne, czy nie, to nie ma znaczenia, prawda? Oprócz zewnętrznej sytuacji IP, rozważ publiczne sieci WiFi. Wiem, które sieci są dla mnie bezpieczne i chciałbym ograniczyć dostęp tylko do tych sieci. Moje pytanie jest jednak trochę bardziej ogólne, co było moim zamiarem.
Michał M.,
Sugerowałbym wtedy sformułowanie pytania. Wygląda na to, że chcesz umieścić na białej liście zakresy adresów IP niektórych usług w zaporze.
Gerry,
Wykonano zgodnie z sugestią. Twoje zdrowie.
Michał M.,