企业的数据是一个企业多年业务的积累,是企业宝贵的财富。对于互联网企业,更是他的生命线。同时,随着互联网的实名制推进,保护数据不被泄露越来越重要。本文以Linux为例介绍一种运维策略,通过使用“木星终端”软件,实施一套等同于银行级的安全防护措施。

第一步 建立保护域

保护域是多个需要保护的服务器集合,他们之间可以自由的访问,传送数据。但是对于保护域之外的主机,只允许数据传入,不允许传出。(以下步骤未特别说明,均采用root用户执行)
防火墙的配置示例如下

[root@tp ~]# iptables -P INPUT DROP #默认禁止一切通信传入
[root@tp ~]# iptables -P OUTPUT DROP #默认禁止一切通信传出

允许sshd和ftp服务。

[root@vmleman ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
[root@vmleman ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@vmleman ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@vmleman ~]# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
[root@vmleman ~]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
[root@vmleman ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

允许保护域内的其他主机互访(可选,主要根据业务需要配置)。

[root@vmleman ~]# iptables -A INPUT -p tcp --src x.x.x.x -j ACCEPT
[root@vmleman ~]# iptables -A OUTPUT -p tcp --dst x.x.x.x -j ACCEPT

(其中x.x.x.x是保护域的其他主机IP地址,每个主机加两条,INPUT和OUTPUT对应)
最后,运行service iptables save命令,保存配置。

第二步 配置ftp传入策略

有时候,我们需要将外部文件传入到服务器上。不过也需要配置一个严密的安全通道。
配置vsftpd.conf,添加匿名用户权限
1)确保匿名用户主目录及其子目录对普通用户没有写权限。
匿名用户所在目录(/var/ftp/)任何人都可访问,相当于外部环境,因此不允许一般用户写入,否则数据将会传出。

[rhel5@vmleman ftp]$ ls -ld `find /var/ftp/`
drwxr-xr-x 3 root root 4096 2011-09-08 /var/ftp/
drwxr-xr-x 2 root root 4096 2007-12-13 /var/ftp/pub

CentOS系列默认就是没有写权限的,基本不需要修改。
2)在匿名用户主目录下创建upload目录,属主改为ftp

[root@vmleman ~]# mkdir /var/ftp/upload
[root@vmleman ~]# chown ftp /var/ftp/upload/

3)配置vsftpd.conf,添加匿名用户权限

anon_upload_enable=YES  
anon_mkdir_write_enable=YES  
anon_other_write_enable=YES  
anon_umask=022  

设置umask是为了防止创建其他用户可写的目录,产生安全漏洞。
任何人都可以用ftp将文件放到upload目录下,登入到系统后,再从这个目录下拷贝内容即可。
告诉你的员工,在ftp文件传输时使用port模式

第三步 使用41putty

41putty是经过特殊处理的putty软件,你的员工使用41putty登入服务器后无法下载文件和复制内容到本地电脑。
在41putty官方网站(www.bankithub.com)申请后,你将得到一个定制的41putty软件和一个私人密钥。
你用这个密钥将登陆口令加密后告诉你的员工,他将使用加密后的口令登陆,因此你们员工并不知道真实的登入口令。
41putty的使用说明参考:http://41putty.bankithub.com/index.php/archives/7/

最后,使用如下命令,禁止普通用户修改密码:

chmod g-xr,o-xr /usr/bin/passwd

第四步 使用木星终端软件

使用41putty基本满足大多数运维需求,但由于他是命令行界面,对于管理数据库可能不方便。
因此可以使用木星终端软件(dbeaver),它是一个图形界面的数据库管理工具,支持主流的数据库。
dbeaver需要经过41putty的认证后方可访问安全域,使用它可以方便管理数据库,但也不可以导出数据。
木星终端软件下载: http://pan.baidu.com/s/146CxP#dir/path=%2Ftools

最后 安全分析

目前在安全域对外开发的端口只有
1)22端口,通过41putty控制,不会泄露数据。
2)21,20端口,ftp占用,有vsftpd服务控制,只要vsftpd没有漏洞就不会泄露数据
3)应用端口,如web服务器的80,由应用服务占用,不会传输数据,后门问题可以通过版本控制加以审计。
4)特殊应用可以通过端口加对端主机限制连接,添加防火墙例外出口。
除此之外的其他端口未开放,不可能泄露数据。整个方案类似于搭建了一个虚拟隔离的监控室。
因此,只有知道root用户密码41putty的私人密钥才可以导出数据。这两个密钥可以交给值得信任的CIO