“安全第一”也是Linux管理界乃至计算机的首要考虑。加密的安全性取决于密码本身而不是算法!而且,这里所说的安全是指数据的完整性。因此,数据的认证安全性和完整性高于数据的隐私安全性,也就是说,数据发送方如果不能保证数据的不确定性和完整性,数据的隐私性就无从谈起!禁止系统响应任何外部/内部ping请求。攻击者通常使用ping命令检测主机或IP是否处于Active状态,如果能ping通某个主机或IP,则攻击者认为系统处于Active状态,进而对其进行攻击或破坏。如果没有人能ping通机器并收到响应,那么服务器的安全性就可以大大提高。在Linux下,可以执行以下设置来禁止ping请求: [root@localhost~]#echo“1”>/proc/sys/net/ipv4/icmp_echo_ignore_all默认情况下,“icmp_echo_ignore_all”的值为“0”,表示响应ping操作。 可以将上面这行命令添加到/etc/rc.d/rc.local文件中,使其在每次系统重启后自动运行。2.禁止Control-Alt-Delete组合键重启系统 在linux默认设置下,同时按下Control-Alt-Delete键,系统会自动重启,非常不安全,所以应该禁止Control-Alt-Delete组合键重启系统,修改/etc/inittab文件即可: 代码如下: [root@localhost~]#vi/etc/inittab 找到这一行:ca::ctrlaltdel:/sbin/shutdown-t3-rnow在前面加上“#” 然后执行: 代码如下: [root@localhost~]#telinit问题3。限制shell记录历史命令的大小 默认情况下,bashshell会在文件$HOME/.bash_history中存储最多1000条命令记录(根据系统不同,默认的记录数不同)。系统上每个用户的主目录中都有一个这样的文件。 这么多历史命令记录肯定不安全,所以一定要限制文件的大小。 可以编辑/etc/profile文件,修改选项如下: HISTSIZE=30 表示在$HOME/.bash_history文件中记录最近30条历史命令。如果“HISTSIZE”设置为0,则表示不记录历史命令,因此不能使用键盘上的上下键搜索历史命令。 4.删除系统默认不需要的用户和组 Linux提供了各种系统账户。系统安装后,如果有些用户或组不需要,应立即删除,因为帐户越多,系统越不安全,越容易受到攻击。 使用以下命令删除系统中不需要的用户 代码如下: [root@localhost~]#userdelusername 使用以下命令删除系统中不需要的组: 代码如下: [root@localhost~]#groupdel组名 Linux系统默认可以删除的用户和组有: 删除的用户,如adm、lp、sync,shutdown,halt,news,uucp,operator,games,gophers等 删除组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等closeselinux SELinux是Security-EnhancedLinux的缩写。它是一个内核强制访问控制安全系统。目前,SELinux已经集成到Linux2.6内核和大多数Linux发行版的主线中。由于SELinux在兼容现有的Linux应用程序方面与Linux内核模块的兼容性还存在一些问题,所以建议初学者先关闭selinux,等对linux有了深入的了解再研究selinux也不迟! 查看linux系统是否启用selinux,可以使用getenforce命令: 代码如下: [root@localhost~]#getenforce Disabled 关闭selinux。在redhat系列release版本中,可以直接修改以下文件: 代码如下: [root@localhost~]#vi/etc/sysconfig/selinux#这个文件控制SELinux在on上的状态系统。 #SELINUX=可以取以下三个值之一: #enforcing-SELinux安全策略被强制执行。 #permissive-SELinux打印警告而不是强制执行。 #disabled-SELinux被完全禁用。 SELINUX=enforcing #SELINUXTYPE=正在使用的策略类型。可能的值是: #targeted-只保护目标网络守护进程。 #strict-完全SELinux保护。 SELINUXTYPE=targeted 将SELINUX=enforcing更改为SELINUX=disabled,SElinux将重启系统后停止。6.设置tcp_wrappers防火墙 tcp_Wrappers是一款用来分析TCP/IP数据包的软件。类似的IP封包软件还有iptables。该软件默认安装在Linux中。作为一个安全系统,Linux本身有两层安全防火墙,通过iptables的IP过滤机制实现第一层防护,iptables防火墙直观的监控系统的运行状态,阻断网络中的一些恶意攻击,保护整个系统的正常运行免受攻击和破坏。iptables的实现将在下一章详细介绍。如果通过了第一层保护,那么下一层保护就是tcp_wrappers。通过Tcp_Wrappers可以对系统中提供的某些服务进行开启和关闭、允许和禁止,从而更有效地保障系统的安全运行。 Tcp_Wrappers使用非常简单,只有两个配置文件:/etc/hosts.allow和/etc/hosts.deny(1)查看系统是否安装了Tcp_Wrappers [root@localhost~]#rpm-qtcp_wrappers或[root@localhost~]#rpm-qa|grepTCP tcp_wrappers-7.6-37.2 tcpdump-3.8.2-10.RHEL4 如果有类似上面的输出说明系统已经安装了tcp_wrappers模块。如果没有显示,可能是没有安装。可以从Linux系统安装盘中找到对应的RPM包并安装。 (2)tcp_wrappers防火墙的限制 系统中的某个服务是否可以使用tcp_wrappers防火墙取决于该服务是否应用了libwrapped库文件。如果应用,则可以使用tcp_wrappers防火墙。系统中默认的一些服务如:sshd、portmap、sendmail、xinetd、vsftpd、tcpd等都可以使用tcp_wrappers防火墙。 (3)tcp_wrappers设置的规则 tcp_wrappers防火墙是通过/etc/hosts.allow和/etc/hosts.deny两个文件实现的。首先看设置格式: service:host(s)[:action] lservice:表示服务名称,如sshd、vsftpd、sendmail等 lhost(s):主机名或IP地址,可以有多个,如192.168.60.0、www.ixdba.netlaction:动作,满足条件后要采取的动作。 几个关键字: lALL:所有服务或所有IP。 lALLEXCEPT:除了指定的所有服务或所有IP。 例如:ALL:ALLEXCEPT192.168.60.132 表示除192.168.60.132外,允许或拒绝任何机器执行所有服务。 了解设置语法后,您可以限制对以下服务的访问。 比如网上的一个linux服务器,目标是:只允许222.90.66.4、61.185.224.66和域名softpark.com通过SSH服务远程登录系统,设置如下: 首先设置允许登录的计算机,即配置/etc/hosts.allow文件,设置很简单,修改/etc/hosts.allow即可(如果没有这个文件,请创建自己)。 只需将以下规则添加到/etc/hosts.allow。 sshd:222.90.66.461.185.224.66softpark.com然后设置不允许登录的机器,也就是配置/etc/hosts.deny文件。 一般情况下,Linux会先判断/etc/hosts.allow这个文件。如果远程登录计算机满足文件/etc/hosts.allow设置,则不会使用/etc/hosts.deny文件,相反,如果不满足hosts.allow文件设置的规则,hosts.拒绝文件将被使用。如果满足hosts.deny的规则,主机将被限制访问linux服务器。如果hosts.deny不满足.deny设置,则本主机默认可以访问linux服务器。因此,设置/etc/hosts.allow文件访问规则后,只需要将/etc/hosts.deny设置为“所有计算机都无法登录”即可。 sshd:ALL 这样一个简单的tcp_wrappers防火墙就搭建好了。
