(CentOSNginxPHPMysql)配置和WEB服务器安全配置方案.doc_第1页
(CentOSNginxPHPMysql)配置和WEB服务器安全配置方案.doc_第2页
(CentOSNginxPHPMysql)配置和WEB服务器安全配置方案.doc_第3页
(CentOSNginxPHPMysql)配置和WEB服务器安全配置方案.doc_第4页
(CentOSNginxPHPMysql)配置和WEB服务器安全配置方案.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

服务器的安全设置及其他主要内容: 设置Ngnix可提供AVI、MP3等的下载 设置网站并发数限制 设置nginx程序限制的1M上传问题 优化PHP 优化mysql mysql的安全设置 系统整体安全调整设置Ngnix可提供AVI、MP3等的下载# vi /usr/local/webserver/nginx/conf/mime.types 1. 编辑mime.types文件 将需要提供下载的格式前的文件类型修改为”application/octet-stream” # vi /usr/local/webserver/nginx/conf/mime.types.default 2. 编辑mime.types.default文件 将需要提供下载的格式前的文件类型修改为”application/octet-stream”设置网站并发数限制 已在配置nginx.conf文件时加入并发数限制,具体参见官方维基百科(/NginxChsHttpLimit_zoneModule)”httplimit_zonemodule “部分设置nginx程序限制的1M上传问题 已在配置nginx.conf文件时取消1M上传限制,具体参见nginx.conf文件内注释优化PHP 具体参见(/bbs/blogs/1/blog312.html)”php 优化设置”部分 此处仅设置部分必要内容# vi /usr/local/webserver/php/etc/php.ini 编辑php.ini文件1.将“disable_functions =” 修改为 “disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status” *这条建议在网站建成之后修改*该选项可以设置哪些PHP函数是禁止使用的,PHP中有一些函数的风险性还是相当大的,可以直接执行一些系统级脚本命令,如果允许这些函数执行,当PHP程序出现漏洞时,损失是非常严重的! 需注意:如果您的服务器中含有一些系统状态检测的PHP程序,则不要禁用shell_exec,proc_open,proc_get_status等函数。2.将“upload_max_filesize = 2M” 修改为 “upload_max_filesize = 50M” 该选项设定PHP所能允许最大上传文件大小,默认为2MB。根据实际应用需求,可以适当增大该设置。优化mysql 具体参见(/bbs/blogs/1/blog312.html)”mysql 优化及安全设置”部分 此处仅设置部分必要内容# vi /usr/local/webserver/mysql/f 编辑f文件1.将“table_cache = 64 修改为 “table_cache = 512 指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间 的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果您发现open_tables等于 table_cache,并且opened_tables在不断增长,那么您就需要增加table_cache的值了(上述状态值可以使用show status like ‘Open_tables获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。2.将“sort_buffer_size = 512k” 修改为 “sort_buffer_size = 2M” 每个线程排序所需的缓冲3.将“read_buffer_size = 128k” 修改为 “read_buffer_size = 2M” 当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果您认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。4.将“read_rnd_buffer_size = 512k” 修改为 “read_rnd_buffer_size = 4M” 加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处5.将“myisam_sort_buffer_size = 8M” 修改为 “myisam_sort_buffer_size = 32M” 用于REPAIR TABLE。不明白这个选项的用处,百度上找到的设置方向也是五花八门,有128M、64M、32M等,折中选一个。mysql的安全设置 具体参见(/bbs/blogs/1/blog312.html)”Mysql 的安全设置”部分 此处仅设置部分必要内容*iptables中设置*关闭远程连接,即3306端口。这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连 接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过 MySQL的内建安全机制。(您必须确定,您是否真的不需要远程连接mysql)系统整体安全调整1、*最后设置*RHEL或Red Had Enterprise Linux 5.X 的用户要首先要打开SElinux,方法是修改/etc/selinux/config文件中的SELINUX=” 为enforcing 。它可以保证您的系统不会非正常的崩溃。有些人认为应该关闭,我强烈不推荐,当然只是将RHEL用来玩玩,不是用于实际服务器则无所谓了。 2、*最后设置*启用iptables 防火墙,对增加系统安全有许多好处。设置好防火墙的规则。 iptables要求: * 屏蔽所有端口 * 把SSH的缺省端口设置为56565 * 把56565、80、3306端口打开 * 把3306端口设置为只允许本机访问Iptables规则: # vi /usr/local/webserver/fw.sh 将以下脚本命令粘贴到 fw.sh 文件中 #!/bin/bash # Stop iptables service /sbin/service iptables stop # Inital chains default policy /sbin/iptables -F -t filter /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT # Enable Native Network Transfer /sbin/iptables -A INPUT -i lo -j ACCEPT # Accept Established Connections /sbin/iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT # ICMP Control /sbin/iptables -A INPUT -p icmp -m limit limit 1/s limit-burst 10 -j ACCEPT # WWW Service /sbin/iptables -A INPUT -p tcp dport 80 -j ACCEPT # SSH Service /sbin/iptables -A INPUT -p tcp dport 56565 -j ACCEPT # Anti DDOS /sbin/iptables -I INPUT -p tcp syn -m ttl ttl-eq 117 -j DROP /sbin/iptables -I INPUT -p tcp syn -m length length :40 -j DROP # mysql 3306 Accept /sbin/iptables -A INPUT -p tcp -s dport 3306 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -s dport 3306 -j ACCEPT # Start iptables service /sbin/service iptables start保存后执行以下命令 # chmod 755 /usr/local/webserver/fw.sh # echo /usr/local/webserver/fw.sh /etc/rc.d/rc.local # /usr/local/webserver/fw.sh3、执行setup关闭那些不需要的服务,少开一个服务,就少一个危险,已在中设置 4、禁止Control-Alt-Delete键盘关闭命令 在”/etc/inittab”文件中注释掉下面这行(使用#): # vi /etc/inittab 将”ca:ctrlaltdel:/sbin/shutdown -t3 -r now” 修改为: “#ca:ctrlaltdel:/sbin/shutdown -t3 -r now” 为了使这项改动起作用,输入下面这个命令: # /sbin/init q 5、给”/etc/rc.d/init.d”下script文件设置权限 给执行或关闭启动时执行的程序的script文件设置权限。 # chmod -R 700 /etc/rc.d/init.d/* 这表示只有root才允许读、写、执行该目录下的script文件。 6、使”/etc/services”文件免疫 使”/etc/services”文件免疫,防止未经许可的删除或添加服务: #chattr +i /etc/services 7.阻止您的系统响应任何从外部/内部来的ping请求。 既然没有人能ping通您的机器并收到响应,您可以大大增强您的站点的安全性。您可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行。 # vi /etc/rc.d/rc.local echo 1 /proc/sys/net/ipv4/icmp_echo_ignore_all 8、对您的系统上所有的用户设置资源限制可以防止DoS类型攻击(denial of service attacks) 如最大进程数,内存数量等。例如,对所有用户的限制象下面这样: # vi /etc/security/limits.conf 下面的代码示例中,所有用户每个会话都限制在 10 MB,并允许同时有四个登录。第三行禁用了每个人的内核转储。第四行除去了用户 bin 的所有限制。 * hard rss 10000 * hard maxlogins 4 * hard core 0 bin - 激活这些限制 # vi /etc/pam.d/login 底部添加一行: session required /lib/security/pam_limits.so。 9、用chattr命令给下面的文件加上不可更改属性。 # chattr +i /etc/passwd # chattr +i /etc/shadow # chattr +i /etc/group # chattr +i /etc/gshadow *mysql数据库密码变更后再设置*注意执行这个操作后,以root身份都不能向系统增加用户或者修改密码了。 如果我们要增加用户或者修改密码的。应该先用chattr -i /etc/passwd等命令解除不可写设置,再进行操作。 10、修改sshd的端口: 修改防火墙配置,开启新的远程端口(56565) # vi /etc/sysconfig/iptables修改/etc/ssh/sshd_config: # vi /etc/ssh/sshd_config 将里面的 Port 改为 56565,(具体的端口随意,不能和其他程序的端口冲突)。并注释掉前面的#号使sshd服务生效: # pkill sshd # service sshd start修改防火墙配置,关闭旧的远程端口(22) # vi /etc/sysconfig/iptables 注意:修改了防火墙配置文件后不得再使用setup修改防火墙设置,否则现在的设置会失效 11、 内核参数调整 编辑sysctl.conf文件: # vi /etc/sysctl.conf 修改如下: net.ipv4.conf.default.accept_source_route=0 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.icmp_echo_ignore_all=1 net.ipv4.icmp_ignore_bogus_error_responses=1 net.ipv4.ip_conntrack_max=65535 net.ipv4.tcp_syn_retries=1 net.ipv4.tcp_synack_retries=1 net.ipv4.route.gc_timeout=100 net.ipv4.tcp_max_syn_backlog=32768 net.ipv4.conf.default.rp_filter=0 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 kernel.shmmax = 134217728 查看状态: # sysctl -p 12、经常检查系统日志。系统日志主要位于/var/log/目录下。防患于未然。- 数据自动备份主要内容: 安装NCFTP软件以支持自动上传数据库备份 数据库每日备份 数据库即时备份*按需操作* 日志备份安装NCFTP软件以支持自动上传数据库备份# cd /software # wget /ncftp/ncftp-3.2.2-src.tar.gz # tar zxvf ncftp-3.2.2-src.tar.gz # cd ncftp-3.2.2 # ./configure prefix=/usr/local/webserver/ncftp # make & make install数据库每日备份 每天4:00,将数据库拷贝至/backup/day后进行压缩,然后上传至FTP服务器上,/backup/day/留有压缩文件一天。# vi /usr/local/webserver/backupd.sh 编辑脚本/usr/local/webserver/backupd.sh写入以下内容:#!/bin/bash rm -rf /backup/day/* cd /backup/day/ cp -rf /usr/local/webserver/mysql/data/(此处为数据库名称)/ /backup/day/wp_db_$(date +%Y%m%d) sleep 10 echo “ready to tar in 10s .” tar zcvf hostname_wpdata_of_$(date +%Y%m%d).tar.gz wp_db_$(date +%Y%m%d) sleep 10 echo “ready to upload in 10s .” /usr/local/webserver/ncftp/bin/ncftpput -u backupd -p (FTP密码) (FTP服务器地址) / /backup/day/hostname_wpdata_of_$(date +%Y%m%d).tar.gz sleep 30 echo “upload done .” rm -f hostname_wpdata_of_$(date +%Y%m%d).tar.gz sleep 5 rm -rf wp_db_$(date +%Y%m%d) clear保存,并设置计划任务:# crontab -e增加一行:00 4 * * * /bin/bash /usr/local/webserver/backupd.sh 每天凌晨4点将自动备份数据库并上传。数据库即时备份*按需操作* 每隔6小时,将数据库拷贝至/backup/hour目录进行备份,然后将压缩文件上传至FTP服务器上,/backup/hour/留有压缩文件一天。# vi /usr/local/webserver/backuph.sh 编辑脚本/usr/local/webserver/backuph.sh写入以下内容::#!/bin/bash rm -rf /backup/hour/* cd /backup/hour/ cp -rf /usr/local/webserver/mysql/data/(数据库名称)/ /backup/hour/wp_db_$(date +%Y%m%d%H) sleep 10 echo “ready to tar in 10s .” tar zcvf hostname_wpdata_of_$(date +%Y%m%d%H).tar.gz wp_db_$(date +%Y%m%d%H) sleep 10 echo “ready to upload in 10s .” /usr/local/webserver/ncftp/bin/ncftpput -u backuph -p (FTP密码) (FTP服务器地址) / /backup/hour/hostname_wpdata_of_$(date +%Y%m%d%H).tar.gz sleep 30 echo “upload done .” rm -f hostname_wpdata_of_$(date +%Y%m%d%H).tar.gz sleep 5 rm -rf wp_db_$(date +%Y%m%d%H) clear保存,并设置计划任务:# crontab -e增加一行:0 */6 * * * /bin/bash /usr/local/webserver/backuph.sh 每6小时将自动备份数据库并上传一次。日志备份 每天02:00,将/logs/下前一天的日志,进行压缩,然后上传至FTP服务器。# vi /usr/local/webserver/logs.sh 编辑脚本/usr/local/webserver/logs.sh写入以下内容::#!/bin/bash cd /logs/ mkdir logs_of_$(date -d “yesterday” +”%Y

温馨提示

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

评论

0/150

提交评论