centos之iptables配置命令举例以及各个区域

不管是Linux系统、Windows系统的防火墙或者是硬件防火墙都是设置不同网络与网络安全之间的一系列部件的组合,也是不同安全域之间信息的唯一出(入)口。通过检测、限制并更改跨越防火墙的数据流。尽可能地对外屏蔽网络内部的信息、结构和运行状态,且可以有选择的接受外部外部网络的访问。在内外网之间架起一道安全的屏障,以避免发生不知情的情况下进入内部网络,对我们内部网络产生一定的紧急。
从传统意义上来说防火墙分为三类:包过滤、应用代理、状态检测。无论一个防火墙的实现过程有多复杂,说到底都是在这三种技术的基础上进行扩展的

概述
firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具,支持ipv4、ipv6防火墙以及以太网桥,并且拥有两种配置模式:运行时配置与永久配置。它还支持服务或应用程序直接添加防火墙规则。

区域

firewalld数据处理流程:
首先检查的就是其源地址。

若源地址关联到特定的区域,则执行该区域所制定的规则;
若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则;
若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则;

centos之iptables配置命令举例以及各个区域_第1张图片
防火墙的配置方法

firewall-config图形工具;
firewall-cmd命令行工具;
/etc/firewalld/中的配置文件;

二.iptables概述
操作顺序
从上倒下,如没有匹配则执行默认(放行或阻止)

四表五链
链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策
centos之iptables配置命令举例以及各个区域_第2张图片

规则链(五链)
在进行路由选择前处理数据包(PREROUTING);
处理流入的数据包(INPUT);
处理流出的数据包(OUTPUT);
处理转发的数据包(FORWARD);
在进行路由选择后处理数据包(POSTROUTING)。

表提供特定的功能,iptables里面有4个表: filter表、nat表、mangle表和raw表,分别用于实现包过滤、网络地址转换、包重构和数据追踪处理。
每个表里包含多个链。

四表
ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)

执行的动作分别是

accept:接收数据包;
DROP:丢弃数据包;
REDIRECT:重定向、映射、透明代理;
SNAT:源地址转换;
DNAT:目标地址转换;
MASQUERADE:IP伪装(NAT),用于ADSL;
LOG:日志记录;

常用选项
centos之iptables配置命令举例以及各个区域_第3张图片
TCP与UDP的区别
1、TCP是面向连接的(在客户端和服务器之间传输数据之前要先建立连接),UDP是无连接的(发送数据之前不需要先建立连接)
2、TCP提供可靠的服务(通过TCP传输的数据。无差错,不丢失,不重复,且按序到达);UDP提供面向事务的简单的不可靠的传输。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性比较高的通讯或广播通信。随着网速的提高,UDP使用越来越多。
4、每一条TCP连接只能是点到点的,UDP支持一对一,一对多和多对多的交互通信。
5、TCP对系统资源要去比较多,UDP对系统资源要求比较少
6、UDP程序结构更加简单
7、TCP是流模式,UDP是数据报模式

区域      默认规则策略
drop:丢弃所有进入的包,而不给出任何回应
block:拒绝所有外部发起的链接,允许内部发起的链接
public:允许指定的进入链接      (默认区域)
external:通public,处理伪装的进入链接,一般用于路由转发
dmz:允许受限制的进入链接
work:允许受信任的计算机被限制的进入链接
home:同work,如果流量和ssh,dhcpv6-client等服务相关,则允许
internal:同work,范围针对所有互联网用户
trusted:信任所有链接

iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转
说明:表名、链名用于指定 iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样 条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。

案例

