Linux安全设置.docx

上传人:b****7 文档编号:16487743 上传时间:2023-07-14 格式:DOCX 页数:20 大小:26.73KB
下载 相关 举报
Linux安全设置.docx_第1页
第1页 / 共20页
Linux安全设置.docx_第2页
第2页 / 共20页
Linux安全设置.docx_第3页
第3页 / 共20页
Linux安全设置.docx_第4页
第4页 / 共20页
Linux安全设置.docx_第5页
第5页 / 共20页
Linux安全设置.docx_第6页
第6页 / 共20页
Linux安全设置.docx_第7页
第7页 / 共20页
Linux安全设置.docx_第8页
第8页 / 共20页
Linux安全设置.docx_第9页
第9页 / 共20页
Linux安全设置.docx_第10页
第10页 / 共20页
Linux安全设置.docx_第11页
第11页 / 共20页
Linux安全设置.docx_第12页
第12页 / 共20页
Linux安全设置.docx_第13页
第13页 / 共20页
Linux安全设置.docx_第14页
第14页 / 共20页
Linux安全设置.docx_第15页
第15页 / 共20页
Linux安全设置.docx_第16页
第16页 / 共20页
Linux安全设置.docx_第17页
第17页 / 共20页
Linux安全设置.docx_第18页
第18页 / 共20页
Linux安全设置.docx_第19页
第19页 / 共20页
Linux安全设置.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Linux安全设置.docx

《Linux安全设置.docx》由会员分享,可在线阅读,更多相关《Linux安全设置.docx(20页珍藏版)》请在冰点文库上搜索。

Linux安全设置.docx

Linux安全设置

 

Linux服务器

安全设置方案

 

2013年05月

 

文档控制

⏹修改记录

作者

修改记录

日期

版本

一、描述

尽管Linux在安全设计上比其他一些操作系统具有一定的先天优势,但它也决不像早先一些人认为的“绝对安全”,近年来,基于Linux的安全事件也多有发生。

本文对Linux安全问题进行过一些探讨,作为对这一部分内容的总结和进一步补充完善。

二、开机安全设置

1、Bios安全

一定要给Bios设置密码,以防通过在Bios中改变启动顺序,而可以从软盘启动。

这样可以阻止别人

试图用特殊的启动盘启动你的系统,还可以阻止别人进入Bios改动其中的设置(比如允许通过软盘启动等)。

2、LILO安全

在"/etc/lilo.conf"文件中加入下面三个参数:

time-out,restricted,password。

这三个参数可以使你的系统在启动lilo时就要求密码验证。

第一步:

编辑lilo.conf文件(vi /etc/f),假如或改变这三个参数:

boot=/dev/hda 

map=/boot/map 

install=/boot/boot.b 

time-out=00   #把这行该为00

prompt 

Default=linux 

restricted   #加入这行

password=   #加入这行并设置自己的密码

image=/boot/vmlinuz-2.2.14-12 

label=linux 

initrd=/boot/initrd-2.2.14-12.img 

root=/dev/hda6 

read-only 

第二步:

因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。

[root@kapil /]# chmod 600 /etc/lilo.conf 

因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。

[root@kapil /]# chmod 600 /etc/lilo.conf 

第三步:

更新系统,以便对"/etc/lilo.conf"文件做的修改起作用。

[Root@kapil /]# /sbin/lilo -v

第四步:

使用"chattr"命令使"/etc/lilo.conf"文件变为不可改变。

[root@kapil /]# chattr +i /etc/lilo.conf 

这样可以防止对"/etc/lilo.conf"任何改变(以外或其他原因)

三、账户安全设置

1、删除所有的特殊账户

你应该删除所有不用的缺省用户和组账户(比如lp, sync, shutdown, halt, news, uucp, operator, games, gopher等)。

删除用户:

[root@kapil /]# userdel LP 

删除组:

[root@kapil /]# groupdel LP 

2、root账户自动注销

在unix系统中root账户是具有最高特权的。

如果系统管理员在离开系统之前忘记注销root账户,系统会自动注销。

通过修改账户中"TMOUT"参数,可以实现此功能。

TMOUT按秒计算。

编辑你的profile文件(vi/etc/profile),在"HISTFILESIZE="后面加入下面这行:

TMOUT=3600

3600,表示60*60=3600秒,也就是1小时。

这样,如果系统中登陆的用户在一个小时内都没有动作,那么系统会自动注销这个账户。

你可以在个别用户的".bashrc"文件中添加该值,以便系统对该用户实行特殊的自动注销时间。

改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。

