一、系统安全记录文件
操作系统中的记录文件是检测是否存在网络入侵的重要线索。如果您的系统直接连接到互联网,您会发现许多人试图Telnet/FTP您的系统。您可以运行“# more/var/log/secure grep retired”来检查对您系统的攻击,以便采取相应的对策,如使用SSH代替Telnet/rlogin等。
二、启动和登录安全
1.BIOS安全IXPUB
设置BIOS密码和修改引导顺序会禁止从软盘引导系统。
2.用户口令
用户密码是Linux安全的一个基本出发点。很多人使用的用户密码过于简单,相当于给入侵者打开了大门。虽然理论上来说,只要有足够的时间和资源可用,没有破解不了的用户密码,但是选择得当的话是很难破解的。一个好的用户密码是一串只有他自己才容易记住和理解的字符,绝不应该写在任何地方。
3.默认账号
所有由操作系统自己启动的不必要的默认帐户都应该被禁止。您应该在第一次安装系统时这样做。Linux提供了很多默认账号,账号越多,系统越容易受到攻击。
您可以使用以下命令删除该帐户。
[root @ server/] # userdel用户名
或者使用以下命令删除组用户帐户。
[root@server /]# groupdel用户名
4.密码文件
Chattr命令向以下文件添加不可变属性,从而防止未经授权的用户获得权限。
[root @ server/]# chattr I/etc/passwd
[root @ server/]# chattr I/etc/shadow
[root @ server/]# chattr I/etc/group
[root @ server/]# chattr I/etc/gshadow
5.禁止使用Ctrl Alt Delete重启机器的命令。
修改/etc/inittab文件,注释掉“ca:ctrl alt del:/sbin/shut down-T3-r now”行。然后重置/etc/rc.d/init.d/目录中所有文件的权限,并运行以下命令:
[root @ server/]# chmod-R 700/etc/RC . d/init . d/*
只有root用户可以读取、写入或执行上述所有脚本文件。
6.限制苏的命令
如果不希望任何人能够以超级用户身份使用su,可以编辑/etc/pam.d/su文件并添加以下两行:
auth sufficient/lib/security/PAM _ rootok . so debug
auth required/lib/security/PAM _ wheel . so group=isd
此时,只有苏灿作为根用户的isd组。此后,如果您希望用户admin能够以root用户身份su,可以运行以下命令:
[root @ server/]# usermod-G10 admin
7.删除登录信息。
默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。这对一台安全要求高的机器来说,泄露了太多的信息。您可以编辑/etc/rc.d/rc.local来注释掉以下几行输出系统信息。
#这将在每次启动时覆盖/etc/issue。所以,做任何改变吧
#希望在此处生成/etc/issue,否则在重新启动时会丢失它们。
# echo " "/etc/issue
# echo "$R"》 /etc/issue
# echo " Kernel $(uname-r)on $ a $(uname-m)" "/etc/issue
# cp -f /etc/issue /etc/issue.net
# echo》 /etc/issue
然后,执行以下操作:
[root@server /]# rm -f /etc/issue
[root @ server/]# RM-f/etc/issue . net
[root@server /]# touch /etc/issue
[root @ server/]# touch/etc/issue . net
8.设置Grub密码
[root @ server share]# grb-MD5-crypt
密码://输入密码。
重新键入密码://输入确认密码
$ 1 $ LlZDJ/$ vxlsjlcr 9 vvwci/yrhppm 0
vim /boot/grub/grub.conf
添加一行:密码$ 1 $ llzdj/$ vxlsjlcr 9 vvwci/yrhppm 0
三。限制网络访问
1.NFS访问如果您使用NFS网络文件系统服务,您应该确保您的/etc/exports具有最严格的访问权限设置,这意味着您不使用任何通配符,不允许root写权限,并且只能作为只读文件系统安装。编辑文件/etc/exports并添加以下两行。
/dir/to/export host 1 . my domain . com(ro,root_squash)
/dir/to/export host 2 . my domain . com(ro,root_squash)
/dir/to/export是你要输出的目录,host.mydomain.com是登录这个目录的机器名,ro表示mount是只读系统,root_squash禁止root写入这个目录。要使更改生效,请运行以下命令。
[root @ server/]#/usr/sbin/exportfs-a
2.inetd设置
首先,确保/etc/inetd.conf的所有者是root,并且文件权限设置为600。设置完成后,可以使用“stat”命令进行检查。
[root @ server/]# chmod 600/etc/inetd . conf
然后,编辑/etc/inetd.conf以禁止以下服务。
ftp telnet shell登录执行对话ntalk imap pop-2 pop-3 finger auth
如果您安装了ssh/scp,您还可以禁用Telnet/FTP。要使更改生效,请运行以下命令:
[root @ server/]# kill all-HUP inetd
默认情况下,大多数Linux系统允许所有请求,但是使用TCP_WRAPPERS很容易增强系统安全性。您可以修改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,默认情况下,将/etc/hosts.deny设置为“ALL: ALL”可以拒绝所有访问。然后在/etc/hosts.allow文件中添加允许的访问权限。例如“SSHD:192.168.1.10/255 . 255 . 255 . 0 gate . open arch . com”表示允许IP地址192 . 168 . 1 . 10和主机名gate.openarch.com通过SSH连接。
配置完成后,您可以使用tcpdchk进行检查:
[root@server /]# tcpdchk
Tcpchk是一个TCP_Wrapper配置检查工具,它检查您的tcp wrapper配置并报告所有发现的潜在/现有问题。
3.登录终端设置
/etc/securetty文件指定允许root登录的tty设备,并由/bin/login程序读取。它的格式是允许名称的列表。您可以编辑/etc/securetty并注释掉下面几行。
# tty1
# tty2
# tty3
# tty4
# tty5
# tty6
此时root只能在tty1终端登录。
4.避免显示系统和版本信息。
如果希望远程登录用户看不到系统和版本信息,可以通过以下方式更改/etc/inetd.conf文件:
telnet流TCP nowait root/usr/sbin/tcpd in . telnetd-
添加-h意味着telnet不显示系统信息,而只显示“login:”。
5.不允许root用户登录服务器。
[root @ server/]# vim/etc/ssh/sshd _ config
修改:PermitRootLogin编号
四。防止攻击
1.阻止ping。如果没人能ping通你的系统,安全性自然就提高了。
[root @ server/]# vim/etc/sysctl . conf
add:net . IP v4 . icmp _ echo _ ignore _ all=1
[root@server /]# sysctl -p
2.防止IP欺骗
编辑host.conf文件并添加以下行以防止IP欺骗攻击。
订单绑定,主机
多重关闭
无噗开
3.防止DoS攻击
对系统的所有用户设置资源限制可以防止DoS攻击。例如最大进程数和内存使用量。例如,它可以在
将以下几行添加到[root @ server/]# vim/etc/security/limits . conf:
*硬核0
*硬rss 5000
*硬nproc 20
然后,您必须编辑/etc/pam.d/login文件,检查以下行是否存在。
需要会话/lib/security/pam_limits.so
上述命令禁止调试文件,将进程数限制为50,并将内存使用量限制为5MB。