日常运维(二)

10.19 iptables规则备份和恢复

保存和备份iptables规则

设定的防火墙规则只保存在内存中,并没有保存到某一个文件中。也就是说,当系统重启后,之前设定的规则就没有了,所以设定好规则后要先保存下好,命令如下:

57aab1e9cc59799108e64842070dc2ec642.jpg

它会提示防火墙规则保存在/etc/sysconfig/iptables文件内,这个文件就是iptables的配置文件。以后如果遇到备份防火墙规则的任务,只要复制一份这个文件的副本即可。

有时需要清除防火墙的所有规则,使用命令iptables -F 当然可以实现,但最好的办法还是停止 防火墙服务:

04f361865286dff1d525f084fffb061639e.jpg


10.20 firewalld的9个zone

firewalld是CentOS7系统的防火墙工具。

在操作firewalld之前,我们先关闭iptables服务,然后再开启firewalld服务:

f0e98cec17b471f6745a187ef74a8c94f1c.jpg

firewalld有两个基础概念,分别是zone和service,每一个zone里面有不同的iptables规则,默认一共有9个zone,而CentOS7默认的zone为public。获取系统所有的zone,命令如下:

ef5a1848c7aa46475bbea652e343dc70fd3.jpg

查看系统默认的zone:

c4123a5b6f15cd673696f9b445ff3a6da91.jpg

firewalld的9个zone:

drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。

block(限制):任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。

pubilc(公共):在公共区域内使用,不能相信网络内的其他计算机不会对你的计算机造成伤害,只能接收经过选取的连接。

external(外部):特别是为路由器启用了伪装功能的外部网。你不能信任来自网络的其他计算机,不能相信它们不会对你的计算机造成危害,只能接收经过选择的连接。

dmz(非军事区):用于你的非军事区内的计算机,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接收经过选择的连接。

work(工作):用于工作区。你可以基本相信网络内的其他计算机不会危害你的计算机。仅仅接收经过选择的连接。

home(家庭):用于家庭网络。你可以基本信任网络内的其他计算机不会危害你的计算机。仅仅接收经过选择的连接。

internal(内部):用于内部网络。你可以基本信任网络内的其他计算机不会危害你的计算机。仅仅接收经过选择的连接。

trusted(信任):可接受所有的网络连接。


10.21 firewalld关于zone的操作

关于zone的命令:

6bce7a75620f00c054b9542298872d90ac4.jpg


10.22 firewalld关于service的操作

之所以有9个zone,是因为每一个zone里面都使用了不同的service,而service就是针对一个服务(端口)做的iptables规则。

列出当前系统所有的service:

22eb53f1059e9ae995a287fcc66b65b9645.jpg

这些service都是由一个个配置文件定义的,配置文件的模板在/usr/lib/firewalld/services/目录下,真正生效的配置在/etc/firewalld/services目录下面(默认为空):

599295cee1a16670a9f1167ae05af220af1.jpg

每个zone里面都有不同的service,那如何查看一个zone下面有哪些service呢?

2102b13c5c85c69bc477d13a1a63fe7fda0.jpg

7da80b6f851099eba5dd7acc54d48976794.jpg

一个zone下面有某个service,意味着这个service是被信任的。比如,当前zone下面有ssh,那么ssh服务端口(22)是放行的。我们给一个zone添加一个service:

c05db4d216cb7aad4ba395b7540b15fc19e.jpg

对于每个zone来说,都有自己的配置文件,可以查看目录/usr/lib/firewalld/zones/下面对应的文件,这些就是zone的配置文件:

9dcf8236cfb5c60f1e9c044ac630962446a.jpg

上面的例子可以在一个zone里面增加一个service,但这种方法仅仅在内存中生效,并没有修改配置文件,如果想修改配置文件,需要加一个选项:

26aeeee03b4fc6c3b0157264ecd334d738c.jpg

一旦更改了某个zone的配置文件,则会在/etc/firewalld/zones/目录下面生成对应zone的配置文件(.xml后缀的文件),其实这个目录下面的配置文件才是真正的配置文件。


10.23 linux任务计划cron

大部分系统管理工作都是通过定期自动执行某个脚本来完成的,Linux的cron就是用来定期执行脚本的。

Linux任务计划功能的操作都是通过crontab命令来完成的,常用的选项有以下几个:

