SSHを特定のIP範囲に制限する

SSHを特定のIP範囲に制限する

私はOpenBSDを使用しており、192.168.42.40から192.168.42.60の間のIPを持つすべてのユーザーにポート22を制限したいと思います。しかし、どうすればいいのかわかりません。パケットフィルタを変更する必要がありますか?

(SSHは私のWebサーバーにあり、私のゲートウェイIPは192.168.2.2です。)私のネットワーク図: ここに画像の説明を入力してください。

解決策を見つけるのに役立ちますか?

答え1

はい。これはパケットフィルタに対する(良い)操作です。範囲が等しい場合サブネットIPアドレス+ネットマスクとして書き込むことができます。 20を超えるアドレスが必要な場合は、30に丸め、192.168.42.33から始めます。つまり、サブネット192.168.42.32/27について話します。つまり、ホストのアドレス範囲は0.33から0.62です。これが多すぎると、/28に範囲を狭めることができます。これにより、0.33から0.47までの14のホストが作成されます。これを念頭に置いて、次を追加できます。

pass on <ifname> inet proto tcp from 192.168.42.32/27 to port ssh

/etc/pf.confSSHサーバーでは、SSHトラフィックを受信するインターフェイスの名前<ifname>(たとえばem0)。省略できます。この場合、ルールはすべてのインターフェイスに適用されます。

お願いしますするpf.confパケットフィルタの設定と設定方法の詳細については、マニュアルページを参照してください。 OpenBSDのmanページは一般的に非常によく書かれており、徹底的であり、しばしば例が含まれています。

答え2

あなたはこれを行うことができますiptables

#allow the hosts
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.40 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.41 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.42 -j ACCEPT
...# you must specify all of them
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.60 -j ACCEPT

#deny everyone else, note the -A (append) option.
iptables -A INPUT -p tcp --dport 22 -j DROP

iptables

関連情報