[root@localhost ~]#iptables -F               // 清空所有的防火墙规则
[root@localhost ~]#iptables -F INPUT    //清空指定链 INPUT 上面的所有规则
[root@localhost ~]#iptables -X               // 删除用户自定义的空链
[root@localhost ~]#iptables -Z               //清空计数
[root@localhost ~]#iptables -P INPUT DROP              //配置默认的不让进
[root@localhost ~]#iptables -P FORWARD DROP        //默认的不允许转发
[root@localhost ~]#iptables -P OUTPUT ACCEPT        //默认的可以出去
将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量:
[root@localhost ~]# iptables -I INPUT -s 192.168.1.0/24 -p tcp  --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT
[root@localhost ~]# iptables-save                //保存配置
如果我只允许192.168.1.100和192.168.1.110 的PING命令,应该怎么添加
[root@localhost ~]# iptables -I INPUT -s 192.168.1.110 -p icmp -j ACCEPT
[root@localhost ~]# iptables -I INPUT -s 192.168.1.100 -p icmp -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p icmp -j DROP
如果我只允许192.168.1.0/24网段的,但拒绝192.168.1.100和192.168.1.110 的PING命令,应该怎么添加
[root@localhost ~]# iptables -I INPUT -s 192.168.1.0/24 -p icmp -j ACCEPT
[root@localhost ~]# iptables -I INPUT -s 192.168.1.100 -p icmp -j DROP 
[root@localhost ~]# iptables -I INPUT -s 192.168.1.110 -p icmp -j DROP
向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则
[root@localhost ~]# iptables -I INPUT -p tcp --dport 12345  -j REJECT
[root@localhost ~]# iptables -I INPUT -p UDP --dport 12345  -j REJECT
向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则
[root@localhost ~]# iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT
[root@localhost ~]# iptables -A INPUT -p UDp --dport 1000:1024 -j REJECT

清除已有iptables规则

[root@node1 ~]# iptables -F
[root@node1 ~]# iptables -X
[root@node1 ~]# iptables -Z

开放指定的端口

[root@node1 ~]# iptables -A INPUT -i lo -j ACCEPT   #允许本地回环接口(即运行本机访问本机)
[root@node1 ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT   #允许已建立的或相关连的通行
[root@node1 ~]# iptables -A OUTPUT -j ACCEPT     # 允许已建立的或相关连的通行
[root@node1 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT     # 允许访问22端口
[root@node1 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
[root@node1 ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT    #允许访问443端口
[root@node1 ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT       #允许FTP服务的20端口
[root@node1 ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT      #允许FTP服务的21端口
[root@node1 ~]# iptables -A INPUT -p icmp -j ACCEPT      #允许ping
# 以下两条是禁止其他未允许的规则访问及转发
[root@node1 ~]# iptables -A INPUT -j REJECT    
[root@node1 ~]# iptables -A FORWARD -j REJECT   

屏蔽IP

#如果只是想屏蔽IP的话“上面开放指定的端口”部分设置可以直接跳过。
[root@node1 ~]# iptables -I INPUT -s 123.4.5.6 -j DROP    #屏蔽单个IP
[root@node1 ~]# iptables -I INPUT -s 123.0.0.0/8 -j DROP   #屏蔽一个网段
[root@node1 ~]# iptables -I INPUT -s 192.168.10.0/24 -j DROP      #屏蔽一个网段

屏蔽或允许某IP访问指定端口

[root@node1 ~]# iptables -I INPUT -s 192.168.1.1 -p tcp --dport 22 -j DROP    #屏蔽某IP访问tcp的22端口
[root@node1 ~]# iptables -I INPUT -p tcp --dport 22 -j DROP    #拒绝所有访问tcp的22端口
[root@node1 ~]# iptables -I INPUT -s 192.168.1.2 -p tcp --dport 22 -j ACCEPT     #允许某个IP访问tcp的22端口

查看已添加的iptables规则

[root@node1 ~]# iptables -L -n -v     # “-n”只显示IP地址和端口号,不将IP解析为域名

查看已添加的iptables规则

[root@node1 ~]# iptables -L -n -v     # “-n”只显示IP地址和端口号,不将IP解析为域名

删除已添加的iptables规则

[root@node1 ~]# iptables -L -n --line-numbers     #将所有iptables以序号标记显示
[root@node1 ~]# iptables -D INPUT 1    #删除INPUT里序号为1的规则

iptables的开机启动及规则保存

[root@node1 ~]# systemctl enable iptables     #设置iptables开机自启
[root@node1 ~]# service iptables save  #保存,若提示没有service命令,执行下面命令进行安装service命令
[root@node1 ~]# yum install initscripts -y      #安装service命令

你可能感兴趣的:(iptables配置命令,各个区域,四表五链,常用参数)