当前位置: 首页 > Linux

Linux下常用的安全策略设置六种方法

时间:2023-04-06 05:01:14 Linux

“安全第一”也是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防火墙就搭建好了。