- 论坛徽章:
- 0
|
1禁止在后台使用CTRL-ALT-DELETE重起机器
#vi /etc/inittab
在文件找到下面一行
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now (注释掉这一行)
如: # Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
使用下面的命令使改变生效:
# /sbin/init q
2屏蔽主机的ping 命令,是被别人无法ping你的机器
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
若想恢复就用:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
3 系统默认口令长度
安装完L i n u x系统之后默认的最小口令长度为5。这就是说如果一个新的用户可以访问服务器,那么他的口令必须多于5字符
#vi /etc/login.defs
找到PASS_MIN_LEN 5 这一行,改为:PASS_MIN_LEN 8
4 /etc/host.allow /etc/host.deny
#vi /etc/host.deny
Access is denied by default.
# Deny access to everyone.
ALL:ALL@ALL,PARANOID
这样做的目的是:所有的服务、访问位置,如果没有被明确地允许,也就是在“/etc/hosts.allow”中找不到匹配的项,就是被禁止的。
注意加上“PARANOID”参数之后,如果要在服务器上使用telnet或ftp服务,就要在服务器的“/etc/hosts”文件中加入允许使用telnet和ftp服务的客户端计算机的名字和IP地址。否则,在显示登录提示之前,因为DNS的域名解析,可能要等上几分钟时间。
第二步编辑hosts.allow文件(vi /etc/hosts.allow)。例如,可以加入下面这些行(被授权访问的计算机要明确地列出来):
sshd: 208.164.186.1 gate.openarch.com
被授权访问的计算机的I P地址是: 208.164.186.1,主机名是:gate.openarch.com,允许使用的服务是:sshd。
5 编辑aliases
编辑aliases文件(vi /etc/aliases),删除或注释掉下面这些行:
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root ← remove or comment out.
#ingres: root ← remove or comment out.
nobody: root
#system: root ← remove or comment out.
#toor: root ← remove or comment out.
#uucp: root ← remove or comment out.
# Well-known aliases.
#manager: root ← remove or comment out.
#dumper: root ← remove or comment out.
#operator: root ← remove or comment out.
# trap decode to catch security attacks
#decode: root
# Person who should get root's mail
#root: marc
运行“#/usr/bin/newaliases”,使改变生效
6 特殊账号
禁止操作系统中不必要的预置账号(每次升级或安装完都要检查一下)。L i n u x系统中提供了这样一些可能不需要的预置账号。如果确实不需要这些账号,就把它们删掉。系统中账号越多,就越容易受到攻击。
1) 用下面的命令删除一些不必要的用户:
[root@Aid]# userdel adm
[root@Aid]# userdel lp
[root@Aid]# userdel sync
[root@Aid]# userdel shutdown
[root@Aid]# userdel halt
[root@Aid]# userdel news
[root@Aid]# userdel uucp
[root@Aid]# userdel operator
[root@Aid]# userdel games (如果没安装X Window服务器,可以删除这个用户)
[root@Aid]# userdel gopher
[root@Aid]# userdel ftp (如果没安装匿名ftp服务器,可以删除这个用户)
2) 输入下面的命令删除一些不必要的组:
[root@Aid]# groupdel adm
[root@Aid]# groupdel lp
[root@Aid]# groupdel news
[root@Aid]# groupdel uucp
[root@Aid]# groupdel games (如果不用X windows服务器,可以删除这个组成)
[root@Aid]# groupdel dip
[root@Aid]# groupdel pppusers
[root@Aid]# groupdel popusers (如果不用用于email的POP服务器,可以删除这个组)
[root@Aid]# groupdel slipusers
3) “不可改变”位可以用来保护文件,使其不被意外地删除或重写,也可以防止有些人创
建这个文件的符号连接。删除“/etc/passwd”、“/etc/shadow”、“/etc/group”或“/etc/gshadow”
都是黑客的攻击方法。
可以用下面的命令给口令文件和组文件设置不可改变位
[root@Aid]# chattr +i /etc/passwd
[root@Aid]# chattr +i /etc/shadow
[root@Aid]# chattr +i /etc/group
[root@Aid]# chattr +i /etc/gshadow
7 用户试图输入的口令数量
为了方便重复输入很长的命令, bash shell可以在“ ~/.bash_history”文件(“~/”是主目录,每个用户都是不一样的)中存500个曾经输入过的命令。每一个有自己账号的用户,在自己的主目录中,都会有“.bash_history”文件。可能会有这种情况,用户在不该输入口令的地方输入了口令,而输入的口令会在“.bash_history”文件中保存下来,而且“.bash_history”文件越大,
这种可能性也越大。
在“ /etc/profile”文件中, HISTFILESIZE和HISTSIZE两行决定了系统中所有用户的
“.bash_history”文件可以保存多少命令。建议把“/etc/profile”文件中的HISTFILESIZE和HISTSIZE设成一个比较小的值,如: 20。
编辑profile文件(vi /etc/profile),把这些行改成:
HISTFILESIZE=20
HISTSIZE=20
这样每个用户主目录下的“ . b a s h _ h i s t o r y”就最多只能存2 0个命令。如果黑客试图在用户的“~/ . b a s h _ h i s t o r y”文件中发现一些口令,他就没有什么机会了。
8 /etc/grub.conf
要让文件不可改变,使用下面的命令:
[root@Aid]# chattr +i /etc/grub.conf
这样可以避免grub.conf文件因为意外或其他原因而改变。如果想要改变grub.conf文件,必须先清除它的不可改变标志。要清除不可改变标记,使用下面的命令:
[root@Aid]# chattr -i /etc/grub.conf
限制本地单用户状态无密码登陆:
vi /etc/grub.conf ##在timeout后添加一行
password=1234567 ##密码
使生效:敲grub回车 等待一会 再敲quit
9 /etc/rc.d/init.d/目录下的脚本文件的访问许可
改变启动和停止d a e m o n的脚本文件的权限。
[root@Aid]# chmod -R 700 /etc/rc.d/init.d/*
这样只有root可以读、写和执行这个目录下的脚本。一般用户没有必要知道脚本文件的内容。
注意:如果安装或升级了一个程序,要用到“/etc/rc.d/init.d/”中system V脚本,不要忘记再检查一下改变和检查这个脚本文件的许可。
10 删除“/etc”目录下的issue.net和issue文件:
[root@Aid]# rm -f /etc/issue
[root@Aid]# rm -f /etc/issue.net
注意“/etc/issue.net”文件是用户从网络登录计算机时(例如: telnet、SSH)看到的
登录提示。同样在/etc目录下还有一个“issue”文件,是用户从本地登录时看到的提示。
这两个文件都是文本文件,可以根据需要改变。如果想删掉这两个文件,必须向上面介
绍的那样把“/etc/rc.d/rc.local”脚本中的那些行注释掉,否则每次重新启动的时候,系
统又会重新创建这两个文件。
11 带s位的程序
用ls -l命令列出来的文件,如果文件的权限位中出现“s”,则这些文件的SUID(-rwsr-xr-x)
或SGID(-r-xr-sr-x)位被设定了。因为这些程序给执行它的用户一些特权,所以如果不需要这些特权,最好把这些程序的“s”位移去。可以使用命令“chmod a-s 文件名>”移去相应文件的“s”位。
可以清除“ s”位的程序为:
• 从来不用的程序
• 不希望非root用户运行的程序
• 偶尔使用,但是不介意先用su命令变为root后再运行的程序。
下面加了星号 *)的程序,一般认为有必要移去“s”位。注意,系统可能需要一些SUID
的程序才能正常运行,所以要千万小心。
用下面的命令查找所有带“ s”位的程序:
[root@Aid]# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;
*-rwsr-xr-x 1 root root 35168 Sep 22 23:35 /usr/bin/chage
*-rwsr-xr-x 1 root root 36756 Sep 22 23:35 /usr/bin/gpasswd
*-r-xr-sr-x 1 root tty 6788 Sep 6 18:17 /usr/bin/wall
-rwsr-xr-x 1 root root 33152 Aug 16 16:35 /usr/bin/at
-rwxr-sr-x 1 root man 34656 Sep 13 20:26 /usr/bin/man
-r-s--x--x 1 root root 22312 Sep 25 11:52 /usr/bin/passwd
-rws--x--x 2 root root 518140 Aug 30 23:12 /usr/bin/suidperl
-rws--x--x 2 root root 518140 Aug 30 23:12 /usr/bin/sperl5.00503
-rwxr-sr-x 1 root slocate 24744 Sep 20 10:29 /usr/bin/slocate
*-rws--x--x 1 root root 14024 Sep 9 01:01 /usr/bin/chfn
*-rws--x--x 1 root root 13768 Sep 9 01:01 /usr/bin/chsh
*-rws--x--x 1 root root 5576 Sep 9 01:01 /usr/bin/newgrp
*-rwxr-sr-x 1 root tty 8328 Sep 9 01:01 /usr/bin/write
-rwsr-xr-x 1 root root 21816 Sep 10 16:03 /usr/bin/crontab
*-rwsr-xr-x 1 root root 5896 Nov 23 21:59 /usr/sbin/usernetctl
*-rwsr-xr-x 1 root bin 16488 Jul 2 10:21 /usr/sbin/traceroute
-rwxr-sr-x 1 root utmp 6096 Sep 13 20:11 /usr/sbin/utempter
-rwsr-xr-x 1 root root 14124 Aug 17 22:31 /bin/su
*-rwsr-xr-x 1 root root 53620 Sep 13 20:26 /bin/mount
*-rwsr-xr-x 1 root root 26700 Sep 13 20:26 /bin/umount
*-rwsr-xr-x 1 root root 18228 Sep 10 16:04 /bin/ping
*-rwxr-sr-x 1 root root 3860 Nov 23 21:59 /sbin/netreport
-r-sr-xr-x 1 root root 26309 Oct 11 20:48 /sbin/pwdb_chkpwd
用下面的命令禁止上面选出来的S U I D的程序:
[root@Aid]# chmod a-s /usr/bin/chage
[root@Aid]# chmod a-s /usr/bin/gpasswd
[root@Aid]# chmod a-s /usr/bin/wall
[root@Aid]# chmod a-s /usr/bin/chfn
[root@Aid]# chmod a-s /usr/bin/chsh
[root@Aid]# chmod a-s /usr/bin/newgrp
[root@Aid]# chmod a-s /usr/bin/write
[root@Aid]# chmod a-s /usr/sbin/usernetctl
[root@Aid]# chmod a-s /usr/sbin/traceroute
[root@Aid]# chmod a-s /bin/mount
[root@Aid]# chmod a-s /bin/umount
[root@Aid]# chmod a-s /bin/ping
[root@Aid]# chmod a-s /sbin/netreport
如果想知道这些程序到底有什么用,可以用m a n命令查看帮助。例如:
[root@Aid]# man netreport
12 异常和隐含文件
在系统的每个地方都要查看一下有没有异常和隐含文件,因为这些文件可能是隐藏的黑客
工具或者其他一些信息(口令破解程序、其他系统的口令文件等等)。在U N I X下,常用的技术就是用一些特殊的名,如:“...”、“.. ”(点点空格)或“..^G”(点点Cntrol -G),来隐含文件或目录。使用find程序可以查找这些隐含文件。
例如:
[root@Aid]# find / -name ".." -print -xdev
[root@Aid]# find / -name ".*" -print -xdev | cat -v
同时也要注意像“ . x x”和“ . m a i l”这样的文件名。(这些文件名看起来都很像正常的文件名。)
13 查找所有SUID/SGID位有效的文件
系统中SUID和SGID文件很有可能成为安全隐患,必须严密监控。因为这些程序都给执行它
的用户一些特权,所以要确保危险的SUID程序没有安装。黑客常常利用SUID程序,故意留下一个SUID的程序作为下次进入系统的后门。注意系统中所有的SUID和SGID的程序并跟踪它们,这样可以尽早发现入侵者。
使用下面的命令查找系统中所有的SUID和SGID程序:
[root@Aid]# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;
14 查找任何人都有写权限的文件和目录
如果黑客获得并改变了一些系统文件,这些系统文件就会成为安全漏洞。任何人都有写权
限的目录也同样有危险,因为黑客可以根据他们的需要自由地添加或删除文件。在正常情况下有些文件是可写的,包括一些“/dev”目录下的文件和符号连接。
在系统中定位任何人都有写权限的文件和目录可以使用下面的命令:
[root@Aid]# find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \;
[root@Aid]# find / -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \;
注意像Tripware软件这样的文件和目录完整性检查器能够扫描、管理和方便地发现改
变过的任何人都有写权限的文件。
15 查找没有所有者的文件
发现没有所有者的文件就意味着有黑客入侵系统了。不能允许没有所有者的文件存在。如
果在系统中发现了没有所有者的文件或目录,先查看它的完整性,如果一切正常,给它一个所有者。有时候卸载程序可能会出现一些没有所有者的文件或目录,在这种情况下可以把这些文件和目录删除掉。
定位系统中没有所有者的文件可以使用下面的命令:
[root@Aid]# find / -nouser -o -nogroup
注意不用管“/dev”目录下的那些文件。
16 查找.rhosts文件
查找“.rhosts”文件是日常管理工作的一部分,因为这些文件不允许存在于系统中。记住,
黑客只要有系统中的一个账号就可能入侵整个网络。
可以用下面的命令定位系统中的“.rhosts”文件:
[root@Aid]# find /home -name .rhosts
也可以用一个cron任务定期地查看、报告和删除$HOME/.rhosts文件。同时,也必须让用户
知道会经常地进行这种审核。用root身份在“/etc/cron.daily”目录下,创建“find_rhosts_files”脚本文件(touch /etc/cron.daily/find_rhosts_files),并在脚本文件中加入下面几行:
#!/bin/sh
/usr/bin/find /home -name .rhosts | (cat
This is an automated report of possible existent ".rhosts" files on the server
deep.openarch.com, generated by the find utility command.
New detected ".rhosts" files under the "/home" directory include:
EOF
Cat
) | /bin/mail -s "Content of .rhosts file audit report" root
然后,让这个脚本可执行,把所有者和组设置成root:
[root@Aid]# chmod 755 /etc/cron.daily/find_rhosts_files
[root@Aid]# chown 0.0 /etc/cron.daily/find_rhosts_files
每天都会有一份主题为Content of .rhosts file audit report的邮件发给root,报告新发现的
“.rhosts”文件。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8319/showart_109347.html |
|