-u:表示指定某个用户,不加-u则为当前用户。

-e:制定计划任务。

-l:列出计划任务。

-r:删除计划任务。

使用crontab -e来编写任务计划,实际上就是使用vim打开了crontab的配置文件,我们写下如下内容:

9831a6605535b2e13feb774b92a256cea85.jpg

从左至右依次为:分、时、日、月、周和命令行。上面例子表示在6月5日(这一天必须是星期三)的10点01分执行命令:echo "ok" > /root/cron.log。

命令crontab -e实际上是撕开了/var/spool/cron/username文件(如果用户是root,则打开的是/var/spool/cron/root)。打开这个文件使用了vim编辑器,所以保存时在命令行模式下输入:wq即可。但是不要直接去编辑那个文件,否则会出错,所以一定要使用命令crontab -e来编辑。

查看已经设定的任务计划:

63016ee83557a8a0c9321637aad65394f7e.jpg

删除任务计划:

fb827b39ffa88d6444cb1657c8ec7be6140.jpg


10.24 chkconfig工具

chkconfig是CentOS6上的服务管理工具,Linux系统所有的预设服务都可以通过查看/etc/init.d/目录得到:

883ce022e97f2fe75aa4774314d99e81a3b.jpg

我们会发现只有几个文件,这是因为CentOS7已经不再延续CentOS6版本的服务管理方案了。但是我们还是可以继续使用chkconfig这个命令。

系统的预设服务都可以通过这样的命令实现:service 服务名 start | stop | restart。这里的服务名就是/etc/init.d/目录下的这些文件了。启动crond除了可以使用命令service crond start外,还可以使用命令/etc/init.d/crond start。

命令chkconfig --list列出所有的服务及其每个级别的开启状态:

df7f2276974b967737f8c26857b321c031e.jpg

更改某级别下的开启状态:

9d03476ad6e7b8dd1910c9210ee9a260c46.jpg

还可以指定多个级别:

c7e026490b828d7689a0491d75b6b8cfbbb.jpg

把某个服务加入系统服务或者删除:

ff117a0b9e79cdd9e47fa824a92217fcd13.jpg


10.25 systemd管理服务

systemd是CentOS7上的服务管理工具。

列出系统所有的服务:

32414753d9980f4ed026614455afcd819a8.jpg

这些服务对应的启动脚本文件:

006a9ca8398618872ef62830f25369c84a4.jpg

 

一些常用的命令:

0619af8a5f573bf2f700d997305138b4459.jpg


10.26 unit介绍

/usr/lib/systemd/system这里的文件,我们可以把它们分为以下大类:

service:系统服务。

target:多个unit组成的组。

device:硬件设备。

automount:自动挂载点。

path:文件或路径。

scope:不是由systemd启动的外部进程。

slice:进程组。

anapshot:systemd快照。

socket:进程间通信的套接字。

swap:swap文件。

timer:定时器。

 

下面是几个和unit相关的命令:

#systemctl list-units #列出下在运行(active)的unit

#systemctl list-units --all #列出所有的unit(包括失败的、inactive的)

#systemctl list-units --all --state=inactive #列出所有inactive的unit

#systemctl list-units --all --type=service #列出所有状态的service

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

#systemctl is-active crond.service #查看某个unit是否active


10.27 target介绍

target类似于CentOS6里面的启动级别,但target支持多个target同时启动。target其实是多个unit的组合,系统启动其实就是启动多个unit,为了管理方便,就使用target来管理这些unit。

查看当前系统的所有target:

28dede1f77e26ba41061bc526707f0c6e9c.jpg

查看一个target包含的所有unit:

fce419af0565a2c7ddf6e8ec41c069f1aa0.jpg

 

关于target的命令:

375695108d2ab16db54417c0c09f38aeddf.jpg

 

运行级别和target的对比:

4d020eb66e278b2626355af8ebe304ab30e.jpg

 

service、unit以及target之间的联系:

1、一个service属于一种unit;

2、多个unit一起组成了一个target;

3、一个target里面包含了多个service,你可以查看文件/usr/lib/systemd/system/sshd.service里面[ install ]部分的内容,它就定义了该service属于哪一个target。

 

转载于:https://my.oschina.net/u/3992198/blog/2878641

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值