文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>简易防火措施篇

简易防火措施篇

时间:2006-06-02  来源:h0000001

//参考书籍《鸟哥的Linux服务器架设篇》 如何维护一个已经在Internet上提供服务的主机呢?这方面的工作包含主机的包漏洞修补,防火墙的配置,关闭危险服务(关闭端口),以及每日的日志分析等.   一.限制Linux的对外连接端口 1.什么是端口   一台主机的端口可以分为临听端口(Listen)与随机取用的高级端口.   所谓的监听就是,你的主机启动了某些服务,那么这个服务就会在Linux系统里启用一个端口以监听一自Internet的请求.   而我们的主机对外主动连接时,也需要启用一个端口来对外连接,这样,Linux主机就会随机取用一个未被使用且端口号大于1024的端口进行连接.即随机取用的高级端口.   2.总共有多少端口?哪些是保留端口?   通常,端口号是由1~65535组成,所以会有65535个端口.一般而言,只有root才能启用1~1023以内的端口,即保留端口,至于大于1024以上的端口,除了给系统随机取用你为连接需求之外,也可以用来作为服务的监听之用.   保留端口其实是目前一些Internet上常见的服务所惯用的端口.   在Linux系统中的/etc/services文件,就是一个保留端口与它所对应服务的对照表.此外,/etc/services也是某些在启动是设置端口号的重要依据.   3.Server/Client连接建立的TCP三次握手   .每一个TCP连接都必须由一端(通常为Client)发起请求,这个端口通常是随机选择大于1024的端口号,其TCP数据包将(且只将)设置SYN(主动连接)标记!这是整个连接的第一个数据包.   .如果另一端(通常为Server)接受这个请求(当然,特殊的服务需要使用特殊的端口,例如FTP使用端口21),则会向请求端送回整个连接的第二个数据包!除了SYN标记外同时设置ACK(确认)标记,并在Server端建立资源,以备连接之需.   .然后,请求端获得服务端第一个响应数据包之后,必须再响应对方一个确认数据包,此时数据包只带ACK标记(事实上,后继连接中的所有数据包都必须带有ACK标记)   .只有当服务端收到请求端的确认(ACK)数据包(也就是整个连接的第三个数据包)之后,两端的连接才能正式建立.   4.如何查看端口   在Linux中两个最常用的查看命令   .netstat: 在本机上以自己的程序监测自己的端口,无危险.   .nmap: 在本机上以特殊的检测程序检测自己,可能会违法.   5.如何关闭或启动一个端口   要开或关一个端口,只需要开启或关闭一个服务即可.   例如:开启25端口       /etc/rc.d/init.d/sendmail start    关闭25端口       /etc/rc.d/init.d/sendmail stop    在RedHat与Mandrake中,也可以使用service xinetd restart来启动一个服务,但此命令仅在RedHat与Mandrake中才有.   6?柚每??逼舳??竦姆椒?/DIV>   Linux系统启动的流程     BIOS-->MBR-->Linux Loader-->Kernel,init(取得run-level)-->/etc/rc.d-->/etc/modules.conf-->/etc/rc.d/rc[0-6].d-->/etc/rc.d/rc.local,而其中启动服务的参数在第七步,因此,我们可以到/etc/rc.d/rc[0-6].d里找到服务启动的参数,就是以S开头的文件,如果不要启动一些服务,就将该服务的对应文件(以S开头的文件)删除就可以.不过,在RedHat与Mandrake等主流Linux版本里都提供了几个程序可以自动完成.{ ntsysv (redhat), setup (redhat), chkconfig (redhat,mankrake) }   7.Linux系统中必不可少的服务 atd        在例行性命令里提到的,只执行一次的预约执行服务,务必启动 cron       在例行性命令里提到的,循环执行的命令,务必启动 iptables   这个是防火墙软件,无论如何,先启动它 keytables  设置键盘上字母的格式 network   网络功能一定要,所以这个也请启动 random     快速将系统状态在随机时间内保存到映像文件,它对系统相当重要,因为在开机之后,系统会迅速回复到关机之前的状态. syslog     这是一个相当重要的服务,务必启动 xinetd     另一个服务管理器super daemon,也是必须启动的服务之一. xfs        如果使用run-level为5的图形界面,那么这个必须启动.   8.安全性:关闭所有对外开放的端口     .使用ntsysv设置开机时启动哪些服务     .重启让设置生效     .查看端口     二.在线升级Linux包 1.安全漏洞的通报可以参考下面的网站   .台湾计算机危机处理小组(TWCERT) http://www.cert.org.tw   .Mandrake官方说明:http://www.mandrakesecure.net/en/docs.php   .RedHat官方说明:http://www.redhat.com/apps/support/errata/   2.Linux系统使用的几种安装包   .RPM:这是最早由RedHat公司开发,后来成为Linux上使用最广泛的一种包制作与安装方式.   .Tarball:使用源代码在系统上编译出可执行文件,以成功安装该包.   .dpkg:与RPM有点类似,是Debian的包管理员.   3.在Internet上的多种Linux升级方式   .RedHat 提供的up2date包升级方式;   .Mandrake提供的urpmi升级方式;   .APT的包升级方法. 这些包升级方式都是在线直接更新.不过,这些包更新方法几乎都针对各版本自己的系统平台,这些方法也几乎都针对己经打包完成的RPM文件进行升级.且都己克服了RPM包依赖问题.这些方法只针对RPM包,Tarball包无法经由up2date,urpmi或APT进行升级,仍需手动升级.   4.以up2date进行Linux包升级   up2date可以让使用者在注册之后,直接以在线升级方式进行包的升级.   5.up2date的工作原理   .首先会对系统上的包进行分析,然后通过Red Hat的up2date网站进行交叉对比分析,并同时将所有需要的包依赖的包一起记录下来;   .之后将上面记录中所有需要的包,包括那些包依赖的包一起下载到Linux系统上;   .最后,直接在Linux上进行升级操你.     6.up2date的使用过程   .下载并更新up2date与rhn_register包;(在RedHat9以后,rhn_register包的功能已经整合到up2date里)   .确定可以登陆Internet,可能的话,寻找最近的Proxy;   .执行rhn_register在线升级;   .执行up2date更新包.   7.安装或更新up2date与rhn_register包   up2date注册的方式有两种:     .以浏览器在线注册http://rhn.redhat.com/network     .使用主机提供的rhn_register功能注册,其过程如下:       .重建RPM数据库. #rpm -rebuilddb                #rhn_register 第一次使用需要对此程序作一些设置                           #rpm --import /usr/share/rhn/RPM-GPG-KEY       .开始编写与传送注册数据.#rhn_register   开始使用up2date(只有在第一次使用up2date时才需要注册)     #up2date -l               <==列出所有可以升级的包     #up2date --showall        <==显示你的版本中有没有可以升级的包     #up2date -i packages      <==直接升级packages包     #up2date -i gdb      <==直接连接到RedHat主机升级gdb包     #up2date -i u            <==升级所有的包.等于升级你的RedHat.     三,设置多个IP地址与路由器 1.在一块网卡上设置多个IP地址   .为何需要多个IP     如网络中有两个网段,做路由器的设置及测试系统等.   .如何实现     网络接口卡(Network Interface Card,NIC)与网络接口(Interface)是不同的概念,但网络接口必须架设在NIC或实际的网络设备之上.在Linux中硬件是以文件来表示,Linux第一块网卡的代号是eth0,因此,这个网卡上第一个虚拟界面(Interface)代号是eth0:0,第二个虚拟界面为eth0:1,依此类推.       设置多个IP地址的方式可分为直执接以命令行手动启动和使用设备配置文件进行设置.         .通过命令行手动设置多个IP地址       #ifconfig <device> <ip> netmask <nip> broadcast <bip> <action>       .以设备配置文件设置多个IP地址       网卡的参数设置文件是/etc/sysconfig/network-scripts/ifcfg-eth0,网卡的第一个虚拟接口参数设置文件是/etc/sysconfig/network-scripts/ifcfg-eth0:0   2.需要注意的地方   .eth0:n是依附在eth0接口上的,所以,只要eth0设置为ONBOOT=yes,那么开机之后,所有与eth0相关的接口都会被启动,另外,eth0:n不能单独被启动,eth0一定要先启动   .设置多个IP地址后,带宽并不增加,因为控制带宽的是硬件.在一张网卡上设置多个IP是,这些IP不要在同一网段.   3.路由器   .什么是路由器     不同网段的数据流必须通过路由器来路由.   .路由器与IP分享器(或Network Address Transmission,NAT)     公共IP与私有IP是无法直接路由的,需要启用路由器上的NAT功能.   .查看与修改路由     #route     #route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0     路由有问题的处理方法       .使用ifdown关闭相关的网络接口       .使用route命令将该路由删除       .修改相关接口,使其符合要求       .重新启动接口,并查看路由表   4. 一个路由器架设范例   .架设方法     .设置网卡,使其连接不同的网段         使用设备配置文件/etc/sysconfig/network-scripts/ifcfg-eth0与/etc/sysconfig/network-scripts/ifcfg-eth0:0     .设置路由表,让两个网段可以互通         route     .启动ip_forward选项         #echo 1 > /proc/sys/net/ipv4/ip_forward   <==只需要这一行,我们的Linux就具有路由器功能.可将这一行加入/etc/rc.d/rc.local文件中.     .在Client端设置gateway分别为Server端的两个IP         略......   四.认识网络安全 1.TCP/IP数据包进入主机的基本流程   .首先,TCP数据包会先经过所谓的数据包过滤机制(IP Filtering或NetFilter)   .通过IP Filter之后,TCP数据包开始接受Super daemons及TCP_Wrappers的检验,也就是/etc/hosts.allow与/etc/hosts.deny设置文件的功能.   .经过上面两道基本防火墙之后,接下来就是每项服务的个别设置功能.   .上面几道防火墙都通过了,才能进入主机以登入,此时,一经登入就会被系统记录在登录文件中,籍以了解主机的历史历程.   2.数据包过滤(IP Filter)   数据包过滤是Linux提供的第一道防火墙,但不同的版本会有不一样的数据包过滤机制.以2.2.xx为内核的Linux主要以ipchains作为过滤机制,而2.4.xx则以iptables为过滤机制.   3.Super daemons与TCP_Wrappers   目前新推出的Linux所使用的super daemons以xinet为主,至于抵挡数据包的工作则可以让TCP_Wrappers进行.TCP_Wrappers就是对TCP包裹进行解析的工具.   4.服务过滤   每个服务还有特别的自定义防火机制.   5.登入主机   6.登录文件记录   /var/log/messages与/var/log/secure   7.一些常见的攻击手法   .使用工具程序入侵主机   .蠕虫或木马程序   .DOS攻击(Denial of Service)   .IP欺骗   .端口扫描   ......   8.主机防护计划   .建立完善的登入密码限制规则   .完善的主机权限设置   .升级与修补包漏洞,卸载危险包   .每项系统服务的安全设置   .TCP_Wrappers的基础防火墙设置   .iptables的防火规则设置   .主机资源检测系统   .登录文件分析系统   9.被入侵后的修复工作   .立即拔掉网线   .分析登录文件信息,搜寻可能的入侵途径   .重要数据备份   .重新安装   .包漏洞的修补   .关闭或卸不需要的服务   .数据恢复与恢复服务设置   .接入Internet     五.简易防火墙的架设 1.防火墙   防火墙就是管制进入我们网段内主机(或者可以说是网段)的数据包的一种机制.更广义的说法是,只要能够分析和过滤进入我们管理的网段的数据包,就可以称为防火墙.   2.防火墙的主要类型   依据防火墙对数据包的过滤机制,防火墙可以分为两大类:代理服务器(Proxy)及IP Filter.   .Proxy:代理服务器仅是代理客户端到Internet请求数据,所以,Proxy其实已经将可代理的协议限制得很少,并且由于内部与外部计算机并不能直接通信,所以可以达到良好的保护效果;Proxy Server一般仅开放端口号:80,21和20   .IP Filter:直接以IP Filter进行数据过滤,这时会分析TCP的header部分,然后决定是否可以让该TCP数据包进入主机.   3.常见的防火墙部署方法与数据包过滤技巧   .单一Linux主机兼任防火墙功能     优点:  .可以加设网络流量监控软件(如MRTG)来分析带宽.            .在内部维护安全,可以开放的权限较大            .安全机制的设置只需针对Linux主机维护即可            .对外只能看到Linux主机,所以对于内部网络可以达到有效的安全保护   .单一Linux防火墙,但LAN内另设防火墙   .防火墙内部的主机设置.将提供网络服务的服务器放在防火墙内部.   4.防火墙的限制   .防火墙并不能有效地抵挡病毒或木马程序   .防火墙不能有效抵卸来自内部LAN的攻击     5.Linux的数据包过滤机制   .Linux上的防火墙机制是依据内核不同而不同的.     Version 2.0:使用ipchwadm防火墙机制;     Version 2.2:使用ipchains防火墙机制;     Version 2.4:主要使用iptables防火墙机制,同时兼容ipchains,但iptables不能与ipchains同时执行.

