安徽互联网联盟主办的千人站长讲座(http://www.53w.net)已经到第36期了,本期嘉宾 毛伟 网名:龙飞 太湖明珠网 技术总监,非常战网 创始人,首席网管,二泉网 联合创始人之一,太湖明珠网(thmz.com)是一家为无锡及周边地区提供全面互联网(Internet)服务的综合性区域门户网站。是无锡对外宣传的窗口,也是外界了解无锡的最佳平台。
作为门户网站,太湖明珠网立足无锡,整合无锡本地报纸、电视、电台的新闻资源,最权威最迅速地全方位传递无锡瞬息万变的城市资讯。同时提供网络信息、商务推广、影视娱乐、网络通讯、网站建设、网络直播等跨行业、跨媒体的多项综合性业务。
讲座前四群已满(共2000人)已满,新到站长可加500人讲座新开的五群:39463377免费参加但是请尊重学习环境我们随银行网站设计时会T从来不发言的站长 让更多想学习的站长进来。
以下是本次讲座实录:
演讲主题:PHP+MYSQL类社区的服务器通用安全防护措施
各位站长大家下午好,先自我介绍一下,我是来自无锡太湖明珠网的毛伟,我们今天下午的话题是PHP+MYSQL类社区的服务器通用安全防护措施,虽然这个话题,有一个前提,就是面对对象是那些使用自己独立服务器的站长,如果现在没有使用独立服务器的站长也希望可以先了解了解,相关知识,相信你们很快就会有独立服务器的到时候就派的上用处了,安全 和 危险是相对的,这世界上没有绝对的安全 和绝对的危险。如果有不太明白的同学可以参考下爱因斯坦的 狭义相对论。
首先声明下,下面说所的这些防护措施,不是说照着做了就能保证服务器不被黑,因为我们所使用的大部分都是开源的社区程序,开源就等于不可避免的存在漏洞。那么这些防护措施的出发点,就是在程序产生漏洞的时候,尽可能的避免遭受攻击所影响的范围。比如服务器沦陷,整个服务器给黑客控制。我们今天所讲的防护措施分成 服务器环境安全,php安全设置,mysql安全设置几个方面。首先讲一下服务器环境方面的安全措施,一般现在跑PHP+MYSQL类社区的服务器无非就是小流量的windows比较多,大流量的linux比较多。
不管是windows还是linux或者说其他的系统,任安全防护第一步,关掉不用的端口,第二步限制重要端口的访问来源ip地址,比如我们跑web的,可以全开80端口,限制ftp、远程管理端口的来源ip地址,其它端口全部关闭,像ssh的22,远程终端的3389,mysql的3306这类重要端口我们可以通过软件防火墙或者硬件防火墙,限制来源的ip地址,有些tx可能会说我是adsl动态的,我没有办法固定ip地址,好这里给你2个方案。
1.放开限制的范围,每个地区的adsl拨号上网ip地址总有一定的范围,比如a.b.x.x,那么我们就把ip限制到a.b.*.*。
2.中转方法,有些站长可能不止1台服务器,可以通过另外一台中转的有固定ip地址的机器,来中转管理你的服务器。使用端口转发这种方法,限制了端口的访问,那么如果还要将安全级别提高一点的话,那就是修改端口号来增加安全性,这里也提个醒,实际上除非你有防止端口扫描的这种防火墙 ,不然改端口作用并不大,hack扫描下端口很方便,说到防止端口扫描,这个原来实际上就是跟踪用户在一定时间内访问服务器端口数量来实现的,比如在5秒内访问超过3个端口,就判断为端口扫描行为,然后就把用户的ip封掉。这里青岛网站建设公司推荐个windows下面的软件防火墙,这类防火墙windows主机我推荐VisNeticFirewall (也叫8sign),VisNeticFirewall 是款强大的windows下软件防火墙可以限制进出规则包括http应许访问的文件类型,比如限制mdb下载等等也可以做端口扫描自动阻断。
linux用自带的iptables,功能很强大,只有想不到,没有做不到,网络这一层安全做得好,你的系统就加固了很多。就算hack有你服务器的管理员,他也无从入手。除了80 webshell ,他什么也做不了。
下面讲讲webserver的安全配置
windows主机用iis的站长还可以给每一个iis站点单独设定一个运行帐号而且严格设置站点目录只有管理员和这个站点运行账户有权限这样即使某个站点有漏洞,hack webshell进来了,危机到其他站点和系统,因为他除了能控制这个站点的目录下面的内容外,他根本无法访问其他目录。当然这个方法还有个前提,就是得把系统的目录权限梳理一边,检查下有everyone权限的目录,一般c盘windows目录下面这类的目录蛮多,要记住everyone的目录 就算做了上面的独立iis账户的方法 hack还是能访问的,关于这类网上文章也蛮多,搜一下仔细看看。linux的可就没这么方便咯,因为apache nginx是以统一的用户身份来运行的没法每个站点独立设置一个运行用户。比较要命的是linux下面系统的目录一般其它用户都是可读的。所以比较安全的做法是把apache或者nginx php的用户 和web目录的所有者用户独立开来。所以比较安全的做法是把apache或者nginx php的用户 和web目录的所有者用户独立开来。
这里把nginx和目录所有权用户都用www是方便一些静态文件的访问,省得权限卡得很死,非得完全严格的去设置目录权限。当然要求严格的站长完全可以把nginx和web目录的用户也分开。apache和php结庆阳网站建设公司合有个非常方面的好处,就是可以给每个vhost设定一些php的设置。所以我们用apache的tx可以用这一特性 给每个vhost 设定下open_basedir 这个php设置open_basedir就是这个vhost的php运行的时候能够访问的目录,这样也就能在apache下面实现iis那样独立帐号运行的类似效果,把php的访问范围框住,防止1个有漏洞危及系统和其他站点。
这里举个例子,就贴部分了
DocumentRoot /website/www/bbs.site.com
ServerName bbs.site.com
php_admin_value open_basedir /website/www/bbs.site.com/:/website/tmp/
php_admin_value open_basedir /website/www/bbs.site.com/:/website/tmp/
这个意思就是bbs.site.com下面运行的php
只能访问 /website/www/bbs.site.com/ 和 /website/tmp/下面的文件,想访问其他目录的文件,没门
这个设置 如果有多个目录,比如php上企业官网建设传临时目录,session临时目录,可以用 : 冒号分割(windows下面用 ; 号)
这个方法在windows 和 linux的apache上都能用
但是必须要以LoadModule 方式跑php的才行
这个方法像nginx那样 用fastcgi php方式的就没法
如果实在想用可以用nginx proxy的方式,php用apache来跑这样就能在 nginx下面也用上这个open_basedir功能了。
如果实在要用nginx+fastcgi php的方式的话 可以在php.ini里面设置个总的open_basedir
比如你的站点都是放在/website/www/ 下面的那就把 open_basedir 设定到 /website/www/
这样虽然一个站点沦陷了 也会跟着沦陷其他站点,但是至少能保证系统文件不会沦陷
比较适合喜欢偷懒的
刚刚说到的apache里面vhost 还有个有用的设置php_flag engine off
先来看个例子
php_flag engine off
这个意思就是
/website/www/bbs.thmz.com/attachments 这个目录下面的文件,不进行php执行,哪怕是个php也会把源代码爆出来就是不执行php
一些永远也不会有php执行需要的目录,特别是用户上传的文件啊,头像啊这些目录 可以用这个设置下
设的时候注意别搞错了,这个开了 ,要是有php可是直接暴源代码的,iis用户不要急,其实iis里面也是有这个功能的。在iis站点管理里面找到不需要执行的目录右键 属性。
把这个执行权限设成无就行了
反正记得关之前先看看目录下面的文件
别关错了暴了源代码
这个功能同样用fastcgi方式跑的php 没戏,这个环境目前也就想起来这么多,就先到这里把
这里顺便提一下,如果有多台服务器的站长,提倡把前台和数据库分开。就是运行程序1台服务器,数据库1台服务器。这样其实也有点和安全有关系。一些程序可能 注入漏洞这漏洞爆的比较多
假如你把数据库分离开来了,那么hack在注入的时候实际上是在数据库那台服务器上面
万一你mysql连接的用户是个root权限的话 那他用mysql的load file这种函数 也只能去读取数据库那台服务器上面的系统文件
这样乐观的将至少你web程序这台服务器保障了,下面就简单说说php和mysql把
php的安全设置刚刚那个open_basedir 也讲过了
其它无非就是一些php.ini里面的设置了,首先肯定是 display_errors=Off
关闭出错日志
然后log_errors = On
再设置下error_log=
把出错信息记录到服务器文本上
这里注意不要放在web目录下 或者说open_basedir的目录下
不然hack用webshell一读 你这设置就=白做了
南京牧狼文化传媒有限公司简介:
牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!
公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!
为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!
主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等
合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯
资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。