Apache2 가상 호스트를 사용하여 서버의 베어 IP에 *서비스 없음*을 제공하는 방법은 무엇입니까?

Apache2 가상 호스트를 사용하여 서버의 베어 IP에 *서비스 없음*을 제공하는 방법은 무엇입니까?

Apache를 실행하는 컴퓨터에서 여러 프로젝트 사이트를 호스팅합니다. 물론 저는 가상 호스트를 사용하고 있으며 예상대로 작동합니다. 그러나 현재 머신에 액세스하고 있는 네이키드 IP는 (예상대로) 알파벳 순서로 첫 번째 가상 호스트를 생성합니다. 악의적인 행위자가 내 컴퓨터의 IP에 무작위로(아마도 반복적으로) 로그인 페이지에 스팸을 보내거나 문제를 일으키려고 하는 문제가 발생했습니다. 나는 컴퓨터의 IP에 연결하려는 누구에게도 서비스를 제공하고 싶지 않습니다.

포트 80에 빈 index.html이 있는 디렉토리를 제공하는 "000-nodomain.conf"라는 가상 호스트를 사용해 보았습니다. 하지만 서버가 응답하지 않고 디스크에서 읽는 것에 대해 걱정할 필요가 없도록 해당 디렉토리를 삭제하고 싶습니다. 최선의 시나리오에서는 서버가 도메인 이름이 없는 요청을 완전히 거부하기를 원하지만 이것이 가능한지는 확실하지 않습니다.
부가적인 질문으로, 내 IP에 SSL 인증서가 없으면(비싸요!) 포트 443을 통해 베어 IP에 액세스하려는 사람은 포트 443과 일치하는 첫 번째 가상 호스트이기 때문에 여전히 실제 사이트에서 서비스를 받게 됩니다. 포트 443에서 "일반" http 가상 호스트를 실행할 수 있습니까? Naked IP를 통해 연결하는 모든 사람의 최종 사용자 경험에는 관심이 없지만 제공되는 다른 사이트에는 영향을 미치지 않습니다.

답변1

추가 가상 호스트를 기본 사이트로 추가할 수 있는데, 이는 올바른 일입니다. 안전을 유지하려면 이 가상 호스트의 모든 것을 예외 없이 거부해야 합니다.

<directory "/">
  Require all denied
</directory>

403 Access Denied이로 인해 클라이언트가 시도하는 모든 것이 실패 하게 됩니다 .

문서 루트를 존재하지 않게 만들어도 문제가 되지 않습니다.

DocumentRoot "/does_not_exist"

Aapche가 이를 찾아야 하기 때문에 여전히 소량의 디스크 액세스가 허용되지만 /does_not_existDOS 공격이 발생하면 액세스가 캐시되어 시스템 성능에 영향을 미치지 않습니다.

어떤 정보도 시스템에서 빠져나가는 것을 허용해서는 안 됩니다.


조사실패 2 금지. 특히, 다른 액세스 로그 파일을 작성하려면 기본 가상 호스트를 설정해야 합니다. 그런 다음 이를 모니터링하고 잠재적인 공격자가 방화벽을 통과하지 못하도록 차단하도록 Fail2ban을 설정할 수 있습니다. 이렇게 하면 기본 IP에 대한 처음 몇 번의 요청 외에 다른 작업을 시도하지 못하게 됩니다.


"네이키드 IP" 가상 호스트의 포트 443에 대해 수행할 작업 이론적으로는 포트 443을 포함한 모든 포트를 통해 일반 HTTP를 제공할 수 있습니다. 그러나 이로 인해 많은 HTTP 클라이언트에서 오류가 발생합니다. 오히려 이게 더 나을 것 같아요자체 서명된 인증서 생성(당신이 좋아하는 테마나 심지어 당신의 IP도 상관없습니다). 이를 통해 SSL을 통한 HTTP 서버가 제대로 작동할 것으로 기대하는 클라이언트가 가능합니다.

귀하의 실제 사이트에 대해 인증서를 재사용하지 않을 것입니다. 이는 공격자(봇)에게 귀하가 호스팅하는 사이트에 대한 추가 정보를 제공하고 "올바른" 도메인 이름으로 다시 시도하도록 하는 데 사용될 수 있습니다.

관련 정보