鸟哥的 Linux ADSL 私房菜


认识网络安全
最近更新日期:2003/08/23
 
在介绍了『网络基础』、『限制联机 port number 』、『网络升级套件』之后,再来准备要上 Internet 了吗?!如果只是想要上 Internet 去浏览,那么自然没有问题,如果是想要对 Internet 开放网络服务,那么最好还是先认识一下网络安全会比较好一些。什么?套件也更新了, port 也关闭了,还需要认识什么网络安全啊?!呵呵!当然啦!因为难保我们的主机不会被新的套件漏洞以及阻断式攻击(DoS)所困扰啊!在这个章节里面,我们会稍微介绍一些基础的网络防护观念,尤其是系统管理员应该要做的事情吶!
 
TCP/IP 封包进入主机的基本流程
  :认识 TCP/IP
  :TCP 进入本机简易流程
一些常见的攻击手法
主机防护计划
网管人员的技能
被入侵后的修复工作
重点回顾
参考数据
课后练习

TCP/IP 封包进入主机的基本流程:
一些常见的攻击手法:
主机防护计划:
在网络上面( 尤其是 BBS )最常听到的就是这样的哀嚎声音:『阿!!救命哪!我被入侵了!要怎么办?』真是伤脑筋的很!我也不知道要怎么帮助您呢!因为这真是......『自作自受』吶!一些老人家常常在讲,架设一个『网站』很容易,因为目前的在线教学实在是太多了,市面上的『教战手册』之类的书籍也真是多如过江之鲫,然而,大家都只知道『我要架设网站』却不知到『我要架设的是一个安全的网站』,这就是我们老人家的心声哪!因为『架设一个安全的网站,真的很难....』! 其中,维护的心力更难哪!为什么呢?由上面的 TCP/IP 的封包路线图,我们可以发现,嘿嘿!目前的入侵您的主机的管道实在是太多了!而一个良好的防火系统又不是只要上述的其中一层就可以做好的!而是复合式的整 体规划,并且要『持续不断的』监测您的主机系统,才能够较为完善的保护好您的主机呢!唉~还真是不容易吶!底下我们来谈一谈,如果由主机内部到外部来规 划,要怎样来加强主机的安全性呢?
  1. 建立完善的登入密码规则限制:

  2. 要做好主机的防护,第一步就是要建立完善的密码规则啦!因为这个咚咚常常是 cracker 尝试入侵的第一步!您必须要建立好主机的密码规则,请参考 鸟哥的 linux 私房菜--基础学习篇之账号管理 那一篇文章,里头提到的 /etc/shadow 档案格式,还有 /etc/login.defs 这个档案的内容,都是相当重要的密码规则订定的所在!另外,有些 cracker 软件会利用套件的漏洞而主动的在您的系统上面新增一个可以让远程 cracker 登入的账号,所以,如果您的账号更动并不会很频繁时,可以尝试以 chattr 来将 /etc/passwd 及 /etc/shadow 做成不可变更的档案!较为安全啦!
     
  3. 完善的主机权限设定:

  4. 换个角度来想,如果搞破坏的人是您系统上面具有可以登入的使用者呢?呵呵!那么主机的权限设定就显的相当的重要了!还记得 SUID 与 SGID 吧!?如果您的系统上面具有很多这样权限的执行档,那么一般身份的使用者就可以很轻易的取得系统管理员的执行权限了!很麻烦的~所以,主机的权限需要好好的管理,千万不可掉以轻心~
     
  5. 升级与修补套件漏洞、及移除危险套件:

  6. 这个真的相当的重要的!那就是因为您的服务套件的安全性啦!例如有名的 wu-ftpd 这个 ftp 套件,被说了很多次,好像不怎么安全哩!那么就好就不要启动他,或者是虽然启动,但是限制他的使用网域,这样最起码可以达到一点保护的效果!此外,定时的 升级与不定时上网查看危险通告,是很重要的态度呢!那么从那里知道这些安全信息?底下的网站记得要常常观看: 如果想要让系统自动升级套件的话,那么前一篇『Linux 套件的网络更新』就不能不去看一看。
     
  7. 每项系统服务的安全设定项目:

  8. 每个服务器软件都有自己开发的功能,有些功能很强大,强大到可以让 Client 端取得 root 的权限来操作。这些功能都是便利管理者来进行主机的管理,不过,却也可能造成一些为网络安全的疑虑。举例来说,SSH 这个提供远程登入的服务器软件,可以提供 root 这个账号来登入,但是,由于每个 Linux 系统都有 root 这个账号,所以,只要有人知道您的系统启动了 SSH ,那么他就可能会以 root 这个账号来猜测您主机上的密码,并据以登入您的系统!很危险,不是吗?!所以,可能的话,尽量将服务器软件的较为危险的功能取消,例如拿掉 SSH, FTP, Telnet 等软件的 root 登入权限!另外,大部分的服务器软件也会提供安全设定的项目,例如 SSH 就具有 deny 某些 IP 或是使用者身份的设定项目呢!所以,发现危险人士,就加入拒绝往来名单当中吧!
     
  9. TCP_Wrappers 的基础防火设定:

  10. 这是最基础的防火墙了!您可以订定某些比较危险的服务仅针对内部网络开放,例如 FTP 与 Telnet 这两个极度危险的服务,让他们仅能在内部私有网域使用,那么 TCP_Wrappers 就可以达到这样的功能咯!因为 TCP_Wrappers 主要是针对服务来设计的,他可以针对某些服务的服务 IP 网段来进行通过与否的检查呢!这个我们会在下一章继续说明。
     
  11. iptables 的防火规则设定:

  12. 这个是 Linux 核心支持的工作咯!可以利用一行一行的规则订定,来设定防火墙的安全规则,如此则可以抵挡掉大部分的不受欢迎的 TCP 封包啰!这部份我们也会在下个章节中继续说明。
     
  13. 主机资源侦测系统( MRTG ):

  14. 当主机受到不明原因的攻击时,通常会有一些端倪可以瞧出来,例如最明显的是 CPU 的 loading 会飙到 90 ~ 100% 左右!还有,当有内部无聊人士在大量下载数据时,网络流量频宽被他占光了!这个时候主机的资源侦测系统就显的重要了,我们也可以用简易的 snmp 配合 MRTG 来捉取数据,以实时的角度来观察主机的现况!
     
  15. 登录档案分析系统:

  16. 还是要再说一遍,登录档的良好的分析习惯,对于系统管理员来说,是真的很重要的一件事情!
