腾讯内部培训资料Apache与Mysql安全配置.ppt
应用安全配置,Apache与Mysql安全配置安全中心 杨勇 coolcyang,应用安全配置,ApacheMysql,Apache安全配置,安全补丁更新敏感信息保护最小化安全原则访问控制防DOS配置日志维护和保护,Apache安全配置,版本&安全补丁更新www.apache.org安全公告http:/httpd.apache.org/security_report.html下载发行版校验,Apache安全配置,安全补丁更新敏感信息保护最小化安全原则访问控制防DOS配置日志维护和保护,Apache安全配置,问题Apache有哪些敏感信息?泄露这些敏感信息会有哪些危害?您如何屏蔽这些信息?,Apache安全配置,敏感信息保护屏蔽bannerServerTokens ProdServerSignature Off屏幕默认目录/var/www/icons 下文件/var/www/htdocs下默认文件/var/www/manual下默认文件/var/www/cgi-bin下默认文件屏蔽枚举帐户UserDir public_html注释掉该行#UserDir public_html,Apache安全配置,敏感信息保护去掉索引功能Options Indexes例子Apache虚拟主机的配置应该在httpd.conf里第一个虚拟主机前面加上这段设置,当用户用IP访问时候默认跳转到部门主页中。ServerName DocumentRoot/usr/local/apache/htdocs Options-Indexes-Includes Order deny,allow Deny from all,Apache安全配置,安全补丁更新敏感信息保护最小化安全原则访问控制防DOS配置日志维护和保护,Apache安全配置,最小化安全原则-模块编译例子$./configure-prefix=/usr/local/apache-enable-module=rewrite-enable-module=so-disable-module=imap-disable-module=userdir 检查静态编译DSO编译方式,Apache安全配置,安全补丁更新敏感信息保护最小化安全原则访问控制防DOS配置日志维护和保护,Apache安全配置,访问控制Web根目录设置 DocumentRoot/应为 web首页目录启动帐户启动Apache的帐号应为nobodyUser nobodyGroup nogroup,Apache安全配置,访问控制设置合理的属主cp httpd/usr/local/apache/bin chown 0/usr/local/apache/bin/httpd chgrp 0/usr/local/apache/bin/httpd chmod 511/usr/local/apache/bin/httpd 设置合理的权限#chown-R root:root/usr/local/apache#find/usr/local/apache-type d|xargs chmod 755#find/usr/local/apache-type f|xargs chmod 644#chmod-R go-w/usr/local/apache,Apache安全配置,安全补丁更新敏感信息保护最小化安全原则访问控制防DOS配置日志维护和保护,Apache安全配置,AntiDOS配置-配置连接参数HARD_SERVER_LIMIT MinSpareServers 与MaxSpareServersMaxClient sKeep-Alive StartServersTimeOut MaxKeepAliveRequestsKeepAliveTimeout,Apache安全配置,Apache安全配置,Apache安全配置,安全补丁更新敏感信息保护最小化安全原则访问控制防DOS配置日志维护和保护,Apache安全配置,日志维护和保护设置权限日志格式存放位置(独立分区)Common Log Format(CLF)127.0.0.1-username 10/Oct/2000:13:55:36-0700 GET/apache_pb.gif HTTP/1.0 200 2326 组合记录格式(Combined Log Format)127.0.0.1-username 10/Oct/2000:13:55:36-0700 GET/apache_pb.gif HTTP/1.0 200 2326 http:/Mozilla/4.08 en(Win98;I;Nav),Apache安全配置,日志维护和保护日志回滚回卷日志mv access_log access_log.oldmv error_log error_log.oldapachectl gracefulsleep 600gzip access_log.old error_log.old 管道&rotatelogs回卷日志CustomLog|/usr/local/apache/bin/rotatelogs/var/log/access_log 86400 common,MySQL安全配置,安全补丁更新敏感信息帐户及数据库角色默认帐户安全问题网络连接Msql授权表如何进行加固危险函数Mysql启动运行安全,MySQL安全配置,经常关注安全更新SMysql官方网站不轻易更换(eg:Mysql3-Mysql4)Union带来的漏洞,MySQL安全配置,安全补丁更新敏感信息帐户及数据库角色默认帐户安全问题网络连接Msql授权表如何进行加固危险函数Mysql启动运行安全,MySQL安全配置,泄露密码bash_history.mysql_history两个shell命令vs一个好习惯Shellrm.bash_historyShellrm.mysql_historyShellln s/dev/null.bash_historyShellln s/dev/null.mysql_history,MySQL安全配置,安全补丁更新敏感信息帐户及数据库角色默认帐户安全问题网络连接Msql授权表危险函数Mysql启动运行安全,MySQL安全配置,Root空口令匿名用户,MySQL安全配置,帐户和口令安全给mysql的root用户设置口令mysql use mysql;mysql update user set password=password(test)where user=root;mysql flush privileges;删除匿名用户Mysqldelete from user where user=,MySQL安全配置,老版本权限的问题版本3.21.xx:755版本3.22.xx:770版本3.23.xx:700(推荐)推荐两个命令Shellchown R mysql.mysql/usr/local/mysql/var Shellchown R go-rwx/usr/local/mysql/var,MySQL安全配置,网络连接访问控制避免外部连接启动时Skip-f bind-address=内网ip限定连接IPmysql grant select,insert,update,delete,create,drop privileges on test.*to test1192.168.1.0/255.255.255.0 identified by test;NT主机默认允许远程连接,MySQL安全配置,User表mysqldesc user;版本3.22.11版本以前的授权机制不完善(建议升级)GRAND&REVOK危险的权限ShutdownProcessfile,MySQL安全配置,User表,MySQL安全配置,Db表,MySQL安全配置,Host表,MySQL安全配置,Table_prive表,MySQL安全配置,Columns_priv表,MySQL安全配置,授权表运行机制服务器检查是否允许该用户连接Hostuser用户进行的是否是授权操作权限生效条件*_priv,MySQL安全配置,思考题如何给数据库tencentdata设置如下权限用途:查询数据用户名:viewer密码:T3nc3t!965.AWeb CGI程序主机IP:172.16.1.1,MySQL安全配置,安全补丁更新敏感信息帐户及数据库角色默认帐户安全问题网络连接Msql授权表危险函数Mysql启动运行安全,MySQL安全配置,危险的函数LOAD DATA INFILE(只能读全局可读文件)SELECT INTO OUTFILE(不能覆盖文件),MySQL安全配置,常见攻击拥有FILE权限CREATE TABLE etc_passwd(pwd_entry TEXT);LOAD DATA INFILE/etc/passwd into TABLE etc_passwd;SELECT*FROM etc_passwd;,MySQL安全配置,读取文件,MySQL安全配置,导出后门mysqlcreate table a(cmd text);mysqlinsert into a values(“insert into a values(“phpinfo);mysqlinsert into a values(“);mysqlselect*from a into outfile“/usr/local/apache/cgi-bin/cmd.php;,MySQL安全配置,安全补丁更新敏感信息帐户及数据库角色默认帐户安全问题网络连接Msql授权表危险函数Mysql启动运行安全,MySQL安全配置,启动建议用非root权限启动(版本3.23.15)构建chroot环境启动MySQL服务器时加-skip-show-database使一般数据库用户不能浏览其它数据库,结 论,应用环境往往十分复杂多变,这种复杂多变造成诸多安全隐患,这些隐患随时都可能被黑客利用,完成一次成功的入侵。因此对于应用安全,我们需要更多关注应用层的安全配置和加固工作!,谢谢!,