Linux系统安全配置详细解析
1.为LILO增加开机⼝令
在/f⽂件中增加选项,从⽽使LILO启动时要求输⼊⼝令,以加强系统的安全性。具体设置如下:
boot=/dev/hdamap=/boot/mapinstall=/boot/boot.btime-out=60 #等待1分钟promptdefault=linuxpassword=#⼝令设置image=/boot/vmlinuz-2.2.14-12label=linuxinitrd=/boot/initrd-2.2.14-12.img root=/dev/hda6 read-only
此时需注意,由于在LILO中⼝令是以明码⽅式存放的,所以还需要将 f的⽂件属性设置为只有root可以读写。
# chmod 600 /f
当然,还需要进⾏如下设置,使f的修改⽣效。
# /sbin/lilo -v
2.设置⼝令最⼩长度和
最短使⽤时间
⼝令是系统中认证⽤户的主要⼿段,系统安装时默认的⼝令最⼩长度通常为5,但为保证⼝令不易被猜测攻击,可增加⼝令的最⼩长度,⾄少等于8。为此,需修改⽂件/etc/login.defs中参数PASS_MIN_LEN。同时应限制⼝令使⽤时间,保证定期更换⼝令,建议修改参数PASS_MIN_DAYS。
3.⽤户超时注销
如果⽤户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile⽂件,保证账户在⼀段时间没有操作后,⾃动从系统注销。
编辑⽂件/etc/profile,在“HISTFILESIZE=”⾏的下⼀⾏增加如下⼀⾏:
TMOUT=600
则所有⽤户将在10分钟⽆操作后⾃动注销。
4.禁⽌访问重要⽂件
对于系统中的某些关键性⽂件如f、services和f等可修改其属性,防⽌意外修改和被普通⽤户查看。
⾸先改变⽂件属性为600:
# chmod 600 /f
保证⽂件的属主为root,然后还可以将其设置为不能改变:
# chattr +i /f
这样,对该⽂件的任何改变都将被禁⽌。
只有root重新设置复位标志后才能进⾏修改:
# chattr -i /f
5.允许和禁⽌远程访问
在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个⽂件允许和禁⽌远程主机对本地服务的访问。通常的做法是:
(1)编辑hosts.deny⽂件,加⼊下列⾏:
# Deny access to everyone. ALL: ALL@ALL
什么电脑可以装linux系统 则所有服务对所有外部主机禁⽌,除⾮由hosts.allow⽂件指明允许。
(2)编辑hosts.allow ⽂件,可加⼊下列⾏:
#Just an example: ftp: 202.84.17.11 xinhuanet
则将允许IP地址为202.84.17.11和主机名为xinhuanet的机器作为Client访问FTP服务。
(3)设置完成后,可⽤tcpdchk检查设置是否正确。
6.限制Shell命令记录⼤⼩
默认情况下,bash shell会在⽂件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默认记录条数不同)。系统中每个⽤户的主⽬录下都有⼀个这样的⽂件。在此笔者强烈建议限制该⽂件的⼤⼩。
您可以编辑/etc/profile⽂件,修改其中的选项如下:HISTFILESIZE=30或HISTSIZE=30。
7.注销时删除命令记录
编辑/etc/skel/.bash_logout⽂件,增加如下⾏:
rm -f $HOME/.bash_history
这样,系统中的所有⽤户在注销时都会删除其命令记录。
如果只需要针对某个特定⽤户,如root⽤户进⾏设置,则可只在该⽤户的主⽬录下修改/$HOME/.bash_history ⽂件,增加相同的⼀⾏即可。
8.禁⽌不必要的SUID程序
SUID可以使普通⽤户以root权限执⾏某个程序,因此应严格控制系统中的此类程序。
出root所属的带s位的程序:
# find / -type f \( -perm -04000 -o -perm -02000 \) -print less
禁⽌其中不必要的程序:
# chmod a-s program_name
9.检查开机时显⽰的信息
Linux系统启动时,屏幕上会滚过⼀⼤串开机信息。如果开机时发现有问题,需要在系统启动后进⾏检查,可输⼊下列命令:
#dmesg >bootmessage
该命令将把开机时显⽰的信息重定向输出到⼀个⽂件bootmessage中。
10.磁盘空间的维护
经常检查磁盘空间对维护Linux的⽂件系统⾮常必要。⽽Linux中对磁盘空间维护使⽤最多的命令就是df和du了。
⼗招:
第1招:取消不必要的服务
早期的Unix版本中,每⼀个不同的⽹络服务都有⼀个服务程序在后台运⾏,后来的版本⽤统⼀的/etc/inetd服务器程序担此重任。Inetd是Internetdaemon的缩写,它同时监视多个⽹络端⼝,⼀旦接收到外界传来的连接信息,就执⾏相应的TCP或UDP⽹络服务。
由于受inetd的统⼀指挥,因此Linux中的⼤部分TCP或UDP服务都是在/f⽂件中设定。所以取消不必要服务的第⼀步就是检查/f⽂件,在不要的服务前加上“#”号。
⼀般来说,除了http、smtp、telnet和ftp之外,其他服务都应该取消,诸如简单⽂件传输协议tftp、⽹络邮件存储及接收所⽤的imap/ipop传输协议、寻和搜索资料⽤的gopher以及⽤于时间同步的daytime和time等。
还有⼀些报告系统状态的服务,如finger、efinger、systat和netstat等,虽然对系统查错和寻⽤户⾮常有⽤,但也给⿊客提供了⽅便之门。例如,⿊客可以利⽤finger服务查⽤户的电话、使⽤⽬录以及其他重要信息。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。
Inetd除了利⽤/f设置系统服务项之外,还利⽤/etc/services⽂件查各项服务所使⽤的端⼝。因此,⽤户必须仔细检查该⽂件中各端⼝的设定,以免有安全上的漏洞。
在Linux中有两种不同的服务型态:⼀种是仅在有需要时才执⾏的服务,如finger服务;另⼀种是⼀直在执⾏的永不停顿的
服务。这类服务在系统启动时就开始执⾏,因此不能靠修改inetd来停⽌其服务,⽽只能从修改/etc/rc.d/rc[n].d/⽂件或⽤Runleveleditor去修改它。提供⽂件服务的NFS服务器和提供NNTP新闻服务的news都属于这类服务,如果没有必要,最好取消这些服务。
第2招:限制系统的出⼊
在进⼊Linux系统之前,所有⽤户都需要登录,也就是说,⽤户需要输⼊⽤户账号和密码,只有它们通过系统验证之后,⽤户才能进⼊系统。
与其他Unix操作系统⼀样,Linux⼀般将密码加密之后,存放在/etc/passwd⽂件中。Linux系统上的所有⽤户都可以读
到/etc/passwd⽂件,虽然⽂件中保存的密码已经经过加密,但仍然不太安全。因为⼀般的⽤户可以利⽤现成的密码破译⼯具,以穷举法猜测出密码。⽐较安全的⽅法是设定影⼦⽂件/etc/shadow,只允许有特殊权限的⽤户阅读该⽂件。
在Linux系统中,如果要采⽤影⼦⽂件,必须将所有的公⽤程序重新编译,才能⽀持影⼦⽂件。这种⽅法⽐较⿇烦,⽐较简便的⽅法是采⽤插⼊式验证模块(PAM)。很多Linux系统都带有Linux的⼯具程序PAM,它是⼀种⾝份验证机制,可以⽤来动态地改变⾝份验证的⽅法和要求,⽽不要求重新编译其他公⽤程序。这是因为PAM采⽤封闭包的⽅式,将所有与⾝份验证有关的逻辑全部隐藏在模块内,因此它是采⽤影⼦档案的最佳帮⼿。
此外,PAM还有很多安全功能:它可以将传统的DES加密⽅法改写为其他功能更强的加密⽅法,以
确保⽤户密码不会轻易地遭⼈破译;它可以设定每个⽤户使⽤电脑资源的上限;它甚⾄可以设定⽤户的上机时间和地点。
Linux系统管理⼈员只需花费⼏⼩时去安装和设定PAM,就能⼤⼤提⾼Linux系统的安全性,把很多攻击阻挡在系统之外。
第3招:保持最新的系统核⼼
由于Linux流通渠道很多,⽽且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,⼀定要经常更新系统内核。
Kernel是Linux操作系统的核⼼,它常驻内存,⽤于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel 控制计算机和⽹络的各种功能,因此,它的安全性对整个系统安全⾄关重要。
早期的Kernel版本存在许多众所周知的安全漏洞,⽽且也不太稳定,只有2.0.x以上的版本才⽐较稳定和安全,新版本的运⾏效率也有很⼤改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很⼤,既占⽤系统资源,也给⿊客留下可乘之机。
在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。
第4招:检查登录密码
设定登录密码是⼀项⾮常重要的安全措施,如果⽤户的密码设定不合适,就很容易被破译,尤其是拥有超级⽤户使⽤权限的⽤户,如果没有良好的密码,将给系统造成很⼤的安全漏洞。
在多⽤户系统中,如果强迫每个⽤户选择不易猜出的密码,将⼤⼤提⾼系统的安全性。但如果passwd程序⽆法强迫每个上机⽤户使⽤恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。
实际上,密码破解程序是⿊客⼯具箱中的⼀种⼯具,它将常⽤的密码或者是英⽂字典中所有可能⽤来作密码的字都⽤程序加密成密码字,然后将其与Linux系统的/etc/passwd密码⽂件或/etc/shadow影⼦⽂件相⽐较,如果发现有吻合的密码,就可以求得明码了。
在⽹络上可以到很多密码破解程序,⽐较有名的程序是crack。⽤户可以⾃⼰先执⾏密码破解程序,出容易被⿊客破解的密码,先⾏改正总⽐被⿊客破解要有利。
第5招:设定⽤户账号的安全等级
除密码之外,⽤户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建⽴⼀个新⽤户ID 时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的⽤户组中。
在Linux系统上的tcpd中,可以设定允许上机和不允许上机⼈员的名单。其中,允许上机⼈员名单在/etc/hosts.allow中设置,不允许上机⼈员名单在/etc/hosts.deny中设置。设置完成之后,需要重新启动inetd程序才会⽣效。此外,Linux将⾃动把允许进⼊或不允许进⼊的结果记录到/rar/log/secure⽂件中,系统管理员可以据此查出可疑的进⼊记录。
每个账号ID应该有专⼈负责。在企业中,如果负责某个ID的职员离职,管理员应⽴即从系统中删除该账号。很多⼊侵事件都是借⽤了那些很久不⽤的账号。
在⽤户账号之中,⿊客最喜欢具有root权限的账号,这种超级⽤户有权修改或删除各种系统设置,可以在系统中畅⾏⽆阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。
Linux系统中的/etc/securetty⽂件包含了⼀组能够以root账号登录的终端机名称。例如,在RedHatLinux系统中,该⽂件的初始值仅允许本地虚拟控制台(rtys)以root权限登录,⽽不允许远程⽤户以root权限登录。最好不要修改该⽂件,如果⼀定要从远程登录为root权限,最好是先以普通账号登录,然后利⽤su命令升级为超级⽤户。
第6招:消除⿊客犯罪的温床
在Unix系统中,有⼀系列r字头的公⽤程序,它们是⿊客⽤以⼊侵的武器,⾮常危险,因此绝对不要
将root账号开放给这些公⽤程序。由于这些公⽤程序都是⽤。rhosts⽂件或者hosts.equiv⽂件核准进⼊的,因此⼀定要确保root账号不包括在这些⽂件之内。
由于r字头指令是⿊客们的温床,因此很多安全⼯具都是针对这⼀安全漏洞⽽设计的。例如,PAM⼯具就可以⽤来将r字头公⽤程序的功⼒废掉,它在/etc/pam.d/rlogin⽂件中加上登录必须先核准的指令,使整个系统的⽤户都不能使⽤⾃⼰home⽬录下的。rhosts⽂件。
第7招:增强安全防护⼯具
SSH是安全套接层的简称,它是可以安全地⽤来取代rlogin、rsh和rcp等公⽤程序的⼀套程序组。SSH采⽤公开密钥技术对⽹络上两台主机之间的通信信息加密,并且⽤其密钥充当⾝份验证的⼯具。
由于SSH将⽹络上的信息加密,因此它可以⽤来安全地登录到远程主机上,并且在两台主机之间安全地传送信息。实际上,SSH不仅可以保障Linux主机之间的安全通信,Windows⽤户也可以通过SSH安全地连接到Linux服务器上。
第8招:限制超级⽤户的权⼒
我们在前⾯提到,root是Linux保护的重点,由于它权⼒⽆限,因此最好不要轻易将超级⽤户授权出去。但是,有些程序的安装和维护⼯作必须要求有超级⽤户的权限,在这种情况下,可以利⽤其他⼯
具让这类⽤户有部分超级⽤户的权限。Sudo 就是这样的⼯具。
Sudo程序允许⼀般⽤户经过组态设定后,以⽤户⾃⼰的密码再登录⼀次,取得超级⽤户的权限,但只能执⾏有限的⼏个指令。例如,应⽤sudo后,可以让管理磁带备份的管理⼈员每天按时登录到系统中,取得超级⽤户权限去执⾏⽂档备份⼯作,但却没有特权去作其他只有超级⽤户才能作的⼯作。
Sudo不但限制了⽤户的权限,⽽且还将每次使⽤sudo所执⾏的指令记录下来,不管该指令的执⾏是成功还是失败。在⼤型企业中,有时候有许多⼈同时管理Linux系统的各个不同部分,每个管理⼈员都有⽤sudo授权给某些⽤户超级⽤户权限的能⼒,从sudo的⽇志中,可以追踪到谁做了什么以及改动了系统的哪些部分。
值得注意的是,sudo并不能限制所有的⽤户⾏为,尤其是当某些简单的指令没有设置限定时,就有可能被⿊客滥⽤。例如,⼀般⽤来显⽰⽂件内容的/etc/cat指令,如果有了超级⽤户的权限,⿊客就可以⽤它修改或删除⼀些重要的⽂件。
第9招:追踪⿊客的踪迹
当你仔细设定了各种与Linux相关的组态,并且安装了必要的安全防护⼯具之后,Linux操作系统的安全性的确⼤为提⾼,但是却并不能保证防⽌那些艺⾼⼈胆⼤的⽹络⿊客的⼊侵。
在平时,⽹络管理⼈员要经常提⾼警惕,随时注意各种可疑状况,并且按时检查各种系统⽇志⽂件,包括⼀般信息⽇志、⽹络连接⽇志、⽂件传输⽇志以及⽤户登录⽇志等。在检查这些⽇志时,要注意是否有不合常理的时间记载。例如:
·正常⽤户在半夜三更登录;
·不正常的⽇志记录,⽐如⽇志只记录了⼀半就切断了,或者整个⽇志⽂件被删除了;
·⽤户从陌⽣的⽹址进⼊系统;
·因密码错误或⽤户账号错误被摈弃在外的⽇志记录,尤其是那些⼀再连续尝试进⼊失败,但却有⼀定模式的试错法;
·⾮法使⽤或不正当使⽤超级⽤户权限su的指令;
·重新开机或重新启动各项服务的记录。
第10招:共同防御,确保安全
从计算机安全的⾓度看,世界上没有绝对密不透风、百分之百安全的计算机系统,Linux系统也不例
外。采⽤以上的安全守则,虽然可以使Linux系统的安全性⼤⼤提⾼,使顺⼿牵⽺型的⿊客和电脑玩家不能轻易闯⼊,但却不⼀定能阻挡那些⾝怀绝技的武林⾼⼿,因此,企业⽤户还需要借助防⽕墙等其他安全⼯具,共同防御⿊客⼊侵,才能确保系统万⽆⼀失。
Linux安全设置笔记
Linux下⽤户组安全设置
chmod o-r /etc/passwd //让其他⽤户得不到passwd⾥的信息
chmod o-r /etc/group //让其他⽤户得不到group⾥的信息
chgrp apache /etc/passwd /etc/group //把passwd与group改为apache组 权限设置
cd /
chmod o-r *
cd /usr
chmod o-r *
cd /var
chmod o-r *
chmod go-r /etc/httpd/conf
chmod go-rx /etc/rc.d/init.d
chmod o-r /etc/rc.d/init.d/* //去掉⼏个⽬录的列权限
chmod go-rx /usr/bin/gcc
chmod go-rx /usr/bin/g++
chmod go-rx /usr/include //去掉glibc的其他⽤户的权限
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论