Linux环境下,apache设置禁止恶意域名绑定和直接ip访问方法

原创 2016年08月30日 09:43:17

       为了防止恶意域名绑定到自己的服务器ip上以及直接通过ip访问方式访问。我们可以通过apache配置可以实现这一目的,具体操作步骤如下。

第一步,httpd.conf配置设置

  • 启用虚拟主机、ssl、重写模块

LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule ssl_module modules/mod_ssl.so

  • 禁用根目录访问

<Directory />
    AllowOverride None
    Require all denied
</Directory>

  • 允许htdocs目录访问

DocumentRoot "/usr/local/httpd/htdocs"
<Directory "/usr/local/httpd/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #

    # cache 
       

    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all denied
</Directory>

httpd-vhosts.conf中配置

   将所有未知的域名访问和直接的ip访问独立一个虚拟主机,并将该主机设置为拒绝访问。对于正式域名访问独立一个虚拟主机访问,并设置为允许访问。注意必须将拒绝的虚拟主机放在第一个。

<VirtualHost *:80>
    ServerAdmin unAllowedDomain
    DocumentRoot "/usr/local/httpd/htdocs"
    ErrorLog "/home/logs/apache/unAllowedDomain-error_log"
    CustomLog "/home/logs/apache/unAllowedDomain-access_log" common
    <Directory "/usr/local/httpd/htdocs">
        AllowOverride None
        Require all denied
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin xxxx.cn
    ServerName www.xxxx.cn
    ServerAlias xxxx.cn
    DocumentRoot "/usr/local/httpd/htdocs"
    ErrorLog "/home/logs/apache/xxxx-error_log"
    CustomLog "/home/logs/apache/xxxx-access_log" common

    <Directory "/usr/local/httpd/htdocs">
        AllowOverride all
        Require all granted
    </Directory>
</VirtualHost>

httpd-ssl.conf中配置

如果使用了ssl证书访问,这个时候像拒绝https://ip访问需要做如下操作。仍然需要创建一个不允许域名访问虚拟主机站点,并设置为拒绝状态,并且放在第一个。ssl虚拟主机需要注意以下两点:

  • serverName必须带上端口号,80端口是默认的因此不需要带端口号
  • xxxx.cn无法作为别名进行访问,ServerAlias xxxx.cn:443是无效的,因此需要单独一个虚拟主机站点访问

<VirtualHost *:443>
	DocumentRoot "/usr/local/httpd/htdocs"
	ServerAdmin unAllowedDomain
	ErrorLog "/usr/local/httpd/logs/error_log"
	TransferLog "/usr/local/httpd/logs/access_log"

	SSLEngine on

	SSLCertificateFile "/usr/local/httpd/conf/server.crt"
	SSLCertificateKeyFile "/usr/local/httpd/conf/server.key"
	SSLCertificateChainFile "/usr/local/httpd/conf/server-ca.crt"

	<FilesMatch "\.(cgi|shtml|phtml|php)$">
	    SSLOptions +StdEnvVars
	</FilesMatch>

	<Directory "/usr/local/httpd/htdocs">
	    SSLOptions +StdEnvVars
	    AllowOverride None
	    Require all denied
	</Directory>

	<Directory "/usr/local/httpd/cgi-bin">
	    SSLOptions +StdEnvVars
	    AllowOverride None
            Require all denied
	</Directory>

	BrowserMatch "MSIE [2-5]" \
		 nokeepalive ssl-unclean-shutdown \
		 downgrade-1.0 force-response-1.0

	CustomLog "/usr/local/httpd/logs/ssl_request_log" \
		  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>                                                                       
  
