Am un Load Balancer furnizat de Digital Ocean care are un IPv4 public, care poate fi accesat prin HTTP și HTTPs de către orice utilizator (nu există nicio modalitate de a bloca la sursă).
Pentru a împiedica utilizatorii și scripturile să acceseze serverul direct prin IP, am adăugat o regulă în VirtualHost pe serverele Apache (VPS).
În testele mele, returnarea este întotdeauna 403, adică teoretic a funcționat blocul de acces IP.
Dar am observat că a existat un acces cu IP-ul privat al echilibratorului de încărcare (LAN of VPS) care a returnat codul HTTP 200, adică persoana/scriptul s-a putut conecta cu succes (Public-IPv4-Load-Balancer > Rețea locală > VPS-ul meu).
Mai jos este restricția din VirtualHost 000-default.conf, atât pentru HTTP, cât și pentru HTTPS (Această setare este aceeași pe ambele servere Apache (VPS)).
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
LogLevel notice core:info
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorLog syslog:local1
Header append X-FRAME-OPTIONS "SAMEORIGIN"
</VirtualHost>
<VirtualHost *:80>
ServerName VPS-PUBLIC-IP
Redirect 403 /
ErrorDocument 403 "The operation had an error."
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName LOAD-BALANCER-PUBLIC-IPV4
Redirect 403 /
ErrorDocument 403 "The operation had an error."
DocumentRoot /var/www/html
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName LOAD-BALANCER-PUBLIC-IPV4
Redirect 403 /
ErrorDocument 403 "The operation had an error."
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Acesta este jurnalul de acces reușit.
PRIVATE-IP-LOAD-BALANCER - - [15/Jun/2021:11:20:10 -0300] "GET / HTTP/1.0" 200 1223 "-" "https://example.com:Company-Censured Analyze Provides ."
Există setări incorecte pe serverul meu?