linux服务器安全配置.docx

上传人:b****3 文档编号:5439103 上传时间:2023-05-08 格式:DOCX 页数:30 大小:31.88KB
下载 相关 举报
linux服务器安全配置.docx_第1页
第1页 / 共30页
linux服务器安全配置.docx_第2页
第2页 / 共30页
linux服务器安全配置.docx_第3页
第3页 / 共30页
linux服务器安全配置.docx_第4页
第4页 / 共30页
linux服务器安全配置.docx_第5页
第5页 / 共30页
linux服务器安全配置.docx_第6页
第6页 / 共30页
linux服务器安全配置.docx_第7页
第7页 / 共30页
linux服务器安全配置.docx_第8页
第8页 / 共30页
linux服务器安全配置.docx_第9页
第9页 / 共30页
linux服务器安全配置.docx_第10页
第10页 / 共30页
linux服务器安全配置.docx_第11页
第11页 / 共30页
linux服务器安全配置.docx_第12页
第12页 / 共30页
linux服务器安全配置.docx_第13页
第13页 / 共30页
linux服务器安全配置.docx_第14页
第14页 / 共30页
linux服务器安全配置.docx_第15页
第15页 / 共30页
linux服务器安全配置.docx_第16页
第16页 / 共30页
linux服务器安全配置.docx_第17页
第17页 / 共30页
linux服务器安全配置.docx_第18页
第18页 / 共30页
linux服务器安全配置.docx_第19页
第19页 / 共30页
linux服务器安全配置.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

linux服务器安全配置.docx

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

linux服务器安全配置.docx

linux服务器安全配置

一、linux防火墙配置

RedHatLinux为增加系统安全性提供了防火墙保护。

防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。

一个正确配置的防火墙可以极大地增加你的系统安全性。

为你的系统选择恰当的安全级别。

高级

如果你选择了“高级”,你的系统就不会接受那些没有被你具体指定的连接(除了默认设置外)。

只有以下连接是默认允许的:

DNS回应

DHCP—任何使用DHCP的网络接口都可以被相应地配置。

如果你选择“高级”,你的防火墙将不允许下列连接:

1.活跃状态FTP(在多数客户机中默认使用的被动状态FTP应该能够正常运行。

2.IRCDCC文件传输。

3.RealAudio.

4.远程X窗口系统客户机。

如果你要把系统连接到互联网上,但是并不打算运行服务器,这是最安全的选择。

如果需要额外的服务,你可以选择“定制”来具体指定允许通过防火墙的服务。

注记:

如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS和LDAP)将行不通。

中级

如果你选择了“中级”,你的防火墙将不准你的系统访问某些资源。

访问下列资源是默认不允许的:

1.低于1023的端口—这些是标准要保留的端口,主要被一些系统服务所使用,例如:

FTP、SSH、telnet、HTTP、和NIS.

2.NFS服务器端口(2049)—在远程服务器和本地客户机上,NFS都已被禁用。

3.为远程X客户机设立的本地X窗口系统显示。

4.X字体服务器端口(xfs不在网络中监听;它在字体服务器中被默认禁用)。

如果你想准许到RealAudio之类资源的访问,但仍要堵塞到普通系统服务的访问,选择“中级”。

你可以选择“定制”来允许具体指定的服务穿过防火墙。

注记:

如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS和LDAP)将行不通。

无防火墙

无防火墙给予完全访问权并不做任何安全检查,安全检查是对某些服务的禁用。

建议你只有在一个可信任的网络(非互联网)中运行时,或者你想稍后再进行详细的防火墙配置时才选此项。

选择“定制”来添加信任的设备或允许其它的进入接口。

信任的设备

选择“信任的设备”中的任何一个将会允许你的系统接受来自这一设备的全部交通;它不受防火墙规则的限制。

例如,如果你在运行一个局域网,但是通过PPP拨号连接到了互联网上,你可以选择“eth0”,而后所有来自你的局域网的交通将会被允许。

把“eth0”选为“信任的”意味着所有这个以太网内的交通都是被允许的,但是ppp0接口仍旧有防火墙限制。

如果你想限制某一接口上的交通,不要选择它。

建议你不要将连接到互联网之类的公共网络上的设备定为“信任的设备”。

允许进入

启用这些选项将允许具体指定的服务穿过防火墙。

注意:

在工作站类型安装中,大多数这类服务在系统内没有被安装。

DHCP

如果你允许进入的DHCP查询和回应,你将会允许任何使用DHCP来判定其IP地址的网络接口。

DHCP通常是启用的。

如果DHCP没有被启用,你的计算机就不能够获取IP地址。

SSH

Secure(安全)SHell(SSH)是用来在远程机器上登录及执行命令的一组工具。

如果你打算使用SSH工具通过防火墙来访问你的机器,启用该选项。

