Linux日常管理技巧3

iptables保存、备份和恢复

service iptables save

此命令会将当前iptables的规则保存到/etc/sysconfig/iptables文件中,重启服务后会自动加载这个文件中的配置

iptables-save

命令可以将当前iptables的所有规则保存到一个自定义的文件中,iptables-save > iptables.bak

iptables-restore

iptables-restore < iptables.bak 使用刚才保存的规则文件iptables.bak来恢复规则

Firewalld简介

关闭iptables服务,开启Firewalld服务

systemctl stop iptables--关闭iptables服务

systemctl disable iptables--关闭开机启动

systemctl enable firewalld--开机启动firewalld服务

systemctl start firewalld--开启firewalld服务

Firewalld的9个zone

区域(zone):iptables service 在 /etc/sysconfig/iptables 中储存配置,firewalld 将配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里

在/etc/firewalld/的区域设定是一系列可以被快速执行到网络接口的预设定。

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

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

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

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

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

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

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

internal(内部)用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。

trusted(信任)可接受所有的网络连接。指定其中一个区域为默认区域是可行的。当接口连接加入了

NetworkManager,它们就被分配为默认区域。安装时firewalld 里的默认区域被设定为公共区域。

Firewalld常用命令语法:

firewall-cmd [--zone=zone_name] 动作选项 [--permanent]

注: 如果不指定--zone选项,则为当前所在的默认区域

--permanent选项为将改动写入到区域配置文件中,并且需要重新加载防火墙才能生效。

--state ##查看防火墙的状态firewall-cmd --state

running--reload ##重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置

firewall-cmd --reload

success--complete-reload ##重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用)

firewall-cmd --complete-reload

success--panic-on ##紧急模式,强制关闭所有网络连接,--panic-off是关闭紧急模式

[root@long0000 ~]# firewall-cmd --panic-on ; firewall-cmd --panic-off success success(注:不要单独使用--panic-on,会导致远程连接断开,必须在系统本地操作才能开启)

firewall-cmd --get-zones --get-zones ##查看所有区域

firewall-cmd --get-default-zone --get-default-zone ##查看当前的默认区域

firewall-cmd --get-icmptypes --get-icmptypes ##查看支持的所有ICMP类型

firewall-cmd --get-active-zones --get-active-zones ##查看当前正在使用的区域

firewall-cmd --get-services --get-services ##查看当前区域支持的服务

firewall-cmd --list-services -list-services ##查看当前区域开放的服务列表

firewall-cmd --list-all --list-all ##查看此区域内的所有配置,类似于iptables -nvL

firewall-cmd --set-default-zone=work --set-default-zone=work ##更改默认的区域

firewall-cmd --zone=public --add-interface=ens37 --add-interface=ens37 ##将ens37接口添加到指定的区域中

firewall-cmd --zone=work --add-port=443/tcp --permanent --add-port=12222/tcp --permanent ##添加端口到区域开放列表中 /tcp也可以为其他相同层次的协议

firewall-cmd --zone=work --add-port=10000-20000/tcp --permanent --add-port=5000-10000/tcp --permanent ##将端口范围添加到开放列表中;

firewall-cmd --add-service=ftp --permanent --add-service=ftp --permanent ##添加服务到区域开放列表中

firewall-cmd --add-source=10.1.1.169 --add-source=192.168.1.1 ##添加源地址到指定区域

firewall-cmd --remove-source=10.1.1.169 --remove-source=192.168.1.1 ##删除指定区域的源地址

firewall-cmd --zone=home --change-interface=ens33 --change-interface=eth1 ##改变指定的接口到其他区域

firewall-cmd --zone=home --list-service --remove-service=dhcpv6-client ##将home区域内的dhcpv6-client服务删除。

firewall-cmd --add-masquerade --add-masquerade ##开启SNAT(源地址转换) --query-masquerade ##查询SNAT的状态

firewall-cmd --zone=home --remove-interface=ens33 --remove-interface=eth0 ##删除指定区域的网络接口。 -query-interface=eth0 ##确定该网卡接口是否存在于指定区域

firewall-cmd --add-forward-port=port=22222:proto=tcp:toport=22:toaddr=10.1.1.25 --add-forward-port=port=端口号:proto=tcp:toport=端口号:toaddr=ip ##端口转发

修改配置文件增加Firewalld规则

zone的配置文件模板存放在/usr/lib/firewalld/zones/目录下

Linux任务计划:crontab

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似。当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程。crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务

-e:编辑用户的任务计划;

-l:列出用户的任务计划;

-r:删除用户的任务计划;

-u<用户名称>:指定要设定任务计划的用户名。不使用-u选项默认为当前用户。

查看配置文件/etc/crontab


* * * * * user-name command to be executed 分 时 日 月 周 执行任务的用户名 需要执行的命令或者脚本的绝对路径

##在使用crontab -e 命令添加计划任务的时候必须使用这个格式来设置。分的范围:0-59时的范围:0-23日的范围:1-31月的范围:1-12,周的范围:0-7,0和7都可以表示周日。可用格式1-5表示一个范围1到5可用格式1,2,3表示1或者2或者3可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时

Linux系统自启动服务管理:chkconfig

常用选项:

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;

--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;

--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。等级代号列表:

等级0表示:表示关机

等级1表示:单用户模式

等级2表示:无网络连接的多用户命令行模式

等级3表示:有网络连接的多用户命令行模式

等级4表示:不可用

等级5表示:带图形界面的多用户模式

等级6表示:重新启动CentOS7中的2、3、4的启动等级都是相同的

Linux系统服务管理-Systemd

传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)来处理,而基于init的启动系统被认为有效率不足的问题,systemd是Linux系统机器的另一种启动方式,宣称弥补了以传统Linux SysV init为基础的系统的缺点;Systemd是用来启动守护进程,已成为大多数发行版的标准配置,学完systemd命令后,你会发现systemd很强大。

常用命令:

systemctl list-units --all --type=service 查看systemd所管理的全部服务

systemctl disable crond //不让开机启动

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

systemctl enable crond.service //让服务开机启动

systemctl status crond //查看状态

systemctl stop crond //停止服务

systemctl start crond //启动服务

systemctl restart crond //重启服务

Unit:

Systemd可以管理所有系统资源,不同的资源统称为 Unit(单位),系统所有unit存放在/usr/lib/systemd/system目录下

类型:service 系统服务 target 多个unit组成的组 device 硬件设备 mount 文件系统挂载点 automount 自动挂载点 path 文件或路径 scope 不是由systemd启动的外部进程 slice 进程组 snapshot systemd快照 socket 进程间通信套接字 swap swap文件 timer 定时器

相关的命令:

###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

Target:

启动计算机的时候,需要启动大量的Unit。如果每一次启动,都要一一写明本次启动需要哪些Unit,显然非常不方便。Systemd的解决方案就是Target。简单说,Target就是一个Unit组,包含许多相关的Unit。启动某个Target的时候,Systemd就会启动里面所有的Unit。从这个意义上说,Target这个概念类似于“状态点”,启动某个Target就好比启动到某种状态。传统的init启动模式里面,有RunLevel的概念,跟Target的作用很类似。不同的是,RunLevel是互斥的,不可能多个RunLevel同时启动,但是多个Target可以同时启动。

systemctl list-unit-files --type=target //查看系统所有的target

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

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

systemctl set-default runlevel1.target //设置系统默认的target

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

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

扩展:

提供一个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





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

猜你喜欢

转载自blog.csdn.net/swtirene/article/details/80702039
今日推荐