3、root账户电源管理

只允许root账户对电源进行管理

此项配置防止SYNFlood攻击

vi/etc/default/sys-suspend:

将PERMS=console-owner

改为PERMS=-

#chmod0755/usr/openwin/bin/sys-suspend

4、取消普通用户的控制台访问权限

你应该取消普通用户的控制台访问权限,比如shutdown、reboot、halt等命令。

[root@kapil /]#rm-f/etc/security/console.apps/

是你要注销的程序名。

5、定期删除离职的用户

定期检查主机系统用户,及时删除离职的用户,检查系统中SUID、SGID文件

find/\(-perm-004000-o-perm-002000\)-typef–print

检查系统上不正常的隐藏文件。

例如:

目录文件/dev下是否有可疑文件;

/etc/inetd.conf是否有被替换文件;

crontat中是否运行可疑进程。

6、编辑初始账户参数,以满足密码策略

编辑/etc/sadm/defadduser需要,使用adduser命令时满足密码策略,例如:

vi/etc/sadm/defadduser

defgroup=15

defgname=users

defparent=/export/home

defskel=/etc/skel

defshell=/usr/bin/ksh

definact=30

defexpire=

四、密码安全

1、设置密码安全性

在选择正确密码之前还应作以下修改:

修改密码长度:

在你安装linux时默认的密码长度是5个字节。

但这并不够,要把它设为8。

修改最短密码长度需要编辑login.defs文件(vi /etc/login.defs),把下面这行

PASS_MIN_LEN    5 

改为

PASS_MIN_LEN    8

密码可以被改变的最小时段

PWMIN=1

密码的最大生存周期

PWMAX=13

设定离用户密码过期的天数,当系统启动时提醒用户

PWWARN=4

2、设置复杂的密码

口令长度至少为八个字符,口令越长越好。

若使用MD5口令,它应该至少有15个字符。

若使用DES口令,使用最长长度(8个字符)。

混和大小写字母。

Linux区分大小写,因此混和大小写会增加口令的强壮程度。

混和字母和数字。

在口令中添加数字,特别是在中间添加(不只在开头和结尾处)能够加强口令的强健性。

包括字母和数字以外的字符:

&、$、和>之类的特殊字符可以极大地增强口令的强健性(若使用DES口令则不能使用此类字符)。

挑选一个可以记住的口令。

如果记不住自己的口令,那么它再好也没有用,使用简写或其他记忆方法来帮助记忆口令。

不要在口令中只使用单词或数字。

不要使用现成词汇,像名称、词典中的词汇、甚至电视剧或小说中的用语,即使在两端使用数字,都应该避免使用。

不要使用外语中的词汇。

口令破译程序经常使用多种语言的词典来检查其词汇列表。

依赖外语来达到保护口令的目的通常不起作用。

不要使用黑客术语。

3、打开密码的shadow支持功能:

你应该打开密码的shadow功能,来对password加密。

使用"/usr/sbin/authconfig"工具打开shadow功能。

如果你想把已有的密码和组转变为shadow格式,可以分别使用"pwcov,grpconv"命令。

4、其他账户密码是否为空

检查/etc/passwd和/etc/shadow,每个用户的密码栏是否不为空。

more/etc/passwd

more/etc/shadow

五、服务安全

1、取消并反安装所有不用的服务

取消并反安装所有不用的服务,这样你的担心就会少很多。

察看"/etc/inetd.conf"文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个"#")。

然后用"sighup"命令升级"inetd.conf"文件。

第一步:

更改"/etc/inetd.conf"权限为600,只允许root来读写该文件。

[Root@kapil /]# chmod 600 /etc/inetd.conf

第二步:

确定"/etc/inetd.conf"文件所有者为root。

第三步:

编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要的):

ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。

把不需要的服务关闭可以使系统的危险性降低很多。

建议只保留以下服务:

ftp  stream tcpnowait root  /usr/sbin/in.ftpd  in.ftpd

telnet stream tcpnowait root /usr/sbin/in.telnetd in.telnetd

time  stream tcpnowait root  internal

time dgram udpwait  root  internal

echo  stream tcp nowait root  internal

echo  dgram udpwait  root  internal

discardstream tcp nowait root  internal

discarddgram udp wait  root  internal

daytimestream tcp nowait root  internal

daytimedgram udp wait  root  internal

rstatd/2-4 tlirpc/datagram_vwaitroot/usr/lib/netsvc/rstat/rpc.rstatdrpc.rstatd

fs stream tcpwaitnobody/usr/openwin/lib/fs.auto  fs

