CentOS 7下用firewall-cmd
一 、控制端口/服务
可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放http服务就是开放了80端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp还是udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。
firewall-cmd --add-service=mysql # 开放mysql端口 firewall-cmd --remove-service=http # 阻止http端口 firewall-cmd --list-services # 查看开放的服务 firewall-cmd --add-port=3306/tcp # 开放通过tcp访问3306 firewall-cmd --remove-port=80tcp # 阻止通过tcp访问3306 firewall-cmd --add-port=233/udp # 开放通过udp访问233 firewall-cmd --list-ports # 查看开放的端口
二、伪装IP
防火墙可以实现伪装IP的功能,下面的端口转发就会用到这个功能。
firewall-cmd --query-masquerade # 检查是否允许伪装IP firewall-cmd --permanent --add-masquerade # 允许防火墙伪装IP firewall-cmd --permanent --remove-masquerade# 禁止防火墙伪装IP
三、端口转发
端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。
如果配置好端口转发之后不能用,可以检查下面两个问题:
- 比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
- 其次检查是否允许伪装IP,没允许的话要开启伪装IP
# 将80端口的流量转发至8080 firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至 firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1 # 将80端口的流量转发至192.168.0.1的8080端口 firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
- 当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
- 端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。
查询端口号80 是否开启:firewall-cmd --query-port=80/tcp永久开放80端口号:firewall-cmd --permanent --zone=public --add-port=80/tcp重新加载防火墙规则:firewall-cmd --reload移除80端口号:firewall-cmd --permanent --zone=public --remove-port=80/tcp--zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效--reload #配合--permanent参数永久保存
查看防火墙状态
systemctl status firewalld.service
启动|关闭|重新启动 防火墙
systemctl [start|stop|restart] firewalld.service
来自:https://blog.csdn.net/slovyz/article/details/78487182
https://blog.csdn.net/tongdengquan/article/details/79923706
转载于:https://www.cnblogs.com/luck666/p/10449087.html
CentOS 7下用firewall-cmd相关推荐
- CentOS 7 下的 Firewall
CentOS 7 默认实用的用Firewalld作为防火墙,摒弃了原先的iptables.但是内核还是使用iptable作为管理 参考文档 https://access.redhat.com/docu ...
- Linux(CentOS)下,各种协议,端口号
Linux(CentOS)下,各种配置文件如下: DNS:cat /etc/resolv.conf 主机名:cat etc/sysconfig/network 私有主机名:cat /etc/hosts ...
- CentOS 7下安装Nextcloud搭建个人网盘
[转载自 https://www.linuxidc.com/Linux/2018-11/155310.htm] 该方法是在linxu公社中发布的.感谢作者! 本人亲测,此方法可行,我在手机.电脑上都可 ...
- Fabric学习笔记(一)- Centos 7下的Fabric 2.3.2环境搭建
Centos 7下的Fabric 2.3.2环境搭建 一. 环境准备 (一).在VMware Workstation 15 安装一个Centos 7的虚拟环境,切换到图形化界面 (二).打开终端,安装 ...
- 玩PT需要SeedBox,关于在CentOS系统下架设SeedBox软件Transmission
原文转载自http://www.ziliaoboke.com/pt-seedbox-transmission.html 最近喜欢上了玩PT,喜欢上了高清电影,在大概从4月29号开始起,大概20天的时间 ...
- Windows下100个CMD常用命令(1)
Windows下100个CMD常用命令(1) 前言 一.第一组 1.appwiz.cpl:程序和功能 2.calc:启动计算器 3.chkdsk.exe:Chkdsk磁盘检查 4.cleanmgr: ...
- 【傻瓜教程】CentOS 7 下 LNMP 环境搭建过程
1.安装MariaDB CentOS 7 下,推荐使用MariaDB(MySQL的一种开源分支),且建议用yum安装. 安装命令 yum -y install mariadb mariadb-serv ...
- CentOS(linux) 下JDK的安装
CentOS(linux) JDK的安装 第一篇博客有不足之处,请大家多指教.^_^ linux下装JDK的文章网上有一大堆我就不照搬了. 本文讲新手如何取巧的在linux下安装JDK. CentOS ...
- 使用 yum 安装Docker(CentOS 7下)
使用 yum 安装(CentOS 7下) Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname ...
- CentOS 6下编译安装Nginx
CentOS 6下编译安装Nginx By:老宁 一.准备make环境 yum -y install gcc gcc-c++ automake autoconf libtool make 二.准备 ...
最新文章
- Linux Android 多点触摸协议 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/os/71/12306571.shtml
- PyCharm个性化设置及注意事项
- 学习笔记(58):Python实战编程-Combobox
- 超形象!流体版的勾股定理演示动图...
- Day Two(Beta)
- c# mysql 连接串_c# – 如何形成一个正确的MySQL连接字符串?
- Java执行系统命令策略
- Cocos2d-x 发布 Android
- mcem r语言代码_生态学数据处理常用R语言代码
- docker elasticsearch安装
- C#数组和list集合的区别
- 软件设计师教程 第5版 下载
- 关于命运(详细娱乐诠释)
- Excel如何批量添加邮箱后缀
- 3D结构光摄像头深度算法
- Single image dehazing (Fattal)
- Schema是什么?
- Ping++和BeeCloud的比较
- 具有对称性质的单参数混沌镜像系统的切换控制
- Camstar 开发:缓存的作用与分析
热门文章
- [Objective-C] Copy 和 MutableCopy
- linux安装jdk1.7
- vs2015使用GIt连接git.oschina.net/
- 掌握 PHP 中的正则表达式 二
- Ibatisnet示例:npetshop学习一
- 支持向量机(理论+opencv实现)
- ADO.NET知识学习总结
- MyEclipse快捷键与插件大全
- 妙用Windows安全模式执行杀毒
- 【android9.0】system/core下的usbhost模块无法输出log到logcat