GNU/Linux >> Linux の 問題 >  >> Linux

IPアドレスでSSHアクセスを制限する

この記事では、次のアクションを実行してサーバーへのSSHアクセスを保護する方法について説明します。

  • 許可構成で特定のIPアドレスへのログイン試行を防止する
  • 制限付き構成で特定のIPアドレスへのアクセスを許可する
許容構成

許容構成では、拒否されたIPアドレスを除くすべてのユーザーにアクセスできます。次の方法で、特定のIPアドレスへのアクセスを拒否できます。

TCPラッパー

この構成は、ファイル /etc/hosts.denyで行います。 次のルールを追加することにより:

# vi /etc/host.deny

次のいずれかの方法で拒否ルールを設定します。

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

この構成は、OSファイアウォールルールの構成に含まれています。

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

IPアドレスをブロックする

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

セグメントをブロックする

# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j DROP
制限的な構成

この構成では、特定のIPアドレスにのみアクセスでき、他の着信トラフィックはドロップされます。

TCPラッパー

まず、 /etc/hosts.denyでSSHに着信するすべてのトラフィックを拒否します ファイル:

# vi /etc/hosts.deny
sshd: ALL

次に、信頼できる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

IPテーブルの場合、ルールを配置する順序は非常に重要です。そのため、最初に許可ルールを構成し、次に拒否ルールを構成する必要があります。

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

IPからのトラフィックの受け入れ:

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

セグメントからのトラフィックの受け入れ:

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

ブロックルールの設定:

iptables -A INPUT -p tcp --dport 22 -j DROP
変更を改善する方法

制限的または許容的な構成に応じて、次のコマンドを実行することにより、変更を確認できます。

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

注: 一部のディストリビューションには、デフォルトのファイアウォールソフトウェア(Define®およびUbuntu®オペレーティングシステム用のUFWおよび派生型、RedHat®EnterpriseLinux®7用のFirewalledなど)が含まれています。

特定のIP、ポート番号、プロトコルを拒否するようにufwを設定します

TCPポート22へのIPアドレスをブロックする場合:

# ufw deny proto tcp from 192.168.0.8 to any port 22

サブネットをブロックする場合:

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

構成されたルールを一覧表示するには:

# ufw status numbered

特定のIPアドレス、ポート番号、プロトコルを拒否するようにfirewalldを設定します

Firewalldでは、IPアドレスまたはセグメントを禁止できますが、いかなる種類の接続も許可されません:

IPアドレスをブロックする:

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

セグメントをブロックする:

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

そのため、SSHポートに接続するために信頼できるIPアドレスをホワイトリストに登録することを選択する場合があります。

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

Firewalld構成をリロードする必要があります:

# firewall-cmd --reload

ファイアウォールで構成されているルールを一覧表示します:

# firewall-cmd --list-all

Linux
  1. SSHトンネリングを使用して制限付きサーバーにアクセスする方法

  2. システムでSSHアクセスを保護する8つの方法

  3. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  1. Sshアクセスで新しいユーザーを作成する方法は?

  2. リモートSSHアクセスを許可しますか?

  3. SSH の使用を開始する

  1. IPアドレスを逆方向に読み取る方法は?

  2. Ssh – Sshアクセス試行のログ?

  3. SSH セッションでクライアントの IP アドレスを見つける