Linux防火墙及系统服务管理

本文详细介绍Linux系统中iptables和firewalld的规则备份、恢复及操作,涵盖9个firewalld区域的管理,以及如何通过cron进行任务计划。同时,讲解了chkconfig和systemd在服务管理上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 iptables规则备份和恢复
2 firewalld的9个zone
3 firewalld关于zone的操作
4 firewalld关于service的操作
5 linux任务计划cron
6 chkconfig工具
7 systemd管理服务
8 unit介绍
9 target介绍

扩展
提供一个iptables系列文章的博客  https://www.zsythink.net/archives/tag/iptables/page/2/
anacron https://www.jianshu.com/p/3009a9b7d024?from=timeline
systemd自定义启动脚本  http://www.jb51.net/article/100457.htm

1、iptables规则备份和恢复

8a9e6078355f67719a58329be0d88ec774b.jpg

iptables备份配置文件到一个文件中

iptables-save > /tmp/ipt.txt

14b0765f032fcd751076e40d1306200e693.jpg

清空iptables

iptables -t nat -F

303f70056ca36cda1e83a006efe9268f01a.jpg

恢复iptables

iptables-restore < /tmp/ipt.txt

iptables -t nat -nvL 只查看nat规则


2、firewalld的9个zone

firewalld有9个zone,zone是firewalld的单位,默认使用public zone

关闭iptables开机启动

systemctl disable iptables

临时关闭iptables

systemctl stop iptables

开启firewalld开机启动

systemctl enable firewalld

临时开启firewalld

systemctl start firewalld

查看所有zone

aba4ac151942e8fa2df1719f7dd11801a09.jpg

firewall-cmd --get-zones

查看默认zone

firewall-cmd --get-default-zone

c542c0606b8d453eb463e9fae4e692501c2.jpg


3、firewalld关于zone的操作

8514839c928a5dc66dab16af7e54f13de98.jpg

设定默认zone

firewall-cmd --set-default-zone=work

查指定网卡

firewall-cmd --get-zone-of-interface=ens32

给指定网卡设置zone

firewall-cmd --zone=dmz --add-interface=ens32:0

针对网卡更改zone

firewall-cmd --zone=block --change-interface=ens32:0

针对网卡删除zone

firewall-cmd --zone=block --remove-interface=ens32:0

查看系统所有网卡所在zone

firewall-cmd --get-active-zones


4、firewalld关于service的操作

查看所有的service有哪些

firewall-cmd --get-services

26b5833a31b70bd7019abdbdb0b6dde4071.jpg

查看当前的zone

firewall-cmd  --get-default-zone

a158988d8b61c7a3b1ce71c1346dd50769e.jpg

查看当前work的zone里面有哪些service

firewall-cmd --list-services或者firewall-cmd --list-service

查看某个zone里面有哪些service

firewall-cmd --zone=work --list-service

5b7d9851600703bf3cd37ab4590701070fe.jpg

把http增加到public zone下面

firewall-cmd --zone=public --add-service=http
d87fa65c039de0e12ca0195fefcc3c16230.jpg

把更改写入配置文件(永久生效)

firewall-cmd --zone=public --add-service=ftp --permanent

c71f847451d4f0df7734d68c458ca4239ed.jpg

查看配置文件

cat /etc/firewalld/zones/public.xml
3be4233cd9b914a6932c15d382728a8eef6.jpg

ftp服务器自定义端口1121,需要在work zone下面放行ftp

把ftp的配置文件拷贝到etc下面去

cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services

编辑/etc/firewalld/services/ftp.xml配置文件,把21端口改成1121

vi /etc/firewalld/services/ftp.xml

101505_qIxG_3804239.png

把work配置文件拷贝到zones下面

cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/

编辑/etc/firewalld/zones/work.xml配置文件,增加标记的这行

vi /etc/firewalld/zones/work.xml

101907_8nUJ_3804239.png

重新加载加载服务

firewall-cmd --reload

b1b776ce72af75e6aedd5561a1e183ec82a.jpg

查看

firewall-cmd --zone=work  --list-services

b27880cd395fa7c751327923502a1331ae1.jpg

5、linux任务计划cron

a0d49afff6de8b139aa5d1c262906d9ea50.jpg

查看任务计划配置文件(会定义SHELL,PATH环境变量、命令的路径,MAILTO发送邮件给谁)

