
現在のサーバーを構成しようとしていて、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ルールを保存することを検討してください。