防火墙iptables和Firewalld

iptables有 4 种 状态:
 
1.ESTABLISHED: 这个状态是指出这个信息包属于 已经建立的连接 . 这个连
    接一直用于发送很接收 信息包并且完全有效
 
2.INVALID: 这个状态指出该信息包与任何已经知道 的流或者连接都不相关
    联 . 它可能饱含错误的数 据或者头
 
3.NEW: 这个状态指出该信息包已经或者准备启动 新的连接 . 或者它与尚未
    用于发送和接受的信息 包的连接相关联
 
4.RELATED: 这个状态指出该信息包正在启动新的 连接 , 以及它与已经建立
    的连接相关联 .
 
 
iptables 3个表:
1.filter(默认)
INPUT 链处理送入本机的流入报文
FORWARD 链处理经过本系统的报文
OUTPUT 链处理从本地发出的报文
 
2.nat
 
PREROUTING 链 : 在路由决策之前必须先由这个 链来处理 . 以完成地址转
OUTPUT 链 : 从本地发送报文使用这个链
POSTROUTING: 如果是转发或者是送出数据包 , 则由 POSTROUTING 来进行处
 
3.mangle
 
PREROUTING 链 : 主要用于
在路由决策之前对流入 报
文的过滤
OUTPUT 链 : 主要用于在路
由决策之前对从本地送 出
的报文过滤
 
 
命令 :
-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
 
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
 
动作包括:
ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。
 
清除预设表 (filter) 中的所有规则链中的规则
#iptables -F
清除预设表 (filter) 中的所有使用者定义的链
#iptables -X
将指定链中所有规则的包字节计数器清零
#iptables -Z
 
 
 
-------------------------------------------------------
 
虽然 firewalld 推荐使用 , 但仍属于 inetfilter/iptables 作为底层 .
因此即可以使用 firewalld 也可以继续使用 iptables 。但 firewalld 与
iptables 有冲突。如果使用 iptables 就必须关闭 firewalld 。
 
 
 
---------------------------------------------------------
 
firewalld
 
Linux防火墙采用包过滤技术,总体看防火墙发 展经历了四个发展阶段 静态防火墙: ipfwadm(kernel 2.0) ipchains(kernel 2.2) iptables(kernel 2.4 later) 动态防火墙 firewalld(RHEL7新纳入的防火墙)
虽然firewalld使用netfilter子系统,但仍然跟 iptables、ebtables出现冲突。因此如果使用 firewalld就必须关闭
 
iptables/ip6tables/ebtables
#systemctl mask iptables #systemctl mask ip6iptables
#systemctl mask ebtables
 
firewalld的工具包
#yum install firewalld system-configfirewall-base firewall-config
启用firewalld
#systemctl enable firewalld
#systemctl start firewalld firewalld
 
配置文件
#cd /etc/firewalld/
#ls
拥有9种区域:
drop:任务进入网络的包都被丢弃,并且不做任 何回应.至允许出包的链接Block:任何进入网络的包都被丢弃,并返回对方 IPv4的icmp-host-prohibited(禁止)或IPv6的     icmap6-adm-prohibited报文.在此区域中至允 许由系统初始化的网络链接
public(默认):认为当前网络中的网络信任度不 高,仅允许选中的服务通过。
external:用在路由器等启用伪装(NAT)的外部 网络.当认为网络不可信任时,可指定服务通过。 dmz:允许DMZ中指定的设备的指定服务,有 限的被外部网络访问。
work:工作网络,对网络信任度高,通过指定的 服务提供相关交互
home:家庭网络,对网络信任度高,通过指定的 服务提供相关交互internal:内部网络,对网络信任度高,通过指定 的服务提供相关交互trusted:允许所有网络链接,即使关闭所有服务 ,服务仍然可以响应。
 
俩种状态
运行状态(临时启用)
永久状态(配置文件修改后)
 
 
使用方法:
 
查看firewalld帮助
#firewall-cmd --help 查看firewalld状态
#firewall-cmd --state
firewalld的预先存在的服务是用xml格式进行编 写的,这些服务的xml存在
#cd /usr/lib/firewalld/services/
#ls可根据某个服务作为模板,来自定以额外的服务, 而后用firewall-cmd --reload命令重新读取,这 样额外服务的xml文件将直接被载入。
 
获取支持的区域列表
#firewall-cmd --get-zones获取所支持的服务
#firewall-cmd --get-services列出所有启用的区域信息
#firewall-cmd --list-all-zones启用应急模式阻断所有网络链接
#firewall-cmd --panic-on禁用应急模式
#firewall-cmd --panic-of
查询应急模式
#firewall-cmd --query-panic
查看当前firewalld的默认区域
#firewall-cmd --get-default-zone
改变firewalld默认区域
#fireall-cmd --set-default-zone=drop

posted on 2018-09-19 19:26  石乐志de冯风  阅读(2442)  评论(0编辑  收藏  举报

导航