linuxApache安全配置.docx_第1页
linuxApache安全配置.docx_第2页
linuxApache安全配置.docx_第3页
linuxApache安全配置.docx_第4页
linuxApache安全配置.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一.账号设置以专门的用户帐号和组运行 Apache。1、根据需要为 Apache 创建用户、组2、参考配置操作 如果没有设置用户和组,则新建用户,并在 Apache 配置文件中指定(1) 创建 apache 组:groupadd apache(2) 创建 apache 用户并加入 apache 组:useradd apache g apache(3) 将下面两行加入 Apache 配置文件 httpd.conf 中User apacheGroup apache3、检查 httpd.conf 配置文件。 检查是否使用非专用账户(如 root)运行 apache默认一般符合要求,Linux下默认apache或者nobody用户,Unix默认为daemon用户 二.授权设置严格控制Apache主目录的访问权限,非超级用户不能修改该目录中的内容1、Apache 的 主目录对应 于 Apache Server配置文件 httpd.conf 的Server Root控制项中,应为:Server Root /usr/local/apache”2、判定条件非超级用户不能修改该目录中的内容3、检测操作尝试修改,看是否能修改4、一般为/etc/httpd目录,默认情况下属主为root:root,其它用户不能修改文件,默认一般符合要求严格设置配置文件和日志文件的权限,防止未授权访问1、chmod 600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限。2、使用命令“chmod 644 /var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限。3、/etc/httpd/conf/httpd.conf默认权限是644,可根据需要修改权限为600。4、/var/log/httpd/*.log默认权限为644,默认一般符合要求。三.日志设置设备应配置日志功能,对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的 IP 地址等内容。1、编辑 httpd.conf 配置文件,设置日志记录文件、记录内容、记录 格式。其中,错误日志:LogLevel notice #日志的级别ErrorLog /logs/error_log #日志的保存位置(错误日志)访问日志:LogFormat %h %l %u %t ”%r” %s %b “%Accepti”%Refereri” ”%User-Agenti”combinedCustomLog /logs/access_log combined (访问日志)ErrorLog 指令设置错误日志文件名和位置。错误日志是最重要的 日志文件,Apache httpd 将在这个文件中存放诊断信息和处理请 求中出现的错误。若要将错误日志送到 Syslog,则设置: ErrorLog syslog。CustomLog 指令指定了保存日志文件的具体位置以及日志的格式。访问日志中会记录服务器所处理的所有请求。LogFormat 设置日志格式,建议设置为 combined 格式。LogLevel 用于调整记录在错误日志中的信息的详细程度,建议设置为notice。日志的级别,默认是warn,notice级别比较详细,在实际中由于日志会占用大量硬盘空间,一般没有设置四.禁止访问外部文件禁止 Apache 访问 Web 目录之外的任何文件。1、参考配置操作编辑 httpd.conf 配置文件,Order Deny,AllowDeny from all2、设置可访问目录,Order Allow,DenyAllow from all其中/web 为网站根目录3、默认配置是Options FollowSymLinksAllowOverride None一般可根据需要设置五.目录列出禁止 Apache 列表显示文件1、 编辑 httpd.conf 配置文件。Options Indexes FollowSymLinks #删掉IndexesAllowOverride NoneOrder allow,denyAllow from all将Options Indexes FollowSymLinks 中的 Indexes 去掉,就可以禁 止 Apache 显示该目录结构。Indexes 的作用就是当该目录下没 有 index.html 文件时,就显示目录结构。2、重新启动 Apache 服务3、可以设置 /etc/httpd/httpd.conf 段中删除Options的Indexes设置 一般可根据需要设置六.错误页面重定向Apache 错误页面重定向1、修改 httpd.conf 配置文件:ErrorDocument 400 /custom400.htmlErrorDocument 401 /custom401.htmlErrorDocument 403 /custom403.htmlErrorDocument 404 /custom404.htmlErrorDocument 405 /custom405.htmlErrorDocument 500 /custom500.html Customxxx.html 为要设置的错误页面。2、重新启动 Apache 服务3、此项需要应用系统设有错误页面,或者不在httpd中设置完全由业务逻辑实现,可不做七.拒绝服务防范根据业务需要,合理设置 session 时间,防止拒绝服务攻击1、编辑 httpd.conf 配置文件,Timeout 10 #客户端与服务器端建立连接前的时间间隔KeepAlive OnKeepAliveTimeout 15 #限制每个 session 的保持时间是 15 秒 注:此处为一建议值,具体的设定需要根据现实情况。 2、重新启动 Apache 服务3、默认Timeout 120 KeepAlive Off,KeepAliveTimeout 15,该项设置涉及性能调整,一般不做。八.隐藏 Apache 的版本号隐藏 Apache 的版本号及其它敏感信息。1、配置操作修改 httpd.conf 配置文件: ServerSignature Off ServerTokens Prod2、默认是 ServerSignature On,ServerTokens OS,可以设置九.关闭 TRACE关闭 TRACE,防止 TRACE 方法被访问者恶意利用1、 配置修改vim /etc/httpd/conf/httpd.conf添加 “TraceEnable Off”注:适用于 Apache 2.0 以上版本2、默认没有该项设置,可以做。十.禁用 CGI如果服务器上不需要运行 CGI 程序,建议禁用 CGI1、 修改配置vim /etc/httpd/conf/httpd.conf把 cgi-bin 目录的配置和模块都注释掉#LoadModule cgi_module modules/mod_cgi.so#ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”#AllowOverride None# Options None#Order allow,deny#Allow from all#”2、 根据需要设置,如果没有CGI程序,可以关闭十一.监听地址绑定服务器有多个 IP 地址时,只监听提供服务的 IP 地址1、 修改配置vim /etc/httpd/conf/httpd.con修改Listen x.x.x.x:802、检测操作使用命令“cat /etc/httpd/conf/httpd.conf|grep Listen”查看是否 绑定 IP 地址3、默认设置是Listen 80监听所有地址,如果服务器只有一个IP地址可不做该项设置,如果有多个IP可以按照需要设。 十二.删除缺省安装的无用文件删除缺省安装的无用文件。1、参考配置操作删除缺省 HTML 文件:# rm -rf /usr/local/apache2/htdocs/*删除缺省的 CGI 脚本:# rm rf /usr/local/apache2/cgi-bin/*删除 Apache 说明文件:# rm rf /usr/local/apache2/manual删除源代码文件:( )# rm -rf /path/to/httpd-2.2.4* 根据安装步骤不同和版本不同,某些目录或文件可能不存在或位置不同。2、可根据实际情况删除,一般是 /var/www/html /var/www/cgi-bin 默认就是空的十三.禁用非法 HTTP 方法禁用PUT、DELETE等危险的HTTP 方法;1、 编辑 httpd.conf 文件。只允许 get、post 方法Deny from all2、补充操作说明”2、检测操作查看 httpd.conf 文件,检查如下内容,是否只允许 get、post方法Deny from all” 3、根据需要可设置,如果没有不需要用到put delete HTTP 方法的话,加在/etc/httpd/conf/httpd.conf的段中。Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。站点的配置(基本配置)(1) 基本配置:ServerRoot/mnt/software/apache2 #你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。Listen 80 #服务器监听的端口号。ServerNamewww.manyi.cc:80 #主站点名称(网站的主机名)。ServerAdminadminmanyi.cc #管理员的邮件地址。DocumentRoot /mnt/web/clusting #主站点的网页存储位置。以下是对主站点的目录进行访问控制:Directory /mnt/web/clustingOptions FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all在上面这段目录属性配置中,主要有下面的选项:Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:ExecCGI: 在该目录下允许执行CGI脚本。FollowSymLinks: 在该目录下允许文件系统使用符号连接。Indexes:当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。All: 在.htaccess文件中可以使用所有的指令。其他的可用值及含义(如:Options FileInfo AuthConfig Limit等),请参看: /Apache/ApacheManual/mod/core.html#AllowOverrideOrder:控制在访问时Allow和Deny两个访问规则哪个优先:Allow:允许访问的主机列表(可用域名或子网,例如:Allow from /16)。Deny:拒绝访问的主机列表。DirectoryIndexindex.html index.htm index.php #主页文件的设置(本例将主页文件设置为:index.html,index.htm和index.php)(2) 服务器的优化 (MPM: Multi-Processing Modules)apache2主要的优势就是对多处理器的支持更好,在编译时同过使用-with-mpm选项来决定apache2的工作模式。如果知道当前的apache2使用什么工作机制,可以通过httpd -l命令列出apache的所有模块,就可以知道其工作方式:prefork:如果httpd -l列出prefork.c,则需要对下面的段进行配置:StartServers 5 #启动apache时启动的httpd进程个数。MinSpareServers 5 #服务器保持的最小空闲进程数。MaxSpareServers 10 #服务器保持的最大空闲进程数。MaxClients 150 #最大并发连接数。MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。在该工作模式下,服务器启动后起动5个httpd进程(加父进程共6个,通过ps -ax|grep httpd命令可以看到)。当有用户连接时,apache会使用一个空闲进程为该连接服务,同时父进程会fork一个子进程。直到内存中的空闲进程达到MaxSpareServers。该模式是为了兼容一些旧版本的程序。我缺省编译时的选项。worker:如果httpd -l列出worker.c,则需要对下面的段进行配置:StartServers 2 #启动apache时启动的httpd进程个数。MaxClients 150 #最大并发连接数。MinSpareThreads 25 #服务器保持的最小空闲线程数。MaxSpareThreads 75 #服务器保持的最大空闲线程数。ThreadsPerChild 25 #每个子进程的产生的线程数。MaxRequestsPerChild 0 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。该模式是由线程来监听客户的连接。当有新客户连接时,由其中的一个空闲线程接受连接。服务器在启动时启动两个进程,每个进程产生的线程数是固定的(ThreadsPerChild决定),因此启动时有50个线程。当50个线程不够用时,服务器自动fork一个进程,再产生25个线程。perchild:如果httpd -l列出perchild.c,则需要对下面的段进行配置:NumServers 5 #服务器启动时启动的子进程数StartThreads 5 #每个子进程启动时启动的线程数MinSpareThreads 5 #内存中的最小空闲线程数MaxSpareThreads 10 #最大空闲线程数MaxThreadsPerChild 2000 #每个线程最多被请求多少次后退出。0不受限制。MaxRequestsPerChild 10000 #每个子进程服务多少次后被重新fork。0表示不受限制。该模式下,子进程的数量是固定的,线程数不受限制。当客户端连接到服务器时,又空闲的线程提供服务。 如果空闲线程数不够,子进程自动产生线程来为新的连接服务。该模式用于多站点服务器。(3) HTTP返头回信息配置:ServerTokens Prod #该参数设置http头部返回的apache版本信息,可用的值和含义如下:Prod:仅软件名称,例如:apacheMajor:包括主版本号,例如:apache/2Minor:包括次版本号,例如:apache/2.0Min:仅apache的完整版本号,例如:apache/2.0.54OS:包括操作系统类型,例如:apache/2.0.54(Unix)Full:包括apache支持的模块及模块版本号,例如:Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7gServerSignature Off #在页面产生错误时是否出现服务器版本信息。推荐设置为Off(4) 持久性连接设置KeepAlive On #开启持久性连接功能。即当客户端连接到服务器,下载完数据后仍然保持连接状态。MaxKeepAliveRequests 100 #一个连接服务的最多请求次数。KeepAliveTimeout 30 #持续连接多长时间,该连接没有再请求数据,则断开该连接。缺省为15秒。别名设置对于不在DocumentRoot指定的目录内的页面,既可以使用符号连接,也可以使用别名。别名的设置如下:Alias /download/ /var/www/download/ #访问时可以输入:/download/#对该目录进行访问控制设置Options Indexes MultiViewsAllowOverride AuthConfigOrder allow,denyAllow from allCGI设置ScriptAlias /cgi-bin/ /mnt/software/apache2/cgi-bin/ # 访问时可以:/cgi-bin/ 。但是该目录下的CGI脚本文件要加可执行权限!#设置目录属性AllowOverride NoneOptions NoneOrder allow,denyAllow from all个人主页的设置 (public_html)UserDir public_html (间用户的主页存储在用户主目录下的public_html目录下 URL /bearzhang/file.html 将读取 /home/bearzhang/public_html/file.html 文件)chmod 755 /home/bearzhang #使其它用户能够读取该文件。UserDir /var/html (the URL /bearzhang/file.html 将读取 /var/html/bearzhang

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论