详述Linux中Firewalld高级配置

IP伪装与端口转发

Firewalld支持两种类型的网络地址转换

  • IP地址伪装(masquerade)

    • 可以实现局域网多个地址共享单一公网地址上网
    • IP地址伪装仅支持IPv4,不支持IPv6
    • 默认external区域启用地址伪装
  • 端口转发(Forward-port)
    • 也称为目的地址转换或端口映射
    • 通过端口转发,指定IP地址及端口的流量将被转发到相同计算机上的不同端口,或者转发到不同计算机上的端口

地址伪装配置

  • 为指定区域增加地址伪装功能
firewall-cmd [--permanent] [--zone= zone] --add-masquerade [--timeout seconds]
 //--timeout=seconds:在一段时间后自动删除该功能
  • 为指定区域删除地址伪装功能
firewall-cmd [--permanent] [--zone= zone] --remove-masquerade
  • 查询指定区域是否开启地址伪装功能
firewall-cmd [--permanent] [--zone=zone] --query-masquerade

端口转发配置

  • 列出端口转发配置
firewall-cmd [--permanent] [--zone=zone] --list-forward-ports
  • 添加端口转发规则
firewall-cmd [--permanent] [--zone=zone] --add-forward-port=port=portid[-portid]:proto=protocol[:toport-portid[-portid]][:toaddr-address[/mask]][--timeout=seconds]
  • 删除端口转发规则
firewall-cmd [--permanent] [--zone=zone] --remove-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
  • 查询端口转发规则
firewall-cmd [--permanent] [--zone=zone] --query-forward-port-port-portid[-portid]:proto=protocol[:toport-portid[-portid]][:toaddr=address[/mask]]

Firewalld直接规则

直接规则(direct interface)

  • 允许管理员手动编写的iptables、ip6tables和ebtables 规则插入到Firewalld管理的区域中
  • 通过firewall-cmd命令中的--direct选项实现
  • 除显示插入方式之外,优先匹配直接规则

自定义规则链

  • Firewalld自动为配置”了 规则的区域创建自定义规则链

    • IN 区域名 deny: 存放拒绝语句,优先于"IN 区域名 _allow" 的规则
    • IN 区域名 allow: 存放允许语句

允许TCP/9000端口的入站流量

irewall-cmd --direct --add-rule ipv4 filter IN work_ allow 0 -p tcp --dport 9000 j ACCEPT
  • IN work_ allow: 匹配work区域的规则链
  • 0:代表规则优先级最高,放置在规则最前面
  • 可以增加 --permanent选项表示永久配置

查询所有的直接规则

firewall-cmd --direct --get-all-rules
ipv4 filter IN_ work _allow 0 -p tcp --dport 9000 -j ACCEPT
  • 可以增加 --permanent选项表示查看永久配置

Firewalld富语言规则

富语言(rich language)

  • 表达性配置语言,无需了解iptables语法
  • 用于表达基本的允许/拒绝规则、配置记录(面向syslog和auditd)、端口转发、伪装和速率限制
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 ]
  [ acceptlrejectldrop ]

理解富语言规则命令

  • firewall-cmd处理富语言规则的常用选项
选项 说明
-add-rich-rule= ‘RULE‘ 向指定区域中添加RULE,如果没有指定区域,则为默认区域
--remove-rich-rule= ‘RULE‘ 从指定区域中删除RULE,如果没有指定区域,则为默认区域
--query-rich-rule= ‘RULE‘ 查询RULE是否已添加到指定区域,如果未指定区域,则为默认区域。<br/>规则存在,则返回0,否则返回1
--list-rich-rules 输出指定区域的所有富规则,如果未指定区域,则为默认区域

已配置富语言规则显示方式

  • firewall-cmd --list-all
  • firewall-cmd --list-all-zones
  • --list-rich-rules

富语言规则具体语法

  • source、destination、 element、 service、 port、 protocol、icmp-block、masquerade、 forward-port、 log、 audit、acceptlreject|drop

拒绝从192.168.8.101的所有流量

firewall-cmd --permanent --zone=work --add-rich-rule=‘rule family=ipv4 source address=192.168.8.101/32 reject‘
  • ddress选项使用source或destination时,必须用family= ipv4 | ipv6

接受192.168.1.0/24子网端口范置8000-9000的TCP流量

firewall-cmd --permanent --one=work --add-rich-rule=‘rule family=ipv4 source address=192.168.1.0/24 port port=8000-9000 protocol=tcp accept‘

丢弃所有icmp包

firewall-cmd --permanent --add-rich-rule=‘rule protocol value=icmp drop‘

接受来自192.168.8.1的http流量,并记录日志

firewall-cmd --add-rich-rule=‘rule family=ipv4 source address=192.168.8.1/32 service name="http" log level=notice prefix= "NEW HTTP”limit value "3/s" accept‘
  • 以192.168.8.1访问http,并观察/var/log/messages
