sshd "UseDNS" 옵션의 의미는 무엇입니까?

sshd "UseDNS" 옵션의 의미는 무엇입니까?

그게 무슨 일인지는 알지만 모르겠어. 어떤 공격을 방지하나요?

모든 유형의 인증 방법과 관련이 있나요? (호스트, 비밀번호, 공개 키, 키보드 상호 작용을 기반으로...)

답변1

UseDNS옵션은 대부분 쓸모가 없습니다. 클라이언트 컴퓨터가 인터넷에 있는 경우 역방향 DNS가 없거나 역방향 DNS를 앞으로 확인할 수 없거나 DNS가 "여기에 속함" 이외의 정보를 제공하지 않을 가능성이 높습니다. IP 주소가 ISP에 알려졌습니다."

일반적인 구성에서 DNS는 로깅에만 사용됩니다. 인증에 사용할 수 있지만 IgnoreRhosts no에 지정된 경우에만 가능합니다 sshd_config. 이는 rsh를 사용하는 이전 설치와의 호환성을 위한 것입니다. 여기서 " bob호출된 시스템의 호출 사용자는 자격 증명을 표시 darkstar하지 않고 로그인할 수 있습니다 "(를 작성하여 ) 라고 말할 수 있습니다 . SSH 서버는 연결할 수 있는 모든 컴퓨터를 신뢰하는 경우에만 안전합니다. 즉, 안전한 방법으로 사용되는 경우는 거의 없습니다.alicedarkstar bob~alice/.rhosts

DNS 조회는 매우 특정한 상황을 제외하고는 유용한 정보를 제공하지 않으므로 꺼야 합니다. 내가 아는 한, 이 기능이 기본적으로 활성화된 유일한 이유는 기술적으로 더 안전하기 때문입니다(사용성이 아닌 인증에 관심이 있는 경우). 비록 이것이 드문 경우에만 작동하더라도 말이죠.

이 기능을 끄는 또 다른 주장은 모든 추가 기능이 불필요하다는 것입니다.보안 위험.

답변2

Ubuntu에 이에 대한 버그 보고서를 추가했습니다(오래되었지만 여전히 최신 상태임).

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/424371

기본값을 "no"로 변경하고 업데이트된 문서를 추가하는 것이 좋습니다.

# UseDNS - Determines whether IP Address to Hostname lookup and comparison is performed
# Default value is No which avoids login delays when the remote client's DNS cannot be resolved
# Value of No implies that the usage of "from=" in authorized_keys will not support DNS host names but only IP addresses.
# Value of Yes supports host names in "from=" for authorized_keys. Additionally if the remote client's IP address does not match the resolved DNS host name (or could not be reverse lookup resolved) then a warning is logged.

답변3

매뉴얼 페이지에서 sshd_config(5):

 UseDNS  Specifies whether sshd(8) should look up the remote host name and
         check that the resolved host name for the remote IP address maps
         back to the very same IP address.  The default is “yes”.

이 기능을 활성화하면 올바른(정방향 및 역방향) DNS가 없는 위치에서 액세스할 때 로그에 경고가 생성됩니다.

따라서 이는 공격을 방지하지 못하며 경고를 기록하지 않으려면 클라이언트의 인증된 원격 주소가 필요합니다. 이러한 경고는 PTR 레코드가 의미 있는 경우에만 공격자를 추적하는 데 도움이 될 수 있습니다.

편집: 댓글을 기반으로 업데이트됨안드레이 보이텐코프.

답변4

CentOS 7(7.1.1503)과 Red Hat Enterprise Linux 7에 이 내용을 추가하고 싶습니다.할 수 없는yes의 기본 설정을 사용하여 로그인합니다 UseDNS. 주석을 해제하고 으로 설정하니 no로그인이 가능해졌습니다. 이런 관점에서 볼 때, DNS가 제대로 작동하지 않으면 서비스 거부가 가능하다는 사실! CentOS 6에서는 DNS가 작동하지 않고도 no사용할 수 있도록 기본값이 설정되어 있는 것 같습니다 !ssh

혹시라도 영향이 있을 수 있으니 제 실험은 물리적 머신이 아닌 LXC 컨테이너에서 수행되었다는 점을 덧붙이고 싶습니다!

관련 정보