TCP 래퍼 "예외" 옵션

TCP 래퍼 "예외" 옵션

/etc/hosts.allow머신 192.168.122.50에서 다음 옵션을 구성했습니다 .

sshd : ALL EXCEPT 192.168.122.1

그리고 머신 192.168.122.1에서 시도하면서 루트로 머신 192.168.122.50에 연결할 수 있었습니다.ssh [email protected]

/etc/hosts.deny그런 다음 192.168.122.50 파일 에 다음 규칙을 추가했습니다.

sshd : 192.168.122.1

192.168.122.1 컴퓨터에서 다시 시도했습니다. 하지만 이번에 나는ssh [email protected]연결할 수 없습니다오류가 발생했습니다.

ssh_exchange_identification: Connection closed by remote host

/etc/hosts.allow이로 인해 EXCEPT 지시문의 실제 동작에 대해 의문이 생깁니다 /etc/hosts.deny. 제가 배운 내용은 다음과 같습니다.

우리가 넣으면와는 별개로Hosts.allow의 지시문은 그 뒤에 있는 특정 호스트/네트워크를 허용하지 않지만 연결은 여전히 ​​설정될 수 있음을 의미합니다.~까지NET Framework에서 특정 호스트/네트워크를 명시적으로 언급했습니다 /etc/hosts.deny. 요컨대허용하지 않는다고 해서 거부하는 것은 아니다

우리가 넣으면와는 별개로Hosts.deny의 지시어는 특정 호스트/네트워크가 연결을 설정하도록 간접적으로 허용한다는 의미입니다. 요컨대부정하지 않는다는 것은 허용한다는 뜻이다

내 판단이 맞는 걸까?

참고 1: 변경할 때마다 ssh 데몬이 다시 시작됩니다( /etc/hosts.allow필수 /etc/hosts.deny는 아님).

참고 2: 내가 아는 한 허용은 거부보다 ​​우선순위가 높습니다.

답변1

암시적인 "기본 거부"가 있다고 가정할 수 있습니다. 즉, 아무것도 없습니다.

ALL EXCEPT 192.168.122.1호스트 192.168.122.1에는 전혀 적용되지 않으므로 후속 항목이 확인됩니다.

당신이 가지고 있지 않다고 가정고대의 tcpwrappers(즉, 지원하고 빌드합니다 -DHOSTS_ACCESS.) 실제로는 다음을 사용해야 합니다 hosts.allow.

sshd: 192.168.122.1 : DENY
sshd: ALL : ALLOW

(알아채다기본적으로 허용됨물론 이것은 나쁜 습관이다)

답변2

문제는 tcp_wrappers가 EXCEPT(권장하는) 지시문을 사용해야만 특정 호스트를 거부할 수 없다는 것입니다. 그래서 저는 단 하나의 작동하는 솔루션을 찾았습니다. Host.allow에서 ALL(특정 호스트 제외)을 허용하고 Host.deny에서 ALL을 거부하는 것입니다.

# hosts.allow
sshd : ALL EXCEPT 11.22.33.44

# hosts.deny
sshd : ALL : DENY

조금 이상하다는 건 알지만 작동합니다.

다음과 같은 솔루션

sshd: 192.168.122.1 : DENY
sshd: ALL : ALLOW

나에게 적합하지 않습니다.

관련 정보