C/C++教程

centos7防火墙基本操作

本文主要是介绍centos7防火墙基本操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. 开启、关闭、查看防火墙状态

systemctl方式

systemctl status firewalld      #查看状态(防火墙为开启状态active(running),防火墙为关闭状态inactive(dead))
systemctl start firewalld       #开启防火墙(临时的,重启后恢复默认值)
systemctl stop firewalld        #关闭防火墙(临时的,重启后恢复默认值)
systemctl enable firewalld      #开启 (重启后生效,重启后仍是开启状态)
systemctl disable firewalld     #关闭(重启后生效,重启后仍是关闭状态)
firewall-cmd --list-all         #查看防火墙规则

service方式

service firewalld status    #查看状态
service firewalld start     #开启防火墙(临时的,重启后恢复默认值)
service firewalld stop      #关闭防火墙(临时的,重启后恢复默认值)
  1. 查询、开放、关闭端口(firewall-cmd是linux提供的操作firewall的一个工具。)
firewall-cmd --query-port=80/tcp                #查询80端口是否开放
firewall-cmd --permanent --add-port=80/tcp      #开放80端口
firewall-cmd --permanent --remove-port=80/tcp   #移除80端口
firewall-cmd --reload                           #使配置生效(修改配置后要重启防火墙,或使用reload使配置生效)
firewall-cmd --state                            #查看防火墙状态

3、添加samba访问控制命令

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --reload
firewall-cmd --permanent --add-port=137/tcp
firewall-cmd --permanent --add-port=138/tcp
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
firewall-cmd --permanent --add-port=901/tcp

4、访问控制基本操作

iptables -L -n                       #查看当前防火墙配置
vim /etc/firewalld/firewalld.conf    #修改firewalld配置文件,放通端口(默认是DefaultZone=public)
vim /etc/firewalld/zones/public.xml   #端口放通,进入public.xml文件进行编辑修改(<port protocol="tcp" port="端口号"/>进行相关端口的放通)

5、开启流量转发功能

例:把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
可以ssh -p 888 192.168.10.10 进行访问

6、开放端口IP访问限制

例:限制192.168.20.250(192.168.20.0网段)访问192.168.20.251(本机)的80端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.20.250" port protocol="tcp" port="80" reject"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.20.0/24" port protocol="tcp" port="80" reject"
firewall-cmd --reload                               #重新载入防火墙使其生效
firewall-cmd --zone=public --list-rich-rules        #查看已经设置的规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.20.250" port protocol="tcp" port="80" accept" #解除上述限制
firewall-cmd --reload                                #重新载入防火墙使其生效
firewall-cmd --zone=public --list-rich-rules         #再查看规则,如设置未生效,直接编辑规则文件:vi /etc/firewalld/zones/public.xml)

7、配置
这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。
应急

firewall-cmd --reload          #重载防火墙配置
firewall-cmd --state           #查看防火墙运行状态
firewall-cmd --list-all        #查看默认区域的设置
firewall-cmd --panic-on        # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
firewall-cmd --panic-off       # 取消应急模式,但需要重启firewalld后才可以远程ssh
firewall-cmd --query-panic     # 查看是否为应急模式

服务

firewall-cmd --add-service=<service name> #添加服务
firewall-cmd --remove-service=<service name> #移除服务

端口

firewall-cmd --add-port=<port>/<protocol>     #添加端口/协议(TCP/UDP)
firewall-cmd --remove-port=<port>/<protocol>  #移除端口/协议(TCP/UDP)
firewall-cmd --list-ports                     #查看开放的端口

协议

firewall-cmd --add-protocol=<protocol>        # 允许协议 (例:icmp,即允许ping)
firewall-cmd --remove-protocol=<protocol>     # 取消协议
firewall-cmd --list-protocols                 # 查看允许的协议
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" accept"          #允许指定ip的所有流量
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" accept"   # 表示允许来自192.168.2.1的所有流量
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" protocol value="<protocol>" accept"    #允许指定ip的指定协议
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" protocol value="icmp" accept" # 允许192.168.2.208主机的icmp协议,即允许192.168.2.208主机ping
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" service name="<service name>" accept"  #允许指定ip访问指定服务
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" service name="ssh" accept"    # 允许192.168.2.208主机访问ssh服务
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" port protocol="<port protocol>" port="<port>" accept"  #允许指定ip访问指定端口
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" port protocol="tcp" port="22" accept"           #允许192.168.2.1主机访问22端口
firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" accept"  #表示允许192.168.2.0/24网段的主机访问22端口 。
firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" reject"  #表示禁止192.168.2.0/24网段的主机访问22端口 。各个命令中,将 accept 设置为 reject表示拒绝,设置为 drop表示直接丢弃(会返回timeout连接超时)。
这篇关于centos7防火墙基本操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!