你需要安装openssh-server软件包以便使用SSH工具来远程访问你的机器。

Telnet

Telnet是用来在远程机器上登录的协议。

Telnet通信是不加密的,几乎没有提供任何防止来自网络刺探之类的安全措施。

建议你不要允许进入的Telnet访问。

如果你想允许进入的Telnet访问,你需要安装telnet-server软件包。

“WWW(HTTP)”

HTTP协议被Apache(以及其它万维网服务器)用来进行网页服务。

如果你打算向公众开放你的万维网服务器,请启用该选项。

你不需要启用该选项来查看本地网页或开发网页。

如果你打算提供网页服务的话,你需要安装httpd软件包。

启用“WWW(HTTP)”将不会为HTTPS打开一个端口。

要启用HTTPS,在“其它端口”字段内注明。

邮件(SMTP)

如果你需要允许远程主机直接连接到你的机器来发送邮件,启用该选项。

如果你想从你的ISP服务器中收取POP3或IMAP邮件,或者你使用的是fetchmail之类的工具,不要启用该选项。

请注意,不正确配置的SMTP服务器会允许远程机器使用你的服务器发送垃圾邮件。

FTP

FTP协议是用于在网络机器间传输文件的协议。

如果你打算使你的FTP服务器可被公开利用,启用该选项。

你需要安装vsftpd软件包才能利用该选项。

其它端口

你可以允许到这里没有列出的其它端口的访问,方法是在“其它端口”字段内把它们列出。

格式为:

“端口:

协议”。

例如,如果你想允许IMAP通过你的防火墙,你可以指定imap:

tcp.你还可以具体指定端口号码,要允许UDP包在端口1234通过防火墙,输入1234:

udp.要指定多个端口,用逗号将它们隔开。

窍门:

要在安装完毕后改变你的安全级别配置,使用安全级别配置工具。

在shell提示下键入redhat-config-securitylevel命令来启动安全级别配置工具。

如果你不是根用户,它会提示你输入根口令后再继续。

二、linux系统安全

关于分区

  

  一个潜在的黑客如果要攻击你的Linux服务器,他首先就会尝试缓冲区溢出。

在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。

更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!

  

  为了防止此类攻击,我们从安装系统时就应该注意。

如果用root分区纪录数据,如log文件和email,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。

所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。

最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还有建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。

  

  关于BIOS

  

  记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。

这样可以阻止不怀好意的人用专门的启动盘启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等等。

  

  关于口令

  

  口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。

为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN(口令最小长度)。

同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS(口令使用时间)。

  

  关于Ping

  

  既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。

你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行,这样就可以阻止你的系统响应任何从外部/内部来的ping请求。

  

  echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all

  

  关于Telnet

  

  如果你希望用户用Telnet远程登录到你的服务器时不要显示操作系统和版本信息(可以避免有针对性的漏洞攻击),你应该改写/etc/inetd.conf中的一行象下面这样:

  

  telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h

  

  加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login。

  

  关于特权账号

  

  禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。

  

  为删除你系统上的用户,用下面的命令:

userdelusername

  

  为删除你系统上的组用户帐号,用下面的命令:

groupdelusername

  

  在终端上打入下面的命令删掉下面的特权用账号:

  

  userdeladm

  

  userdellp

  

  userdelsync

  

  userdelshutdown

  

  userdelhalt

  

  userdelmail

  

  如果你不用sendmail服务器,就删除这几个帐号:

  

  userdelnews

  

  userdeluucp

  

  userdeloperator

  

  userdelgames

  

  如果你不用Xwindows服务器,就删掉这个帐号。

  

  userdelgopher

  

  如果你不允许匿名FTP,就删掉这个用户帐号:

  

  userdelftp

  

  关于su命令

  

  如果你不想任何人能够su为root的话,你应该编辑/etc/pam.d/su文件,加下面几行:

  

  authsufficient/lib-

  

  /security/pam_rootok-

  

  .sodebug

  

  authrequired/lib-

  

  /security/pam_wheel-

  

  .sogroup=isd

  

  这意味着仅仅isd组的用户可以su作为root。

如果你希望用户admin能su作为root.就运行下面的命令:

  

  usermod-G10admin

  

  suid程序也是非常危险的,这些程序被普通用户以euid=0(即root)的身份执行,只能有少量程序被设置为suid。

用这个命令列出系统的suid二进制程序:

  

  suneagle#find/-perm-4000-print

  

  你可以用chmod-s去掉一些不需要程序的suid位。

  

  关于账户注销

  

  如果系统管理员在离开系统时忘了从root注销,系统应该能够自动从shell中注销。

那么,你就需要设置一个特殊的Linux变量“tmout”,用以设定时间。

同样,如果用户离开机器时忘记了注销账户,则可能给系统安全带来隐患。

你可以修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。

