linux防火墙怎么配置-linux中防火墙的基本配置

东坡下载 2012年11月01日 09:20:27

      linux防火墙怎么配置?下面是linux中防火墙的基本配置,希望对朋友有所帮助!

      服务脚本: /etc/rc.d/init.d/iptables

      脚本配置文件:/etc/sysconfig/iptables-config

      service iptables {status|start|stop|restart|save}

      规则的保存位置:/etc/sysconfig/iptables

      首先要创建/etc/sysconfig/iptables然后再启动

      若想保存规则 使用命令service iptables save

      语法格式:

      iptables [-t TABLE] COMMAND CHAIN [CRETIRIA] -j ACTION

      -t

      raw

      mangle

      nat

      filter:

      -t TABLE也可以省略,默认为filter

      如果有多个表时,执行顺序依次为raw,mangle,nat,filter

      COMMAND:对链,或者对链中的规则进行管理操作

      链中规则:

      -A 追加一条规则

      -I # 插入一条规则 后加数字表示插入为第几条

      -R # 替换第几条

      -D # 删除第几条规则

      链:

      -N: 新建一个自定义链

      -X: 删除一个自定义的空链

      -E:重命名一条自定义链

      -F: 清空指定链,如果不指定链,则清空整个表中的所有链

      -P: 设定链的默认策略

      -Z: 置零 (每条规则,包括默认策略都有两个计数器:一个是被本规则匹配到的所有数据包的个数;另一个是被本规则匹配到的所有数据包的大小之和);

      查看:

      -L: 查看

      -v

      -vv

      -vvv

      --line-numbers

      -x:计数器的精确值(不做单位换算)

      -n: 显示数字地址(不对地址和端口做反解)

      匹配条件:

      通用匹配

      -s 指定源IP或者源网络

      -d 指定目标IP或者目标网络

      网络地址和目标地址前均可用“!”取反

      -p {icmp|tcp|udp}指明协议类型

      -i IN_INTERFACE 数据包的流入接口

      -o OUT_INTERFACE 数据包流出的接口

      扩展匹配

      隐式扩展

      -p tcp

      --sport PORT[-PORT2] 源端口

      --dport PORT[-PORT2] 目标端口

      --tcp-flags SYN,ACK,RST,FIN SYN

      ,前表示要检查的标志位 ,其后为 必须为1的位

      --syn --tcp-flags SYN,ACK,RST,FIN SYN 的简写

      -p udp

      --sport

      --dport

      -p icmp

      --icmp-type

      0: echo-reply 响应报文

      8: echo-request 请求报文

      显式扩展:

      netfilter扩展模块引入的扩展,用于扩展匹配条件,通常需要额外专用选项来定义

      -m state: 用于实现连接的状态检测

      --state

      NEW(新发起连接), ESTABLISHED(已建立连接)

      RELATED, INVALID(非法的、无法识别的、无效的连接)

      -m multiport 同时指定多个端口号,中间用逗号隔开

      --source-ports

      --destination-ports

      --ports

      以下用法示例,本机IP:192.168.0.6,外部IP:192.168.0.7

      [root@localhost ~]# iptables -L -n 查看已制定规则

      [root@localhost ~]# iptables -L -n -t nat 查看nat表

      [root@localhost ~]# iptables -t filter -A INPUT -s 192.168.0.7 -p icmp --icmp-type 8 -j DROP #INPUT DROP 必须大写 拒绝192.168.0.7请求ICMP报文

      [root@localhost ~]# iptables -L -n --line-numbers 显示行号

      [root@localhost ~]# iptables -D INPUT 2 删除INPUT链的第二条规则

      [root@localhost ~]# iptables -A INPUT -s 192.168.0.7 -d 192.168.0.6 -p icmp --icmp-type 0 -j DROP #关闭对方的ping回应报文

      iptables -A INPUT -s ! 172.16.0.0 -d 172.16.100.1 -p tcp --dport 80 -j DROP 拒绝除172.16.0.0网段的所有主机访问WEB服务

      [root@localhost ~]# iptables -F INPUT 清除规则

      [root@localhost ~]# iptables -A INPUT -s 0.0.0.0/0 -d 192.168.0.6 -p tcp --dport 22 -j ACCEPT #写所有地址时一定要写掩码

      [root@localhost ~]# iptables -A OUTPUT -s 192.168.0.6 -p tcp --sport 22 -j ACCEPT

      [root@localhost ~]# iptables -P INPUT DROP 把默认策略改为拒绝

      [root@localhost ~]# iptables -P OUTPUT DROP

      [root@localhost ~]# iptables -A INPUT -s 192.168.0.7 -d 192.168.0.6 -p icmp --icmp-type 8 -j ACCEPT

      [root@localhost ~]# iptables -A OUTPUT -s 192.168.0.6 -d 192.168.0.7 -p icmp --icmp-type 0 -j ACCEPT 让别的主机能ping进来

      [root@localhost ~]# iptables -A OUTPUT -s 192.168.0.6 -p icmp --icmp-type 8 -j ACCEPT

      [root@localhost ~]# iptables -A INPUT -d 192.168.0.6 -p icmp --icmp-type 0 -j ACCEPT 本机能PING通外边主机

      [root@localhost ~]# iptables -A INPUT -d 192.168.0.6 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 允许新建立的和已建立的连接进来

      [root@localhost ~]# iptables -A OUTPUT -s 192.168.0.6 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 允许已建立的连接出去

      [root@localhost ~]# iptables -A INPUT -d 192.168.0.6 -m state --state NEW,ESTABLISHED -j ACCEPT 不区分协议和端口号

      [root@localhost ~]# iptables -A OUTPUT -s 192.168.0.6 -m state --state ESTABLISHED -j ACCEPT

      [root@localhost ~]# iptables -A INPUT -d 192.168.0.6 -p tcp -m multiport --destination-ports 22,80 -m state --state NEW,ESTABLISHED -j ACCEPT 多个端口合到一块