Centos 防火墙介绍

        

目录

一、防火墙基本介绍

二、iptables(Centos6)

2.1、介绍

2.2、相关命令

三、firewalld(Centos7)

3.1、介绍

3.1.1、zone分类及相关命令

3.1.2、预定义的服务

3.2、相关命令

3.2.1、服务安装

3.2.2、服务启停命令

3.2.3、firewalld规则添加

3.3、富规则


 

一、防火墙基本介绍

iptables服务会把配置好的防火墙策略交由内核层面的 netfilter 网络过滤器来处理,firewalld 服务则是把配置好的防火墙策略交由内核层面的 nftables 包过滤框架来处理。

  1. iptables、firewalld:仅仅是定义防火墙规则的一个工具,写规则使用
  2. netfilter、nftables:实现过滤功能,是真正实现防火墙功能的一个内核模块

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

二、iptables(Centos6)

2.1、介绍

iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类是

  1. ACCEPT(允许流量通过)
  2. REJECT(拒绝流量通过)
  3. LOG(记录日志信息)、
  4. DROP(拒绝流量通过)

 

REJECT 和 DROP 的不同点:

  1. 就 DROP 来说,它是直接将流量丢弃而且不响应;
  2. REJECT 则会在拒绝流量后再回复一条“您的信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的响应信息。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_15,color_FFFFFF,t_70,g_se,x_16

tips:

1、在日常运维工作中,经常会使用 ping 命令来检查对方主机是否在线,而向防火墙的INPUT 规则链中添加一条允许 ICMP 流量进入的策略规则就默认允许了这种 ping 命令检测行为。

2、防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务。

3、配置的防火墙规则保存在以下文件中 /etc/sysconfig/iptables

 

 

2.2、相关命令

iptables中常用的参数

  1. -P 设置默认策略
  2. -F 清空规则链
  3. -L 查看规则链
  4. -A 在规则链的末尾加入新规则
  5. -I num 在规则链的头部加入新规则
  6. -D num 删除某一条规则
  7. -s 匹配来源地址 IP/MASK,加叹号“!”表示除这个 IP 外
  8. -d  匹配目标地址
  9. -i 网卡名称 匹配从这块网卡流入的数据
  10. -o  网卡名称 匹配从这块网卡流出的数据
  11. -p 匹配协议,如 TCP、UDP、ICMP
  12. --dport num    匹配目标端口号
  13. --sport num    匹配来源端口号
  14. -j 指定要进行的处理动作 (一般有 DROP(丢弃)、REJECT(拒绝)、ACCEPT(接受、允许))

 

开启防火墙

# service iptables start

 

关闭防火墙

# service iptables stop

 

查看防火墙状态

# service iptables status

 

设置开启禁用防火墙服务

# chkconfig iptables off

 

设置开机开启防火墙服务

# chkconfig iptables on

 

允许本地回环接口(即运行本机访问本机)

# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT             

 

允许已建立的或相关连的通行

  1. ESTABLISHED:已建立的链接状态
  2. RELATED:该封包为本机发出的封包有关

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

允许所有本机向外的访问

# iptables -A OUTPUT -j ACCEPT        

 

允许访问22端口

# iptables -A INPUT -p tcp --dport 22 -j ACCEPT   

 

允许访问80端口

# iptables -A INPUT -p tcp --dport 80 -j ACCEPT   

 

拒绝所有向内的访问

# iptables -A INPUT -j reject    

 

禁止转发所有数据包

# iptables -A FORWARD -j REJECT    

 

如果想让配置的防火墙策略永久生效,还要执行保存命令:

# service iptables save

 

三、firewalld(Centos7)

3.1、介绍

firewalld(Dynamic Firewall Manager of Linux systems,Linux 系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于 GUI(图形用户界面)的两种管理方式。

相较于传统的防火墙管理配置工具,firewalld 支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是 firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

过滤规则(执行动作):

  1. accept 接受
  2. drop 丢弃
  3. reject 拒绝

 

firewalld 配置文件存放目录: /etc/firewalld

3.1.1、zone分类及相关命令

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

查看所有的zone

# firewall-cmd --list-all-zones

 

查看所有可用zone

# firewall-cmd --get-zones

 

查看默认zone

# firewall-cmd --get-default-zone

 

设置默认zone

# firewall-cmd --set-default-zone=<zone>

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

3.1.2、预定义的服务

查看预定义服务列表

# firewall-cmd --get-services

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

预定义服务的配置文件查看(在 /usr/lib/firewalld/services 目录下):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

3.2、相关命令

3.2.1、服务安装

安装firewalld 命令

# yum install firewalld

 

安装图形化配置工具(可选)

# yum install firewall-config

直接在命令行输入:# firewall-config 进入图形化配置

 

查看防火墙版本

# firewall-cmd --version

 

 

3.2.2、服务启停命令

打开防火墙服务

# systemctl start firewalld

 

查看防火墙服务状态

# systemctl status firewalld

或者

# firewall-cmd –state

 

关闭防火墙服务

# systemctl stop firewalld

      

设置开机禁用防火墙

# systemctl disable firewalld

 

设置开机启用防火墙

# systemctl enable firewalld

 

检查服务是否正常运行

# systemctl is-active firewalld 

 

检查确认服务是否开机运行

# systemctl is-enabled firewalld 

 

设置开机禁用防火墙

# systemctl disable firewalld

 

设置开机启用防火墙

# systemctl enable firewalld

 

重新加载防火墙规则

# firewall-cmd --reload

 

3.2.3、firewalld规则添加

 

3.2.3.1、添加端口

查看所有打开的端口

# firewall-cmd --zone=public --list-ports

 

添加一个端口

# firewall-cmd --zone=public --add-port=80/tcp --permanent

 

删除一个端口

# firewall-cmd --zone=public --remove-port=80/tcp --permanent

 

查询防火墙有无开放某个端口

# firewall-cmd --query-port=23/tcp

 

tips:

1、-- permanent 持久配置: 修改后需要重载才会生效

注意:一旦使用了permanent,配置完成后一定要reload,否则只能待防火墙重启后这些配置才能生效。

 

 

3.2.3.2、添加服务(协议)

实质还是放行了服务默认的端口号

 

添加一个httpd服务设置

# firewall-cmd --permanent --add-service=http

 

删除一个httpd服务设置

# firewall-cmd --permanent --remove-service=http

 

查询一个httpd服务是否被添加

# firewall-cmd --query-service=http

3.2.3.3、添加IP

添加Postgresql端口设置。允许192.168.142.166访问5432端口

# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

移除Postgresql端口访问设置

# firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

 

3.3、富规则

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

添加Postgresql端口设置。允许192.168.142.166访问5432端口

# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

移除Postgresql端口访问设置

# firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值