格式

 *  *  *  *  * user-name  command to be executed

minute (0 - 59) 第一个*表示分钟

hour (0 - 23)第二个表示小时

day of month (1 - 31)第三个表示日期

month (1 - 12) OR jan,feb,mar,apr ...第四个表示月份

day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat第五位表示星期,范围是0到6,0/7表示周日

user-name 第六位表示用户

command to be executed 第七列表示要执行的命令

cat /etc/crontab

94371c8aecf462ab547a496a8e57a181165.jpg

定义任务计划配置文件

crontab -e

每天3点执行/usr/local/sbin/123.sh脚本,并每天记录正确和错误日志到tmp123.log

103520_setX_3804239.png

1到10号,双月,周二和周五执行,确定某一天的唯一性,用星期确认

103930_67Ty_3804239.png

启动crond服务

systemctl start crond

检查服务是否启动成功

ps aux |grep cron

查看crond服务状态是否正常

systemctl status crond
9a1c84529ad1a78138c0e9afc352a2172e3.jpg

如果任务没有执行很有可能是命令没有用绝对路径,因为用的命令不在变量PATH里,所以要么使用绝对路径,要么将命令加入到PATH变量里
每一个执行的脚本最好都写上追加正确与错误的内容到指定的文件,这样就可以有迹可寻,当有错误时可以查看下错误的文件日志就知道了
备份脚本的内容,可以把下面的root直接拷贝就行了,如果是user用户就会是user名称的文件
f1999b8ca28c047c43787d8922ddfe24761.jpg
crontab -r是删除脚 本
228631f9a7d7b4325d4d52e16a621bb2fe2.jpg

6、chkconfig工具

chkconfig --list,列出所有的系统服务

09ba1fea8b2c379371907950a8675c9eacc.jpg

服务的脚本存放位置:

4c0f8026dee4254e5a3613d32f29678b0c1.jpg

chkconfig network off,将network服务关闭

002015_X8Q5_3708406.png

7个运行级别分别表示:

0(关机);

1(单用户);

2(多用户模式,没nfs服务)

3(多用户模式,不带图形)

4(保留)

5(多用户模式带图形)

6(重启)

针对某一个或几个运行级别状态打开、关闭,多个运行级别之前不用符号隔开

002551_MOaZ_3708406.png

自定义添加和删除服务

进入/etc/init.d/目录下,只有在这个目录下,才能添加到服务列表里去

003916_8C5R_3708406.png

004108_T0Zm_3708406.png

vim 123,对文件内容有要求,首先要是一个shell脚本,然后有chkconfig和description的格式,才能被识别,格式如下:

004347_qluR_3708406.png

删除服务

004608_RRii_3708406.png

7、systemd管理服务

systemctl list-unit-files,查看所有的服务

systemctl list-units --all --type=service,指定type,列出所有的service,按空格可以往下翻,不加-all,则不会列出inactive项

010122_GeQC_3708406.png

几个常用的和服务相关的命令

systemctl enable crond.service,让服务开机启动(.service可以省略);systemctl disable crond,不让服务开机启动

010848_cMkD_3708406.png

systemctl status crond,查看状态

010943_bMwz_3708406.png

systemctl stop crond,停止服务;

systemctl start crond,启动服务;

systemctl restart crond,重启服务;

systemctl is-enabled crond ,检查服务是否开机启动

011149_yBT5_3708406.png

8、unit介绍

aef99b664ab355c22464883873c3f238461.jpg

unit相关命令

389e8afe492bd7fd0183ea40587e1be7446.jpg

systemctl list-units ,列出正在运行的unit

systemctl list-units --all,列出所有包括失败的或者inactive的

systemctl list-units --all --state=inactive,列出inactive的unit

systemctl list-units --type=service,列出状态为active的service

systemctl is-active crond.service,查看某个服务是否为active

9、target介绍

系统为例方便管理用target来管理unit

systemctl list-unit-files --type=target,列出系统中所有的target

systemctl list-dependencies multi-user.target,查看指定target下面有哪些unit

systemctl get-default,查看系统默认的target

systemctl set-default multi-user.target,设置默认的target

一个service属于一种类型的unit,多个unit组成了一个target,一个target里面包含了多个service。

cat /usr/lib/systemd/system/sshd.service ,查看sshd.service属于哪个target,看Install部分可知

转载于:https://my.oschina.net/u/3992081/blog/2878425

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值