文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux安全设置

Linux安全设置

时间:2006-05-07  来源:olylinux

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 <<EOF

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”文件。

相关阅读 更多 +
排行榜 更多 +
盒子小镇2游戏手机版下载

盒子小镇2游戏手机版下载

冒险解谜 下载
世界盒子模组版下载最新版本

世界盒子模组版下载最新版本

模拟经营 下载
音乐搜索app最新版本下载

音乐搜索app最新版本下载

趣味娱乐 下载