firewall防火墙

firewall防火墙

1 防火墙简介

在基于RHEL7的服务器,提供了一个firewall的动态管理的防火墙,其支持IPv4和IPv6,还支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。

2 简单介绍

firewall的配置文件:/etc/lib/firewalld//etc/firewalld/下的XML文件。配置firewall可以直接编辑配置文件,也可以使用firewall-cmd命令行工具。

3 防火墙使用

  1. 查看firewalld的状态

    firewall-cmd --state
  2. 查看活动分区类别
    firewall-cmd --get-active-zones
  3. 查看当前分配的接口
    firewall-cmd --get-zone-of-interface=ens33
  4. 查看分配的区域的所有接口:
    firewall-cmd --zone=public --list-interfaces
  5. 找出公共区域的所有设置
    firewall-cmd --zone=public --list-all
    firewall-cmd --list-all
  6. 关闭|开启所有的输入和输出的数据包(禁用)
    # 关闭所有输入输出的数据包
    firewall-cmd --panic-on
    # 开启再次输入输出的数据包
    firewall-cmd --panic-off
    # 查看panic模式的状态(yes启用 no退出)
    firewall-cmd --query-panic
  7. 重新加载防火墙
    # 重新加载防火墙,不中断用户连接(不丢失状态信息)
    firewall-cmd --reload
    # 重新加载防火墙并中断用户连接(丢失状态信息),防火墙出现严重问题才执行
    firewall-cmd --complete-reload
  8. 为分区增加接口
    # 把em1增加到公共分区,增加--permanent选择并重新加载防火墙,是之永久生效
    firewall-cmd --zone=public --add-interface=em1
  9. 设置分区(将一个端口加入分区)
    # 设置默认分区,立即生效,不需要重新加载防火墙
    firewall-cmd --set-default-zone=public
    # 将一个端口加入分区
    firewall-cmd --zone=public --permanent --add-port=8080/tcp
    firewall-cmd --reload
    # 查看开发的端口
    firewall-cmd --zone=public --list-ports
    # 删除
    firewll-cmd --zone=pubic --remove --remove-port=8080/tcp
  10. 将一个服务(http)加入到分区
    # 加入
    firewall-cmd --permanent --zone=work --add-service=http
    firewall-cmd --reload
    # 移除
    firewall-cmd --permanent  --zone=work --remove-service=http
    firewall-cmd --reload
    # 注意,这并不会中断已经建立的连接。如果您打算中断,您可以使用 --complete-reload 选项,但这不仅仅中断您已经移除的服务,还会中断所有已经建立的连接。
  11. 配置伪装 IP 地址
    # 查询是否可用
    firewall-cmd --zone=external --query-masquerade
    # 允许伪装IP
    firewall-cmd --zone=external --add-masquerade
    # 禁用伪装IP
    firewall-cmd --zone=external --remove-masquerade
  12. 配置端口转发,地址转发
    # 将22端口转发到3753端口,使用tcp协议
    firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753
    # 原本发往22端口的程序包现在被转发到地址是192.0.2.55下相同的端口
    firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55
    # 将22端口的数据包转发到192.0.2.55下的2055端口
    firewall-cmd --zone=external /
      --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55
  13. 使用直接接口增加一个自定义规则
    # 增加一个自定义规则到 “IN_public_allow” 链里:
    firewall-cmd --direct --add-rule ipv4 filter IN_public_allow   0 -m tcp -p tcp --dport 666 -j ACCEPT
    # 从 “IN_public_allow” 链移除一个自定义规则:
    firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow   0 -m tcp -p tcp --dport 666 -j ACCEPT
    # 列出 “IN_public_allow” 链中的规则:
    firewall-cmd --direct --get-rules ipv4 filter IN_public_allow
  14. 配置rich language语法:
    格式:
    
    # 添加
    firewall-cmd [--zone=zone] --add-rich-rule=‘rule‘ [--timeout 9=seconds]
    # 移除
    firewall-cmd [--zone=zone] --remove-rich-rule=‘rule‘
    # 检查是否存在
    firewall-cmd [--zone=zone] --query-rich-rule=‘rule‘
