首页 > 系统相关 >Linux的Firewalld服务

Linux的Firewalld服务

时间:2023-02-26 14:05:18浏览次数:44  
标签:服务 -- cmd firewalld server firewall Linux root Firewalld

Firewalld

防火墙基本操作

# 查找防火墙服务名
[root@server ~]# systemctl list-units  | grep fire
firewalld.service loaded active running   firewalld - dynamic firewall daemon

# 查找firewalld.service文件位置
[root@server ~]# find  / -type f  -name 'firewalld.service'

/usr/lib/systemd/system/firewalld.service

# 这个脚本是运行防火墙命令的一个脚本文件看脚本的,第11 12 13行

[root@server ~]# cat -n  /usr/lib/systemd/system/firewalld.service
     1	[Unit]
     2	Description=firewalld - dynamic firewall daemon
     3	Before=network-pre.target
     4	Wants=network-pre.target
     5	After=dbus.service
     6	After=polkit.service
     7	Conflicts=iptables.service ip6tables.service ebtables.service ipset.service
     8	Documentation=man:firewalld(1)
     9	
    10	[Service]
    11	EnvironmentFile=-/etc/sysconfig/firewalld
    12	ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
    13	ExecReload=/bin/kill -HUP $MAINPID
    14	# supress to log debug and error output also to /var/log/messages
    15	StandardOutput=null
    16	StandardError=null
    17	Type=dbus
    18	BusName=org.fedoraproject.FirewallD1
    19	KillMode=mixed
    20	 
    21	[Install]
    22	WantedBy=multi-user.target
    23	Alias=dbus-org.fedoraproject.FirewallD1.service

服务管理脚本的作用

其实是执行了软件提供的二进制命令

  • firewalld如此 /usr/sbin/fireawlld
  • nginx也如此 /usr/sbin/nginx
  • 其他软件也都是这样

image-20220322095107486.png

查看防火墙系统提供的模板

1.列出所有的区域模板
# 列出区域模板,以及具体的信息
[root@server ~]# firewall-cmd --list-all-zones

# 列出所有的区域的名字
[root@yserver ~]# firewall-cmd --get-zones

block dmz drop external home internal public trusted work

2.列出当前使用的区域是
[root@server ~]# firewall-cmd --get-default-zone 
public

3.查看当前的public区域,以及其详细信息
# 列出当前使用的区域,以及详细信息
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client ntp
  ports: 80/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

4.先运行一个80端口的服务
[root@server ~]# python -m SimpleHTTPServer 80

5.给当前的防火墙区域,添加一个策略,允许80端口通过
[root@server ~]# firewall-cmd --add-port=80/tcp
success

6.再添加一个8000端口的规则,我们接触的绝大多数,都是端口号/tcp 这个即可.
[root@server ~]# firewall-cmd --add-port=8000/tcp
success

7.删除,添加的端口规则
[root@server ~]# firewall-cmd --remove-port=80/tcp
success
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 


8. 针对服务名添加,比如ntp服务
[root@server ~]# firewall-cmd --add-service=ntp

9. 查看当前public区域,使用了哪些规则
[root@server ~]# firewall-cmd - -list-all

10. firewalld,作用其实是添加iptables的规则

查看系统上所有iptables的命令

iptables -L

tcp 是一个安全可靠的连接,需要双向确认,客户端,和服务端,都要确认对方以及连接上了

udp 是一个不可靠的额连接协议,客户端可以随便给服务端发,不需要对方确认

比如一个很差的网络环境下,网页无法访问,无法做dns解析(网络服务,网站服务,用的都是tcp协议)
但是qq可以收发消息(qq用的是udp协议,以及ntp用的也是udp协议)

# 查看到firewalld命令,添加的防火墙规则如下
[root@server ~]# iptables -L |grep ntp
ACCEPT  udp  --  anywhere  anywhere   udp dpt:ntp ctstate NEW

永久性添加防火墙策略

1. 永久性添加 8000/tcp的策略
[root@server ~]# firewall-cmd  --permanent --add-port=8000/tcp


2.需要重新加载firewalld服务
[root@server ~]# firewall-cmd --reload
success


3.重新加载后,规则自动生成了,生效了
[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client ntp
  ports: 80/tcp 8000/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 


firewalld命令,可以创建出iptables规则

systemctl status firewalld 查看防火墙状态

systemctl enable firewalld 设置开机自启动

systemctl stop firewalld 停止防火墙,系统重启后防火墙会运行

systemctl disable firewalld 设置开机不自启动防火墙

@根据于超老师讲解整理,同时借用一张图片,感谢!

标签:服务,--,cmd,firewalld,server,firewall,Linux,root,Firewalld
From: https://blog.51cto.com/u_7175088/6086432

相关文章

  • 【Linux】常用命令大全(二)
    目录   ​​4.Linux常用命令​​​​4.1Linux命令初体验​​​​4.2文件目录操作命令​​​​4.3拷贝移动命令​​​​4.4打包压缩命令​​​​4.5文本编辑命令​......
  • Reis服务端和哨兵的启动与关闭
    哨兵的启动和关闭与Redis服务端redis-server都是一样的:#启动redis-server[root@node1redis]#redis-server配置文件#查询redis-server启动的端口号,只要包含redis的......
  • Canonical为所有支持的Ubuntu LTS系统发布了新的Linux内核更新
    Canonical近日为所有支持的UbuntuLTS系统发布了新的Linux内核更新,以解决总共19个安全漏洞。新的Ubuntu内核更新仅适用于长期支持的Ubuntu系统,包括Ubuntu22.04LT......
  • 【Linux】简介以及安装(一)
    目录 ​​1.前言​​​​1.1什么是Linux​​​​1.2为什么要学Linux​​​​1.3学完Linux能干什么​​​​2.Linux简介​​​​2.1主流操作系统​​​​2.2Linux发......
  • Golang微服务(二)
    Golang微服务(二)目录Golang微服务(二)注册中心选型consul环境consul常用API服务的增删查、健康检查gRPC的健康检查服务的负载均衡(相同服务多实例注册)配置中心nacos环境nacos......
  • linux服务器双网卡路由设置
    最近在调试linux服务器双网卡配置时,会碰到内网不通的情况,这里记录一下注意事项。1.排查自身网络配置是否正确。     注意:双网口配置时,只配置一个网关即可(内网......
  • Linux系统之alias别名的基本使用
    (Linux系统之alias别名的基本使用)一、alias别名介绍1.alias简介在Linux系统的使用中,我们可以将那些繁琐的命令自定义为我们容易记住的别名,可以理解为快捷方式,用来提高......
  • Linux命令-用户、权限管理
     Linux命令-用户、权限管理用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都......
  • Linux命令-系统管理
    Linux命令-系统管理查看当前日历:calcal命令用于查看当前日历,-y显示整年日历:显示或设置时间:date设置时间格式(需要管理员权限):date[MMDDhhmm[[CC]YY][.ss]]+form......
  • linux常用命令01
    1、目录介绍 root homeuseretc2、核心命令切换目录:cd cd/cd-cd../cd~查看目录下的文件/目录:listllls-alls......