LinuxUnix服务器系统安全最基本防范措施.docx

上传人:b****7 文档编号:9792501 上传时间:2023-02-06 格式:DOCX 页数:11 大小:21.86KB
下载 相关 举报
LinuxUnix服务器系统安全最基本防范措施.docx_第1页
第1页 / 共11页
LinuxUnix服务器系统安全最基本防范措施.docx_第2页
第2页 / 共11页
LinuxUnix服务器系统安全最基本防范措施.docx_第3页
第3页 / 共11页
LinuxUnix服务器系统安全最基本防范措施.docx_第4页
第4页 / 共11页
LinuxUnix服务器系统安全最基本防范措施.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

LinuxUnix服务器系统安全最基本防范措施.docx

《LinuxUnix服务器系统安全最基本防范措施.docx》由会员分享,可在线阅读,更多相关《LinuxUnix服务器系统安全最基本防范措施.docx(11页珍藏版)》请在冰豆网上搜索。

LinuxUnix服务器系统安全最基本防范措施.docx

LinuxUnix服务器系统安全最基本防范措施

Linux/Unix服务器系统安全最基本防范措施

一、系统安全记录文件

操作系统内部的记录文件是检测是否有网络入侵的重要线索。

如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,可以运行"#more/var/log/secure|greprefused"来检查系统所受到的攻击,以便采取相应的对策,如使用SSH来替换Telnet/rlogin等。

二、启动和登录安全性

1.BIOS安全

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

2.用户口令

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

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

3.默认账号

应该禁止所有默认的被操作系统本身启动的并且不必要的账号,当您第一次安装系统时就应该这么做,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。

可以用下面的命令删除账号。

#userdel用户名

或者用以下的命令删除组用户账号。

#groupdelusername

4.口令文件

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

  #chattr+i/etc/passwd

  #chattr+i/etc/shadow

  #chattr+i/etc/group

  #chattr+i/etc/gshadow

  

5.禁止Ctrl+Alt+Delete重新启动机器命令

修改/etc/inittab文件,将"ca:

:

ctrlaltdel:

/sbin/shutdown-t3-rnow"一行注释掉。

然后重新设置/etc/目录下所有文件的许可权限,运行如下命令:

  

  #chmod-R700/etc/*

这样便仅有root可以读、写或执行上述所有脚本文件。

6.限制su命令

如果您不想任何人能够su作为root,可以编辑/etc/su文件,增加如下两行:

  authsufficient/lib/security/debug

  authrequired/lib/security/group=isd

  

这时,仅isd组的用户可以su作为root。

此后,如果您希望用户admin能够su作为root,可以运行如下命令:

  

  #usermod-G10admin

  

7.删减登录信息

默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。

对于一台安全性要求较高的机器来说这样泄漏了过多的信息。

可以编辑/etc/将输出系统信息的如下行注释掉。

  

 #Thiswilloverwrite/etc/issueateveryboot.So,makeanychangesyou

  #wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot.

  #echo"">/etc/issue

  #echo"$R">>/etc/issue

  #echo"Kernel$(uname-r)on$a$(uname-m)">>/etc/issue

  #cp-f/etc/issue/etc/

  #echo>>/etc/issue

  

然后,进行如下操作:

  #rm-f/etc/issue

  #rm-f/etc/

  #touch/etc/issue

  #touch/etc/

  

三、限制网络访问

1.NFS访问

如果您使用NFS网络文件系统服务,应该确保您的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。

编辑文件/etc/exports并加入如下两行。

 /dir/to/export,root_squash)

  /dir/to/export,root_squash)

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

为了使改动生效,运行如下命令。

#/usr/sbin/exportfs-a

2.Inetd设置

首先要确认/etc/的所有者是root,且文件权限设置为600。

设置完成后,可以使用"stat"命令进行检查。

#chmod600/etc/

然后,编辑/etc/禁止以下服务。

ftptelnetshellloginexectalkntalkimappop-2pop-3fingerauth

如果您安装了ssh/scp,也可以禁止掉Telnet/FTP。

为了使改变生效,运行如下命令:

 

#killall-HUPinetd

默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安全性是举手之劳,您可以修改/etc/和/etc/来增加访问限制。

例如,将/etc/设为"ALL:

ALL"可以默认拒绝所有访问。

然后在/etc/文件中添加允许的访问。

例如,"sshd:

"表示允许IP地址和主机名允许通过SSH连接。

配置完成后,可以用tcpdchk检查:

#tcpdchk

tcpchk是TCP_Wrapper配置检查工具,它检查您的tcpwrapper配置并报告所有发现的潜在/存在的问题。

3.登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,您可以编辑/etc/securetty且注释掉如下的行。

  

  #tty1

  #tty2

  #tty3

  #tty4

  #tty5

  #tty6

这时,root仅可在tty1终端登录。

