Linux 상자는 a
동적 DNS 등록을 통해 홈 DSL 회선에 연결되어 tmux
읽기 전용 모드에서 SSH를 통해 연결되는 여러 클라이언트에 대한 세션을 호스팅합니다. 모든 사용자는 동일한 자격 증명( user )을 사용하여 연결합니다 b
.
Example: ssh [email protected] tmux attach -t screencast
모든 것이 잘 작동하지만 상자에서 인터넷까지 "장난스러운" 일을 하는 사용자가 있습니다. ISP와의 인터넷 계약에 대한 책임이 있기 때문에 이는 용납될 수 없습니다. 해당 계정을 사용하여 내 컴퓨터에서 세션을 시청할 수 있는 권한을 부여하는 b
것 외에 ssh
어떻게 각 사용자를 완전히 감옥에 가둘 수 있습니까 ?tmux
screencast
a
사용자가 SSH를 통해 연결하자마자 해당 IP 주소로만 트래픽을 허용하도록 ipchain을 업데이트할 생각인데... 여러 시청자가 동일한 계정을 공유한다고요?
답변1
귀하의 요구 사항을 완전히 이해하지 못합니다. 사용자가 어떤 컴퓨터에 갇히게 될까요? 네트워킹과 관련되지 않은 모든 작업을 수행할 수 있습니까? 그럼에도 불구하고 필요한 빌딩 블록이 무엇인지 말씀드릴 수는 있을 것 같습니다.
사용자를 특정 네트워크 연결로 제한하려면 다음을 참조하세요. Linux에서 iptables를 사용하여 LAN의 특정 사용자에게 인터넷 액세스를 제한하는 방법. 간단히 말해서, SSH를 통해 연결하는 사용자 1234의 네트워크 트래픽을 192.0.2.42(머신 A의 IP 주소)로 제한합니다.
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -d 192.0.2.42 --dport 22 -j ACCEPT
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP
IPv6가 있는 경우 IPv6도 차단하는 것을 잊지 마세요.
머신 A에서 제한된 사용자를 계정 B로 제한하는 가장 효율적인 방법은 이러한 사용자가 다른 계정에 대한 자격 증명을 갖지 않도록 조정하는 것입니다. Match
지시문을 사용할 수 있습니다sshd_config
특정 사용자를 인증하기 위해 특정 IP 주소의 연결을 제한하는 것은 관리 액세스 권한을 얻지 못하게 되므로 좋지 않을 수 있습니다.
Match 192.0.2.99
AllowTCPForwarding No
AllowUsers B
PasswordAuthentication No
X11Forwarding No
계정 B를 단일 명령으로 제한하려면 다음 두 가지 방법이 있습니다.
사용자에게 개인 키(바람직하게는 사용자당 하나)를 제공하고
authorized_keys
지침이 포함된 파일입니다command=
.command="tmux attach-session -r -t screencast" ssh-rsa …
tmux
사용자의 셸을 올바른 매개변수로 실행된 스크립트로 설정합니다. 이것의 장점은 비밀번호 인증을 허용할 수 있다는 점이지만, 사용자가 쉘 프롬프트에서 벗어나는 것을 허용하지 않는 방식으로 올바르게 수행하는 것이 더 어려울 수 있습니다.
tmux는 tmux가 읽기 전용 세션에서 쉘 이스케이프를 허용하지 않는다고 생각하는 것 같지만 확실하지 않습니다. 이 시점에서 사용자가 이스케이프할 수 없는지 확인하십시오.