资深Linux系统管理员网络安全经验谈(2)

原创 2007年09月24日 21:33:00
关于系统文件
  
  对于系统中的某些关键性文件如passwd、passwd.old、passwd._、shadow、shadown._、inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。 如将inetd文件属性改为600:
  
  # chmod 600 /etc/inetd.conf
  
   
  
   
  
  这样就保证文件的属主为root,然后还可以将其设置为不能改变:
  
  # chattr +i /etc/inetd.conf
  
   
  
   
  
  这样,对该文件的任何改变都将被禁止。 你可能要问:那我自己不是也不能修改了?当然,我们可以设置成只有root重新设置复位标志后才能进行修改:
  
  # chattr -i /etc/inetd.conf
  
   
  
   
  
  关于用户资源
  
  对你的系统上所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数,内存数量等。例如,对所有用户的限制, 编辑/etc/security/limits.con加入以下几行:
  
  * hard core 0
  
  * hard rss 5000
  
  * hard nproc 20
  
  你也必须编辑/etc/pam.d/login文件,检查这一行的存在:
  
  session required /lib/security/pam_limits.so
  
  上面的命令禁止core files“core 0”,限制进程数为“nproc 50“,且限制内存使用为5M“rss 5000”。
  
  关于NFS服务器
  
  由于NFS服务器漏洞比较多,你一定要小心。如果要使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。你可以编辑文件/etc/exports并且加:
  
   
  
   
  
  /dir/to/export host1.mydomain.com(ro,root_squash)
  
  /dir/to/export host2.mydomain.com(ro,root_squash)
  
   
  
   
  
  其中/dir/to/export 是你想输出的目录,host.mydomain.com是登录这个目录的机器名,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 -HUP inetd来关闭不需要的服务。当然,你也可以运行:
  
  #chattr +i /etc/inetd.conf
  
   
  
   
  
  如果你想使inetd.conf文件具有不可更改属性,而只有root 才能解开,敲以下命令:
  
  #chattr -i /etc/inetd.conf
  
  当你关闭一些服务以后,重新运行以上命令看看少了多少服务。运行的服务越少,系统自然越安全了。我们可以用下面命令察看哪些服务在运行:
  
  netstat -na --ip
  
  如果你用的是Redhat那就方便多了。^_^ Redhat提供一个工具来帮助你关闭服务,输入/usr/sbin/setup,然后选择"system services",就可以定制系统启动时跑哪些服务。另外一个选择是chkconfig命令,很多linux版本的系统都自带这个工具。脚本名字中的数字是启动的顺序,以大写的K开头的是杀死进程用的。
  
  关于日志
  
  所有的日志都在/var/log下(仅对linux系统而言),默认情况下 linux的日志就已经很强大了,但除ftp外。因此我们可以通过修改/etc/ftpaccess 或者/etc/inetd.conf,来保证每一个ftp连接日志都能够纪录下来。下面是一个修改inetd.conf的例子,假如有下一行:
  
  ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -L -i -o
  
  注释:
  
  -l每一个ftp连接都写到syslog;
  
  -L纪录用户的每一个命令;
  
  -i文件received,纪录到xferlog;
  
  -o文件transmitted,记录到xferlog。
  
  不过你也不要太相信日志,因为绝大部分黑客都有“擦脚印”的“好”习惯啰!如果你不放心,最好安装一个Sniffer吧。
  
  关于TCP_WRAPPERS
  
  默认的,Redhat Linux允许所有的请求,这是很危险的。如果用TCP_WRAPPERS来增强我们站点的安全性简直是举手之劳,你可以将禁止所有的请求放入“ALL: ALL”到/etc/hosts.deny中,然后放那些明确允许的请求到/etc/hosts.allow中,如:
  
  sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
  
  对IP地址192.168.1.10和主机名gate.openarch.com,允许通过 ssh连接。配置完了之后,用tcpdchk检查,你可以直接执行:tcpdchk 。在这里,tcpchk是TCP_Wrapper配置检查工具,它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题。
  
  关于补丁
  
  你应该经常到你所安装的Linux系统发行商的主页上去找最新的补丁。例如:对于 Redhat系统而言可以在:http://www.redhat.com/corp/suppo ... 讲苟 P以说氖牵?/a> Redhat6.1以后的版本带有一个自动升级工具up2date,它能自动够测定哪些rpm包需要升级,然后自动从Redhat的站点下载并完成安装。这对某些懒惰的管理员来说,可是个省精神的福音哦!
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Linux系统管理员成长经验:十一大工作心得

[精彩] Linux系统管理员成长经验:十一大工作心得 http://www.chinaunix.net 作者:cnjnhu  发表于:2008-08-24 15:4...

Linux系统管理员成长经验:十一大工作心得

随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windows的经验往往有一些茫然的 感觉:不知从何处开始学起。作为一个 Linux系统管理员,我看了许多有关Linux的文档和书籍,并 ...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

企业Linux系统管理员常用命令大全实例解析(2)

作为一名Linux系统管理员,熟悉并熟练运用一些常用的命令是必不可少的,对设备即文件的Linux系统来说,Linux系统管理的命令是它正常运行的核心。笔者根据实际工作总结一些常用指令,附上一些相对常见...

资深系统管理员给Linux/Unix新人们的建议

原文:http://os.51cto.com/art/201008/218615.htm 抚琴煮酒是一位现在在外企工作的linux/unix系统工程师、项目实施工程师,也曾经担任过RHCE的教学工作。...

资深系统管理员给Linux/Unix新人们的建议

抚琴煮酒有幸担任过一段时间的RHCE教学工作,发现在教学过程中,许多学员都对为什么学习Linux感到很迷惘,更别谈什么职业规划了。我在工作和学习中,也接触了不少爱学习的人,但发现他们在学习的过程中都走...

linux系统管理员基础

文件目录管理 1、获得帮助 man+命令 进入man界面之后 j和k 用于一行行的上下翻页 b和n 用于一页页的上下翻页 /-xxx 用于搜索与xxx相关的资源 q 退出 2、命令的格式(一般为...
  • U___p
  • U___p
  • 2013-08-06 21:13
  • 837

企业Linux系统管理员常用命令大全实例解析(1)

作为一名Linux系统管理员,熟悉并熟练运用一些常用的命令是必不可少的,对设备即文件的Linux系统来说,Linux系统管理的命令是它正常运行的核心。笔者根据实际工作总结一些常用指令,附上一些相对常见...

写给linux系统管理员看的systemd 三如何把SysV Init脚本转换成一个systmed的service文件 (systemd作者blog翻译过来的)

原文地址:http://0pointer.de/blog/projects/systemd-for-admins-3.html How Do I Convert A SysV Init Scri...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)