SSH 프록시 계정은 셸 없이도 동작할 수 있다
셸 세션을 비활성화하면서 SSH 포워딩은 계속 사용하고, SOCKS 전용 강제의 한계를 이해한다.
매혹적인 설정은 AllowTcpForwarding no 입니다. 안타깝게도 이 설정은 로컬 SSH SOCKS 프록시에 필요한 포워딩도 비활성화합니다. 동적 포워딩은 서버 정책을 우회하는 우회로가 아닙니다.
전용 계정의 경우 OpenSSH는 여러 기능을 분리합니다. 정책 조각은 셸 및 하위 시스템 세션을 막으면서 로컬 포워딩을 허용할 수 있습니다:
Match User proxyuser
AllowTcpForwarding local
MaxSessions 0
PermitTTY no
X11Forwarding no
AllowAgentForwarding no
서버 매뉴얼은 MaxSessions 0을 셸, 로그인, 하위 시스템 세션을 막고 포워딩은 허용하는 설정으로 설명합니다. 이를 기존 인증된 계정에 통합하십시오. 이것은 완전한 SSH 보안 구성이 아닙니다.
포워딩 전용은 SOCKS 전용이 아니다
고정 로컬 포워딩과 SOCKS 요청은 결국 서버에 같은 종류의 목적지 연결을 요청할 수 있습니다. 로컬 포워딩을 허용한다고 해서 클라이언트가 특정 SOCKS 인터페이스를 사용했다는 보장은 없습니다. 계정이 SOCKS 전용 사용을 강제한다고 설명하지 마십시오.
PermitOpen은 특정 목록이 요구 사항에 맞을 때 목적지 호스트와 포트 쌍을 제한할 수 있습니다. 모든 사설 네트워크에 대해 호스트 이름 해석을 고려한 일반적 금지는 아닙니다. 더 넓은 주소 제한에는 적절한 호스트 네트워크 정책이 필요할 수 있습니다.
계정, 키, 포함된 서버 설정은 포워딩을 더 제한할 수 있습니다. 다른 곳의 전면적 포워딩 금지는 이 조각이 허용하는 것으로 보이는 기능을 제거할 수 있습니다.
복구 경로를 갖춘 일반적인 서버 관리 절차를 사용한 뒤 허용된 기능과 거부된 기능을 따로 평가하십시오. 의도한 결과는 명시적 포워딩 권한이며, 실수로 열어 둔 대화형 로그인이나 자체 제한으로 비활성화된 프록시가 아닙니다.