SSH 포트 전달을 통해 사용자가 로컬 호스트에 바인딩 된 서비스에 액세스하지 못하게하려면 어떻게해야합니까?


7

사람들이 SSH 터널링에 사용할 수 있도록 Linux 서버에 SSH 계정을 제공하고 싶습니다. 터널링 / 포트 전달 목적으로 만 대화 형 셸없이 모든 계정이 잠 깁니다. 내 문제는 다음과 같은 포트 전달을 통해서만 로컬 호스트에 바인딩 된 서비스에 액세스 할 수 있기를 원하지 않는다는 것입니다.

ssh account@server -L 9999:127.0.0.1:3306 & telnet localhost 9999

그러면 기본 MySQL 데이터베이스 포트에 액세스 할 수 있습니다. 이걸 어떻게 막을 수 있습니까?

OpenSSH의 구성 파일에 특정 포트 / 호스트를 허용하지만 차단하지는 않는 옵션이 있습니다. 어떤 도움이라도 대단히 감사하겠습니다!

답변:


1

나는 그것을 직접 시도하지는 않았지만 규칙 의 --uid-owner--gid-owner옵션은 iptablesUID 및 GID를 기반으로 연결을 제한 할 수있는 것으로 보입니다. 즉, 특정 사용자가 지정된 인터페이스에서 아웃 바운드 연결을하지 못하게 할 수 있습니다.

따라서 루프백에 대한 모든 액세스를 차단하기 위해 다음과 같은 (테스트되지 않음) 것입니다.

iptables -A OUTPUT -o lo -m owner --uid-owner {USERNAME} -j REJECT

... 또는 잠긴 계정이 모두 같은 그룹에있는 경우 :

iptables -A OUTPUT -o lo -m owner --gid-owner {GROUPNAME} -j REJECT

보다 세부적인 것이 필요한 경우이 nixCraft 게시물 에는 일부 포트는 허용하지만 다른 포트는 허용하지 않는 방법에 대한 예가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.