编辑文件/etc/profile,在“histfilesize=”行的下一行增加如下一行:

  

  tmout=600

  

  则所有用户将在10分钟无操作后自动注销。

注意:

修改了该参数后,必须退出并重新登录root,更改才能生效。

  

  关于系统文件

  

  对于系统中的某些关键性文件如passwd、passwd.old、passwd._、shadow、shadown._、inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。

如将inetd文件属性改为600:

  

  #chmod600/etc/inetd.conf

  

  这样就保证文件的属主为root,然后还可以将其设置为不能改变:

  

  #chattr+i/etc/inetd.conf

  

  这样,对该文件的任何改变都将被禁止。

你可能要问:

那我自己不是也不能修改了?

当然,我们可以设置成只有root重新设置复位标志后才能进行修改:

  

  #chattr-i/etc/inetd.conf

  

  关于用户资源

  

  对你的系统上所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数,内存数量等。

例如,对所有用户的限制,编辑/etc/security/limits.con加入以下几行:

  

  *hardcore0

  

  *hardrss5000

  

  *hardnproc20

  

  你也必须编辑/etc/pam.d/login文件,检查这一行的存在:

  

  sessionrequired/lib/security/pam_limits.so

  

  上面的命令禁止corefiles“core0”,限制进程数为“nproc50“,且限制内存使用为5M“rss5000”。

  

  关于NFS服务器

  

  由于NFS服务器漏洞比较多,你一定要小心。

如果要使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。

你可以编辑文件/etc/exports并且加:

  

  /dir/to/export(ro,root_squash)

  

  /dir/to/export(ro,root_squash)

  

  其中/dir/to/export是你想输出的目录,是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。

最后为了让上面的改变生效,还要运行/usr/sbin/exportfs-a

  

  关于开启的服务

  

  默认的linux就是一个强大的系统,运行了很多的服务。

但有许多服务是不需要的,很容易引起安全风险。

这个文件就是/etc/inetd.conf,它制定了/usr/sbin/inetd将要监听的服务,你可能只需要其中的两个:

telnet和ftp,其它的类如shell,login,exec,talk,ntalk,imap,pop-2,pop-3,finger,auth,etc.除非你真的想用它。

否则统统关闭之。

  

  你先用下面的命令显示没有被注释掉的服务:

  

  grep-v“#”/etc/inetd.conf

  

  这个命令统计面前服务的总数:

  

  ps-eaf|wc-l

  

  需要提醒你的是以下三个服务漏洞很多,强烈建议你关闭它们:

S34yppasswdd(NIS服务器)、S35ypserv(NIS服务器)和S60nfs(NFS服务器)。

  

  我们可以运行#killall-HUPinetd来关闭不需要的服务。

当然,你也可以运行

  

  #chattr+i/etc/inetd.conf

  

  如果你想使inetd.conf文件具有不可更改属性,而只有root才能解开,敲以下命令

  

  #chattr-i/etc/inetd.conf

  

  当你关闭一些服务以后,重新运行以上命令看看少了多少服务。

运行的服务越少,系统自然越安全了。

我们可以用下面命令察看哪些服务在运行:

  

  netstat-na–ip

  

  如果你用的是Redhat那就方便多了。

^_^Redhat提供一个工具来帮助你关闭服务,输入/usr/sbin/setup,然后选择”systemservices”,就可以定制系统启动时跑哪些服务。

另外一个选择是chkconfig命令,很多linux版本的系统都自带这个工具。

脚本名字中的数字是启动的顺序,以大写的K开头的是杀死进程用的。

  

  关于日志

  

  所有的日志都在/var/log下(仅对linux系统而言),默认情况下linux的日志就已经很强大了,但除ftp外。

因此我们可以通过修改/etc/ftpaccess或者/etc/inetd.conf,来保证每一个ftp连接日志都能够纪录下来。

下面是一个修改inetd.conf的例子,假如有下一行:

  

  ftpstreamtcpnowaitroot/usr/sbin/tcpdin.ftpd-l-L-i-o字串3

  

  注释:

  

  -l每一个ftp连接都写到syslog

  

  -L纪录用户的每一个命令

  

  -i文件received,纪录到xferlog

  

  -o文件transmitted,记录到xferlog

  

  不过你也不要太相信日志,因为绝大部分黑客都有“擦脚印”的“好”习惯啰!

如果你不放心,最好安装一个Sniffer吧。

  

  关于TCP_WRAPPERS

  

  默认的,RedhatLinux允许所有的请求,这是很危险的。

三、linux网络安全

 Linux安全配置步骤简述

  一、磁盘分区

  ◆1、如果是新安装系统,对磁盘分区应考虑安全性:

  

(1)根目录(/)、用户目录(/home)、临时目录(/tmp)和/var目录应分开到不同的磁盘分区;

  

