在介绍了『网络基础』、『限制联机 port number 』、『网络升级套件』之后,再来准备要上 Internet 了吗?!如果只是想要上 Internet 去浏览,那么自然没有问题,如果是想要对 Internet 开放网络服务,那么最好还是先认识一下网络安全会比较好一些。什么?套件也更新了, port 也关闭了,还需要认识什么网络安全啊?!呵呵!当然啦!因为难保我们的主机不会被新的套件漏洞以及阻断式攻击(DoS)所困扰啊!在这个章节里面,我们会稍微介绍一些基础的网络防护观念,尤其是系统管理员应该要做的事情吶! |
在网络上面( 尤其是 BBS )最常听到的就是这样的哀嚎声音:『阿!!救命哪!我被入侵了!要怎么办?』真是伤脑筋的很!我也不知道要怎么帮助您呢!因为这真是......『自作自受』吶!一些老人家常常在讲,架设一个『网站』很容易,因为目前的在线教学实在是太多了,市面上的『教战手册』之类的书籍也真是多如过江之鲫,然而,大家都只知道『我要架设网站』却不知到『我要架设的是一个安全的网站』,这就是我们老人家的心声哪!因为『架设一个安全的网站,真的很难....』! 其中,维护的心力更难哪!为什么呢?由上面的 TCP/IP 的封包路线图,我们可以发现,嘿嘿!目前的入侵您的主机的管道实在是太多了!而一个良好的防火系统又不是只要上述的其中一层就可以做好的!而是复合式的整 体规划,并且要『持续不断的』监测您的主机系统,才能够较为完善的保护好您的主机呢!唉~还真是不容易吶!底下我们来谈一谈,如果由主机内部到外部来规 划,要怎样来加强主机的安全性呢?
基本上,主机的防护至少需要达到上面的要求,多多观察网络上面的安全通报是真的很重要的事情,此外,由于系统管理员或许无法全天都在主机前面管理,此时自动分析的系统就很重要了!例如我们可以透过 apt 或 urpmi 之类的套件管理进行网络自动套件升级、利用类似 logwatch 之类的套件来进行登录档的仔细分析等等,都可以帮助系统管理员有效率的管理主机吶!OK!那么系统管理员的主要任务是什么呢?
- 建立完善的登入密码规则限制:
要做好主机的防护,第一步就是要建立完善的密码规则啦!因为这个咚咚常常是 cracker 尝试入侵的第一步!您必须要建立好主机的密码规则,请参考 鸟哥的 linux 私房菜--基础学习篇之账号管理 那一篇文章,里头提到的 /etc/shadow 档案格式,还有 /etc/login.defs 这个档案的内容,都是相当重要的密码规则订定的所在!另外,有些 cracker 软件会利用套件的漏洞而主动的在您的系统上面新增一个可以让远程 cracker 登入的账号,所以,如果您的账号更动并不会很频繁时,可以尝试以 chattr 来将 /etc/passwd 及 /etc/shadow 做成不可变更的档案!较为安全啦!
- 完善的主机权限设定:
换个角度来想,如果搞破坏的人是您系统上面具有可以登入的使用者呢?呵呵!那么主机的权限设定就显的相当的重要了!还记得 SUID 与 SGID 吧!?如果您的系统上面具有很多这样权限的执行档,那么一般身份的使用者就可以很轻易的取得系统管理员的执行权限了!很麻烦的~所以,主机的权限需要好好的管理,千万不可掉以轻心~
- 升级与修补套件漏洞、及移除危险套件:
这个真的相当的重要的!那就是因为您的服务套件的安全性啦!例如有名的 wu-ftpd 这个 ftp 套件,被说了很多次,好像不怎么安全哩!那么就好就不要启动他,或者是虽然启动,但是限制他的使用网域,这样最起码可以达到一点保护的效果!此外,定时的 升级与不定时上网查看危险通告,是很重要的态度呢!那么从那里知道这些安全信息?底下的网站记得要常常观看:如果想要让系统自动升级套件的话,那么前一篇『Linux 套件的网络更新』就不能不去看一看。
- 台湾计算机危机处理小组:http://www.cert.org.tw/
- Mandrake security:http://www.mandrakesecure.net/en/docs.php
- Red Hat update:http://www.redhat.com/apps/support/errata/
- 每项系统服务的安全设定项目:
每个服务器软件都有自己开发的功能,有些功能很强大,强大到可以让 Client 端取得 root 的权限来操作。这些功能都是便利管理者来进行主机的管理,不过,却也可能造成一些为网络安全的疑虑。举例来说,SSH 这个提供远程登入的服务器软件,可以提供 root 这个账号来登入,但是,由于每个 Linux 系统都有 root 这个账号,所以,只要有人知道您的系统启动了 SSH ,那么他就可能会以 root 这个账号来猜测您主机上的密码,并据以登入您的系统!很危险,不是吗?!所以,可能的话,尽量将服务器软件的较为危险的功能取消,例如拿掉 SSH, FTP, Telnet 等软件的 root 登入权限!另外,大部分的服务器软件也会提供安全设定的项目,例如 SSH 就具有 deny 某些 IP 或是使用者身份的设定项目呢!所以,发现危险人士,就加入拒绝往来名单当中吧!
- TCP_Wrappers 的基础防火设定:
这是最基础的防火墙了!您可以订定某些比较危险的服务仅针对内部网络开放,例如 FTP 与 Telnet 这两个极度危险的服务,让他们仅能在内部私有网域使用,那么 TCP_Wrappers 就可以达到这样的功能咯!因为 TCP_Wrappers 主要是针对服务来设计的,他可以针对某些服务的服务 IP 网段来进行通过与否的检查呢!这个我们会在下一章继续说明。
- iptables 的防火规则设定:
这个是 Linux 核心支持的工作咯!可以利用一行一行的规则订定,来设定防火墙的安全规则,如此则可以抵挡掉大部分的不受欢迎的 TCP 封包啰!这部份我们也会在下个章节中继续说明。
- 主机资源侦测系统( MRTG ):
当主机受到不明原因的攻击时,通常会有一些端倪可以瞧出来,例如最明显的是 CPU 的 loading 会飙到 90 ~ 100% 左右!还有,当有内部无聊人士在大量下载数据时,网络流量频宽被他占光了!这个时候主机的资源侦测系统就显的重要了,我们也可以用简易的 snmp 配合 MRTG 来捉取数据,以实时的角度来观察主机的现况!
- 登录档案分析系统:
还是要再说一遍,登录档的良好的分析习惯,对于系统管理员来说,是真的很重要的一件事情!
从上面的情况来看,嘿嘿嘿嘿!要作为一个称职的网管人员,还真是难呀!基本上,您必需要具备这些能力才行呢:
- 了解什么是需要保护的内容:
我的天吶,还要知道什么是需要保护的呀!?呵呵!没错,就是如此!由刚刚我们知道的主机入侵方法当中,不难了解,只要有人坐在您的主机前面,那么任何事都有可能会发生!因此,如果您的主机相当的重要,请『不要让任何人靠近!』您可以参考一下汤姆克鲁斯在『不可能的任务』里面要窃取一部计算机内的数据的困难度!! ^_^""
- 硬件:能锁就锁吧!
- 软件:还包含最重要的数据呢!!
- 预防黑客( Black hats )的入侵:
这可不是开玩笑的,什么是黑客呀!这是因为原本在西部电影当中,坏人都是戴黑色帽子的,所以之前的人们就称网络攻击者为 Black hats 啦!在预防这方面的攻击者时,除了严格管制网络的登入之外,还需要特别控制原本您的主机中的人物!就我们小网站来说,不要以为好朋友就随便他啦!他说要指 定密码是跟他的账号相同比较好记,您就答应他!等到人家用他的密码登入您的主机,并破坏您的主机,那可就得不偿失了!如果是大企业的话,那么员工使用网络时,也要分等级的呢! ^_^
- 主机环境安全化:
没什么好讲的,除了多关心,还是多关心!仔细的分析登录档,常常上网看看最新的安全通告,这都是最基础的!还包含了以最快的速度更新有问题的套件!因为,越快更新您的套件,就越快可以杜绝黑客的入侵!
- 防火墙规则的订定:
这部份比较麻烦一些啦!因为您必需要不断的测试测试再测试!以取得最佳化的网络安全设定!怎么说呢?要晓得的是,如果您的防火墙规则订定得太多的 时候,那么一个数据封包就要经过越多的关卡才能完整的通过防火墙,以进入到主机内部!嘿嘿!这可是相当的花费时间的!会造成主机的效能不彰!特别留意这一 点呢!
- 实时维护您的主机:
就像刚刚说的,您必需要随时维护您的主机,因为,防火墙不是一经设定之后就不用在再他了!因为,再严密的防火墙,也会有漏洞的!这些漏洞包括防火规则设定不良、利用较新的侦测入侵技术、利用您的旧软件的服务漏洞等等!所以,必需要实时维护您的主机呀!这方面除了分析 log files 之外,也可以藉由实时侦测来进行这个工作!例如 PortSentry 就是蛮不错的一套软件呢!
- 良好的教育训练课程:
不是所有的人都是计算机网络高手,尤其虽然现在信息爆炸,但是仍然有很多的机会会遇到计算机白痴呀!这个时候,要晓得的是,我们对于内部网域通常没有太多的规范,那如果他用内部的计算机去做坏事怎么办?!有时候还是无心的~挖哩~所以说,需要特别的教育训练课程呀!反正呦,就是要花蛮多心力在上面的就是了!不然,真的会一天到晚接到您的主管、您的用户、您的客户哇哇大叫的呦! ^_^""!而为了让您这个管理的工作可以做的比较轻松,学习 BASH Shell 以及会使用到的程序语言,尤其是 Linux 上面惯用的 C ,则也是挺重要的吶!
- 完善的备份计划:
天有不测风云,人有旦夕祸福呀!什么人都不知道什么时候会有大地震、我们也都不知道什么时候会突然的硬盘挂掉去~所以说,完善的备份计划是相当重要的!!这一部份请参考一下 鸟哥的 linux 私房菜--基础学习篇之Linux 主机备份 的内容吧!