ssh -R
사용자 가 원격으로 ‘ ‘전달할 수있는 포트를 제한해야합니다 .
permitopen
authorized_keys의 옵션에 대해 알고 있지만 매뉴얼 페이지에 표시된 것처럼 로컬 ‘ ssh -L
‘포트 전달 만 제한합니다.
여기 에서 논의 된 것처럼 사용자는 동일 netcat
하거나 유사 할 것이지만이 경우 사용자는 쉘 액세스 권한이 없습니다
또한 selinux 또는 사용에 대해 이야기하는 이 스레드 를 찾았 LD_PRELOAD
지만 이전에 selinux를 구성한 적이 없으며로 수행하는 방법에 대한 정보를 찾을 수 없습니다 LD_PRELOAD
.
누군가가 openssh가 그것을 구현하기 위해 패치를 만들었습니까?
편집 : 이 버그 보고서를 찾았 으므로 아직 구현되지 않은 것 같습니다.
답변
2018-08-24에 릴리스 된 OpenSSH 7.8p1에서 구현되었습니다. 릴리스 노트에서 인용하십시오.
sshd_config (5)에 PermitListen 지시문을 추가하고 원격 포워딩 (ssh -R …)에서 사용할 청취 주소 및 포트 번호를 제어하는 해당 permitlisten = certified_keys 옵션을 추가하십시오.
답변
no-port-forwarding
모든 포트 전달을 막는 옵션 이 있습니다. 최소한 OpenSSH 4.3p2 (CentOS 5.3-가장 오래된 컴퓨터)에 있습니다. 당신이 놓았던 것과 같은 곳에 두십시오 permitopen
.
답변
ssh 사용을 제한하는 것은 불가능합니다. 어쩌면 selinux 또는 iptables를 사용할 수도 있습니다. 그러나 귀하의 요구에 맞거나 맞지 않을 수있는 대체 전략이 있습니다. UNIX 소켓에 바인딩을 사용하십시오. openssh 버전 6.8부터 사용할 수 있습니다.
소켓을 사용할 때 파일 시스템 ACL (소켓은 * nix에 따라 다름)을 사용할 수 있으며 한 사용자가 다른 소켓에 바인딩하지 못하게 할 수 있습니다. 그러나 어떤 식 으로든 포트에 바인딩하는 것을 막지는 못하므로 사용 사례에 따라 도움이되지 않을 수도 있지만 일관되게 소켓 만 사용할 수 있다면 포트는 중요하지 않을 수 있습니다.
매달려있는 소켓 파일을 처리하는 UNIX 소켓을 사용하면 리버스 게시자가 다시 연결하려고 할 때 문제가 발생할 수 있습니다. 그 문제에 대한 또 다른 질문 (및 답변)이 있습니다. 간단히 말해서 아마도 다음을 사용하고 싶을 것입니다 StreamLocalBindUnlink yes
.
답변
중복 : /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it
다음을 사용할 수있는 것 같습니다.
서버 구성 파일에는 PermitOpen 옵션이 있습니다. 이 옵션을 사용하여 전달을 설정할 수있는 호스트 및 포트를 지정할 수 있습니다. 이 옵션은 일치 블록 내에서 사용할 수 있으므로 사용자, 그룹 또는 호스트 이름 또는 IP 주소 패턴으로 제한 될 수 있습니다.
편집 : 그래서 서버 구성에서 다음을 추가하십시오
허용 호스트 : 포트
허용 IPv4_addr : port를여십시오
허가 열기 [IPv6_addr] : port