lujiguo115 发表于 2018-11-23 09:08:36

apache-安全加固

  转自:http://blog.chinaunix.net/space.php?uid=21089721&do=blog&id=367682
  一、APACHE的安装
  软件:httpd-2.0.64.tar.bz2 系统:RHEL5.5
  apache现在分为两个版本1.x和2.x,下载地址:http://httpd.apache.org/
  解压:
  # tar xvfhttpd-2.0.64.tar.bz2
  配置:
  # ./configure--prefix=/opt/apache2
  /opt/apache2为安装目录
  安装:
  # make&& make install
  启动:
  #/opt/apache2/bin/apachectl start
  停止:
  #/opt/apache2/bin/apachectl stop
  二、APACHE配置
  apche基本配置文件为httpd.conf,路径/opt/apache2/conf/httpd.conf。
  1、端口监听
  Listen 80
  80为所要监听的端口,可配置多个Listen。
  2、管理员邮箱
  ServerAdmin you@example.com
  设置管理员邮箱。
  3、域名设置
  ServerName www.example.com:80
  servername为网站域名,也可直接写网站IP地址。
  4、设置WEB主目录
  DocumentRoot"/opt/apache2/htdocs"
  /opt/apache2/htdocs为网站主目录,这里将其设为/opt/www
  特别注意:
  a、这里的路径要与httpd.conf下文
  中的路径保持一致。
  即
  b、目录后面不要跟”/”
  5、目录权限配置
  目录权限配置格式:
  
  …………
  
  Options Indexes FollowSymLinks 禁止目录浏览,去掉Indexes即可在没有主页(如index.html)的情况下浏览目录。
  AllowOverride None 是否允许读取.htaccess文件,设为ALL时,具有“.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。
  Order allow,deny 设置浏览权限。deny的优先级大于allow。即后面的优先级大于前面。allow和deny的具体规则参照下面两条
  allow from all
  deny from 192.168.1.10
  这三条语句合起来意思就是除了192.168.10以外的所以的请求都被允许。
  6、主页配置
  DirectoryIndex index.htmlindex.html.var
  在DirectoryIndex后面加入首页名称,优先级从前到后。
  三、APACHE日志切割
  httpd.conf中错误日志和访问日志格式:
  ErrorLog logs/error_log
  CustomLog logs/access_log common
  apache日志切割有两种方式cronolog和rotatelogs
  1、rotatelogs
  rotatelogs为apache自带日志工具,位于/opt/apache2/bin/rotatelogs
  错误日志:
  ErrorLog "|bin/cronolog/opt/logs/error_%Y%m%d.log 86400"
  访问日志:
  CustomLog "|bin/cronolog/opt/logs/access_%Y%m%d.log 86400" combined
  2、cronolog
  cronolog下载地址:http://cronolog.org/download/index.html
  解压:
  # tar zxvfcronolog-1.6.2.tar.gz
  配置:
  #./configure
  安装:
  # make&& make install
  错误日志:
  ErrorLog "|/usr/local/sbin/cronolog/opt/logs/error_%Y%m%dlog 86400”
  访问日志:
  CustomLog "|/usr/local/sbin/cronolog/opt/logs/access_%Y%m%dlog 86400”
  combined
  注:a、common通用日志模式 combined组合日志模式
  combined比common多记录两个信息。
  b、86400为24小时,表示24小时日志回滚一次。
  c、cronolog与rotatelogs的区别。当所设置的日志存放路径不存在时,cronolog会自动创建,而rotatelogs则不会,因此使用rotatelogs时应确保日志文件夹已经建立。
  效果:
  # cd/opt/logs
  # ls
  access_20110611log error_20110611log
  四、APACHE虚拟主机
  http.conf中虚拟主机模板:
  #
  # ServerAdmin webmaster@dummy-host.example.com
  # DocumentRoot /www/docs/dummy-host.example.com
  # ServerName dummy-host.example.com
  # ErrorLog logs/dummy-host.example.com-error_log
  # CustomLog logs/dummy-host.example.com-access_log common
  #
  Server Admin:管理员Email
  DocumentRoot:WEB路径
  ServerName:访问域名或IP
  ErrorLog:错误日志
  CustomLog:访问日志
  例:
  
  ServerAdmin dezon@vip.qq.com
  DocumentRoot /opt/www/web1
  ServerName www.example.com.cn
  ErrorLog "|bin/cronolog/opt/logs/w1error_%Y%m%d.log 86400"
  CustomLog "|bin/cronolog/opt/logs/w1access_%Y%m%d.log 86400" combined
  
  根据实际情况有时还需设置NameVirtualHost
  五、APACHE安全加固
  1、禁止TRACE漏洞
  在各虚拟主机的配置文件里添加如下语句:
  RewriteEngine on
  RewriteCond %{REQUEST_METHOD}^(TRACE|TRACK)
  RewriteRule .* –
  或使用
  SetEnvIfNoCase Request_Method^(TRACE|TRACK) IS_TRACE
  
  Order Allow,Deny
  Allow from all
  Deny from env=IS_TRACE
  
  2、禁止IP直接访问(仅使用域名访问)
  首先建一空目录如/opt/www/aa,然后建以虚拟主机,将所有IP请求的访问都指向/opt/www/aa。如:
  
  ServerName 192.168.0.101
  RewriteEngine on
  RewriteCond %{REQUEST_METHOD}^(TRACE|TRACK)
  RewriteRule .* -
  DocumentRoot/opt/aa
  

页: [1]
查看完整版本: apache-安全加固