任务列表:
10.19 iptables规则备份和恢复
10.20 firewalld的9个zone
10.21 firewalld关于zone的操作
10.22 firewalld关于service的操作
10.23 linux任务计划cron
10.24 chkconfig工具
10.25 systemd管理服务
10.26 unit介绍
10.27 target介绍
10.19 iptables规则备份和恢复
10.19.1 iptables规则保存
iptables-save > /tmp/ipt.txt
- 保存的名称可以自定义
- 如果不定向到文件直接save会保存到
/etc/sysconfig/iptables
10.19.2 iptables规则的恢复
iptables-restore < /tmp/ipt.txt
/etc/sysconfig/iptables
里存放的是默认规则- 开机就会加载默认规则,如果是常用的规则直接save就好
10.20 firewalld的9个zone
10.20.1 关闭netfilter(iptables)服务,开启firewalld服务
[root@xy-01 ~]# systemctl disable iptables #禁止iptables开机启动
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@xy-01 ~]# systemctl stop iptables #停止netfilter服务
[root@xy-01 ~]# systemctl enable firewalld #添加firewalld服务开机启动
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@xy-01 ~]# systemctl start firewalld #启动firewalld开机启动
- 这个操作主要是为了防止两个相似的服务冲突。
10.20.2 firewalld的zone
- zone是firewalld的规则集,一共有九个。
- 默认的zone是public
- 九个zone分别是:
[root@xy-01 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
- 如何查看默认zone
[root@xy-01 ~]# firewall-cmd --get-default-zone
public
10.20.3 firewalld的九个zone
- drop (丢弃)
任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。 - block(限制)
任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息拒绝。 - public(公共)
在公共区域内使用,不能相信网络内的其他计算机不会对你的计算机造成危害,只能接收经过选取的连接。 - external (外部)
特别是为路由器启用了伪装功能的外部网。你不能信任来自网络的其他计算,不能相信它们不会对你的计算机造成危害,只能接收经过选择的连接。 - dmz(非军事区)
用于你的非军事区内的电脑,此区域可以公开访问,可以有限地进入你的内部网络,仅仅接收经过选择的连接。 - work(公作区)
用于工作区。你可以基本相信网络内的其他电脑不会危害你的电脑。仅仅接收经过选择的连接。 - home(家庭)
用于家庭网络。你可以基本信任网络内的其他计算机不会危害你的计算机。仅仅接收经过选择的连接。 - internal(内部)
用于内部网络。你可以基本上信任网络内的其他计算机不会威胁你的计算机。仅仅接受经过选择的连接。 - trusted(信任)
可接受所有的网络连接
10.21 firewalld关于zone的操作
- 修改默认zone:比如改成work
firewall-cmd --set-default-zone=work
- 查看指定网卡的zone:比如ens33
firewall-cmd --get-zone-of-interface=ens33
- lo的zone是no zone
- 如果普通网卡的zone是no zone
1.保证/etc/sysconfig/network-scripts/下配置文件正常
2.重启firewalld服务
systemctl restart firewalld
- 为指定的网卡设置zone:比如ens37的zone为mdz
firewall-cmd --zone=dmz --add-interface=ens37
- 为指定的网卡更改zone:比如把zone的dmz更改为public
firewall-cmd --zone=public --change-interface=ens37
- 为指定的网卡删除zone:比如删除ens37的public
firewall-cmd --zone=public --remove-interface=ens37
删除zone后会回到默认zone - 查看所有网卡所在的zone
firewall-cmd --get-active-zones
10.22 firewalld关于service的操作
所谓service就是针对某个服务的iptables规则
- 查看所有的service
firewall-cmd --get-service
- 查看当前(默认)的service
firewall-cmd --list-services
- 查看指定zone的service
firewall-cmd --zone=public --list-service
- 为指定的zone添加service
firewall-cmd --zone=public --add-service=ftp
但是这样修改只是临时添加 - 永久保存为zone添加的service
firewall-cmd --zone=public --add-service=ftp --permanent
- zone的配置文件被保存在
/etc/firewalld/zones/
下
不加–permanent选项的配置文件不会写入这个文件内。 - zone的模版被保存在:
/usr/lib/firewalld/zones/
- service的模版被保存在:
/usr/lib/firewalld/services/
解决一个需求:修改ftp的服务端口为1121,并在work zone下放行ftp服务
cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services #复制模版文件到配置目录
vi /etc/firewalld/services/ftip.xml #把复制来的配置文件中的21改为1121
cp /usr/lib/firewalld/zones/work.xml /etc/firewall/zones/ #把work模版复制到配置目录下
vi /etc/firewalld/zones/work.xml #增加一行 <service name="ftp"/>(注意要加在</zone>之前)
firewall-cmd --reload 重新加载
firewall-cmd --zone=work --list-service
10.23 linux任务计划cron
- 时间口决:分时日月周
- 进入任务计划编辑状态
crontab -e
输入指令后,会进入像vim一样的编辑界面。 - 日月周可以是一个范围用:1-10表示一号到十号。
- 也可以用1,3,4表示一号三号四号。
- 也可以使用*/2表示能被二整除的天数。
- 要想让任伤计划正常使用,要启动crond服务。
systemctl start crond
- 可以使用
systemctl status crond
查看计划任务的状态。
如果有绿色的“active(running)”字样,表示启动
如果显示“inactive(dead)”字样,表示没有启动 - 任务计划的脚本一定要使用绝对路径,来保证命令能够执行。
- 任务计划一定要追加日志,保证有据可查。
- 显示任务计划的内容
crontab -l
cat /var/spool/sron/root
显示用户的计划(这里显示的是root的计划)- 删除计划
crontab -r
- 操作默认当前用户,可以使用参数 -u 来指定用户。
10.24 chkconfig工具
chkconfig 是一种对服务管理的工具
- chkconfig是centos6和之前版本使用的服务管理工具。
- 在centos7环境下chkconfig所在的SysV服务,会被systemd服务所覆盖。
- chkconfig --list 列出SysV所管理的服务。
- chkconfig network off/on 在2345级别下的开关。
- 0级别关机 1级别单用户模式 2级别比3级别少nfs功能的多用户模式
3级别多用户模式 4级别保留级别 5级别带图形的多用户模式 6级别重启 chkconfig --level 3 network off/on
针对级别的开关,可以同时控制多个级别,比如235/etc/init.d/
目录下存放的是服务的启动脚本。chkconfig其实就是在管理这个启动脚本。chkconfig --add 脚本名称
把/etc/init.d/下的脚本加入到服务管理中。chkconfig --del 脚本名称
把正在管理的服务移出列表。
10.25 systemd管理服务
10.25.1 列出服务
systemclt list-unit-files
- 列出所有的服务
systemclt list-unit --all --tpye=service
- 列出所有的service服务
- 去掉–all选项就不会列出inactive状态的服务
10.25.2 服务的开机启动控制
systemclt enable 服务名
- 开机启动
systemclt disable 服务名
- 禁止开机启动
systemclt is-enabled 服务名
- 检查服务是否开机启动。
10.25.3 服务的运行控制
systemclt stop 服务名
- 停止服务
systemclt start 服务名
- 启动服务
systemclt restart 服务名
- 重启服务
10.26 unit介绍
所谓“unit”就是指systemd所能够控制的单元
10.26.1 unit的类型
- 列出所有unit
ls /usr/lib/systemd/system/
- service 系统服务
- target 多个unit组成的组
- device 硬件设备
- mount 文件系统挂载点
- automnunt 自动挂载点
- path 文件或路径
- scope 不是由systemd启动的外部进程
- slice 进程组
- snapshot systemd 快照
- socket 进程间通信套接字
- swap swap文件
- timer 定时器
10.26.2 unit相关的命令
- 列出正在运行的unit
systemctl list-units
- 列出所有,包括失败或者inactive的unit
systemctl list-units --all
- 列出inactive的unit
systemctl list-units --all --state=inactive
- 列出状态为active的unit
systemctl list-units --type=service
不加–all默认列出状态为active的units - 查看某个服务是否为active
systemctl is-active crond
is的作用不仅仅可以查看active,也可以查看inactive,enable等等。
10.27 target介绍
target就是用来管理unit的组
10.27.1 查看target
- 查看所有target
systemctl list-unit-files --type=target
- 查看target下有哪些unit
systemctl list-dependencies multi-user.target
10.27.2 系统的默认target
- 查看系统的默认target
systemctl get-default
- 更改系统的默认target
systemctl set-dufault multi-user.target
10.27.3 查询一个unit属于哪个target
总结
- 系统通过unit来管理程序
- service是unit的一种类型
- 多个unit组成一组称为target,系统通过管理target来管理这一组units。
直播笔记
firewalld开放80端口
firewall-cmd --add-port=80/tcp
firewall-cmd --permanent --add-port=80/tcp; firewall-cmd --reload
firewall-cmd --permanent --add-service=http; firewall-cmd --reload
要通过service来控制的服务必须是可以通过systemctl可以控制的服务。
firewall自定义规则
https://blog.51cto.com/jevic/1785162
这种方法可以通过类似netfilter的规则来管理firewalld。(当然是类似并不是完全相等,适合用于对netfilter更熟悉的用户)