
현재 SSH를 통해 서버에 연결할 수 있지만 이를 통해 프록시만 연결할 수 있는 사용자 그룹을 설정하려고 합니다. 파일을 볼 수도 없고 명령을 실행할 수도 없습니다. 그룹의 사용자는 키 대신 비밀번호 인증을 사용할 수도 있습니다. SSH 서버는 OpenSSH입니다.
이것은비슷한 것을 다루는 또 다른 질문아주 좋은 대답으로. 나는 그가 의미하는 바를 완전히 이해하는 데 문제가 있으며 특히 사용자가 서버를 프록시로 사용할 수 없으므로 무심코 지침을 따를 수 없다고 명시하고 있습니다. 또한 그룹에 비해 단일 사용자를 대상으로 작성되었습니다. 이 문제를 해결하기 위해 에서 그의 구성을 다음과 같이 변경했습니다 sshd_config
.
Match Group limited-users
AllowTcpForwarding yes
#X11Forwarding no
#PermitTunnel no
#GatewayPorts no
AllowAgentForwarding no
PermitOpen localhost:1080
ForceCommand echo 'This account can only be used for [reason]'
특정 유형의 시스템 그룹을 생성해야 할 수도 있지만 확실하지 않습니다.
그런 식으로 잠긴 계정을 만드는 데 선호되는 방법이 있나요? 그런데 제가 그걸 놓치고 있는 건가요?
편집 : 나는 가지고있다StackOverflow에서 이 질문과 매우 유사한 두 번째 질문을 찾았습니다.하지만 그들은 키 대신 비밀번호를 사용하고 싶은 곳에 다시 키를 사용합니다.
편집 2: 이것은 꽤 인기 있는 것으로 밝혀졌습니다.이게 가장 도움이 됐어요. 사용자 쉘을 간단히 아무 키나 눌러 로그아웃하도록 설정하면 사용자가 아무것도 할 수 없게 되는 것 같습니다.
편집 3: 밀접하게 따라갈 때이 기사다른 질문 중 하나에 의해 제공되는 다음과 같은 결과는 거의 동일하지만 두 개의 별도 그룹이 없습니다.
맞다면 업데이트하겠습니다.
/usr/bin/tunnel_shell
파일을 만들고 이것을 넣어서 전혀 쓸모없어 보이는 쉘을 만들었습니다.
#!/bin/bash
trap '' 2 20 24
clear
echo -e "rn33[32mSSH tunnel started, shell disabled by the system administrator"
while [ true ] ; do
sleep 1000
done
exit 0
다음을 사용하여 Tunnel_group이라는 그룹을 만들었습니다.
groupadd tunnel_group
이를 사용하여 Tunnel_user라는 사용자를 추가했습니다. -M은 그에게 홈 디렉토리를 제공하지 않습니다. -G Tunnel_group은 그를 Tunnel_group(이전에 만든 그룹)에 추가합니다. -s 그의 쉘을 이전에 생성한 Tunnel_shell 파일로 설정합니다.
useradd -M -G tunnel_group -s /usr/bin/tunnel_shell tunnel_user
그런 다음 다음을 사용하여 사용자 비밀번호를 설정합니다.
passwd tunnel_user
나는 /etc/ssh/sshd_config/
이것을 파일 끝에 추가했습니다.
Match Group tunnel_group
AllowTcpForwarding yes
#X11Forwarding no
PermitTunnel yes
GatewayPorts yes
AllowAgentForwarding yes
PermitOpen localhost: 1080
ForceCommand echo 'This account can only be used for SOCKS and has be restricted accordingly.'