4.避免显示系统和版本信息。

如果您希望远程登录用户看不到系统和版本信息,可以通过一下操作改变/etc/文件:

  

 telnetstreamtcpnowaitroot/usr/sbin/tcpd-h

  

加-h表示telnet不显示系统信息,而仅仅显示"login:

"。

四、防止攻击

1.阻止ping如果没人能ping通您的系统,安全性自然增加了。

为此,可以在/etc/文件中增加如下一行:

  

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

2.防止IP欺骗

编辑文件并增加如下几行来防止IP欺骗攻击。

 orderbind,hosts

 multioff

 nospoofon

  

3.防止DoS攻击

对系统所有的用户设置资源限制可以防止DoS类型攻击。

如最大进程数和内存使用数量等。

例如,可以在/etc/security/中添加如下几行:

  

 *hardcore0

 *hardrss5000

 *hardnproc20

  

然后必须编辑/etc/login文件检查下面一行是否存在。

  

  sessionrequired/lib/security/

 

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。

经过以上的设置,您的Linux服务器已经可以对绝大多数已知的安全问题和网络攻击具有免疫能力,但一名优秀的系统管理员仍然要时刻注意网络安全动态,随时对已经暴露出的和潜在安全漏洞进行修补。

防范对Linux的DoS攻击几种方法

Linux服务器的两种守护进程

  模式

  stand-alone方式是Unix传统的C/S模式的访问模式。

服务器监听(Listen)在一个特点的端口上等待客户端的联机。

如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听,以保持多个子服务器池等待下一个客户端请求。

  工作在stand-alone模式下的网络服务有route、gated。

大家比较熟悉的Web服务器是Apache和邮件服务器Sendmail。

在Apache这种负载很大的服务器上,预先创子服务器可以提高客户的服务速度。

  在Linux系统中通过stand-alone工作模式启动的服务由/etc/下面对应的运行级别当中的符号链接启动。

  模式

  从守护进程的概念可以看出,对于系统所要通过的每一种服务都必须运行一个监听某个端口连接所发生的守护进程,这通常意味着资源浪费。

为了解决这个问题,Linux引进了“网络守护进程服务程序”的概念。

  RedhatLinux使用的网络守护进程是xinetd(eXtendedInterNETdaemon)。

和stand-alone模式相比,xinetd模式也称InternetSuper-Server(超级服务器)。

xinetd能够同时监听多个指定的端口,在接受用户请求时能根据用户请求端口的不同,启动不同的网络服务进程来处理这些用户请求。

我们可以把xinetd看成一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个程序处理,然后启动相应的守护进程。

  和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口,运行单个xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护了系统资源。

但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降。

  察看系统为Linux服务提供哪种模式方法,在Linux命令行下使用pstree命令,可以看到两种不同方式启动的网络服务。

一般来说系统一些负载高的服务,如Sendmail、Apache服务是单独启动的,而其他服务类型都可以使用xinetd超级服务器管理,系统默认使用xinetd的服务可以分为如下几类:

  标准互联网服务:

telnet、ftp

  信息服务:

finger、netstat、systat

  RPC服务:

rquotad、rstatd、rusersd、sprayd、walld

  BSD服务:

comsat、exec、login、ntalk、shell、talk

  内部服务:

chargen、daytime、echo、servers、servicestime

  安全服务:

irc

  其他服务:

name、tftp、uucp

  小提示:

从原理上Apache、sendmail也可以使用xinetd模式启动,但是您需要硬件档次非常高的服务器。

针对xinetd模式的DoS防范

  xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全,能有效防止DoS:

  1.限制同时运行的进程数

  通过设置instances选项设定同时运行的并发进程数。

例如:

  instances=20

  说明:

当服务器被请求连接的进程数达到20个时,xinetd将停止接受多出部分的连接请求,直到请求连接数低于设定值为止。

  2.限制一个IP地址的最大连接数

  通过限制一个主机的最大连接数来防止某个主机独占某个服务。

例如:

  per_source=5

  说明:

单个IP地址的连接数是5个。

  3.限制日志文件大小,防止磁盘空间被填满

  许多攻击者知道大多数服务需要写入日志。

入侵者可以构造大量的错误信息发送出来,服务器记录这些错误,很可能就造成日志文件非常庞大,甚至会塞满硬盘。

管理员面对大量的日志,也很难发现入侵者真正的入侵途径。

因此,限制日志文件大小是防范DoS的一个方法。

例如:

  log_type/var/log/8388608

  说明:

这里设置的日志文件临界值为8MB,到达此值时syslog文件中会出现警告,到达15兆,系统会停止所有使用这个日志系统的服务。

  4.限制负载

  xinetd还可以使用限制负载的方法防范DoS。

用一个浮点数作为负载系数,当负载达到这个数目时,该服务将暂停处理后续的连接。

