web-dev-qa-db-ja.com

ユーザーごとの発信SSHの制限

管理しているサーバーがあります。ポート22から多くのマシンにアクセスできます。一部のユーザーの要塞ホストとして使用したいと思います。欠点は、サーバー上の各ユーザーに、SSHで接続できるIP /アドレスの独自のホワイトリストを持たせたいということです。

たとえば、私のマシンMがサーバーS1、S2、S3、... S8にアクセスできるとします。マシンMにA、B、Cの3人のユーザーがいます。AがS2にのみSSHで接続できるようにし、BがS1、S5、S6にのみSSHで接続できるようにし、CがS2にSSHで接続できるようにします。 、S3、S4、S5およびS8。

どうすればこれを達成できますか?

1
Sankalp

宛先サーバーでは、/ etc/ssh/sshd_configファイルでユーザー名によってSSHアクセスを制限できますが、ここで探しているものではないと思います。

ソースマシンでは、iptablesの「owner」モジュールを使用してこれを行うことができます。メンテナンス作業かもしれませんが、うまくいくでしょう。ユーザーのUIDをチェックし、接続を許可(または拒否)します。

ユーザーのUIDが1、2、3であるとします。ユーザーAは1.1.1.1に、ユーザーBは2.2.2.2に、ユーザーCは3.3.3.3にSSHで接続できます。

iptables -A OUTPUT -m owner --owner-uid 1 -d 1.1.1.1/32 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m owner --owner-uid 1 -p tcp --dport 22 -j DROP
iptables -A OUTPUT -m owner --owner-uid 2 -d 2.2.2.2/32 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m owner --owner-uid 2 -p tcp --dport 22 -j DROP
iptables -A OUTPUT -m owner --owner-uid 3 -d 3.3.3.3/32 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m owner --owner-uid 3 -p tcp --dport 22 -j DROP

それをもう少し「管理しやすい」状態に保つために、ユーザーごとに「チェーン」を作成し、そこで許可されるすべてのアクセスを定義することができます。

チェーンを作成します。

iptables -N USER1
iptables -N USER2
iptables -N USER2

ユーザーからの発信トラフィックをチェーンに転送します。

iptables -A output -m owner --owner-uid 1 -J USER1
iptables -A output -m owner --owner-uid 2 -J USER2
iptables -A output -m owner --owner-uid 3 -J USER3

各ユーザーにチェーンのルールを追加します。

iptables -A USER1 -d 1.1.1.1/32 -p tcp --dport 22 -m comment --comment "allow ssh to 1.1.1.1" -j ACCEPT
iptables -A USER1 -p tcp --dport 22 -j DROP
iptables -A USER1 -j ACCEPT
iptables -A USER2 -d 2.2.2.2/32 -p tcp --dport 22 -j ACCEPT
iptables -A USER2 -p tcp --dport 22 -j DROP
iptables -A USER3 -d 3.3.3.3/32 -p tcp --dport 22 -j ACCEPT
iptables -A USER3 -p tcp --dport 22 -j DROP

ユーザーのアクセスを確認する(ディスプレイチェーン)

iptables -L USER1

所有者モジュールは、gidでも機能します。

iptables -A USER3 -m owner --owner-gid 3 -p tcp --dport 22 -j DROP
5
Goez

ユーザーごとのネットワークアクセスを制限するiptableフィルター(所有者の一致)を使用して、これを実現できるはずです。以下の「ハウツー」を参照してください。

http://linuxpoison.blogspot.com/2010/11/how-to-limit-network-access-by-user.html

0
Arul Selvan