我希望人们可以帮助我解决这个问题。
例子:
我的域名是:example.com
我的 IP 地址是 103.103.103.103
当人们尝试通过端口 80 连接到我的 IP 时,它不会响应任何请求。
它应该显示:正在连接(在浏览器上)...没有响应。(看起来像无法连接)
我曾尝试修改 httpd.conf(我使用的是 apache 2.4)但尚未成功。
我尝试用谷歌搜索,但没有找到与我的问题相关的结果。
谢谢
答案1
假设您希望请求http://example.com为您的网站提供服务,并请求http://103.103.103.103据我所知,要明确删除你有两个主要选项。
1)是使用mod_security模块和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 选项更简单