ssh * remote * 포트 전달을 어떻게 제한 할 수 있습니까?


22

ssh -R사용자 가 원격으로 ' '전달할 수있는 포트를 제한해야합니다 .

permitopenauthorized_keys의 옵션에 대해 알고 있지만 매뉴얼 페이지에 표시된 것처럼 로컬 ' ssh -L'포트 전달 만 제한합니다.

여기 에서 논의 된 것처럼 사용자는 동일 netcat하거나 유사 할 것이지만이 경우 사용자는 쉘 액세스 권한이 없습니다

또한 selinux 또는 사용에 대해 이야기하는 이 스레드 를 찾았 LD_PRELOAD지만 이전에 selinux를 구성한 적이 없으며로 수행하는 방법에 대한 정보를 찾을 수 없습니다 LD_PRELOAD.

누군가가 openssh가 그것을 구현하기 위해 패치를 만들었습니까?

편집 : 이 버그 보고서를 찾았 으므로 아직 구현되지 않은 것 같습니다.


이에 대한 해결책을 찾았습니까?
alex88

위의 버그가 해결되거나 누군가가이를 구현하기위한 패치를 작성하기 전까지는 불가능하다고 생각합니다.
Lluís

답변:


3

2018-08-24에 릴리스 된 OpenSSH 7.8p1에서 구현되었습니다. 릴리스 노트에서 인용하십시오.

sshd_config (5)에 PermitListen 지시문을 추가하고 원격 포워딩 (ssh -R ...)에서 사용할 청취 주소 및 포트 번호를 제어하는 ​​해당 permitlisten = certified_keys 옵션을 추가하십시오.


4

no-port-forwarding모든 포트 전달을 막는 옵션 이 있습니다. 최소한 OpenSSH 4.3p2 (CentOS 5.3-가장 오래된 컴퓨터)에 있습니다. 당신이 놓았던 것과 같은 곳에 두십시오 permitopen.


13
포트 포워딩을 완전히 비활성화하면 과도하게 보이며 질문에 적합하지 않습니다. OP가 제한을 원 하지만 특정 원격 포트 전달을 허용 한다고 가정 합니다.
gertvdijk

2
예, 일부 포트 전달을 허용해야합니다
Lluís

0

ssh 사용을 제한하는 것은 불가능합니다. 어쩌면 selinux 또는 iptables를 사용할 수도 있습니다. 그러나 귀하의 요구에 맞거나 맞지 않을 수있는 대체 전략이 있습니다. UNIX 소켓에 바인딩을 사용하십시오. openssh 버전 6.8부터 사용할 수 있습니다.

소켓을 사용할 때 파일 시스템 ACL (소켓은 * nix에 따라 다름)을 사용할 수 있으며 한 사용자가 다른 소켓에 바인딩하지 못하게 할 수 있습니다. 그러나 어떤 식 으로든 포트에 바인딩하는 것을 막지는 못하므로 사용 사례에 따라 도움이되지 않을 수도 있지만 일관되게 소켓 만 사용할 수 있다면 포트는 중요하지 않을 수 있습니다.

매달려있는 소켓 파일을 처리하는 UNIX 소켓을 사용하면 리버스 게시자가 다시 연결하려고 할 때 문제가 발생할 수 있습니다. 그 문제에 대한 또 다른 질문 (및 답변)이 있습니다. 간단히 말해서 아마도 다음을 사용하고 싶을 것입니다 StreamLocalBindUnlink yes.

연결 종료 후 SSH 역 터널 소켓을 정리하는 방법은 무엇입니까?


-1

중복 : /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it

다음을 사용할 수있는 것 같습니다.

서버 구성 파일에는 PermitOpen 옵션이 있습니다. 이 옵션을 사용하여 전달을 설정할 수있는 호스트 및 포트를 지정할 수 있습니다. 이 옵션은 일치 블록 내에서 사용할 수 있으므로 사용자, 그룹 또는 호스트 이름 또는 IP 주소 패턴으로 제한 될 수 있습니다.

편집 : 그래서 서버 구성에서 다음을 추가하십시오

허용 호스트 : 포트

허용 IPv4_addr : port를여십시오

허가 열기 [IPv6_addr] : port


1
U & L에서만 중복으로 표시 할 수 있습니다.
GAD3R

1
-L 대한의 질문에 명시된 그것은 이미 비 솔루션으로 알려져으로
alex88

1
이것에 대한 해결책이 있습니까 (iptables 외에)?
davesave
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.