pamを使用して特定のIPを介したSSHアクセスの設定

pamを使用して特定のIPを介したSSHアクセスの設定

現在のサーバーを構成しようとしていて、SSHが/ etc / remote-hostsファイル内のIPから来ている場合は、UID 6000-6500を持つすべてのユーザーが自分のサーバーにSSHでアクセスできるようにしたいと思います。 WantUIDSにこの条件を構成するユーザーのユーザー名を入力する方法は既にあります。

現在私は以下を持っていますsudo nano /etc/security/access.conf

# This line works just fine
+ : @g67 asist : ALL

# This line is commented because I don't know what this will do or if this will work.
# + : pam_listfile.so item=user file=/etc/wantedUIDS : pam_listfile.so item=ip file=/etc/remote-hosts

そうですか?これはうまくいくでしょうか?使えるかもしれませんねPAMファイルの構文この特定のファイルでは...

ベストアンサー1

iptablesチェーンのUIDまたはGID(名前または値に基づいて)のみを追跡できますOUTPUT。したがってINPUT、(デフォルトでは)チェーンでは機能しません。これを達成するには、ユーザーグループ(employees例:)を作成することをお勧めします。次に、SSHアクセスが許可されているすべてのユーザーをこのemployeesグループに追加します。

次に、/etc/sshd_config次のようにファイルを編集します。

AllowGroups employees

この設定ファイルにIPアドレス(ホワイトリスト)を追加できますが、リストが長い場合は扱いにくいようです。代わりにiptables自動化された方法で使用されます。

次に、iptablesに移動します。あなたのIPホワイトリストに10のアドレスが含まれているとします(この例では仮想プライベートIPアドレスを使用します)。

$ cat whitelist.txt
10.0.0.0/24
10.2.1.3
192.168.10.0/24
192.168.22.25
172.16.4.1
172.17.80.0/26
192.168.80.4/30
10.10.10.0/26
192.168.1.1
172.20.20.4

単純なbashスクリプトを使用して、これらのすべてのIPアドレスをiptablesに追加できます。

$ cat script.sh
#!/bin/bash
for i in $(cat whitelist.txt)
do 
iptables -I INPUT -s $i -p tcp -m tcp --dport 22 -j ACCEPT
done
iptables -I INPUT -p tcp -m tcp --dport 22 -j REJECT

それはあなたが必要とするすべてです。これで機能をテストできます。すべてが順調に進んでいる場合は、iptablesルールを保存することを検討してください。

おすすめ記事