현재 서버를 구성하려고 하는데 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 규칙을 저장하는 것을 고려해 보세요.