加密和安全

安全机制

墨菲定律

一种心里学效应,是由爱德华墨菲(Edward A.murphy)提出的,原话:如果有两种或两种以上的方式去做某件事,而其中一种选择方式将导致灾难,则必定有人会做出这种选择

主要内容:

  1.任何事都没有表面看起来那么简单

  2.所有的事都会比你预计的时间长

  3.会出错的事总会出错

  4.如果担心某种情况发生,那么它就更有可能发生

  信息安全防护的目标

    保密性  confidentiality

    完整性  integrity

    可用性  usability

    可控制性 controlability

    不可否认性  Non-repudiation

   安全防护环节

     物理安全:各种设备/主机,机房环境

     系统安全:主机或设备的操作系统

     应用安全:各种网络服务,应用程序

     网络安全:对网络访问的控制,防火墙规则

     数据安全:信息的备份与恢复,加密解密

     管理安全:各种保障性的规范,流程,方法

   常见的安全攻击STRIDE

     spoofing 假冒

     Tampering 篡改

     repudiation  否认

     information disclosure 信息泄露

     denial of service 拒绝服务

     elevation of privilege 提升权限

   安全设计基本原则

     使用成熟的安全系统

     以小人之心度输入数据

     外部系统是不安全的

     最小授权

     减小外部接口

     缺省使用安全模式

     安全不是似是而非

     从STRIDE思考

     在入口检查

     从管理上保护好你的系统

    常用安全技术

      认证

      授权

      审计

      安全通信

    加密算法和协议

     对称加密

     非对称加密 (公钥)

     单向加密

     认证协议

   对称加密算法

     对称加密:加密和解密使用同一个密钥

     特性:加密,解密使用同一个密钥,效率高

        将原始数据分割成固定大小的块,逐个进行加密

     缺陷:密钥过多,密钥分发,数据来源无法确认

   常见对称加密算法:

      DES:data Encryption standard,56bits

      3DES:

      AES:Advanced(128,192,256bits)

      Blowfih,thofish

      IDEA,RC6,CAST5

   非对称加密算法

     非对称加密:密钥是成对出现

     公钥:public key,公开给所有人,主要是别人加密使用

     私钥:secret key,private key自己留存,必须保证其私密性,用于自己加密签名

     特点:用公钥加密数据,只能使用与之配对的私钥解密,反之亦然

     功能:数据加密,适合加密小数据,比如:加密对称密钥

        数字签名:主要在于让接收方确认发送方身份

     缺点:

        密钥长,算法复杂

        加密解密效率低下

     常见算法:

       RSA:由RSA公司发钥,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,可实现加密和数字签名

       DSA:数字签名算法,是一个标准的DSS(数字签名标准)

       ECC:椭圆曲线密码编码学,比RSA加密算法使用更小的密钥,提供相当的或更高的等级安全

    非堆成加密实现加密

      接收者:生成公钥/密钥对:P和S

          公开公钥P,保密密钥S

      发送者:使用接收者的公钥来加密消息M

          将P(M)发送给接受者

      接收者:使用密钥S来解密:M=S(P(M))

   非对称加密实现数字签名

    发送者:

      生成公钥/密钥对:P和S

      公开公钥P,保密密钥S

      使用密钥S来加密消息M

      发送给接受者S(M)

    接受者:

      使用发送者的公钥来解密M=P(S(M))

   单向哈希算法

     哈希算法:也成为散列算法,将任意数据缩小成固定大小的”指纹“,成为digest,即”摘要“

      特性:任意长度输入,固定长度输出

         若修改数据,指纹也会改变,且有雪崩效应,数据的一点微小改变,生成的指纹变化非常大

         无法从指纹中重新生成数据,即不要逆,具有单向性

      功能:数据完整性

      常见算法:

       md5:128bits,sha1:160bits,sha224,sha256,sha384,sha512

      常见工具:

        md5sum   |    sha1sum  【-check】 file

        openssl,gpg

        rpm  -V

      数字签名:

        RPM   文件完整性

        rpm  -verify package_name   (or   -V)

        rpm  -import  /etc/pki/rpm-gpg/RPM-GPG-KEY-rdhat*

        rpm  -checksig  package_file_name(or   -K)

    综合应用多种加密算法

      实现数据加密

        实现数据加密,无法验证数据完整性和来源

      实现数字签名

        不加密数据,可以保证数据来源的可靠性,数据的完整性和一致性

    总和加密和签名

      即实现数据加密,又可以保证数据来源的可靠性,数据的完整性和一致性

   密码交换

      密钥交换:IKE(internet key exchange)

      公钥加密:用目标的公钥加密对称密钥

      DH(deffie-Hellman):生成对称(会话)密钥

      DH介绍:

        这个密钥交换方法,由惠特菲尔德·迪菲和马丁·赫尔曼在1976年发表

        它是一种安全协议,让双方完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥一般作为”对称加密“的密钥而被对方后续数据传输中使用

        DH数学原理是base离散对数问题,做类似事情的还有非堆成加密算法,如:RSA

       其应用非常广泛,在SSH,VPN,HTTPS都有应用,堪称现代密码基石      

    DH实现过程

     A:g.p  协商生成公开的整数g,大素数p

     B:g.p

     A:生成隐私数据:a(a<p),计算得出 g^a%p,发送给B

     B:生成隐私数据:b(b<p),计算得出  g^b%p,发送给A

     A:计算得出[(g^b%p)^a]%p=g^ab%p,生成为密钥

     B:计算得出[g^a%p)^b]%p=g^ab%p,生成密钥

  DH特点

     泄密风险,秘密数据a,b生成K后将被丢弃,因此不存在a,b过长时间存在导致增加泄密风险,

       中间人攻击:由于DH在传输P,g时并无身份验证,所以由机会被实施中间人攻击,替换双方传输时的数据

    CA和证书      

    中间人攻击

      man-in-the-middle,简称为MITM,中间人

   CA和证书

      PKI:public key  infrastructure 公共密钥加密体系

      签证机构:CA(certificate   Authority)

      注册机构:RA

      证书吊销列表:CRL

      证书存取库

      X.509:定义了证书的结构以及认证协议标准

      版本号,序列号,签名算法,颁发者,有效日期,主体名称

      证书类型:证书授权机构的证书

           服务器证书

           用户证书

      获取证书的两种方法:

          自签名证书:自己签发自己的公钥

          使用证书授权机构:

             生成证书请求

             将证书请求CSR发送给CA

             CA签名颁发证书

    安全协议SSL/TLS

     TLS介绍

       SSL:secure socket layer

       TLS:transport layer security

      1994年,netscape公司设计了SSL协议的1.0版本,但是未公布

       2008:TLS1.2当前主要使用

       2018:TLS1.3

        功能:机密性,认证,完整性,重放保护

      SSL/TSL组成

        handshake协议:包括协商安全参数和密码套件,服务器身份认证(客户端身份认证可选),密钥交换

        changeCiphespec协议:一条信息表明握手协议已经完成

        Alert协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型错误会直接终端ssl链接,而warning级别的错误ssl链接仍可继续,只会给出错误警告

        Record协议:包括对消息的分段,压缩,消息认证和完整性保护,加密等

    HTTPS

      https协议:就是http协议和ssl/tsl协议的组合,http over ssl  或http  over  tls

      对http协议的文本数据进行加密处理后,成为二进制新式传输

    HTTPS工作的简化过程

      1.客户端发起HTTPS请求

       用户在浏览器里输入一个https网址,然后连接到服务的443端口

      2.服务端的配置

        采用https协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥

      3.传送服务器的证书给客户端

       证书里其实就是公钥,并且包含了很多信息,如证书的颁发机构,过期时间等等

      4.客户端解析验证服务器的证书

        这部分工作是由客户端的tls来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题,如果证书没有问题,那么就生成一个随机值,然后用证书中公钥对该随机值进行非对称加密

      5.客户端将加密信息传送服务器

        这部分传送的是用证书加密后的随机值,目的就是让服务器端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密了

      6.服务端解密信息

       服务端将客户端发送过来的加密信息用服务器私钥解密后,得到了客户端传过来的随机值

      7.服务器加密信息并发送信息

      服务器将数据利用随机值进行对称加密,再发送给客户端

      8.客户端接受并解密信息

       客户端用之前生成的随机值解密服务段传过来的数据,于是获取了解密后的内容       

   OPENSSL

      官网:https://www.openssl.org/

     Openssl计划再1998年开始,其目标是发明一套自由的加密工具,再互联网使用,openssl管理委员会当前由7人组成由13个开发人员具有提交权限,只有两名全职员工,其余都是志愿者

    Openssl是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认一端连线着的身份,这个包广泛被应用在互联网的网页服务器上

    其主要库是C语言所写,实现了基本的加密功能,实现了SSL与TSL协议,Openssl可以运行在Openvms,microsoft windows以及绝大多数类unix操作系统上,包括(solaris,linux,mac OS x  与各种版本的开放源代码BSD操作系统)
    libcrypto:用于实现加密和解密的库

    libssl:用于实现ssl'通信协议的安全库

    openssl:多用途命令行工具

   base64编码

     base64编码是网络上最常见的用于传输8Bit字节码的编码方式之一,base64就是一种基于64个可打印字符来表示二进制数据的方法

   base64的编码过程如下:

    将每3个字节放入一个24位的缓冲区,最后不足3个字节的,缓冲区的剩余部分用0来填补,然后每次取出6位(2的6次方为64,使用64个字符即可表示所有),将高2为用0来填补,组成一个新的字节,计算出这个新字节的十进制数,对应上面的编码表,输出相应的字符,这样不断地进行下去,就可完成对所有数据地编码工作

    openssl命令

     两种运行模式:交互模式,批处理模式

     三种子命令:标准命令,消息摘要命令,加密命令

    openssl命令对称加密

      工具:openssl,gpg

      算法:3des,aes,blowfish,twofish

      enc命令:帮助:man enc

        -e      加密

        -d  解码

        -des3  对称加密算法

        -a    使用base64编码标准

        -salt  加盐

        -in  在哪个文件加密

        -out  输出文件

      Openssl命令单向哈希加密

        工具:openssl dgst

        算法:md5sum,sha1sum,sha224sum,sha256sum......

        dgst命令:帮助:man dgst

     补充知识:message authentication code,单向加密地一种延申应用,用于实现网络通信中保证所传数据地完整性机制

   openssl命令生成用户密码

      password命令:帮助:man sslpassword

   openssl命令生成随机数

    随机数生成器:仅随机数字,利用键盘和鼠标,块设备中断生成随机数

      /dev/random  仅从熵池返回随机数,随机数用尽,阻塞

      /dev/urandom  从熵池返回随机数,随机数用尽,会利用软件生成伪随机数,非阻塞

     base64不算加密

     私钥文件都是key后缀,申请证书后缀都是csr后缀

     国家,省,组织

    openssl命令实现PKI

     公钥加密:

        算法:RSA,ELGamal

        工具:gpg,openssl rsautl

     数字签名:

        算法:RSA,DSA,ELGamal

     密钥交换:

        算法:dh

        DSA:

        DSS:

        RSA:

     openssl命令生成密钥对儿:man   genrsa

     genrsa  生成私钥

     rsa   生成公钥

      -text  在文本中打印密钥

      -noout 不打印密钥

    建立私有CA实现证书申请颁发

      建立私有CA:

        openCA:openCA开源组织使用perl对openssl进行二次开发而成的一套完善的PKI免费软件

        openssl:相关包openssl和openssl-libs

      证书申请及签署步骤:

        1.生成证书申请请求

        2.RA核验

        3.CA签署

        4.获取证书

    三种策略:math匹配,optional可选,supplied提供

        math:要求申请填写的信息跟CA设置信息必须一致

        optional:可有可无,跟CA设置信息可不一致

        supplied:必须填写这项申请信息

      req:证书请求和证书申请工具

        -new  生成新证书签署请求

        -x509  专门于CA生成自签名证书

        -key  生成请求时用到的私钥文件

        -days n:证书的有效时间

        -out  证书的存放路径

    1.先创建CA私钥

    2.申请证书

    3.颁发证书

    4.查看证书

    查看证书有效性:openssl   ca   -status   ##

  

  ssh服务

    ssh服务介绍

       ssh:secure shell protocol,22/tcp,安全的远程登录,实现加密通信,代替传统的telnet协议

      具体的软件实现:

        Openssh:ssh协议的开源实现,centos默认安装

        dropbear:另一个ssh协议的开源项目的实现

      SSH协议版本

        v1:基于CRC-32做MAC,不安全,man-in-middle

        v2:双方主机协议选择安全的MAC方式,基于DH算法做密钥交换,基于RSA或DSA实现身份认证

    公钥交换原理:

     客户端发送链接请求

     服务端返回自己的公钥

     客户端生成密钥对

     客户端用自己的公钥或会话ID,计算出一个值Res,并用服务端的公钥加密

     客户端发送加密后的值到服务端,服务端用私钥解密,得到Res

     服务端用解密后的值异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

     最终:双方各自持有三个密钥,分别为自己的一对共,私钥,以及对方的公钥,之后的所有通讯都回被加密

   SSH加密通讯原理

   openssh服务

     openssh是SSH协议的免费开源实现,一般在各种linux版本中回默认安装,基于C/S结构

     openssh

     openssh-clients

     openssh-server

    服务器端程序:/usr/sbin/sshd

    Unit文件:/usr/lib/systemd/system/sshd.server

    客户端ssh命令

    ssh命令是ssh客户端,允许实现对远程系统经验证地加密安全访问

    当用户远程连接ssh服务时,回复制ssh服务器/etc/ssh_host*key.pub文件中地公钥到客户端地~/.ssh/know_hosts中,下次连接时,会自动匹配对应地私钥,不能匹配,讲拒绝连接

    ssh客户端配置文件:/etc/ssh/ssh_config

      ssh命令常用选项:

        -p port 远程服务器监听地端口

        -b 指定连接地源IP

        -v 调试模式

        -C 压缩方式

        -X 支持x11转发

        -t  强制伪tty分配,如:ssh   -t  remoteserver1  ssh  -t  remoteserver2  ssh    remoteserver3

        -o option  如:-o   StrictHostKeychecking=no

        -i  <file>    指定私钥文件路径,是西安基于key验证,默认使用文件:~/.ssh/id_dsa,

    ssh登录验证方式介绍

      ssh服务器登录的常用验证方式

          用户/口令

          基于密钥

      基于用户和口令登录验证

         客户端发起ssh请求,服务器会把自己的公钥发送给用户

         用户会根据服务器发来的公钥对密码进行加密

         加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

     

     基于密钥的登录方式

      1.首先在客户端生成一对密钥(ssh-keygen

      2.并将客户端的公钥ssh-copy-id拷贝到服务端

      3.当客户端再次发送一个连接请求,包括IP,用户名

      4.服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串

      5.服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

      6.得到服务器端发送的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

      7.服务端受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

     其他ssh客户端工具

       scp命令选项:

          -C  压缩数据流

          -r  递归复制

          -p  保持原文件的属性信息

          -q  静默模式

          -P  port 指明remote host的监听的端口

       rsync命令:

        执行这个命令时,两台机器必须都有这个命令

         -n  模拟复制过程

         -v  显示详细过程

         -r  递归复制目录树

         -p  保留权限

         -t   保留修改时间戳

         -g  保留组信息

         -o  保留所有者信息

         -l  将软链接文件本身进行复制

         -L  将软链接文件指向的文件复制

         -u  如果接收者的文件比发送者的文件较新,将忽略同步

         -z  压缩,节约网络带宽

         -a  存档,相当于-rlptgoD,但不保留ACL(-A)和selinux属性

         -delete  源数据删除,目标数据也自动同步删除

           

     sftp命令

        sftp  user@host

      ssh高级应用

        SSH  会自动加密和解密所有SSH客户端与服务器之间的网络数据,此外,SSH还能够将其他的TCP端口的网络数据通过SSH连接来转发,并自动提供了相应的加密及解密服务,这一过程也被叫做”隧道“(tunneling),这是因为SSH为其他TCP链接提供了一个安全的通道来进行传输而得名

    SSH端口转发能提供两大功能:

      加密SSH client端至SSH   server端之间的通讯数据

      突破防火墙的限制完成一些之前无法建立的TCP连接

    SSH本地端口转发

      ssh  -L   localport:remotehost:remotehostport     sshserver

       -f  后台启用

       -N  不打开远程shell,处于等待状态

       -g  启用网关功能

  ssh服务的最佳实践

      1.建议使用费默认端口

      2.禁止使用protocol version   1

      3.限制可登录用户

      4.设定空闲会话超长时间

      5.利用防火墙设置ssh访问策略

      6.仅监听特定的IP地址

      7.基于口令认证时,使用强密码策略

      8.使用基于密钥的认证

      9.禁止使用空密码

       10.禁止root用户直接登录

       11.限制ssh的访问频度和并发在线数

       12.经常分析日志

   ssh相关工具

     挂载完成ssh目录sshfs

      sshfs     host:/dir   /dir

     自动登录ssh工具sshpass

       选项:

       -p   password   后跟密码它允许你用-p参数指明明文密码,然后直接登录远程服务器  

       -f filename  后跟保存密码的文件名,密码是文件内容的第一行

       -e 将环境变量sshpass作为密码

    

    轻量级自动化运维工具pssh         

      pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了基于ssh和scp的多个并行工具

      pash:parallel remote shell program,是一个多线程远程shell客服端,可以并行多个远程主机上的命令,可使集中不同的远程shell服务,包括rsh,kerberoIV和ssh

      mussh:Multihhost SSH wrapper,是一个shell脚本,允许使用命令在多个主机上通过ssh执行命令,可使用ssh-agent和RSA/DSA密钥,以减少输入密码

    pssh命令选项如下:

        -H:主机字符串,内核格式user@host:port

        -h  file 主机列表文件,内容格式“user@host:port”

        -A:手动输入密码格式

        -i:每个服务器内部处理信息输出

        -p:并发的线程数

        -o:输出的文件目录

        -e:错误输出文件

        -t:timeout超时时间设置

        -O:SSH的选项

        -P:打印出服务器返回信息

        -v:详细模式

        --version:查看版本

      pscp.pssh命令

        -v  显示复制过程

        -r  递归复制目录

      pslurp命令:

     -L  指定从远程主机下载到本机的存储的目录,local是下载到本地后的名称

     -r  递归复制目录

  sudo介绍

    sudo  即superuser  do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等,这样不仅减少了root用户登录和管理时间,同样也提高了安全性

    sudo特性:

      sudo能够授权指定用户在指定主机上运行某些命令,如果未授权用户尝试使用sudo,会提示联系管理员

      sudo提供了丰富的日志,详细地记录了每个用户干了什么,他能将日志传到中心主机或者日志服务器

      sudo使用时间戳文件来执行类似地“检票”系统,当用户调用sudo并且输入他的密码时,用户获得了一张存活期为5分钟地票

      sudo地配置文件时sudoers文件,它允许系统管理员集中地管理用户地使用权限和使用地主机,它所存放地位置默认时/etc/sudoers,属性必须为0440

   sudo组成

     配置文件:/etc/sudo.conf

     授权规则配置文件:

        /etc/sudoers

        /etc/sudoers.d

     安全编辑授权规则文件和语法检查工具

        /usr/sbin/visudo

     sudo命令:

      -V  显示版本信息等配置信息

      -u user  默认为root

      -l  列出用户在主机上可用地和被禁止地命令

      -v  在延长密码有效期限5分钟,更新时间戳

      -k  清除时间,下次需要重新输入密码

      -K  与-k类似,还要删除时间戳文件

      -b  在后台执行命令

      -p  改变询问密码地提示符号

    sudo授权规则配置

      配置文件格式说明:/etc/sudoers,/etc/sudoers.d/

      配置文件中支持使用通配符glob

        ?  任意单一字符

        *  匹配任意长度字符

       [wxc] 匹配其中一个字符

       [!wxc] 除了这三个字符地其他字符

       \X  转义

       [[:alpha:]] 字母

     配置文件规则有两类

       1.别名定义:不是必须地

       2.授权规则:必须地

      sudoers授权规则格式:

        用户 登入主机=(代表用户)命令

        user    host=(runas)command

      user:运行命令者地身份

      host:通过哪些主机

      (runas):以哪个用户的身份

      command:运行哪些命令

    sudoers的别名    

  

  PAM认证机制 

   认证库:文本文件,Mysql,DIS,LDAP等

   PAM:Pluggable Authentication Modules,插件式的验证模块,sun公司于1995年开发的一种与认证相关的通用框架机制,PAM只关注如何为服务器验证用户的API,通过提供一些动态链库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同地服务配置不同地认证方式而无需更改服务程序一种认真框架,自身不做认证

  PAM相关文件

     包名:pam

     模块文件目录:/lib64/security/*.so

     特定程序调用PAM模块地配置文件:/etc/security/

     应用程序调用PAM模块地配置文件

       1.主配置文件:/etc/pam.conf,默认不存在,一般不适用主配置

       2.为每种应用模块提供一个专用地配置文件:/etc/pam.d/APP_name

       3.注意:如/etc/pam.d  存在,/etc/pam.cnf将失效

    PAM工作原理

   PAM认证一般遵循这样地顺序:service----》PAM(配置文件)----》pam_*.so

   PAM认证首先要确定那一项服务,然后加载相应地PAM地配置文件(位于/etc/pam.d下),最后调用认证文件/lib64/security下进行安全认证

   PAM认证过程示例:

   1.使用者执行/usr/bin/passwd程序,并输入密码

   2.passwd开始调用PAM模块,PAM模块会搜寻passwd程序地PAM相关设置文件,这个设置文件一般在/etc/pam.d/里面地与程序同名地文件,即pam会搜寻/etc/pam.d/passwd此设置文件

   3.经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证

   4.将验证结果回传给passwd这个程序,而passwd这个程序会根据pam回传的结果决定下一个动作(动作输入密码或者通过验证)

   

    pam_limits.so模块

    功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可用内存空间

    pam_google_authenticator模块

     什么是MFA?

      multi-Factor   AUTHENTICATION(MFA)是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护

    功能:实现SSH登录的两次验证,先验证APP的数字码,在验证root用户的密码,都通过才可以登录

    在手机应用市场搜索:身份验证器或authenticator,并安装APP或者也可以使用微信小程序MinaOTP

    运行脚本(需要联网EPEL源)本质式修改了/etc/pam.d/sshd文件,将google的PAM模块加入进去实现

    打开这个网页https://www.google.com/chartchs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@centos8.localdomain%3Fsecret

%3D7YTAL4GW3TND7BICUMJGJLIFVE%26issuer%3Dcentos8.localdomain

 

 

   时间同步服务

   加密和安全当前离不开时间的同步,否则各种网络可能不能正常运行

   时间同步服务:

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

   时间同步软件实现:

      chrony

      ntp

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

   chrony:实现NTP协议的自由软件,可使系统时钟与NTP服务器,参考时钟,以及使用手表和键盘的手动输入进入同步,还可以作为NTPV4服务器和对等体运行,为网络中的计算机提供时间同步服务

    通过internet同步的两台机器之间的典型精度在几毫秒之类,在LAN上,精度通常为几十微秒,利用硬件时间戳或硬件参考时钟,可实现微秒的精度

    chrony介绍

     文件组成:

      包:chrony

      两个主要程序:chrony和chronyc

      chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步,它确定计算机增减时间的比率,并对此进行补偿

      chronyc:命令行用户工具,用于监控性能并进行多样化的配置,它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作

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

      监听端口:服务器123  udp   客户端:323   udp

      配置文件:/etc/chrony.conf

 

 

 

 

 

 

 

  

posted @   家购诗  阅读(28)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示