例如:

  max_load=

  说明:

当一项系统负载达到时,所有服务将暂时终止,直到系统负载下降到设定值以下。

  当然,要使用这个选项,编译时要加入-with-loadavg,xinetd将处理max-load配置选项,从而在系统负载过重时关闭某些服务进程,来实现某些拒绝服务攻击。

  5.限制所有服务器数目(连接速率)

  xinetd可以使用cps选项设定连接速率。

例如:

  cps=2560

  说明:

第一个参数表示每秒可以处理的连接数,如果超过了这个连接数,进入的连接将被暂时停止处理;第二个参数表示停止处理多少秒后继续处理先前暂停处理的连接。

即服务器最多启动25个连接,如果达到这个数目将停止启动新服务60秒。

在此期间不接受任何请求。

  6.限制对硬件资源的利用

  通过rlimit_as和rlimit_cpu两个选项可以有效限制一种服务对内存、中央处理器的资源占用。

例如:

  rlimit_as=8M

  rlimit_cpu=20

  说明:

此设定限制了对服务器硬件资源的占用,最多可用内存为8M,CPU每秒处理20个进程。

  总结:

xinetd的一个重要功能是它能够控制从属服务可以利用的资源量,通过以上设置可以达到这个目的,有助于防止某个xinetd服务大量占用系统,从而导致“拒绝服务”情况的出现。

针对stand-alone的DoS防范

  Linux下以stand-alone模式运行的服务器主要是Apache、Sendmail。

  服务器防范DoS措施

  Apache服务器对拒绝攻击的防范主要通过软件ApacheDoSEvasiveManeuversModule来实现。

它是一款mod_access的替代软件,可以对抗DoS攻击。

该软件可以快速拒绝来自相同地址对同一URL的重复请求,这是通过内部一张各子进程的哈希表查询来实现的。

软件下载链接:

软件安装的配置可以查看相关页面。

  另外,在Apache配置文件中,有一些安全相关的指令可以使用。

使用以下指令可以帮助您减小DoS的威胁:

  LimitRequestBody:

数字参数,控制HTTP请求的大小。

  LimitRequestFields:

数字参数,控制请求头的数目。

  KeepAlive:

设置连接的生存期。

  KeepAliveTimeout:

限制等待请求的时间。

  使用以下指令可以帮助您减少缓冲区溢出的危险:

  LimitRequestFieldSize:

限制每个请求头的大小。

  LimitRequestLine:

限制每个请求行的大小。

  此外,Apache服务器管理员还应该经常去查看、下载补丁程序,以确保Web服务器的安全。

  服务器防范DoS措施

  由于电子邮件的性质,一个要攻击邮件服务器的攻击者可以轻易地使用邮件来充斥服务器,从而导致DoS。

通过设置/etc/mail/以下目录的限度,这类攻击的有效性就会大受限制。

  confCONNECTION_RATE_THROTTLE:

服务器每秒能够接受的连接数量。

按照默认设置,Sendmail是不限制连接数量。

如果连接数量达到限度,以后的连接就会被延迟。

推荐值:

40。

  confMAX_DAEMON_CHILDREN:

服务器能够Fork出的子进程的最大数量。

按照默认设置,Sendmail不限制子进程的数量。

如果限度被设置,达到限度后的连接就会被延迟。

推荐根据内存容量设置:

128M内存建议值为40。

  confMIN_FREE_BLOCKS:

文件系统用来接受标准SMTP(简单邮件传输协议)邮件的队列中的最少自由块数,越小越容易被攻击致命。

默认为100块,推荐值为4000或者更大。

  confMAX_HEADERS_LENGTH:

消息头可接受的最大限度(以字节为单位)。

默认为不限制,推荐值是64。

  confMAX_MESSAGE_SIZE:

单个消息可接受大小的最大限度(以字节为单位)。

越大越容易被攻击致命。

默认为不限制,推荐值为5242880。

  另外,不要把邮件假脱机目录/var/spool/mail/放在NFS共享文件卷上。

因为NFS对用户组群ID没有控制,几个UID相同的用户可以收到和阅读彼此的邮件。

  限制整体资源的占用

  还可以对系统资源做限制,使得系统增强抗DoS能力。

  编辑/etc/security/文件,添加下面几行:

  *hardcore0

  *hardrss10000

  *hardnproc30

  说明:

“core0”表示禁止创建core文件;“nproc30”把最多进程数限制到30;“rss10000”表示除了root之外,其他用户都最多只能用10MB内存。

“*”表示的是所有登录到系统中的用户。

  上面这些对登录到系统中的用户有效。

通过这些限制,就能更好地控制系统中的用户对进程、core文件和内存的使用情况。

最后编辑“/etc/login”文件,在文件末尾加入:

  sessionrequired/lib/security/

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1