Linux服务器装机安全快速进阶指南Word下载.docx
- 文档编号:16959078
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:12
- 大小:25.07KB
Linux服务器装机安全快速进阶指南Word下载.docx
《Linux服务器装机安全快速进阶指南Word下载.docx》由会员分享,可在线阅读,更多相关《Linux服务器装机安全快速进阶指南Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
ipop3d。
主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分隔。
程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。
当服务请求到达服务器时,访问控制软件就按照下列顺序查询这两个文件,直到遇到一个匹配为止:
1、当在/etc/hosts.allow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务
2、否则,如果在/etc/hosts.deny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务
3、若均没有匹配,则允许使用该服务。
若相应的配置文件不存在,访问控制软件就认为是一个空文件,所以可以通过删除或者移走配置文件实现对所有主机关闭所有服务。
在文件中,空白行或者以#开头的行被忽略,你可以通过在行前加#实现注释功能。
Linux提供了下面灵活的方式指定进程或者主机列表:
1、一个以"
."
起始的域名串,如那么就和这一项匹配成功
2、以.结尾的IP串如202.37.152.那么IP地址包括202.37.152.的主机都与这一项匹配
3、格式为n.n.n.n/m.m.m.m表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于n.n.n.n那么该主机与该项匹配。
4、ALL表示匹配所有可能性
5、EXPECT表示除去后面所定义的主机。
如:
list_1EXCEPTlist_2表示list_1主机列表中除去List_2所列出的主机
6、LOCAL表示匹配所有主机名中不包含.的主机
上面的几种方式只是Linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。
我们通过举几个例子来说明这个问题:
例一:
我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止互联网上面的ftp服务请求,本地局域网由202.39.154.、202.39.153.和202.39.152.三个网段组成。
在hosts.deny文件中,我们定义禁止所有机器请求所有服务:
ALL:
ALL在hosts.allow文件中,我们定义只允许局域网访问ftp功能:
in.ftpd:
202.39.154202.39.153.202.39.152.
这样,当非局域网的机器请求ftp服务时,就会被拒绝。
而局域网的机器可以使用ftp服务。
ALL
然后重新启动你的inetd进程:
/etc/rc.d/init.d/inetrestart
但是hosts.deny|allow文件只控制/etc/inetd.conf文件中包含的服务的访问这些服务有/usr/bin/tcpd管理,监听接入的网络请求,然后与在hosts.allow和hosts.deny的中的服务比较,然后做出允许或拒绝的决定。
最后因为hosts.allow|hosts.deny应该不允许普通用户读写,因此设置其访问权限为600:
chmod600/etc/hosts.*
并且该文件应该不被任何用户修改,包括root用户。
因此为了防止用户错误的修改该文件,为该文件添加不可修改位:
chattr+i/etc/hosts.*
要关闭pop3服务则在该行前添加注释符即可:
#pop-3streamtcpnowaitroot/usr/sbin/tcpdipop3d
通过编辑该文件,实现关闭不需要的服务(例如我的系统我仅仅开放了telnet和ftp服务)以后,则需要重新启动inetd超级服务器。
首先找到inetd的进程号:
[root@aid/etc]#psax|grepinetd
358?
S0:
00inetd
然后重新启动inetd服务器:
[root@aid/etc]#kill-HUP358
最后因为inetd.conf应该不允许普通用户读写,因此设置其访问权限为600:
chmod600/etc/inetd.conf
而且该文件应该不被任何用户修改,包括root用户。
chattr+i/etc/inetd.conf
对于独立服务器,则需要通过/usr/sbin/ntsysv命令来修改:
只需要服务前面通过空格键来选择是否在系统启动时启动该服务就可以实现关闭某个服务器,如:
希望系统关闭dhcpd服务,则通过上下键选中该服务器,然后通过空格键去掉该服务前[]内的星号即表示系统启动时不开放该服务。
若希望了解某个服务的具体含义,可以选择该服务以后按F1键来查看该服务的含义。
设置完毕以后,只有希望打开的服务前的[]内才会有星号。
然后通过Tab键选择OK,按空格键。
重新启动机器。
重新启动机器以后,可以通过下面的命令来察看系统打开了哪些服务,来决定是否已经关闭了不需要的服务,例如我仅仅希望提供telnet服务则:
[ideal@aidideal]$netstat-ln
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp000.0.0.0:
230.0.0.0:
*LISTEN
raw000.0.0.0:
10.0.0.0:
*7
60.0.0.0:
ActiveUNIXdomainsockets(onlyservers)
ProtoRefCntFlagsTypeStateI-NodePath
从上面的命令输出可以看到系统仅仅开放了23号端口,也就是telnet服务。
◆三、"
/etc/exports"
文件设置
如果通过NFS把文件共享出来,那么一定要配置"
文件,使得访问限制尽可能的严。
这就是说,不要用通配符,不允许对根目录有写权限,而且尽可能只给只读权限。
编辑exports文件(vi/etc/exports)加入:
例如:
/dir/to/export(ro,root_squash)
/dir/to/export(ro,root_squash)
"
/dir/to/export"
是你想共享出来的目录,是允许访问这个目录的计算机。
代表只读,代表不允许对根目录进行写操作。
使这些改变生效,你还要运行"
/usr/sbin/exportfs-a"
命令。
注意:
在服务器上装NFS服务是会有安全隐患的,就我个人而言,不建议你使用NFS。
◆四、禁止使用控制台程序
一个最简单而且最常用的保证系统安全的方法就是禁止使用所有的控制台程序,如:
shutdown和halt。
可以运行下面的命令来实现:
[root@aid/]#rm-f/etc/security/console.apps/servicename
这里servicename是你要禁止的控制台程序名。
除非你使用xdm,否则不要把xserver文件删掉,如果这样除了root之外,没有人可以启动X服务器了。
(如果使用xdm启动X服务器,这时root是唯一需要启动X服务器的用户,这才有必要把xserver文件删掉)。
例如:
[root@deep]#rm-f/etc/security/console.apps/halt
[root@deep]#rm-f/etc/security/console.apps/poweroff
[root@deep]#rm-f/etc/security/console.apps/reboot
[root@deep]#rm-f/etc/security/console.apps/shutdown
[root@deep]#rm-f/etc/security/console.apps/xserver(如果删除,只有root可以启动X).
这些命令就可以禁止所有的控制台程序:
halt、poweroff、reboot和shutdown。
记住,只有装了Xwindow,删除xerver文件才会有效果。
◆五、"
/etc/aliases"
文件
aliases文件可能会造成安全隐患。
很多的软件产商都把"
decode"
这个别名放在aliases文件里。
这样做的目的是为了方便通过email传送二进制文件。
在发送邮件的时候,用户把二进制文件用"
uuencode"
转成ASCII文件,然后把结果发给接收端的"
。
由这个别名让邮件信息通过"
/usr/bin/uuencode"
程序把二进制文件重新转换成ASCII文件。
如果允许"
出现在aliases文件中,可以想象将会有什么样的安全隐患。
把定义"
这个别名的行从aliases文件中删除。
同样地,每一个会运行程序的别名都要好好查看一下,很有可能要把它们删除掉。
要使改动生效,还必须运行:
[root@deep]#/usr/bin/newaliases
编辑aliases文件(vi/etc/aliases),删除或注释掉下面这些行:
#Basicsystemaliases--theseMUSTbepresent.
MAILER-DAEMON:
postmaster
postmaster:
root
#Generalredirectionsforpseudoaccounts.
bin:
daemon:
#games:
#ingres:
nobody:
#system:
#toor:
#uucp:
#Well-knownaliases.
#manager:
#dumper:
#operator:
#trapdecodetocatchsecurityattacks
#decode:
#Personwhoshouldgetrootsmail
#root:
marc
最后记得运行"
/usr/bin/newaliases"
使改变生效。
◆六、使系统对ping没有反应
防止你的系统对ping请求做出反应,对于网络安全很有好处,因为没人能够ping你的服务器并得到任何反应。
TCP/IP协议本身有很多的弱点,黑客可以利用一些技术,把传输正常数据包的通道用来偷偷地传送数据。
使你的系统对ping请求没有反应可以把这个危险减到最小。
用下面的命令:
echo1>
/proc/sys/net/ipv4/icmp_echo_ignore_all
运行完这个命令后,系统对ping就没有反应了。
可以把这一行加到"
/etc/rc.d/rc.local"
文件中去,这样当系统重新启动的时候,该命令就会自动运行。
对ping命令没有反应,至少可以把绝大多数的黑客排除到系统之外,因为黑客不可能知道你的服务器在哪里。
重新恢复对ping的响应,可以用下面的命令:
◆七、不要显示系统提示信息
如果你不想让远程登录的用户看到系统的提示信息,你可以改变"
/etc/inetd.conf"
文件中的telnet设置:
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h
在末尾加上"
-h"
参数可以让daemon不显示任何系统信息,只显示登录提示。
当然,只有在服务器上装了telnet服务器才有这样做的必要。
◆八、"
/etc/host.conf"
Linux用解析器(resolver)库把主机名翻译成IP地址。
文件定义主机名是怎样解析的。
文件中的项告诉解析器库用什么服务,以什么顺序解析主机名。
编辑"
host.conf"
文件(vi/etc/host.conf)加入下面这些行:
#LookupnamesviaDNSfirstthenfallbackto/etc/hosts.
orderbind,hosts
#WehavemachineswithmultipleIPaddresses.
multion
#CheckforIPaddressspoofing.
nospoofon
order选项指明的是选择服务的顺序。
上面"
orderbind,hosts"
说的是解析器库解析文件名的时候先查询域名服务器,然后再查看"
/etc/hosts"
文件。
因为性能和安全上的原因,最好将解析器库的查找顺序设成先查域名服务器(bind)。
当然也要先安装了DNS/BIND软件,否则这样配置根本没有任何作用。
multi选项决定在"
文件中出现的主机能不能有多个IP地址(多个网络界面)。
具有多个IP网络界面的主机被称为具有多个网络界面(multiomed),因为同时有多个IP地址也就意味着这台主机有多个网络界面。
网关服务器就有多个IP地址,必须把这个选项设成ON。
nospoof选项指明不允许IP伪装。
IP伪装是把自己伪装成别的计算机去欺骗其它的计算机,获得它的信任。
这种攻击方法把自己伪装成别的服务器,并且与其它客户机、服务器和大型数据存储系统建立网络连接或其它类型的网络活动。
不管对任何类型的服务器,这个选项都要设成ON。
◆九、防止源路由
路由和路由协议会导致一些问题。
IP源路径路由(IPsourcerouting),也就是IP包包含到达底目的地址的详细路径信息,是非常危险的,因为根据RFC1122规定目的主机必须按原路径返回这样的IP包。
如果黑客能够伪造原路径路由的信息包,那么它就能截取返回的信息包,并且欺骗你的计算机,让它觉得正在和它交换信息的是可以信任的主机。
我强烈建议你禁止IP原路径路由以避免这个安全漏洞。
用下面的命令在你的服务器上禁止IP原路径路由:
forfin/proc/sys/net/ipv4/conf/*/accept_source_route;
do
echo0>
$f
done
把上面的命令加到"
文件中去,你就不用在系统重新启动之后再把这些命令敲一遍。
注意,上面的命令将禁止所有的网络界面(lo、ethN、pppN,等等)的源路径路由包。
◆十、使TCPSYNCookie保护生效
SYNAttack"
是一种拒绝服务(DoS)的攻击方式,会消耗掉系统中的所有资源,迫使服务器重新启动。
拒绝服务(这种攻击方式用巨大的信息流来消耗系统的资源,以至于服务器不能够响应正常的连接请求)是很容易被黑客利用的。
在2.1系列的内核中,"
syncookie"
只是一个可选项,并没有使其生效。
想要使其生效必须用下面的命令:
[root@aid/]#echo1>
/proc/sys/net/ipv4/tcp_syncookies
把这个命令加入"
文件中,等下次系统重新启动的时候就不必重新敲一遍了。
如果打算安装IPCHAINS防火墙,你就没有必要用这个命令,因为它已经包含在防火墙的脚本文件里了。
◆十一、特殊的帐号
禁止操作系统中不必要的预置帐号(每次升级或安装完都要检查一下)。
Linux系统中就提供这样一些你可能不需要的预置帐号。
如果确实不需要这些帐号,就把它们删掉。
系统中有越多的帐号,就越容易受到攻击。
我们假定你已经在系统中使用shadow口令。
如果不是这样,最好在系统中加上shadow口令的支持,因为这样系统会更安全。
如果你是按照上一章介绍的方法安装服务器,那么在"
安全验证配置"
这一步就已经选上"
EnableShaowPasswords"
这个选项了。
在系统中删除一个用户可以用这个命令:
[root@deep]#userdelusername
在系统中删除一个组可以用这个命令:
[root@deep]#groupdelusername
第一步用下面的命令删除一些不必要的用户:
[root@deep]#userdeladm
[root@deep]#userdellp
[root@deep]#userdelsync
[root@deep]#userdelshutdown
[root@deep]#userdelhalt
[root@deep]#userdelnews
[root@deep]#userdeluucp
[root@deep]#userdeloperator
[root@deep]#userdelgames(如果不用XWindow服务器,可以删除这个用户)
[root@deep]#userdelgopher
[root@deep]#userdelftp(如果没安装匿名ftp服务器,可以删除这个用户)
第二步输入下面的命令删除一些不必要的组:
[root@deep]#groupdeladm
[root@deep]#groupdellp
[root@deep]#groupdelnews
[root@deep]#groupdeluucp
[root@deep]#groupdelgames(deletethisgroupifyoudonuseXWindowServer).
[root@deep]#groupdeldip
[root@deep]#groupdelpppusers
[root@deep]#groupdelpopusers(deletethisgroupifyoudonusepopserverforemail).
[root@deep]#groupdelslipusers
第三步
不允许改变"
位可以用来保护文件使其不被意外地删除或重写,也可以防止有些人创建这个文件的符号连接。
删除"
/etc/passwd"
、"
/etc/shadow"
/etc/group"
或"
/etc/gshadow"
都是黑客的攻击方法。
给口令文件和组文件设置不可改变位,可以用下面的命令:
[root@deep]#chattr+i/etc/passwd
[root@deep]#chattr+i/etc/shadow
[root@deep]#chattr+i/etc/group
[root@deep]#chattr+i/etc/gshadow
如果将来要在口令或组文件中增加或删除用户,就必须先清除这些文件的不可改变位,否则就不能做任何改变。
如果没有清除这些文件的不可改变位,安装那些会自动在口令文件和组文件中加入新用户的rpm软件包的时候,在安装过程中就会出现出错的提示。
◆十二、防止任何人都可以用su命令成为root
如果不想任何人都可以用"
su"
命令成为root或只让某些用户有权使用"
命令,那么在"
/etc/pam.d/su"
文件中加入下面两行。
建议尽量限制用户通过"
命令成为root。
第一步
编辑su文件(vi/etc/pam.d/su)在文件的头部加入下面两行:
authsufficient/lib/security/pam_rootok.sodebug
a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 服务器 装机 安全 快速 进阶 指南