100083/1 tli  rpc/tcpwaitroot/usr/dt/bin/rpc.ttdbserverdrpc.ttdbserverd

第四步:

给inetd进程发送一个HUP信号:

[root@kapil /]# killall -HUP inetd 

第五步:

用chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它:

[root@kapil /]# chattr +i /etc/inetd.conf 

这样可以防止对inetd.conf的任何修改(以外或其他原因)。

唯一可以取消这个属性的人只有root。

如果要修改inetd.conf文件,首先要是取消不可修改性质:

[root@kapil /]# chattr -i /etc/inetd.conf

别忘了该后再把它的性质改为不可修改的。

2、关闭不用的端口

查看/etc/services文件,关闭一些无用服务的端口

vi/etc/services

3、关闭系统的自启动服务

根据需要停用以下服务

cd/etc/rc*.d

sendmail服务

sendmail把/etc/rc2.d/S88sendmai更名(mv)为tc/rc2.d/X88sendmail

DNS服务

DNS将/etc/rc2.d/S72inetsv注释掉in.named一项

lp服务

lp把/etc/rc2.d/S80lp更名(mv)为/etc/rc2.d/X80lp

uucp服务

uucp把/etc/rc2.d/S70uucp更名(mv)为/etc/rc2.d/X70uucp

snmp服务

snmp把/etc/rc2.d/K07snmpdx、/etc/rc3.d/S76snmpdx和/etc/rc3.d/S77dmi更名(mv)为/etc/rc2.d/Y07snmpdx、/etc/rc3.d/X76snmpdx和/etc/rc3.d/X77dmi

自动安装服务

autoinstall把/etc/rc2.d/S72autoinstallg更名(mv)为/etc/rc2.d/X72autoinstall

六、登陆安全

1、黑名单

使用黑名单可以使你的系统安全面对外部入侵。

