SSH 터널 로깅? 연결을 사용하고 싶지는

친구에게 액세스 권한을주고 싶은 SSH를 실행하는 컴퓨터가 있지만 SSH 터널링을 통해 내 인터넷 연결을 사용하고 싶지는 않습니다 (내가 원하지만). SSH 터널 생성시기와 로컬 사용자를 기록 할 수있는 방법이 있습니까? 아니면 가능하지 않은 경우 일부 사용자 만 그렇게 할 수 있습니까?



답변

친구가 컴퓨터에 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를 살펴보고 싶을 수도 있지만, 쉘 경험을 망치지 않으면 해결하기가 정말 어렵습니다.


답변

내가 알고있는 유일한 옵션은 시스템 수준에서 터널링을 비활성화하는 것입니다.

/ etc / ssh / sshd_config를 편집하고 변경 / 추가

AllowTcpForwarding no

셸 액세스 권한이있는 동안 사용자가 자신의 바이너리를 사용하여 연결을 전달하지 못하게 할 수는 없습니다.


답변

이것은 serverfault에서도 요청되었으며 /server/181660/how-do-i-log-ssh-port-forwards 이며 패치가 있습니다 : http://blog.rootshell.be/2009/ 03 / 01 / keep-an-eye-on-ssh-forwarding /


답변

첫 번째 반복 :

ssh 전달을 비활성화하십시오. ssh에서

당신은 당신의 서버에 자신과 VPN을위한 IPSec을 수 있습니다. IPSec은 네트워크 수준이므로 SSH 응용 프로그램 설정의 영향을받지 않습니다.


답변