답변:
친구가 컴퓨터에 SSH를 연결할 수 있으면 일부 대역폭을 사용하고 있으므로 인터넷 연결에 대한 액세스를 완전히 차단할 수 없습니다.
즉, 한 가지 해결책은 친구가 연결을 통해 할 수있는 일을 제한하는 것입니다. 친구의 IP를 허용하고 다른 모든 것을 차단하는 방화벽을 설정할 수 있습니다. 이렇게하면 친구가 컴퓨터에 SSH를 연결할 수 있지만 거기에서 자신의 컴퓨터 이외의 다른 IP에 연결할 수 없습니다.
사용자 별 방화벽을 직접 설정 한 적이 없지만 IPTables 로 달성 할 수 있다고 생각합니다 . 또한 서버에 큰 파일을 업로드하면 사용자가 여전히 많은 대역폭을 사용할 수 있습니다. 이를 방지하려면 사용자 당 대역폭 을 제한 해야합니다 .
/ etc / ssh / sshd_config에 포함되어 있는지 확인하고 싶습니다
AllowTcpForwarding no
그런 다음 파일 끝에
Match User yourusername
AllowTcpForwarding yes
이것은 당신과 당신 만이 당신의 마음의 내용을 포워딩 할 수있게 해줄 것이지만, João가 말했듯이 쉘 액세스를 비활성화하지 않으면 그들 자신의 프로그램이 실행되는 것을 막을 수 없습니다.
sshd로 TCP 전달을 비활성화 할 수는 있지만 사용자의 발신 활동을 제한하려면 훨씬 더 나아가 야합니다. 그들에게 껍질을주는 것은 그들에게 많은 힘을주는 것을 의미합니다.
예를 들어, 파일을 서버로 scp하고 / home에서 파일을 실행할 수 있으면 pppd 바이너리를 업로드하고이를 사용하여 SSH를 통해 PPP를 실행할 수 있습니다. 들어오는 연결을 허용하면 /usr/sbin/sshd -p 9999 -f special_sshd_config
해당 sshd를 통해 서버를 실행 하고 사용할 수 있습니다.
iptables owner 모듈 (man iptables, owner 검색)과 chroot jails를 살펴보고 싶을 수도 있지만, 쉘 경험을 망치지 않으면 해결하기가 정말 어렵습니다.
이것은 serverfault에서도 요청되었으며 /server/181660/how-do-i-log-ssh-port-forwards 이며 패치가 있습니다 : http://blog.rootshell.be/2009/ 03 / 01 / keep-an-eye-on-ssh-forwarding /