ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

时间同步服务和SElinux安全管理

2022-03-27 10:34:31  阅读:216  来源: 互联网

标签:同步 chronyd 安全 SElinux etc chrony usr SELinux NTP


一、时间同步服务

1.时间同步服务

多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协 议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。 目前NTP协议属于运维基础架构中必备的基本服务之一

2.时间同步软件实现:

  • ntp
  • chrony

1)ntp:

将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以 达到1-50ms

项目官网:http://www.ntp.org

2)chrony:

实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表 和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机 提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算 机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。 通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬 件时间戳或硬件参考时钟,可实现亚微秒的精度

 

二、chrony

1.chrony介绍

chrony 的优势:

更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天
24 小时运行的虚拟计算机而言非常有用
能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节
能技术而言非常有用
在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

chrony官网:https://chrony.tuxfamily.org

chrony官方文档:https://chrony.tuxfamily.org/documentation.html

2.chrony 文件组成

1)包:chrony

2)两个主要程序:chronyd和chronyc

chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算
机增减时间的比率,并对此进行补偿
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计
算机上工作,也可在一台不同的远程计算机上工作

3)服务unit 文件: /usr/lib/systemd/system/chronyd.service

4)监听端口: 服务端: 123/udp,客户端: 323/udp

5)配置文件: /etc/chrony.conf

6)chronyc 可以运行在交互式和非交互式两种方式,支持以下子命令

help 命令可以查看更多chronyc的交互命令
accheck 检查是否对特定主机可访问当前服务器
activity 显示有多少NTP源在线/离线
sources [-v]   显示当前时间源的同步信息
sourcestats [-v]显示当前时间源的同步统计信息
add server 手动添加一台新的NTP服务器
clients 报告已访问本服务器的客户端列表
delete 手动移除NTP服务器或对等服务器
settime 手动设置守护进程时间
tracking 显示系统时间信息

 

三、公共NTP服务

pool.ntp.org:项目是一个提供可靠易用的NTP服务的虚拟集群cn.pool.ntp.org,0-3.cn.pool.ntp.org

阿里云公共NTP服务器 Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com windows类: time.pool.aliyun.com

腾讯公共NTP time1-5.cloud.tencent.com

 

大学ntp服务 s1a.time.edu.cn 北京邮电大学 s1b.time.edu.cn 清华大学 s1c.time.edu.cn 北京大学

国家授时中心服务器:210.72.145.44

美国标准技术院: time.nist.gov

 

四、实战案例:实现私有的时间服务器

1.服务端配置

安装chrony包

[root@centos7 ~]# yum -y install chrony

查看其所有包

[root@centos7 ~]# rpm -ql chrony
/etc/NetworkManager/dispatcher.d/20-chrony
/etc/chrony.conf
/etc/chrony.keys
/etc/dhcp/dhclient.d/chrony.sh
/etc/logrotate.d/chrony
/etc/sysconfig/chronyd
/usr/bin/chronyc
/usr/lib/systemd/ntp-units.d/50-chronyd.list
/usr/lib/systemd/system/chrony-dnssrv@.service
/usr/lib/systemd/system/chrony-dnssrv@.timer
/usr/lib/systemd/system/chrony-wait.service
/usr/lib/systemd/system/chronyd.service
/usr/libexec/chrony-helper
/usr/sbin/chronyd
/usr/share/doc/chrony-3.4
/usr/share/doc/chrony-3.4/COPYING
/usr/share/doc/chrony-3.4/FAQ
/usr/share/doc/chrony-3.4/NEWS
/usr/share/doc/chrony-3.4/README
/usr/share/man/man1/chronyc.1.gz
/usr/share/man/man5/chrony.conf.5.gz
/usr/share/man/man8/chronyd.8.gz
/var/lib/chrony
/var/lib/chrony/drift
/var/lib/chrony/rtc
/var/log/chrony

修改其配置文件/etc/chrony.conf

[root@centos7 ~]# vim /etc/chrony.conf 

 

 

 

重启chrony服务