最好的策略就是阻止所有的主机(在"/etc/hosts.deny" 文件中加入"ALL:

 ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow" 文件中加入所有允许访问的主机列表。

第一步:

编辑hosts.deny文件(vi /etc/hosts.deny),加入下面这行

# Deny access to everyone. 

ALL:

 ALL@ALL, PARANOID

这表明除非该地址包好在允许访问的主机列表中,否则阻塞所有的服务和地址。

第二步:

编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:

ftp:

 202.54.15.99 

202.54.15.99和 是允许访问ftp服务的ip地址和主机名称。

第三步:

tcpdchk程序是tepd wrapper设置检查程序。

它用来检查你的tcp  wrapper设置,并报告发现的潜在的和真实的问题。

设置完后,运行下面这个命令:

[Root@kapil /]# tcpdchk

2、禁止系统信息暴露

当有人远程登陆时,禁止显示系统欢迎信息。

你可以通过修改"/etc/inetd.conf"文件来达到这个目的。

把/etc/inetd.conf文件下面这行:

telnet  stream  tcp     nowait root    /usr/sbin/tcpd  in.telnetd

修改为:

telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd -h

在最后加"-h"可以使当有人登陆时只显示一个login:

提示,而不显示系统欢迎信息。

3、修改"/etc/host.conf"文件

"/etc/host.conf"说明了如何解析地址。

编辑"/etc/host.conf"文件(vi/etc/host.conf),加入下面这行:

# Lookup names via DNS first then fall back to /etc/hosts.order bind,hosts 

# We have machines with multiple IP addresses. multi on 

# Check for IP address spoofing. nospoof on 

第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。

第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。

第三项设置说明要注意对本机未经许可的电子欺骗。

4、禁止任何人通过su命令改变为root用户

su(Substitute User替代用户)命令允许你成为系统中其他已存在的用户。

如果你不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令,你可以在su配置文件(在"/etc/pam.d/"目录下)的开头添加下面两行:

编辑su文件(vi /etc/pam.d/su),在开头添加下面两行:

auth sufficient /lib/security/pam_rootok.so debug 

auth required /lib/security/Pam_wheel.so group=wheel 

这表明只有"wheel"组的成员可以使用su命令成为root用户。

你可以把用户添加到"wheel"组,以使它可以使用su命令成为root用户。

5、不允许从不同的控制台进行root登陆

"/etc/securetty"文件允许你定义root用户可以从那个TTY设备登陆。

你可以编辑"/etc/securetty"文件,再不需要登陆的TTY设备前添加"#"标志,来禁止从该TTY设备进行root登陆。

6、root登陆管理

编辑登陆文件,修改root登陆参数

vi/etc/default/login

防止远程的root登陆

CONSOLE=/dev/console

纪录root的登陆失败,成功的情况。

SYSLOG=YES

设置登陆会话超时时间

TIMEOUT=120

确定登陆需要密码验证

PASSREQ=YES

7、系统访问限制

任何用户都可以通过rlogin不需要口令以该用户的身份登录到系统。

因此要为这些文件加锁,先创建它们,然后修改其属性为零即可。

这样除了root用户就没有其它用户能创建或修改它们了。

全局查找.rhosts文件

#find/–name“.rhosts”-print

修改权限

#chmod700/usr/bin/touch

#chmod700/.rhosts

#chmod700/.netrc

#chmod700/etc/hosts.equiv

#chmod700/usr/bin/chmod

七、Telnet

1、关闭服务

编辑/etc/xinetd.d/telnet

#vi/etc/xinetd.d/telnet

[root@testroot]#vi/etc/xinetd.d/telnet

找到disable=no<==就是改这里,将弄改成yes即可!

重启服务

telnet是挂在xinetd底下的,所以自然只要重新激活xinetd就能够将xinetd里头的设定重新读进来,所以刚刚设定的telnet自然也就可以被激活。

[root@wljsroot]#servicexinetdrestart

2、设置telnet端口

#vi/etc/services

进入编辑模式后查找telne

会找到如下内容:

telnet23/tcp

telnet23/udp

将23修改成未使用的端口号(如:

2000),退出vi,重启telnet服务,telnet默认端口号就被修改了。

3、Telnet服务限制

如果原本的默认值你并不满意,那么你可以修改成比较安全一点的机制。

假设你这个Linux是一部主机,而且他有两块网络接口,分别是对外的192.168.0.1与对内的210.45.160.17这两个,如果你想要让对内的接口限制较松,而对外的限制较严格,你可以这样的来设定:

#vi/etc/xinetd.d/telnet

#先针对对内的较为松散的限制来设定:

servicetelnet

{disable    =no        <==预设就是激活telnet服务

bind     =210.45.160.17   <==只允许经由这个适配卡的封包进来

only_from   =210.45.160.0/24   <==只允许210.45.160.0/24这个网段的主机联机进来使用telnet的服务

.....

}

#再针对外部的联机来进行限制

servicetelnet

{

disable    =no<==预设就是激活telnet服务

bind     =192.168.0.1<==只允许经由这个适配卡的封包进来

only_from   =192.168.0.0/16<==只允许192.168.0.0~192.168.255.255这个网段联机进来使用telnet的服务

only_from   =<==重复设定,只有教育网才能联机!

no_access   =192.168.25.{10,26}<==不许这些PC登入

access_times  =1:

00-9:

0020:

00-23:

59<==每天只有这两个时段开放服务

......

}

4、root用户的登入

root不能直接以telnet连接上主机。

telnet不是很安全,默认的情况之下就是无法允许root以telnet登入Linux主机的。

若要允许root用户登入,可用下列方法

[root@test/root]#vi/etc/pam.d/login

authrequiredpam_securetty.so#将这一行注释去掉!

这样一来,root将不可以直接进入Linux主机。

八、SSH

1、禁止root用户直接登陆

修改/etc/ssh/sshd_config文件

vi/etc/ssh/sshd_config 

PermitRootLoginno   #不允许Root登录

2、黑白名单控制:

修改白名单,允许需要的主机通过ssh访问

vi/etc/host.allow

sshd:

192.168.1.107#允许192.168.1.107通过ssh访问本机

修改黑名单,拒绝目标主机通过ssh访问

vi/etc/host.deny

sshd:

192.168.1.105#拒绝192.168.1.105通过ssh访问本机

3、启停动SSH:

启动服务:

#servicesshdstart

#servicesshdrestart(重新启动)

停止服务器:

#servicesshdstop

九、FTP

1、关闭服务

#servicevsftpdstop

2、FTP安全配置

#vi/etc/vsftpd/vsftpd.conf

anonymous_enable=no   是否允许匿名用户登录

anonymous_enable=no   是否允许匿名上传文件

local_enable=YES      是否允许本地用户登录

write_enable=no      是否允许本地用户上传

guest_enable=yes       是否允许虚拟用户登录;

local_mask=022          设置本地用户的文件生成掩码为022,默认值为077

dirmessage_enable=YES    设置切换到目录时显示.message隐含文件的内容

xferlog_enable=YES       激活上传和下载日志

connect_from_port_20=YES  启用FTP数据端口连接

pam_service_name=vsftpd   设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d目录下

userlist_enable=no      允许vsftpd.user

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2