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

作者: 不详 2012/11/1 9: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 多个端口合到一块

特别推荐

玩家留言 跟帖评论
查看更多评论