GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beschränken Sie den SSH-Zugriff nach IP-Adresse

Dieser Artikel beschreibt, wie Sie den SSH-Zugriff auf Ihren Server sichern, indem Sie die folgenden Aktionen ausführen:

  • Verhindere Anmeldeversuche für bestimmte IP-Adressen in der permissiven Konfiguration
  • Zugriff für bestimmte IP-Adressen in der restriktiven Konfiguration zulassen

Zulässige Konfiguration

Die permissive Konfiguration erlaubt allen Zugriff, außer der verweigerten IP-Adresse. Sie können den Zugriff auf bestimmte IP-Adressen auf folgende Weise verweigern:

TCP-Wrapper

Nehmen Sie diese Konfiguration in der Datei /etc/hosts.deny vor indem Sie die folgende Regel hinzufügen:

# vi /etc/host.deny

Legen Sie auf eine der folgenden Arten eine Verweigerungsregel fest:

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

Diese Konfiguration befindet sich in der Konfiguration der Firewall-Regeln des Betriebssystems.

# iptables -A INPUT -s "BAD_IP" -p tcp --dport SSH_Port -j DROP

IP-Adresse blockieren :

# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j DROP

Segment blockieren :

# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j DROP

Einschränkende Konfiguration

Diese Konfiguration erlaubt nur den Zugriff auf bestimmte IP-Adressen und verwirft anderen eingehenden Datenverkehr.

TCP-Wrapper

Verweigern Sie zunächst den gesamten eingehenden Datenverkehr zu SSH in /etc/hosts.deny Datei:

# vi /etc/hosts.deny
sshd: ALL

Erlauben Sie dann den Zugriff für vertrauenswürdige IP-Adressen:

# 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

Bei IP-Tabellen ist die Reihenfolge, in der Sie die Regeln platzieren, sehr wichtig. Aus diesem Grund müssen Sie zuerst die Zulassungsregeln und dann die Verweigerungsregel konfigurieren.

# iptables -A INPUT --source Trusted_IP -p tcp --dport SSH_PORT  -j ACCEPT

Datenverkehr von einer IP akzeptieren:

# iptables -A INPUT --source 192.168.0.8 -p tcp --dport 22 -j ACCEPT

Traffic von einem Segment akzeptieren:

# iptables -A INPUT --source 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

Festlegen der Sperrregel:

iptables -A INPUT -p tcp --dport 22 -j DROP

So verbessern Sie die Änderungen

Sie können Ihre Änderungen überprüfen, indem Sie je nach restriktiver oder permissiver Konfiguration die folgenden Befehle ausführen:

# cat /etc/hosts.deny
# cat /etc/hosts.allow
# iptables -L

Hinweis: Einige Distributionen enthalten Standard-Firewall-Software, wie UFW für Debian® und das Ubuntu®-Betriebssystem und abgeleitete Versionen, Firewalld für Red Hat® Enterprise Linux® 7 und abgeleitete Versionen.

Konfiguriere ufw, um bestimmte IPs, Portnummern und Protokolle zu verweigern

Zum Sperren einer IP-Adresse an TCP-Port 22:

# ufw deny proto tcp from 192.168.0.8 to any port 22

Zum Blockieren eines Subnetzes:

# ufw deny proto tcp from 192.168.0.0/24 to any port 22

Zum Auflisten der konfigurierten Regeln:

# ufw status numbered

Konfigurieren Sie firewalld so, dass eine bestimmte IP-Adresse, Portnummer und ein bestimmtes Protokoll abgelehnt werden

Auf Firewalld können Sie eine IP-Adresse oder ein Segment sperren, aber es wird keine Art von Verbindung zugelassen:

Eine IP-Adresse blockieren:

# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.8' reject"

Segment blockieren:

# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.0/24' reject"

Aus diesem Grund können Sie vertrauenswürdige IP-Adressen auf die Whitelist setzen, um eine Verbindung zum SSH-Port herzustellen:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.20" port protocol="tcp" port="22" accept'

Sie müssen die Firewall-Konfiguration neu laden:

# firewall-cmd --reload

Listen Sie die auf der Firewall konfigurierten Regeln auf:

# firewall-cmd --list-all

Linux
  1. So verwenden Sie SSH-Tunneling für den Zugriff auf eingeschränkte Server

  2. Acht Möglichkeiten zum Schutz des SSH-Zugriffs auf Ihrem System

  3. Ssh – Beschränken eines Ssh/scp/sftp-Benutzers auf ein Verzeichnis?

  4. Ssh – Ssh-Zugriffsversuche protokollieren?

  5. Beschränken Sie den SSH-Zugriff auf bestimmte Clients nach IP-Adresse

Wie können wir den SSH-Zugriff mit UFW unter Linux Mint 20 einschränken

So deaktivieren Sie den Root-SSH-Zugriff unter CentOS 7

Auflösen der Mac-Adresse von der IP-Adresse in Linux?

SSH-Zugang für cPanel

Zusätzliche SSH-Benutzer

Auflösen der MAC-Adresse von der IP-Adresse in Linux