多规则结构:
```shell
rule [family="<rule family>"]
    [ source address="<address>" [invert="True"] ]
    [ destination address="<address>" [invert="True"] ]
    [ <element> ]
    [ log [prefix="<prefix text>"] [level="<log level>"] [limit value="rate/duration"] ]
    [ audit ]
    [ accept|reject|drop ]

多规则命令:

source:指定源地址,不支持使用主机名。可以通过增加 invert="true" 或 invert="yes" 来颠倒源地址命令的意思。所有提供的地址都匹配。
destination:通过制定目的地址,目标可以被限制在目的地址中。
service:服务名称是 firewalld 提供的其中一种服务。可以通过 firewall-cmd --get-services查看。格式: service name=service_name
port: 端口,可为范围或者独立数字 格式:port port=number_or_range protocol=protocol
protocol:协议
icmp-block:用这个命令阻绝一个或多个 ICMP 类型,查看支持的icmp类型列表:firewall-cmd --get-icmptypes,格式: icmp-block name=icmptype_name
masquerade:打开规则里的 IP 伪装。用源地址而不是目的地址来把伪装限制在这个区域内。在此,指定一个动作是不被允许的。
forward-port:从一个带有指定为 tcp 或 udp 协议的本地端口转发数据包到另一个本地端口,或另一台机器,或另一台机器上的另一个端口.格式:forward-port port=number_or_range protocol=protocol /
            to-port=number_or_range to-addr=address

运行来自主机192.168.1.3的所有IPv4流量

firewall-cmd --zone=public --add-rich-rule="rule family=‘ipv4‘ source address=192.168.1.3 accept" 

拒绝来自主机192.168.1.4到22端口的tcp流量

firewall-cmd --zone=public --add-rich-rule ‘rule family="ipv4" source address=192.168.1.4 port port=22 protocol=tcp reject‘

允许主机10.1.0.3到80端口的IPv4的TCP流量,并转发到65530端口上

firewall-cmd --zone=public --add-rich-rule ‘rule family=ipv4 source address=10.1.0.3 forward-port port=80 protocol=tcp to-port=65530‘

原文地址:http://blog.51cto.com/dianel/2311450

时间: 2024-11-11 00:27:52

firewall防火墙的相关文章

CentOS7中firewall防火墙详解和配置

官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1 cd /usr/lib/firewalld/services 目录中存放定义好的网络服务和端口参数,系统参数,不能修改. cd /etc/firewalld/services/ syst

CentOS7下Firewall防火墙配置用法详解

官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1 修改防火墙配置文件之前,需要对之前防火墙做好备份 重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙拦截 1 2 3 4 5 6 7

如何将centos7自带的firewall防火墙更换为iptables防火墙

用惯了centos6的iptables防火墙,对firewall太无感了,那么如何改回原来熟悉的iptables防火墙呢? 1.关闭firewall防火墙 [[email protected] html]# systemctl stop firewalld #停止firewall防火墙 [[email protected] html]# systemctl disable firewalld #禁止firewall开机启动 [[email protected] html]# systemctl

centos7 firewall 防火墙

CentOS7.0中默认使用firewall代替了iptables service.虽然继续保留了iptables命令,但已经仅是名称相同而已.除非手动删除firewall,再安装iptables,否则不能继续使用以前的iptables配置方法. 检查防火墙状态# firewall-cmd --staterunning# systemctl stop firewalld# firewall-cmd –statenot running 列出全部启用的区域的特性firewall-cmd --list

CentOS7 禁用firewall防火墙 启用iptables 步骤

一.题目:CentOS7 禁用firewall防火墙 启用iptables 步骤 二.要求:CentOS7 的防火墙默认是firewall 防火墙,现在需要启用iptables防火墙并完成常用的配置. 三.步骤: 1. 关闭firewall 1 systemctl stop firewalld.service # 停止firewall 2 systemctl disable firewalld.service # 禁止firewall 开机启动 3 systemctl status firewa

Centos中iptables和firewall防火墙开启、关闭、查看状态、基本设置等(转)

iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status # 停止防火墙 service iptables stop # 启动防火墙 service iptables start # 重启防火墙 service iptables restart # 永久关闭防火墙 chkconfig iptables off # 永久关闭后重启 chkconfig iptables on 2.查看防火墙状态,防火墙处于开启状态并且只开放了22端口 3.开启80端口

CentOS7 Firewall防火墙

# systemctl start firewalld # 启动, # systemctl enable firewalld # 开机启动 # systemctl stop firewalld # 关闭 # systemctl disable firewalld # 取消开机启动 查看特性firewall-cmd --list-all 查看firewall服务状态systemctl status firewalld firewall-cmd --state 开启端口 firewall-cmd -

运维学习之firewall防火墙服务

firewalld 一.定义和对比 FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙规则的接口.以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启.这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等.而模块的卸载将

SELinux;firewall防火墙

一: SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块.(摘自百度百科) SELINUX有「disabled」「permissive」,「enforcing」3种选择. 我的电脑默认的是enforcing 查看selinux是否开启命令 sestatus   如果状态是e