DNS 영역의 localhost


15

ISP는 외부 DNS도 호스팅합니다. 기본적으로 localhost에 대한 항목이 포함됩니다.

예를 들면 다음과 같습니다. localhost.example.com. 127.0.0.1에서 86400

내가 그것을 제거하도록 요청했을 때 그들은 나에게 힘든 시간을주고 그것이 바인드가 작동하는 방식이라고 말합니다.

나는 왜 그것을 포함하고 싶을 지에 대해 약간의 연구를 시도했지만 많이 찾을 수 없었습니다. 가능한 XSS 공격 경로라고 생각되는 곳을 하나 이상 찾았습니다. alexa의 상위 20 개 웹 사이트 도메인에서 조회를 수행했으며 일반적으로 그러한 항목은 없지만 몇 가지가 있습니다. 다른 일부는 입장했지만 127.0.0.1을 가리키는 대신 다른 세계 라우팅 가능한 IP 주소를 가리 킵니다.

어쨌든, 왜 내 도메인의 영역에 locahost를 갖고 싶습니까? 그것을 가지고 있지 않은 문제가 있습니까? 이에 관한 모범 사례가 있습니까? 사실 내가 알지 못하는 기본 바인드입니까?

감사


좋은 질문. 전에는 들어 본 적이 없습니다.
TomTom

ISP 영역 파일에 "루프백"도 있습니다. WTF?
David Tonhofer

답변:


13

localhost.example.com"localhost"요청이 인터넷으로 유출되는 것을 방지하기 위해 내부 DNS 서버에 포함되는 경우가 있습니다 (John Smith가 http://localhost/브라우저 에 입력하는 경우 및 해석 프로그램이 hosts 파일을 찾지 않은 경우 검색 경로 ( example.com)를 추가 함 ) &는 이름 서버에 무엇을 요구하는지 묻기 시작합니다).

localhost 항목을 가질 필요가 없습니다. ISP가 "BIND 작동 방식"이라고 생각하면 잘못 안내되거나 바보입니다. BIND는 영역 파일에있는 내용을 제공하고 해당 localhost줄 을 제거하면 해당 항목을 제공하지 않습니다. 기록). 무료 예로서, localhost.google.com해결하지 못하고 해당 도메인의 NS가 BIND를 실행하고 있다고 확신합니다.

XSS 벡터는 내가 생각하지 못했던 것입니다.하지만 localhost퍼블릭 DNS에 항목이 있으면 해킹 된 머신이 "도메인에있을 수 있습니다"(127.0.0.1에서 웹 서버를 실행 함) 모든 종류의 불쾌한 것들. 항목을 제거 할 충분한 이유가있을 수 있습니다.


1
개인적으로 나는 그것이 적절한 점 결말을 얻지 못하는localhost.some.test 또 다른 희생자 라고 생각합니다 . 뒤에있는 추론 (점 참고!)은 분명하지만 DNS 영역에서는 점이 종종 잊혀집니다. 그리고 나름대로 신비한 삶을 살기 시작했다. localhost.
poige

tools.ietf.org/html/rfc1537 일반적인 DNS 데이터 파일 구성 오류를 참조 하십시오. 이는 localhost 항목이 올바른 것을 나타냅니다.
BillThor

1
rfc1537은이를 지정하지 않습니다. 재귀에 로컬 호스트가 있어야 함을 지정합니다. 영역과 반대 영역. 영역에 로컬 호스트 항목이 필요하다고 말하는 곳은 없습니다.
Habbie

@BillThor 이 다른 답변에 대한 의견은 RFC 1537 및 그 후속 버전 (RFC 1912)과 관련이 있습니다. Habbie가 언급했듯이이 영역 localhost. 은 우리가 가져야 할 것으로 여겨지지만 우리가 제공하는 각 영역에서 localhost 기록 을 보유하는 관행은 사라졌습니다. 호의. (이 질문은 실제로 5 년 전에 RFC 토끼 구멍을
잃게 만들었을

3

내부 이름 확인이 이름 확인을 올바르게 처리한다고 가정하면 localhost에 대한 모든 DNS 요청은 절대 외부 DNS 공급자에게 전달되지 않아야하므로 전혀 문제가되지 않습니다.

한 가지 이유 사람이 한 번에 절대 참조의 부하를 망쳐하는 웹 저작 도구를 사용하는 경우 다른 사람이 내 머리 위로 떨어져 생각할 수있는,이 작업을 수행 할 것이며, HTTP : // 로컬 호스트를 ,하지만 것으로 가정하여 ISP는 또한 DNS 박스에서 호스팅을하고 있었으며 오래 전부터 사용되었습니다.

그러나 RFC 1537 은 다음을 지정합니다.

로컬 도메인을 추가할지 여부에 대한 광범위한 논의가있었습니다. 결론은 "localhost"였습니다. 최선의 해결책이 될 것입니다. 주어진 이유는 다음과 같습니다.

  • "localhost"자체가 사용되고 일부 시스템에서는 작동 할 것으로 예상됩니다.

  • 127.0.0.1을 "localhost.my_domain"으로 변환하면 원하지 않는 루프백 인터페이스를 사용하여 일부 소프트웨어가 자체 연결될 수 있습니다.

호스트가 포함 된 모든 도메인에는 "localhost"A 레코드가 있어야합니다.

따라서 ISP가 localhost를 포함하는 것이 맞지만 정규화 된 이름을 사용하는 것은 올바르지 않은 것처럼 엄격하게 말합니다.


5
RFC-1537은 RFC-1912에 의해 사용되지 않아 Note that ...언어 를 삭제합니다 (1996 년에 우리가 알기 시작한 잠재적 XSS 문제에 대한 응답으로 추측됩니다). 1537 BIND 템플릿에있는 이유를 설명합니다.
voretaq7

example.com : localhost 영역에 이와 같은 항목이 있어야 함을 의미합니까? 127.0.0.1에서 86400; 마침표
matthew

3
1912 년 4.1 사실에 매우 명시 적이다 : ietf.org/rfc/rfc1912.txt
막시무스 최연소

RFC 1912의 4.1은 localhost 영역 이 서버에 존재해야한다고 명시되어 있습니다 (따라서 요청이 일반 "localhost"인 경우 체인을 다음 서버로 전달하지 않습니다). 까지 포함에서 울지 localhost말에 example.com(창조의 영역 localhost.example.com은 당신이해야 말을 똑같이 명시 적이다), 하지 때문에 가능한 의도하지 않은 부작용 않습니다. "localhost"는 그 자체로 특별하고 마법에 의한 정규화 된 도메인이 될 것으로 기대합니다.
voretaq7

0

포인트가 무엇인지 잘 모르겠습니다 ... 기본적으로 외부 주소는 호스트 파일에 의해 대체 될 것입니다. 호스트 파일은 거의 항상 localhost를 127.0.0.1에 매핑합니다.

그러나 기본 BIND 영역 파일에는 로컬 호스트 영역이 포함됩니다. 그것에 대해 정말 생각하지 마십시오.


로컬 호스트 영역이 아닙니다 (해당 영역을 잘못 구성하지 않은 경우). 또한 fqdn 'localhost'도 아닙니다. 일반적으로 로컬 호스트 파일에 의해 오버라이드되지 않습니다.
matthew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.