(2)以上各目录所在分区的磁盘空间大小应充分考虑,避免因某些原因造成分区空间用完而导致系统崩溃;

  ◆2、对于/tmp和/var目录所在分区,大多数情况下不需要有suid属性的程序,所以应为这些分区添加nosuid属性;

  方法一:

修改/etc/fstab文件,添加nosuid属性字。

例如:

  /dev/hda2/tmpext2exec,dev,nosuid,rw00

  方法二:

如果对/etc/fstab文件操作不熟,建议通过linuxconf程序来修改。

  * 运行linuxconf程序;

  * 选择"Filesystems"下的"Accesslocaldrive";

  * 选择需要修改属性的磁盘分区;

  * 选择"Nosetuidprogramsallowed"选项;

  * 根据需要选择其它可选项;

  * 正常退出。

(一般会提示重新mount该分区)

  二、安装

  1、对于非测试主机,不应安装过多的软件包。

这样可以降低因软件包而导致出现安全漏洞的可能性。

  2、对于非测试主机,在选择主机启动服务时不选择非必需的服务。

例如routed、ypbind等。

  三、安全配置与增强

  内核升级。

起码要升级至2.2.16以上版本。

  GNUlibc共享库升级。

(警告:

如果没有经验,不可轻易尝试。

可暂缓。

  关闭危险的网络服务。

echo、chargen、shell、login、finger、NFS、RPC等

  关闭非必需的网络服务。

talk、ntalk、pop-2等

  常见网络服务安全配置与升级

  确保网络服务所使用版本为当前最新和最安全的版本。

  取消匿名FTP访问

  去除非必需的suid程序

  使用tcpwrapper

  使用ipchains防火墙

  日志系统syslogd

  一些细节:

  ◆1、操作系统内部的logfile是检测是否有网络入侵的重要线索,当然这个假定你的logfile不被侵入者所破坏,如果你有台服务器用专线直接连到Internet上,这意味着你的IP地址是永久固定的地址,你会发现有很多人对你的系统做telnet/ftp登录尝试,试着运行如下语句去检查。

  #more/var/log/secure|greprefused

  ◆2、限制具有SUID权限标志的程序数量,具有该权限标志的程序以root身份运行,是一个潜在的安全漏洞,当然,有些程序是必须要具有该标志的,象passwd程序。

  ◆3、BIOS安全。

设置BIOS密码且修改引导次序禁止从软盘启动系统。

  ◆4、用户口令。

用户口令是Linux安全的一个最基本的起点,很多人使用的用户口令就是简单的password,这等于给侵入者敞开了大门,虽然从理论上说没有不能确解的用户口令,只要有足够的时间和资源可以利用。

比较好的用户口令是那些只有他自己能够容易记得并理解的一串字符,并且绝对不要在任何地方写出来。

  ◆5、/etc/exports文件。

如果你使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。

编辑文件/etc/exports并且加入例如:

  /dir/to/export(ro,root_squash)

  /dir/to/export(ro,root_squash)

  其中/dir/to/export是你想输出的目录,是登录这个目录的机器名,

  ro意味着mount成只读系统,root_squash禁止root写入该目录。

  为了让上面的改变生效,运行

  /usr/sbin/exportfs–a

  ◆6、确信/etc/inetd.conf的所有者是root,且文件权限设置为600。

  [root@deep]#chmod600/etc/inetd.conf

  ENSUREthattheownerisroot.

  [root@deep]#stat/etc/inetd.conf

  File:

"/etc/inetd.conf"

  Size:

2869Filetype:

RegularFile

  Mode:

(0600/-rw-------)Uid:

(0/root)Gid:

(0/root)

  Device:

8,6Inode:

18219Links:

1

  Access:

WedSep2216:

24:

161999(00000.00:

10:

44)

  Modify:

MonSep2010:

22:

441999(00002.06:

12:

16)

  Change:

MonSep2010:

22:

441999(00002.06:

12:

16)

  编辑/etc/inetd.conf禁止以下服务:

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

  auth,etc.除非你真的想用它。

  特别是禁止那些r命令.如果你用ssh/scp,那么你也可以禁止掉telnet/ftp。

  为了使改变生效,运行

  #killall-HUPinetd

  你也可以运行

  #chattr+i/etc/inetd.conf

  使该文件具有不可更改属性。

  只有root才能解开,用命令

  #chattr-i/etc/inetd.conf

  7、TCP_WRAPPERS

  默认地,RedhatLinux允许所有的请求,用TCP_WRAPPERS增强你的站点的安全性是举手

  之劳,你可以放入

  “ALL:

ALL”到/etc/hosts.deny中禁止所有的请求,然后放那些明确允许的请求到

  /etc/hosts.allow中,如:

  sshd:

192.168.1.10/255.255.255.0ga

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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