응답 오류 코드 없이 내 웹 서버에 대한 직접 IP 액세스를 차단하려면 어떻게 해야 합니까?

응답 오류 코드 없이 내 웹 서버에 대한 직접 IP 액세스를 차단하려면 어떻게 해야 합니까?

사람들이 이 질문에 대해 도움을 줄 수 있기를 바랍니다.

예:

내 도메인 이름은: example.com

내 IP 주소는 103.103.103.103입니다.

사람들이 포트 80에서 내 IP에 연결하려고 하면 어떤 요청에도 응답하지 않습니다.

다음과 같이 표시되어야 합니다. 연결 중(브라우저에서)... 응답이 없습니다.(연결할 수 없는 것처럼 보일 것입니다)

httpd.conf를 수정하려고 시도했지만(아파치 2.4를 사용하고 있습니다) 아직 성공하지 못했습니다.

인터넷 검색을 시도했지만 내 질문에 대한 결과가 없습니다.

감사합니다

답변1

요청을 원한다고 가정http://example.com귀하의 웹 사이트를 제공하고 다음을 요청합니다.http://103.103.103.103명시적으로 삭제하려면 제가 알고 있는 두 가지 주요 옵션이 있습니다.

1) 사용하는 것입니다모드_보안모듈과 drop타겟. 이런 구성이군요;

    <VirtualHost *:80>
        ServerName default.only
        SecRuleEngine On
        SecRule REMOTE_ADDR "^\d" id:'1234',drop,phase:1
    </VirtualHost>

    <Directory /var/www/example.com >
      Options FollowSymLinks
      AllowOverride FileInfo Options
      Order allow,deny
      Allow from all
    </Directory>

    <VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/example.com
    </VirtualHost>

다음 사이트로 이동하면 웹사이트가 반환됩니다.http://example.com

# wget -O-  http://example.com
--2018-03-09 15:35:35--  http://example.com/
Resolving example.com (example.com)... 127.0.0.1
Connecting to example.com (example.com)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24 [text/html]
Saving to: ‘STDOUT’

그리고 IP를 통해 기본 사이트로 이동하려고 하면http://127.0.0.1

# wget -O-  http://127.0.0.1
--2018-03-09 15:35:28--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... No data received.

연결이 끊어졌습니다.

2) 두 번째 옵션은 string모듈을 사용하는 것입니다.iptables헤더가 일치하는 연결을 삭제합니다.Host: 103.103.103.103

iptables -A INPUT -m string --string "Host: 103.103.103.103" -j DROP

(저는 iptables 규칙을 테스트하지 않았습니다...따라서 올바른 주문에 대해서는 문서를 확인해야 합니다...) 그러나 mod_security 옵션이 더 간단하다고 생각합니다.

관련 정보