vlambda博客
学习文章列表

Centos防火墙基本指令

对于Linux运维人员而言,Dos界面的操作指令都已了如指掌了!但是对于开发小白而言,这又是另外一门需要了解及掌握的知识点。今天我们就主要学习一下Centos7关于防火墙的基本操作指令知识。
查看防火墙状态
systemctl status firewalld.service
开启防火墙
systemctl start firewalld.service
关闭防火墙
systemctl stop firewalld.service
重启防火墙
systemctl restart firewalld.service
开机启用、禁用
systemctl enable/disable firewalld.service
查看服务是否开机启用
systemctl is-enabled firewalld.service
防火墙基本信息
查看防火墙所有信息:firewall-cmd --list-all查看已激活的Zone信息: firewall-cmd --get-active-zones查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0拒绝所有包:firewall-cmd --panic-on取消拒绝状态:firewall-cmd --panic-off查看是否拒绝:firewall-cmd --query-panic
查看指定端口是否开放
firewall-cmd --zone=public --query-port=3306/tcp
开放/关闭防火墙端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --zone=public --remove-port=3306/tcp --permanent命令含义:–zone #作用域 drop: 丢弃所有进入的包,而不给出任何响应  block: 拒绝所有外部发起的连接,允许内部发起的连接  public: 允许指定的进入连接  external: 同上,对伪装的进入连接,一般用于路由转发  dmz: 允许受限制的进入连接  work: 允许受信任的计算机被限制的进入连接,类似 workgroup  home: 同上,类似 homegroup  internal: 同上,范围针对所有互联网用户  trusted: 信任所有连接add-port=3306/tcp #添加端口,格式为:端口/通讯协议–permanent #永久生效,没有此参数重启后失效firewall-cmd --reload 并不中断用户连接,即不丢失状态信息
服务管理
https服务为例 return yes or no查询firewall-cmd --zone=work --query-service=https添加firewall-cmd --zone=work --add-service=https移除firewall-cmd --zone=work --remove-service=https
地址伪装:通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包的源地址更改为其自己的接口地址。当返回的数据包到达时,会将目的地址修改为原始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网。类似于NAT技术中的端口多路复用(PAT)。IP地址伪装仅支持ipv4,不支持ipv6。
端口转发:也可以称之为目的地址转换或端口映射。通过端口转发,将指定IP地址及端口的流量转发到相同计算机上的不同端口,或不同计算机上的端口。一般公司内网的服务器都采用私网地址,然后通过端口转发将使用私网地址的服务器发布到公网上,以便让互联网用户访问。(例如,当接收互联网用户的HTTP请求时,网关服务器判断数据包的目标地址与目标端口,一旦匹配指定规则,则将其目标地址修改为内网真正的服务器地址,从而建立有效连接)。
查询firewall-cmd --zone=external --query-masquerade添加firewall-cmd --zone=external --add-masquerade移除firewall-cmd --zone=external --remove-masquerade
开启ip地址伪装是实现端口转发的前提条件:将tcp的3306端口转发到2598firewall-cmd --zone=external --add-forward-port=3306:porto=tcp:toport=2598转发端口数据至另一个IP的相同端口:firewall-cmd --zone=external --add-forward-port=3306:porto=tcp:toaddr=192.168.10.20转发端口数据至另一个IP的 2500端口:firewall-cmd --zone=external --add-forward-port=3306:porto=tcp:toport=2500:toaddr=192.168.10.20

    IP封禁

添加add-rich-rule / 移除remove-rich-rule单个IPfirewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='111.111.111.111' reject"  IP段firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='111.111.111.0/24' reject" 允许单个IP的某个端口firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address=192.168.10.2 port port=80  protocol=tcp  accept" 查看屏蔽结果firewall-cmd --list-rich-rules