Apr 16 17:09:55 Server kernel: NEW HTTP IN=ens33 OUT=
MAC=00:0c:29:69:01:c4:00:50:56:c0:00:08:08:00 SRC=192.168.8.1 DST=192.168.8.131
LEN=52 TOS=0xOO PREC=0x00 TTL =64 ID=20582 DF PROTO=TCP SPT=65289 DPT=80
WINDOW=8192 RES=0x00 SYN URGP=0
Apr 16 17:09:55 Server kernel: NEW HTTP IN=ens33 OUT=
MAC=00:0c:29:69:01:c4:00:50:56:c0:00:08:08:00 SRC=192.168.8.1 DST=192.168.8.131
LEN=52 TOS=0x0O PREC=0x0O TTL =64 ID=20590 DF PROTO=TCP SPT=65291 DPT=80
WINDOW=8192 RES=0x00 SYN URGP=0
Apr 16 17:09:55 Server kernel: NEW HTTP IN=ens33 OUT=
MAC=00:0c:29:69:01:c4:00:50:56:c0:00:08:08:00 SRC=192.168.8.1 DST=192.168.8.131
LEN=52 TOS=0x0O PREC=0x0O TTL =64 ID=20602 DF PROTO=TCP SPT=65292 DPT=80
WINDOW=8192 RES=0x00 SYN URGP=0

原文地址:https://blog.51cto.com/14473285/2444898

时间: 2024-11-06 18:08:12

详述Linux中Firewalld高级配置的相关文章

Linux中vsftpd服务配置(匿名,用户,虚拟用户)

vsftpd概述 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征. 特点 非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高 小巧轻快,安全易用. ftp.sftp.

Linux中邮件报警配置

linux中邮件报警机制 在linux中报警机制是运维管理关键部分.我们一般是通过监控来发现问题,常见的监控软件如:zabbix是现在大家都在使用和准备使用的.如果不通过第三方软件做监控报警,我们就需要linux中自带的邮件发送功能. 以下报警配置为工作中,小心得体会.向大家分享下: 1.检查mailx 的版本信息大于12.*即可,否则需要另外更新安装 2.# vim /etc/mail.rc  中添加修改内容如下: set [email protected]             指定外部代

linux中的目录配置

一.权限对文件的重要性 1.r(read):可读取此文件的实际内容,读取文本文件的文字内容等. 2.w(write):可以编辑,新增或者是修改该文件的内容. 3.x(execute):该文件具有可以被系统执行的权限. **在linux中,一个文件是否能被执行是由是否具有"x"这个权限来决定的,与文件名没有绝对的关系. 二.权限对目录的重要性 *文件是存放实际数据的所在,目录主要的内容是记录文件名列表,文件名与目录有前列的关联. 1.r:表示具有读取目录结构列表的权限,当你具有读取(r)

linux中安装和配置 jdk

01.去官网下载指定的jdk 02.使用xftp把下载好的文件 传递到 linux指定文件夹中03.进入指定的文件夹输入tar -zxvf 文件名称04.发现文件 05.进入文件cd jdk1.8.0_121 06.进入bin目录cd bin保存当前的路径,以备等会配置环境变量时使用! /software/jdk1.8.0_121/bin 07.找到配置环境变量的文件  ~/.bash_profile 或者 /etc/profile   文件 08.vim 开始编辑文件 或者 /etc/prof

linux中mycat的配置,分片,以及主从复制

1.1    安装环境 1.jdk:要求jdk必须是1.7及以上版本 2.Mysql:推荐mysql是5.5以上版本 1.2  安装步骤 Mycat有windows.linux多种版本.本教程为linux安装步骤,windows基本相同. 第一步:下载Mycat-server-xxxx-linux.tar.gz 第二步:将压缩包解压缩.建议将mycat放到/usr/local/mycat目录下. 第三步:进入mycat目录,启动mycat ./mycat start 停止: ./mycat st

Linux中的MyEclipse配置Hadoop

一.所需软件 注意:安装MyEclipse后,我再已安装软件里找不到MyEclipse,所以我在root权限下用命令行启动MyEclipse,貌似避免了很多权限问题. sudo su 输入密码 cd usr/myeclipse ./myeclipse 二.步骤 1.先把hadoop-eclipse-plugin-1.2.1.jar复制到ubuntu桌面(我的不能直接复制到MyEclipse的dropins目录下,我同学的能,真是奇怪啊),然后在进入桌面. 还是先进入root cd cd ..//

linux中fstab文件配置简介

1.fstab文件的作用文件/etc/fstab存放的是系统中的文件系统信息.当正确的设置了该文件,则可以通过"mount  /directory      name"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开.同时fsck. mount.umount的等命令都利用该程序. 2.下面是/etc/fatab文件的一个示例行:  cat /proc/mountsfs_spec         fs_file           fs_type

centOS 下 Linux 中的 JDK 配置

一.下载jdk 放在 /usr/local/src/jdk下解压 命令: 解压后: 二.用 vim 进行编辑   如果是最小安装的Linux需要安装 vim  命令(yum install vim*) 命令:vim /etc/profile 三.刷新配置文件 命令:source /etc/profile 四.测试jdk是否配置成功 命令: java -version 命令: javac 五.安装完成 原文地址:http://blog.51cto.com/10476803/2068652

linux中的网络配置

1.IP addressIP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异.目前还有些ip代理软件,但大部分都收费.ip由32个01组成11111110.11111110.11111110.11111110=254.254.254.254 ipv 4 :internet protocol