[root@centos7 ~]# systemctl restart chronyd

 

查看其端口123/udp

[root@centos7 ~]# ss -ntul

 

 2.客户端配置

安装chrony包

[root@centos8 ~]# yum -y install chrony

修改配置文件/etc/chronyconf

 

 重启chronyd服务

[root@centos8 ~]# systemctl restart chronyd
[root@centos8 ~]# systemctl status chronyd

 

 确认同步成功

[root@centos8 ~]# chronyc sources -v
[root@centos8 ~]# date

 

 

五、SELinux 介绍和工作原理

1.SELinux 介绍

SELinux:Security-Enhanced Linux, 是美国国家安全局(NSA=The National Security Agency)和 SCC(Secure Computing Corporation) 开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中

2.SELinux 相关概念

对象(object):所有可以读取的对象,包括文件、目录和进程,端口等
主体:进程称为主体(subject)
SELinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain的
标签。domain标签能够执行的操作由安全策略里定义
当一个subject试图访问一个object,Kernel中的策略执行服务器将检查AVC (访问矢量缓存Access
Vector Cache), 在AVC中,subject和object的权限被缓存(cached),查找“应用+文件”的安全环境。然后
根据查询结果允许或拒绝访问
安全策略:定义主体读取对象的规则数据库,规则中记录了哪个类型的主体使用哪个方法读取哪一个对
象是允许还是拒绝的,并且定义了哪种行为是充许或拒绝

 

3.SELinux有四种工作类型

  • Strict:CentOS 5,每个进程都受到selinux的控制
  • targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程, CentOS 4只保护13个服务,CentOS 5保护88个服务
  • minimum:CentOS 7,修改的 targeted,只对选择的网络服务
  • mls:提供MLS(多级安全)机制的安全性

targeted为默认类型,minimum和mls稳定性不足,未加以应用,strict已不再使用

4.SELinux安全上下文

传统Linux,一切皆文件,由用户,组,权限控制访问,在SELinux中,一切皆对象(object),由存放 在inode的扩展属性域的安全元素所控制其访问,所有文件和端口资源和进程都具备安全标签:安全上 下文(security context)

安全上下文有五个元素组成:

user:role:type:sensitivity:category

五个安全元素

User:指示登录系统的用户类型,进程:如system_u为系统服务进程,是受到管制的,
unconfined_u为不管制的进程,用户自己开启的,如 bash,文件:system_u系统进程创建的文
件, unconfined_u为用户自已创建的文件
Role:定义文件,进程和用户的用途:进程:system_r为系统服务进程,受到管制。
unconfined_r 为不管制进程,通常都是用户自己开启的,如 bash,文件:object_r
Type:指定数据类型,规则中定义何种进程类型访问何种文件Target策略基于type实现,多服务共
用:public_content_t
Sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,secret, 一
个对象有且只有一个sensitivity,分0-15级,s0最低,Target策略默认使用s0
Category:对于特定组织划分不分层的分类,如FBI Secret,NSA secret, 一个对象可以有多个
categroy, c0-c1023共1024个分类, Target 策略不使用category

5.启用和禁用SELinux

1)SELinux的状态:

enforcing:强制,每个受限的进程都必然受限
permissive:允许,每个受限的进程违规操作不会被禁止,但会被记录于审计日志
disabled:禁用

2)相关命令:

getenforce: 获取selinux当前状态
sestatus :查看selinux状态
setenforce 0|1 0: 设置为permissive 1: 设置为enforcing

3)配置文件:

/boot/grub/grub.conf 在kernel行使用selinux=0禁用SELinux
/boot/grub2/grub.cfg 在linux16行使用selinux=0禁用SELinux
/etc/selinux/config 或 /etc/sysconfig/selinux 中 SELINUX={disabled|enforcing|permissive}

 

记录于2022-3-27-10:20

标签:同步,chronyd,安全,SElinux,etc,chrony,usr,SELinux,NTP
来源: https://www.cnblogs.com/weilanxuesre/p/16062040.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有