Iptable与firewalld防火墙

一、防火墙管理工具

1)在RHEL7系统中firewalld服务取代了Iptables服务,但是依然使用Iptables命令来管理系统内核的网络过滤器netfilter。

二、规则链与策略

1)Iptables命令用于创建数据过滤与NAT规则,Iptables命令规则中常见的控制类型有:

ACCEPT:允许通过

LOG:记录日志信息,然后传递给下一条规则继续匹配

REJECT:拒绝通过,必要时会提示

DROP:直接丢弃

2)规则链是依据处理数据包的位置不同来进行分类:

PREROUTE:进行路由选择前处理数据包

INPUT:处理入站的数据包

OUTPUT:处理出站的数据包

FORWARD:处理转发的数据包

POSTROUTE:路由选择后处理数据包

Iptables中的规则表是用于容纳规则链,规则表默认是允许状态,那么规则链就设置被禁止的规则,而反之如果规则表是禁止状态,那么规则链就设置被允许的规则。

raw表:确定是否对该数据包进行状态跟踪

managle表:为数据包设置标记

nat表:修改数据包中的源、目的ip或端口

filter表:确实是否放行该数据包(过滤)

Iptables 命令执行后的规则策略仅当前生效,若需重启系统之后依然保存规则并生效需执行“service  iptables  save”

iptables命令的参数及作用如下:

参数      作用

-P         设置默认策略

-F         清空规则链

-L         查看规则链

-A         在规则链的末尾加入新规则

-I num       在规则链的头部加入新规则

-D num     删除一条规则

-s        匹配源地址IP/MASK,加叹号"!"表示处该地址外

-d        匹配目标地址

-i 网卡名称    匹配从此网卡流入的数据流量

-o 网卡名称   匹配从此网卡流出的数据流量

-p        匹配协议,比如tcp、udp、icmp

--sport      匹配源端口号

--dport      匹配目的端口号

3)iptable命令介绍:

①iptables -t [table] [命令] [chain rules] -m [扩展选项] -j [target],table可以是filter、nat、managle,默认是filter,命令例如 -P或--policy表示定义默认策略,chain rules表示设置哪个规则链,-j target表示执行的动作,常用的执行动作是ACCEPT、REJECT、DROP、LOG,ACCEPT动作表示放行数据包,REJECT动作表示阻拦数据包并发送阻拦信息通知对方,DROP表示丢弃数据包不予处理,不通知对方。

-m icmp --icmp-type echo-request | echo-reply

-m multiport --dport 目的端口 | --sport  | ports

-m iprange --src-range 源地址范围 | --dst-range 目的地址范围

-m limit --limit 300/hour | 300/min | 300/sec 限制某个时间段内不通过300个数据包,一个包1500字节即1500*300=450k,即限速

-m mac --mac-source  用来比对源mac

例如1:iptables -t filter -I FORWARD -s 192.168.10.0/24 -d 192.168.80.0/24 -p icmp -m icmp --icmp-type echo-request -j DROP,表示运行192.168.10.0/24ping通192.168.80.0/24,禁止192.168.80.0/24ping通192.168.10.0/24

例如2:iptables -t filter -I INPUT -p icmp -m icmp --icmp-type echo-request -j DROP,表示禁止其他计算机ping本地Linux系统

例如3:iptables -t filter -I FORWARD -p tcp -s 192.168.80.0/24 -d 192.168.10.0/24 -m multiport --dport 1:1024,3389 -j DROP,-m multiport --dport 表示匹配多个端口,这条规则表示禁止192.168.80.0/24 TCP 连接192.168.10.0/24的1-1024、3389端口

三、SNAT与DNAT

1)SNAT即源地址转换技术,为了让局域网客户机访问外网服务器。

2)DNAT即目的地址转换技术,为了让外网客户机访问局域网服务器。

四、Firewalld防火墙

1)firewalld防火墙是RHEL7系统的防火墙管理工具,可以使用图形化工具firewall-config或文本管理工具firewall-cmd,firewalld中区域zone的概念:

trusted  允许所有数据包通过

home    拒绝流入的数据包,除非与输出的数据包相关或是ssh,mdns,ipp-client,samba-client,dhcpv6-client服务则允许

internal   等同于home区域

work     拒绝流入的数据包,除非与输出的数据包相关或是ssh,ipp-client,dhcpv6-client服务则允许

public   拒绝流入的数据包,除非与输出的数据包相关或是ssh,dhcpv6-client服务则允许

external  拒绝流入的数据包,除非与输出数据包相关或是ssh服务则允许

dmz      拒绝流入的数据包,除非与输出数据包相关或是ssh服务则允许

block    拒绝流入的数据包,除非与输出数据包相关

drop     拒绝流入的数据包,除非与输出数据包相关

2)字符管理工具firewall-cmd

例1:firewall-cmd  --get-default-zone,获取默认区域

例2:firewall-cmd  --get-zone-of-interface=ens37,获取网卡所在区域

例3:firewall-cmd  --zone=public --query-service=ssh,查询ssh服务是否开启

例4:firewall-cmd  --parmanent  --zone=public --add-service=https,开启https服务并且永久生效

例5:firewall-cmd  --runtime  --zone=public  --add-port=8080,开启8080端口服务仅当前生效

例6:firewall-cmd  --parmanent  --zone=public --list port,查看开启的端口服务

例7:firewall-cmd  --reload,重新加载防火墙

3)firewalld服务有两份规则策略配置记录

RunTime:仅当前生效的

Parmanent:永久生效的

五、服务的访问控制列表

1)允许名单,进入配置文件配置:vi  /etc/host.allow

2)拒绝名单,进入配置文件配置:vi  /etc/host.deny

 

posted @ 2018-04-03 02:58  厚积er薄发  阅读(363)  评论(0编辑  收藏  举报