7--企业常用防火墙iptables核心配置讲解
2016-04-26 15:42
405 查看
Iptables基本语法格式:
Iptables[-t table] command chain [critiria] –j action;
1. 1. -t 指定表名,表名就是功能名,iptables共有四种功能:raw、mangle、nat、filter。默认是filter
2. command:对链中规则进行管理:
-A:append,追加一条规则
-I:insert,插入一天规则,一般跟参数n,n代表插入到第几条
-R:replace,替换,-R CRITIRIA(CRITIRIA要替换的那条规则)
-D:delete,删除,-D CRITIRIA(CRITIRIA要删除的那条规则)
Command:对链进行管理:
-N:new,新建一条自定义链
-X:删除一条自定义链
-E:重命名一条自定义链
-F:flash,清空一条自定义链,如果不指定链,则清空整个表中的所有链
-P:policy,设定链的默认策略
-Z:zero,置零,每条规则都有两个计数器,一个是被本规则匹配到的所有数据包的个数,另一个是被本规则匹配到的所有数据包的大小之和
Command:查看规则:
-L:list,查看
-v:查看详细
-x:显示规则计数器的精确值
-n:显示数字地址而不是名称地址
在redhat上iptables被做成了一个服务器脚本。
查看该脚本:
Iptables虽然是服务脚本,但不是服务,iptables只是让自己写的一批规则同时生效。Iptables-config是/etc/rc.d/init.d/下的iptables脚本的额外配置文件,该配置文件的位置如下:
Iptables的规则保存位置如下:
/etc/sysconfig/iptables
使用iptables起的规则,一旦关机了,再启动,规则就没了,因为规则本身并不在内核中。因此自己写的规则一定要保存下来,保存在iptables-config中。
保存规则的方法:$serviceiptables (status|start|stop|save)
查看防火墙状态:
防火墙已停
要iptables必须找到/etc/sysconfig/iptables这个文件,如果没有该文件,就自己touch一个出来。
启动iptables:
查看链:
匹配条件:
1. 通用匹配:核心功能。
-s:指定源地址
-d:指定目标地址
-p:指定协议(icmp、TCP、UDP)
-i:in_interface,指定数据包的流入接口(网卡)
-o:out_interface,指定数据包出去的接口(网卡)
2. 扩展匹配:
2.1 隐式扩展
-p TCP(指定端口协议为TCP)
--sportPORT[-PORT2](指定一片源端口)
--dportPORT[-PORT2](指定一片目标端口)
--tcp-flags:检查TCP标志位,共六个:URG、ACK、SYN、PSH、RST、FIN(ALL,表示所有标志位;NONE,表示没有标志位)
-p udp(指定端口协议为UDP)
--sportPORT[-PORT2](指定一片源端口)
--dportPORT[-PORT2](指定一片目标端口)
-p icmp
--icmp-type:ping请求的报文type是8,ping响应的报文标志是0
2.2 显式扩展
Netfilter扩展模块引入的扩展,用于扩展匹配条件,通常需要指定专用选项来定义。显示扩展的模块放在/lib/iptables目录下。
2.3 处理方法
-j ACCEPT
DROP
REJECT
REDIRECT
DNAT
SNAT
MASQUERADE #地址伪装
LOG #记录日志
RETURN #如果是自定义链,当数据包到达主链时,主链调用自定义链,对数据包进行检查,如果数据包通过了自定义链的检查,则RETURN,从自定义链回到主链。
例1:
设置来自172.16.0.0/16的ping请求都无效
#-t:filter指定要设置filter功能
#-A:INPUT 指定把规则挂在INPUT链上
#-s :指定源IP
#-p:指定协议为icmp
#--icmp-type 8:指定icmp协议中type为8的数据包
#-j DROP:设置数据包为DROP,也就是无法通过
查看规则:
查看规则编号:
删除该规则:
#1:要删除的规则编号
#-D INPUT:规则所在的链,以及对该链的操作
#-t filter:规则所在的表(功能)
例2:
除了172.16.0.0/16以外的主机不能访问172.16.100.1主机的80端口,也即不能使用172.16.100.1主机的web服务。
#! 172.16.100.1:除了172.16.100.1以外的IP
#-d:目标主机的IP
#-p:采用的协议
#--dport:指定端口号
#强制删除filter表的INPUT链上的所有规则
例3:
设置任何主机都能通过ssh访问172.16.100.1主机
#-s 0.0.0.0/0:任何主机
# -j ACCEPT:接受
Iptables[-t table] command chain [critiria] –j action;
1. 1. -t 指定表名,表名就是功能名,iptables共有四种功能:raw、mangle、nat、filter。默认是filter
2. command:对链中规则进行管理:
-A:append,追加一条规则
-I:insert,插入一天规则,一般跟参数n,n代表插入到第几条
-R:replace,替换,-R CRITIRIA(CRITIRIA要替换的那条规则)
-D:delete,删除,-D CRITIRIA(CRITIRIA要删除的那条规则)
Command:对链进行管理:
-N:new,新建一条自定义链
-X:删除一条自定义链
-E:重命名一条自定义链
-F:flash,清空一条自定义链,如果不指定链,则清空整个表中的所有链
-P:policy,设定链的默认策略
-Z:zero,置零,每条规则都有两个计数器,一个是被本规则匹配到的所有数据包的个数,另一个是被本规则匹配到的所有数据包的大小之和
Command:查看规则:
-L:list,查看
-v:查看详细
-x:显示规则计数器的精确值
-n:显示数字地址而不是名称地址
在redhat上iptables被做成了一个服务器脚本。
查看该脚本:
Iptables虽然是服务脚本,但不是服务,iptables只是让自己写的一批规则同时生效。Iptables-config是/etc/rc.d/init.d/下的iptables脚本的额外配置文件,该配置文件的位置如下:
Iptables的规则保存位置如下:
/etc/sysconfig/iptables
使用iptables起的规则,一旦关机了,再启动,规则就没了,因为规则本身并不在内核中。因此自己写的规则一定要保存下来,保存在iptables-config中。
保存规则的方法:$serviceiptables (status|start|stop|save)
查看防火墙状态:
[root@redhat4 ~]# service iptables status
防火墙已停
要iptables必须找到/etc/sysconfig/iptables这个文件,如果没有该文件,就自己touch一个出来。
启动iptables:
[root@redhat4 ~]# touch /etc/sysconfig/iptables #新建一个iptables规则文件 [root@redhat4 ~]# service iptables start 应用 iptables 防火墙规则: [ 确定 ]
查看链:
[root@redhat4 ~]# iptables -L -n Chain INPUT (policy ACCEPT) #policy是默认策略的意思 target prot optsource destination # Chain FORWARD (policy ACCEPT) target prot optsource destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
匹配条件:
1. 通用匹配:核心功能。
-s:指定源地址
-d:指定目标地址
-p:指定协议(icmp、TCP、UDP)
-i:in_interface,指定数据包的流入接口(网卡)
-o:out_interface,指定数据包出去的接口(网卡)
2. 扩展匹配:
2.1 隐式扩展
-p TCP(指定端口协议为TCP)
--sportPORT[-PORT2](指定一片源端口)
--dportPORT[-PORT2](指定一片目标端口)
--tcp-flags:检查TCP标志位,共六个:URG、ACK、SYN、PSH、RST、FIN(ALL,表示所有标志位;NONE,表示没有标志位)
-p udp(指定端口协议为UDP)
--sportPORT[-PORT2](指定一片源端口)
--dportPORT[-PORT2](指定一片目标端口)
-p icmp
--icmp-type:ping请求的报文type是8,ping响应的报文标志是0
2.2 显式扩展
Netfilter扩展模块引入的扩展,用于扩展匹配条件,通常需要指定专用选项来定义。显示扩展的模块放在/lib/iptables目录下。
2.3 处理方法
-j ACCEPT
DROP
REJECT
REDIRECT
DNAT
SNAT
MASQUERADE #地址伪装
LOG #记录日志
RETURN #如果是自定义链,当数据包到达主链时,主链调用自定义链,对数据包进行检查,如果数据包通过了自定义链的检查,则RETURN,从自定义链回到主链。
例1:
设置来自172.16.0.0/16的ping请求都无效
[root@redhat4 ~]# iptables -t filter -A INPUT-s 172.16.0.0/16 -p icmp --icmp-type 8 -j DROP
#-t:filter指定要设置filter功能
#-A:INPUT 指定把规则挂在INPUT链上
#-s :指定源IP
#-p:指定协议为icmp
#--icmp-type 8:指定icmp协议中type为8的数据包
#-j DROP:设置数据包为DROP,也就是无法通过
查看规则:
[root@redhat4 ~]# iptables -t filter -L –n Chain INPUT (policy ACCEPT) target prot opt source destination DROP icmp -- 172.16.0.0/16 0.0.0.0/0 icmp type 8 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
查看规则编号:
[root@redhat4 ~]# iptables -t filter -L -n--line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP icmp -- 172.16.0.0/16 0.0.0.0/0 icmp type 8 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination
删除该规则:
[root@redhat4 ~]# iptables -t filter -D INPUT1
#1:要删除的规则编号
#-D INPUT:规则所在的链,以及对该链的操作
#-t filter:规则所在的表(功能)
例2:
除了172.16.0.0/16以外的主机不能访问172.16.100.1主机的80端口,也即不能使用172.16.100.1主机的web服务。
[root@redhat4 ~]# iptables -A INPUT -s !172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 80 -j DROP
#! 172.16.100.1:除了172.16.100.1以外的IP
#-d:目标主机的IP
#-p:采用的协议
#--dport:指定端口号
[root@redhat4 ~]# iptables -t filter -F INPUT
#强制删除filter表的INPUT链上的所有规则
例3:
设置任何主机都能通过ssh访问172.16.100.1主机
[root@redhat4 ~]# iptables -t filter -A INPUT-s 0.0.0.0/0 -d 172.16.100.1 -p tcp --dport 22 -j ACCEPT
#-s 0.0.0.0/0:任何主机
# -j ACCEPT:接受
相关文章推荐
- Javascript 遍历DOM Tree
- STL的常用用法、函数汇总(不定时更新)
- 性能测试面试题
- 网页开发中文本编辑器UEditor的使用
- mybatis中crud操作范例
- Linux常用命令(一)
- 安装grid后启动asm报ORA-15149错误
- (2.1.25)关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
- 理解Netty中的Zero-copy
- 自制反汇编逆向分析工具 迭代第五版本 (三)
- 图片移动端高清适配问题 image-set 属性和@medie标签
- 比较两张不一样的表
- 16Aspx源码论坛
- lambda表达式
- Win10系统如何屏蔽CorelDRAW X8账户登录界面?
- DBScan 算法
- 移动前端开发之viewport的深入理解
- spyder anaconda 使用方法
- LAMP基于RPM包安装详解
- sql语句中函数