防火墙阻止数据包的方法

       拒绝让数据包进入主机的某些端口

       拒绝让某些来源IP的数据包进入

       拒绝让带有某些特殊标记(flag)的数据进入

       分析硬件地址(MAC)来提供服务

  

Linux和数据包过滤机制

       Linux内核版本与防火墙机制

       Iptables的表格与数据包进入主机的流程

              在iptables里有两个经常用到的内建表格(build-in table),分别是针对主机的filter,以及针对防火培内部主机设置的nat,这两个表格又分别具有三条链,分别是:

              Filter: 主要跟Linux有关,这个是默认的table

              INPUT:主要与数据包想要进入Linux本机有关

                     OUTPUT:主要与Linux本机所送也的数据包有关

                     FORWARD:与Linux本机关系不大,它可以将数据包转递到后端计算机中,与nat这个table有密切的关系.

              Nat:主要跟NAT主机的设置有关

                     PREROUTING:在进行路由判断之前所要执行的规则.

                     POSTROUTING:在进行路由判断之后所要执行的规则.

                     OUTPUT:与发送出去的数据包有关

              数据包想要进入本机流程

                     进入数据包ànat table(PREROUTING)àfilter table(INPUT)à进入本机,使用本机的资源

              数据包想要进入本机后端的计算机

                     进入数据包ànat table(PREROUTING)àfilter table(FORWARD)ànat table(POSTROUTING)à后端主机

              由本机发送的数据包

                     本机发出的数据包ànat table(OUTPUT)àfilter table(OUTPUT)ànat talbe(POSTROUTING)à发送数据包

 