基本上,主机的防护至少需要达到上面的要求,多多观察网络上面的安全通报是真的很重要的事情,此外,由于系统管理员或许无法全天都在主机前面管理,此时自动分析的系统就很重要了!例如我们可以透过 apt 或 urpmi 之类的套件管理进行网络自动套件升级、利用类似 logwatch 之类的套件来进行登录档的仔细分析等等,都可以帮助系统管理员有效率的管理主机吶!OK!那么系统管理员的主要任务是什么呢?

网管人员的技能:
从上面的情况来看,嘿嘿嘿嘿!要作为一个称职的网管人员,还真是难呀!基本上,您必需要具备这些能力才行呢: 反正呦,就是要花蛮多心力在上面的就是了!不然,真的会一天到晚接到您的主管、您的用户、您的客户哇哇大叫的呦! ^_^""!而为了让您这个管理的工作可以做的比较轻松,学习 BASH Shell 以及会使用到的程序语言,尤其是 Linux 上面惯用的 C ,则也是挺重要的吶!

被入侵后的修复工作:
    所谓『百密一疏』啊,人不是神,总会有考虑不周的情况,万一您的主机就因为这『一疏』导致被入侵了,那该怎么办?由上面的说明当中,我们知道『木马』是很严重的,因为他会在您的系统下开个后门(Back door)让攻击者可以登入您的主机,而且还会窜改您 Linux 上面的程序,让您找不到该木马程序!怎么办?很多朋友都习惯『反正只要将 root 的密码改回来就好了』这样的观点,事实上,那样一部主机还是有被做为中继站的危险啊!所以,万一您的主机被入侵了,最好的方法还是『重新安装 Linux 』会比较干净!那该如何重新安装呢?很多朋友一再地安装,却一再地被入侵~为什么呢?因为他没有『记取教训』啊!呵呵!底下我们就来谈一谈,一部被入侵的主机应该如何修复比较好?
     
    1. 立即拔除网络线:

    2. 既然发现被入侵了,那么第一件事情就是拿掉网络功能!拿掉网络功能最简单的作法自然就是拔掉网络线了!事实上,拿掉网络线最主要的功能除了保护自己之外,还可以保护同网域的其它主机。怎么说呢?举个最近 (2003/08) 发病的疾风病毒好了,他会感染同网域之内的其它主机喔!所以,拔除网络线之后,远程的攻击者立即就无法进入您的 Linux 主机,而且您还可以保护网域内的其它相关主机啊!
       
    3. 分析登录文件信息,搜寻可能的入侵途径:

    4. 被入侵之后,决不是只要重新安装就好,还需要额外分析『为什么我的主机这一次会被入侵,对方是如何入侵的?』,如果您能够找出问题点,那么不但您的 Linux 功力立刻增强了,主机也会越来越安全喔!而如果您不知道如何找出被入侵的可能途径,那么重新安装后,下次还是可能被以同样的方法入侵啊!粉麻烦的啦!好了,那该如何找出入侵的途径呢?  
    5. 重要数据备份:

    6. 主机被入侵后,显得问题相当的严重,为什么呢?因为主机上面有相当重要的数据啊!如果主机上面没有重要的数据,那么直接重新安装就好了!所以,被入侵之后,检查完了入侵途径,再来就是要备份重要的数据了。好了,问个问题,什么是『重要数据』? who, ps, ls 等等指令是重要数据吗?还是 httpd.conf 等设定文件是重要数据?又或者是 /etc/passwd, /etc/shadow 才是重要数据?呵呵!基本上,重要的数据应该是『非 Linux 系统上面原有的数据』,例如 /etc/passwd, /etc/shadow, WWW 网页的数据, /home 里面的使用者重要档案等等,至于 /etc/*, /usr/, /var 等目录下的数据,就不见得需要备份了。注意:不要备份一些 binary 执行文件,因为 Linux 系统安装完毕后本来就有这些档案,此外,这些档案也很有可能『已经被窜改过了』,那备份这些数据,反而造成下次系统还是不干净!
       
    7. 重新全新安装:

    8. 备份完了数据,再来就是重新安装 Linux 系统了。而在这次的安装中,您最好选择适合您自己的安装套件即可,不要全部套件都给他安装上去啊!挺危险的!
       
    9. 套件的漏洞修补:

    10. 记得啊,重新安装完毕之后,请立即更新您的系统套件,否则还是会被入侵的啦!我喜欢先在其它比较干净的环境下将 Internet 上面的漏洞修补套件下载下来,然后烧录起来,然后拿到自己的刚刚安装完成的系统上面,mount CD 之后全部给他更新,更新之后,并且设定了相关的防火墙机制,同时进行下一步骤『关闭或移除不需要的服务』后,我才将网络线插上主机的网络卡上!因为我不敢确定在安装完毕后,连上 Internet 去更新套件的这段时间,会不会又受到入侵攻击说....
       
    11. 关闭或移除不需要的服务:

    12. 这个重要性不需要再讲了吧?!启用越少的服务,系统当然可以被入侵的可能性就比较低。
       
    13. 数据回复与恢复服务设定:

    14. 刚刚备份的数据要赶紧的复制回来系统,同时将系统的服务再次的重新开放,请注意,这些服务的设定最好能够再次的确认一下,避免一些不恰当的设定参数在里头喔!
       
    15. 连上 Internet:

    16. 所有的工作都进行的差不多了,那么才将刚刚拿掉的网络线接上来吧!恢复主机的运作了!
     
    经过这一连串的动作后,您的主机应该会恢复到比较干净的环境,此时还不能掉以轻心,最好还是参考防火墙的设定,并且多方面的参考 Internet 上面一些老手的经验,好让您的主机可以更安全一些!

重点回顾
参考数据
课后练习
认识网络安全

2002/08/12:第一次完成日期!
2003/08/23:重新编排与增加重点回顾、课后练习

2002/08/12 以来统计人数


Designed by VBird during 2001-2004.  Aerosol Lab.