@@ -16,12 +16,44 @@ firewalld自身并不具备防火墙的功能,而是和iptables一样需要通
16
16
17
17
18
18
19
- ### 语法
19
+ ** 命令格式**
20
+
21
+ ```
22
+ firewall-cmd [选项 ... ]
23
+ ```
24
+
25
+ ### 选项
26
+
27
+ 通用选项
28
+
29
+ ``` bash
30
+ -h, --help
31
+ 显示帮助信息;
32
+
33
+ -V, --version
34
+ 显示版本信息. (这个选项不能与其他选项组合);
35
+
36
+ -q, --quiet
37
+ 不打印状态消息;
20
38
21
39
```
22
- finger(选项)(参数)
40
+
41
+ 状态选项
42
+ ``` bash
43
+ --state 显示firewalld的状态;
44
+ --reload 不中断服务的重新加载;
45
+ --complete-reload 中断所有连接的重新加载;
46
+ --runtime-to-permanent
47
+ 将当前防火墙的规则永久保存;
48
+ --check-config 检查配置正确性;
23
49
```
24
50
51
+ 日志选项
52
+ ``` bash
53
+ --get-log-denied 获取记录被拒绝的日志;
54
+ --set-log-denied=< value>
55
+ 设置记录被拒绝的日志,只能为 ' all' ,' unicast' ,' broadcast' ,' multicast' ,' off' 其中的一个;
56
+ ```
25
57
26
58
### 实例
27
59
@@ -160,6 +192,85 @@ firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEP
160
192
firewall-cmd --reload
161
193
```
162
194
195
+ ** 自定义服务管理**
196
+ 选项
197
+ ``` bash
198
+ (末尾带有 [P only] 的话表示该选项除了与(--permanent)之外,不能与其他选项一同使用!)
199
+ --new-service=< 服务名> 新建一个自定义服务 [P only]
200
+ --new-service-from-file=< 文件名> [--name=< 服务名> ]
201
+ 从文件中读取配置用以新建一个自定义服务 [P only]
202
+ --delete-service=< 服务名>
203
+ 删除一个已存在的服务 [P only]
204
+ --load-service-defaults=< 服务名>
205
+ Load icmptype default settings [P only]
206
+ --info-service=< 服务名>
207
+ 显示该服务的相关信息
208
+ --path-service=< 服务名>
209
+ 显示该服务的文件的相关路径 [P only]
210
+ --service=< 服务名> --set-description=< 描述>
211
+ 给该服务设置描述信息 [P only]
212
+ --service=< 服务名> --get-description
213
+ 显示该服务的描述信息 [P only]
214
+ --service=< 服务名> --set-short=< 描述>
215
+ 给该服务设置一个简短的描述 [P only]
216
+ --service=< 服务名> --get-short
217
+ 显示该服务的简短描述 [P only]
218
+
219
+ --service=< 服务名> --add-port=< 端口号> [-< 端口号> ]/< protocol>
220
+ 给该服务添加一个新的端口(端口段) [P only]
221
+
222
+ --service=< 服务名> --remove-port=< 端口号> [-< 端口号> ]/< protocol>
223
+ 从该服务上移除一个端口(端口段) [P only]
224
+
225
+ --service=< 服务名> --query-port=< 端口号> [-< 端口号> ]/< protocol>
226
+ 查询该服务是否添加了某个端口(端口段) [P only]
227
+
228
+ --service=< 服务名> --get-ports
229
+ 显示该服务添加的所有端口 [P only]
230
+
231
+ --service=< 服务名> --add-protocol=< protocol>
232
+ 为该服务添加一个协议 [P only]
233
+
234
+ --service=< 服务名> --remove-protocol=< protocol>
235
+ 从该服务上移除一个协议 [P only]
236
+
237
+ --service=< 服务名> --query-protocol=< protocol>
238
+ 查询该服务是否添加了某个协议 [P only]
239
+
240
+ --service=< 服务名> --get-protocols
241
+ 显示该服务添加的所有协议 [P only]
242
+
243
+ --service=< 服务名> --add-source-port=< 端口号> [-< 端口号> ]/< protocol>
244
+ 添加新的源端口(端口段)到该服务 [P only]
245
+
246
+ --service=< 服务名> --remove-source-port=< 端口号> [-< 端口号> ]/< protocol>
247
+ 从该服务中删除源端口(端口段) [P only]
248
+
249
+ --service=< 服务名> --query-source-port=< 端口号> [-< 端口号> ]/< protocol>
250
+ 查询该服务是否添加了某个源端口(端口段) [P only]
251
+
252
+ --service=< 服务名> --get-source-ports
253
+ 显示该服务所有源端口 [P only]
254
+
255
+ --service=< 服务名> --add-module=< module>
256
+ 为该服务添加一个模块 [P only]
257
+ --service=< 服务名> --remove-module=< module>
258
+ 为该服务移除一个模块 [P only]
259
+ --service=< 服务名> --query-module=< module>
260
+ 查询该服务是否添加了某个模块 [P only]
261
+ --service=< 服务名> --get-modules
262
+ 显示该服务添加的所有模块 [P only]
263
+ --service=< 服务名> --set-destination=< ipv> :< address> [/< mask> ]
264
+ Set destination for ipv to address in service [P only]
265
+ --service=< 服务名> --remove-destination=< ipv>
266
+ Disable destination for ipv i service [P only]
267
+ --service=< 服务名> --query-destination=< ipv> :< address> [/< mask> ]
268
+ Return whether destination ipv is set for service [P only]
269
+ --service=< 服务名> --get-destinations
270
+ List destinations in service [P only]
271
+ ` ` `
272
+
273
+
163
274
** 控制端口 / 服务**
164
275
165
276
可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放 http 服务就是开放了 80 端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp 还是 udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。
0 commit comments