iptables的语法

       由于ipchains与iptables不能同时存在,所以在开始进行iptables设置之前,先检查ipchains是否不小心被加载到系统中了.#lsmod.若发现ipchains,卸载它,#rmmod ipchains,再加载iptables, #modprobe ip_tables

       清除规则与观察规则

              #iptables [-t tables] [-L] [-n]

              -t:后面接iptables的table,例如nat或filter.默认是-t filter

              -L:列出当前的table的规则.

              -n:不进行IP与HOSTNAEM的转换,屏幕显示信息的速度会快很多.

              #iptables [-t tables] [-FXZ]

              -F:清除所有的己设置规则;

              -X:杀掉所有用户建立的链(应该说是tables);

              -Z:将所有链的计数与流量统计都清零.

       定义策略

              #iptables [-t tables] [-P] [INPUT,OUTPUT,FORWARD | RREROUTING, OUTPUT,POSTROUTING] [ACCEPT,DROP]

-P:   定义策略(Policy).

INPUT:数据包为输入主机的方向;

OUTPUT:数据包为输出主机的方向;

FORWARD:数据包为不进入主机而向外再输出去的方向

PREROUTING:在进入路由之前进行的工作;

OUTPUT:数据包为输出主机的方向;

POSTROUTING:在进入路由之后进行的工作.

       增加与插入规则

              #iptables [-t filter] [-AI INPUT,OUTPUT,FORWARD] [-io interface] [-p tcp,udp,icmp,all] [-s IP/network] [--sport ports] [-d IP/network] [--dport ports] –j [ACCEPT,DROP,LOG]

              -A: 新增加一条规则,该规则增加在最后面.

              -I: 插入一条规则,默认是插入变成第一条规则.

              -io:设置数据包进入/流出的网卡接口;

                 interface:网卡接口

              -p:数据包使用的协议.

              -s:来源数据包的IP或Network(网段)

              --sport:来源数据包的端口号,也可以使用port1:port2.

              -d:目标主机的IP或Network(网段)

              --dport:目标主机的端口号

              [!]—syn:这个设置仅用于-p tcp规则,因为TCP数据包有syn标记.当TCP数据包带有syn标记,表示这个连接是对方主动发起的.若在—syn之前加上!,表示该数据包不带有syn(刚好意思相反)

              --icmp-type:中以管理ICMP数据包的某些类型.

              -m:表示数据包的状态,有以下几种:

                     -m mac –mac-source aa:bb:cc:dd:ee:ff

                     -m start –state<状态>

                            有多种状态,如下:

                                   INVALID:无效的数据包.

                                   ESTABLISHED:己经连接成功的连接状态;

                                   NEW:想要新建连接的数据包状态;

                                   RELATED:表示这个数据包是与我们主机发送出去的数据包有关,可能是响应数据包,或者是连接成功之后的传送数据包.

              -j<动作>:除了比较常用的ACCEPT与DROP之外,还有如下动作:

                     REDIRECT –to-port<port number>:进行本机端口的转换,只能用在nat table的PREROUTING及OUTPUT.

                     MASQUERADE:数据包伪装.

       记录与恢复防火墙规则      

              #iptables-save > filename

              #iptables-restort < filename

相关阅读 更多 +
排行榜 更多 +
空中跑酷汉化版

空中跑酷汉化版

赛车竞速 下载
修仙传说

修仙传说

角色扮演 下载
魔界零之迷宫

魔界零之迷宫

冒险解谜 下载