<VirtualHost *:443>
	DocumentRoot "/usr/local/httpd/htdocs"
	ServerName www.xxxx.cn:443
	ServerAdmin you@example.com
	ErrorLog "/usr/local/httpd/logs/error_log"
	TransferLog "/usr/local/httpd/logs/access_log"

	SSLEngine on
	SSLCertificateFile "/usr/local/httpd/conf/server.crt"
	SSLCertificateKeyFile "/usr/local/httpd/conf/server.key"
	SSLCertificateChainFile "/usr/local/httpd/conf/server-ca.crt"

	<FilesMatch "\.(cgi|shtml|phtml|php)$">
	    SSLOptions +StdEnvVars
	</FilesMatch>

        <Directory "/usr/local/httpd/htdocs">
            AllowOverride all
            Require all granted
        </Directory>
        <Directory "/usr/local/httpd/cgi-bin"> 
            SSLOptions +StdEnvVars
        </Directory>
 
        BrowserMatch "MSIE [2-5]" \ 
        nokeepalive ssl-unclean-shutdown \ 
        downgrade-1.0 force-response-1.0CustomLog "/usr/local/httpd/logs/ssl_request_log" \ 
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
<VirtualHost *:443>
    DocumentRoot "/usr/local/httpd/htdocs"
    ServerName xxxx.cn:443
    ServerAdmin you@example.com
    ErrorLog "/usr/local/httpd/logs/error_log"
    TransferLog "/usr/local/httpd/logs/access_log"
    SSLEngine onSSLCertificateFile "/usr/local/httpd/conf/server.crt"
    SSLCertificateKeyFile "/usr/local/httpd/conf/server.key"
    SSLCertificateChainFile "/usr/local/httpd/conf/server-ca.crt"
    <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars</FilesMatch>
    <Directory "/usr/local/httpd/htdocs">
<pre name="code" class="html">         AllowOverride all
         Require all granted
    </Directory>
<Directory "/usr/local/httpd/cgi-bin"> SSLOptions +StdEnvVars</Directory>
BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/usr/local/httpd/logs/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \
"%r\" %b"
</VirtualHost>




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

apache防止恶意解析

1、Apache2.4.1以前:第一种 直接拒绝访问打开 httpd.conf 文件,将一下配置追加到文件最后。 [html] view plain copy #直接拒绝所有非法域名 ...

网站绑定域名后不能用IP直接访问了?

我的一个vps由于只作数据处理,不用别人访问,因为一直以来都是用IP直接访问的。由于某些原因,现在需要绑定一个域名访问,于是我做了域名解析和在vps的IIS上绑定了域名,接着测试成功与否,域名访问没有...

如何防恶意解析,禁止用IP访问网站的Apache设置?

一般来说,网站可以用域名和IP来访问。你的网站可以通过IP直接访问,本来这没什么问题,但是会有些隐患: 由于搜索引擎也会收录你的IP地址的页面,所以同一个页面搜索引擎会重复收录,造成页面的权重不...

tomcat设置不需要项目名便可访问项目(直接用域名或者ip和端口访问)

实际生产中往往访问web项目要求直接使用ip+por或者使用域名t便可直接访问项目,不加/项目名称。配置起来其实是非常简单。 在tomcat\conf目录下找到server.xml,在配置里面添加一行...

阿里云服务器linux环境,从启动tomcat服务器外网访问--->绑定域名--->Navicat远程连接mysql--->阿里云服务器部署项目过程中,一定会遇到的五大问题;

既然网上有这么多丰富的资源,我们就要学会如何利用这些资源,在这里我总结了一下,下面的这些参考网址都是各位大神的心血,我只是把这些最实用,最适用的资料归纳到了一块,供学习阿里云服务器Linux环境的新同...

win2003+Apache2.2虚拟主机配置(单IP绑定多域名)之-- 网上的教程真坑爹

win2003+Apache2.2虚拟主机配置(单IP绑定多域名)之-- 网上的教程真坑爹

防止恶意解析 - 禁止通过ip直接访问到网站

什么是恶意解析?    一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名...

apache域名绑定(appserv环境)

----假定你的服务器网站根目录下有两个子目录,一个为 /appserv/www/web01,另一个为 /appserv/www/web02 。现在你想访问 www.web01.com 对应的目录是 ...

phpnow安装apache失败及phpnow绑定域名解决方法,网站发布到外网

安装PHPnow时如果遇到下列问题:  安装服务[apache_pn]失败.可能原因如下:  1. 服务名已存在,请卸载或使用不同的服务名.  2. 非管理员权限,不能操作 Wi...

防恶意解析,禁止用IP访问网站的Apache设置+如何阻止网站被恶意反向代理访问

一般来说,网站可以用域名和IP来访问。你的网站可以通过IP直接访问,本来这没什么问题,但是会有些隐患: 由于搜索引擎也会收录你的IP地址的页面,所以同一个页面搜索引擎会重复收录,造成页面的权重不...
  • zqtsx
  • zqtsx
  • 2014-03-25 11:03
  • 2918
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)