遇到这种情可以建一个默认的站点 (注意,要保证这个的站点在所有站点的最前面,可以通过ip直接访问此站)
<VirtualHost *:80>
ServerAdmin webmaster@localhost DocumentRoot /var/www
<Directory />
Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny, deny from all #直接屏蔽所有人访问
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
为防止有效的恶意指向,最常见的解决思路是:1. 取消服务器上的默认站点,即保证所有站点都绑定域名,不存在空主机头,如IIS可采用该方法;
2. 删除默认网站的内容,或禁止访问默认网站,如果没有默认网站,则另外新建默认网站,一般是新建虚拟主机,并设置为默认网站的或放在其它虚拟主机的最前面,然后删除默认网站的内容,或禁止访问默认网站,如apache、tomcat、jboss和nginx均可采用该方法,IIS也可以。
3. 使用WEB服务器前端的内容过滤防火墙,禁止非服务器的域名请求进入主机。
Apache可以通过禁用第一个虚拟站点。
打开apache的配置文件,通常是httpd.conf文件,使用基于域名的访问方式。必须有下面的指令,Apache的第一个虚拟站点即为默认站点,切记,是第一个,而不是参数决定的,这点和tomcat不同,然后必须对此站点进行限制。
NameVirtualHost *
这里开始设置第一个虚拟站点,设置一个禁止访问的站点,apache则会提示403的禁止访问的错误。
<VirtualHost *>
ServerName www.firstdisabledsite.com
DocumentRoot /www/forbid
</VirtualHost>
禁止访问/www/domain目录或删除该目录下所有文件。
下面可以设置其它有效站点了,随便你再设多少个,只是端口和第一个禁止的虚拟主机相同就行
<VirtualHost *>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
这么做,随意你有多少个IP,都成功了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)