Linux服务器安全防护措施
王杰林 2012-3-19
    目前公司已经确定,数据库应用层和中间键应用层。而服务器的安全是从两个方面来保障的。一个是网络安全方面,另一个是程序安全方面。当程序没有漏洞,但是网络安全没有保障,那么所有的程序和数据都可能被丢失或破解。如果程序留有漏洞和后门,就算网络配置的再安全,也是枉然。这两个安全得到了保障才能真正的保证服务器的安全,仅仅采用网络安全配置是没有作用的。下面对于公司的Linux服务器安全设置和程序开发及安全应用措施如下:
一、网络安全配置
1、服务器系统的安全配置
Linux操作系统的防火墙设置
选择软件:由于公司采用的是Ubuntu Server 64bit  Linux 操作系统。在这种操作系统下,有一个高级别安全性能的防火墙IPFire最新版,IPFire是基于状态检测的防火墙,采用了内容过滤
引擎,通讯服务质量( QoS :解决网络延迟,阻塞,丢失数据包,传输顺序出错等问题的一种技术,确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。),虚拟专用网络技术( VPN :主要功能是:息包分类,带宽管理,通信量管理,公平带宽,传输保证)和大量的检测记录。而且设置简单,上手快。
设置:a、开启数据库的端口,这个是可以根据公司的要求设置的,比如,3306,4580,8868等等从1000-65535之间,一个终端只开放一个端口;
    b、开放22端口,即SSH远程管理端口,只针对某个终端开放;
c、ubuntu service 版linux的最高权限用户root不要设置使用固定密码(系统会在每隔5分钟自动生成一个密码,连服务器管理员都不可能知道的);
安装杀毒软件
目前网络上用的比较多的杀毒软件,像avast、卡巴斯基都有linux版本的。我这里推荐使用能够avast,因为其是免费的。在杀毒方面也比较强,下面是国内检测杀毒软件的2011年的数据:
多终端应用
Linux是可以多终端独立应用的,为了保障服务器和数据的安全。在这里采用的是多终端多库应用,进行权限分级。如:
在Linux系统下增加一个终端用户,名为SSH,设置密码为:xxxxxxxx,在该用户下安装SSH服务端,并开放22端口。
同样的数据库也可以采用这个方式设置,端口是由公司内部指定,比如:
TJW(添健网)用户的密码是yyyyyy,在这个用户下安装MYSQL5.0,并设置端口为3306,数据库里面只针对添健网的数据库操作。
JDW(机电网)用户的密码是sssssss,同样独立安装或者配置MYSQL5.0,设置端口为3307,通过这个用户进去只能操作机电网的数据库
让服务器定期更新漏洞
操作系统可以设置为定期更新漏洞,这些漏洞往往成为黑客攻击的目标。
不必要担心系统会下载病毒,应为系统只会指定到上去现在更新。
如果等到服务器能下载非法更新包时,操作系统早已经崩溃。
设置一些傀儡服务器
这个是雅虎的做法,设置几台傀儡服务器(也可以叫中继服务器)具有程序自我回复和还原功能。每台服务器的系统和端口不一。由于系统设置了自我恢复功能和恢复时间。就算黑客攻击掉了其中一台,也可以保证网络系统不会停止运营。
2、常见的服务器攻击手段即网络配置
拒绝服务(DDOS攻击)
攻击方式:
SYN(DDOS攻击)是最常见又最容易被利用的一种攻击手法,利用TCP协议缺陷,发送了大量伪造的TCP连接请求(由于服务器TCP被请求,但是得不到客户机的确认,就会尝试3次),使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求
判断方法:
输入命令:netstat –n –p TCP |  grep  SYN_RECV  |  grep:22 |  wc –L
其中22是指端口,如果显示的是10以下则是正常的,显示为10-30可能被攻击,30以上是绝对被攻击。
防范配置:
由于这种攻击是来源于TCP/IP协议的先天漏洞,完全规避是不可能的。只能通过一些手段减轻攻击产生的后果。
A、通过物理防火墙和过滤网关防护
    这个与IDC机房有关,判断IDC机房是否具备防火墙。通过防火墙代理接收和发送请求来减少对服务器本身的攻击压力。
B、加固TCP/IP协议
设置请求时间和连接次数,这个调整需要注意的是,如果修改了相关的值。可能造成操作系统其他的功能毁坏。在没有十足的把握前请不要去设置。下面是Linux下的基础设置不会影响到其他功能:
1) 防止各种端口扫描,因为请求和接收是与端口有关。首先要屏蔽扫描端口,这样限制外部计算机通过Ping和扫描端口来判定哪些端口是开放。
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s –j ACCEPT
2)禁止使用ping,同时防止ping云攻击
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s –j ACCEPT
3)开启Linux的syncookies功能,防范部分SYN攻击;
sysctl -w p_syncookies=1;
4)设置最大半连接数量,修改tcp_max_syn_backlog=2048
sysctl -w p_max_syn_backlog=2048;
5)调整重试次数(默认是重试5次)
sysctl -w p_synack_retries=3
sysctl -w p_syn_retries=3
6)开启截流阀功能,设置每秒钟只允许发送一次半连接请求。1秒后自动恢复,如果已经连接上的是不受影响的
iptables -I INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -I FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
            C、定期巡检
            定期让工作人员检查系统日志,查看是否正常。检查方法见 判断方法
信息
攻击手段:
信息是指使用一些特殊工具软件,短时间内向目标服务器发送大量超出系统负荷的信息,造成目标服务器超负荷、网络堵塞、系统崩溃的攻击手段。一般这种攻击分为:信息和逻辑。
linux中netstat命令信息主要是短时间内,向数据库中添加大量的数据。使数据库表大小达到文件系统的最高限制,造成数据库表文件损坏。
逻辑是通过书写一些死循环代码自我数据累加,最后使服务器或应用程序变慢或则文件损坏。
判断方法:
信息通常是攻击应用程序和数据库,判断方法
数据库:检查是否较短时间内添加了大量的数据。而且所有的数据是相似的或相同的。同时
检查数据管理软件的日志文件。
查看系统日志,看是否有程序执行过程中的异常。
防范配置:
对于数据库可以采用本身的触发器功能进行判断是否为有效插入,屏蔽掉代码的Web关键字符例如尖括号<>。因为这样的代码是可执行的,可能引起服务器和其他客户电脑中毒。
对操作系统设置多端口,多用户权限。一般开放较低的权限用户对外。
这个可以通过服务器的安全配置杜绝。
网络监听
攻击手段:
由于B/S结构的系统,从用户浏览器提交信息到服务器只有两种方法:
Get和Post方法,然后就是在线上传和FTP
这些方法提交信息时有一个网络包,对于服务器来讲是这个包是安全的。而这个包是可以在本机电脑上通过网络嗅敏器监听来获取。
有了包的数据,然后再通过一些注入软件,重复提交或者伪装一些木马后提交。这种工具网络上是有很多的。尤其是在一些文件上传和图片上传最容易挂马。
判断方法:
通常这样攻击web服务器是无法检测和判断的。一般需要一个有经验的程序员来规避程序上的问题,然后通过中继服务器验证判断后再最终提交数据和信息。
防范配置:
1、安装服务器版的杀毒软件,实时监控端口接收到的数据。
2、通过中继服务器程序判断提交的数据,
1)、如果是基本信息提交,就通过验证码、数字证书、ActiveX控件来加密信息。这样监听出来的数据本身是加密的。而且只能通过SSL安全通道提交。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。