IP 주소로 웹사이트에 대한 액세스를 제한합니다.

IP 주소로 웹사이트에 대한 액세스를 제한합니다.

포트 80/tcp를 통해 내 웹 사이트에 액세스하면 www.mysite.comhttps 443/tcp로 리디렉션됩니다. 그것은 중요하지 않습니다.
하지만 IP 주소를 통해 링크를 방문하면 https://xx.xx.xx.xx쉽게 액세스할 수
있고 신뢰할 수 없는 사이트가 표시됩니다.

IP 주소로 내 웹사이트에 대한 액세스를 제한하고 싶습니다.
내 웹 서버는 아파치입니다
. 000-default.conf에 다음 코드 줄을 추가해 보았습니다.

<VirtualHost *:80>
ServerName xx.xx.xx.xx (ip address)
Redirect 403 /
ErrorDocument 403 “Sorry, direct IP access not allowed.”
DocumentRoot /dev/null/
UseCanonicalName Off
</VirtualHost>

아파치를 다시 시작하는 동안 오류가 발생했습니다.

현재 Apache에는 다음 구성이 있습니다.

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
Redirect / https://www.mysite.com/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

이 목표를 어떻게 달성할 수 있나요? 감사해요.

답변1

이것은 잘못된 것입니다:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
Redirect / https://www.mysite.com/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

리디렉션하기 때문에모든 것. 거기에 403 거부를 넣어야 합니다. 그런 다음 적절한 서버 이름을 사용하여 서버에 리디렉션을 복사합니다 001-yoursite.conf. 그러면 http://yoursite는 https://yoursite로 리디렉션되지만 http://IPADDRESS는 기본값에 도달하므로 반송됩니다. http://anyothersite에서도 마찬가지입니다.

그럼 당신은반품SSL용 기본 서버(000-default-ssl.conf인 것 같습니다)를 추가하고 이를 거부해야 합니다. 따라서 *:443"무엇이든"이 로그인할 서버 이름과 일치하지 않는 한 https://whatever는 반송됩니다 001-yoursite-ssl.conf.

DocumentRoot를 지정할 필요가 없습니다.게시만 하면 403 Forbidden오류 로그와 액세스 로그에 대해 걱정할 필요가 없으며 어쨌든 봇 트래픽일 뿐입니다(정말 필요한 경우 아주 작은 access_log 형식을 정의할 수 있습니다. 소스 IP만 사용하면 됩니다. 봇 분류를 위한 사용자 에이전트가 있습니다).

관련 정보