centos7基础文档二
一.centos7的服务控制
1. 服务脚本文件
systemctl对于Linux来说,就是一个init程序,可以作为sysVinit和Upstat的替代。
centos7的服务脚本存放在:/usr/lib/systemd/,有系统(system)命令和用户(users)命令之分,像需要开机不登录的就能运行的服务存在系统的服务里,即:/usr/lib/systemd/system目录下,每一个服务以.server结尾。一般会分为三个部分:[unit][service][install]
[unit]:部分主要是对这个服务的说明,内容包括描述和after,其中after由于描述服务类型
[service]:部分是服务的主要部分,是服务的一些具体运行的参数的设置,这里type-forKing是后台运行的形式,pidfiel为存放PID的文件路径,execstart为服务的具体运行命令,
[install]:部分是服务安装的相关设置,可设置为对用户的。
2 .systemctl命令的使用
systemctl命令作为service和chkconfig命令的结合。
systemctl命令的基本操作格式:
systemctl 动作 .service(服务名称)
3.分析系统的状态
systemctl 或systemctl list-units //输出激活的单元
systemctl list-units --type=service //列出active状态的服务
systemctl list-unit-files //列出所有已安装的服务
systemctl --failed //显示启动失败的服务
所有的可用的单元文件存放在/usr/lib/systemd/system 和/etc/systemd/syetem/目录(或者的优先级高)
使用单元:
一个单元可以是:(.service)(.mount )(.sockets)
systemctl start //立即启动单元
systemctl stop //停止单元
systemctl restart //重启单元
systemctl reload //重新加载单元配置
systemctl status // 输出单元运行状态
systemctl is-enabled //检查单元是否设置为自动启动
systemctl enable //开机自动启动单元
systemctl disable //取消开机自动启动单元
systemctl is-active //查看单元是不是正在运行
systemctl daemon-reload //重新载入systemd 扫描新的或有变动的单元。
电源管理:
systemctl reboot // 重启
systemctl poweroff //关机
可以通过type来过滤掉其他的类型的单元
systemctl list-unit-files -type service
二.centos7的防火墙
1.centos7的防火墙的差异
centos7已经默认使用firewalld作为防火墙了,其实用的方法已经变化,基于iptables的防火墙被默认不启动,但任然可以继续使用。
centos7中有firewalld ,IPtables ,ebtables 等防火墙共存,默认使用firewalld作为防火墙,管理工具是firewalld-config和firewalld-cmd来管理。
2.firewalld防火墙的基本命令的使用
1)systemctl status {firewalld,iptables,ebtables} //查看各类防火墙的运行状态
2)禁用防火墙iptables,:systemctl mask iptables 或
for service in iptables ebtables;do
systemctl mask $(service).service
done //利用for循环语句来禁用
3)取消禁用防火墙iptables:systemctl unmask iptables
4)查看几种服务是否正在运行
systemctl status 服务名 或 systemctl is-active 服务名
3.firewalld防火墙的区域(zone)
firewalld 提供了支持网络/防火墙区域定义网络链接以及接口安全等级的防火墙管理工具,拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口,以前的iptables使静态的,每次修改完之后需要重新加载,相反,firewalld的防火墙不需要重启整个防火墙便可。
firewalld区域的概念:
数据包通过到内核必须要通过这些zone中的一个,而不同的zone里定义的规则不一样,可以根据网卡所连接的网络的安全性来判断,这张网卡的流量到底是使用哪个zone,比如eth0的流量全部使用zone1的过滤规则,Eth1使用的流量为zone2
预定义的服务:就是端口和协议号入口的集合
端口和协议:定义了tcp和udp端口,端口可以是一个或者端口范围
ICMP阻塞:可以选择internet控制报文协议的报文,这些报文可以是信息请求也可以是对信息请求或错误条件创建的响应。
伪装:私有网络地址可以被映射到公网的ip地址,这是一次正规的地址转换。
端口转发:端口可以映射到另一个端口以及其他主机
4.firewalld的区域详解
1)丢弃区域(drop zone)如果使用丢弃区域,任何进入该区域的数据包将被丢弃,这里类似于我们之前学过的iptables -j DROP 使用丢弃区域将不再有任何的响应
2)阻塞区域(block zone)阻塞区域会拒绝进入的网络连接,返回icmp-host-prohibited ,只有服务器已经建立连接会被通过即只允许该系统初始化的网络连接。
3)外部区域(external zone)这个区域相当于路由的启用伪装选项,只有指定的连接会被接受,即ssh 其他的连接将被丢弃或者不被接受。
4)公共区域(public zone) 只接受那些被选中的连接,默认只允许ssh和dhcp6-client.这个zone是缺省区域。
5)隔离区域(DMZ zone) 如果想要只允许给部分的服务能够被外部访问,可以在此区域中定义,它也拥有只通过被选中的连接的特性,即ssh。
6)工作区域(work zone) 在这个区域,我们只能定义内部网络,比如私有网络通信才能被允许。
7)家庭区域(home zone) 这个区域专门用于家庭网络,它同样只允许被选中的连接才能通过和home区域一样。
8)内部区域(internal zone) 这个区域和工作区域类似,只有通过被选中的连接才能通过。
9)信任区域(trust zone) 信任区域允许所有的网络通过,因为trusted是最被信任的,即使没有任何服务,那么也是被允许的,因为trusted是允许所有连接的。
5.firewalld的控制规则
1.如果一个客户端数据包的源ip地址匹配zone的source,那么该数据包就被这个zone处理,一个源只能够属于一个zon。
2.如果一个客户端数据包进入服务器的某一个接口匹配zone的interface,那么该zone的规则对这个数据包进行处理。一个接口只能属于一个zone,不能同时属于多个zone。
3.如果上述的都不匹配,那么就缺省的zone被应用,即public。
6.firewalld的命令的一般应用
firewall-cmd --state //获取firewalld的状态
firewall-cmd --reload //在不改变状态的情况下重新加载防火墙
firewall-cmd --get-zone //获取支持的区域列表
firewall-cmd --get-services //获取所有支持的服务
想要列出默认的有效服务,也可以进入下面的目录也可以获取
cd /usr/lib/firewalld/services/*.xml
想要自己定义某个服务,就可以修改这里的配置文件就可以了
firewall-cmd --get-icmptypes //获取所有支持的icmp类型
firewall-cmd --list-all-zones //列出全部启用的区域的特性
firewall-cmd --zone=public --list-all //列出制定区域的全部特性
firewall-cmd --get-default-zone //查看默认的区域
在文件/etc/firewalld/firewalld.conf可以定义成defaultzone=public
firewall-cmd --set-default-zone=区域名称 //设置默认区域
firewall-cmd --get-active-zones //获取活动的区域
firewall-cmd --get-zone-of-interface=网卡名称 //查看某个接口属于哪个zone
firewall-cmd --add-interface =网卡名称 --zone=区域名称 //将指定接口加入到某个区域
firewall-cmd --change-interface=网卡名称 --zone=区域名称 //将某个接口转移到另一个zone
firewall-cmd --remove-interface=网卡名称 --zone=区域名称 //将某个接口从指定的区域删除
firewall-cmd --query-interface=网卡名称 --zone=区域名称 //查看某个区域是否包含所查询的接口
firewall-cmd --list-services --zone=区域名称 // 列出区域中的所启用的服务
firewall-cmd --panic-on //启用应急模式阻断所有的连接,以防出现紧急状况
firewall-cmd --panic-off //禁用紧急模式
firewall-cmd --query-panic //查询紧急模式