IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 第八周 2021-10-29 -> 正文阅读

[网络协议]第八周 2021-10-29

1、创建私有CA并进行证书申请

实验环境:私有CA:centos7.9,用户服务器OS:centos8.1;

  • 在私有CA(centos7.9)上创建自签名证书
  1. 通过命令创建
# 生成私钥和自签名证书;
[root@c7 CA]# openssl req -utf8 -newkey rsa:2048 -keyout private/cakey.pem -x509 -days 3650 -out cacert.pem -subj /C=CN/ST=Sichuan/L=Chengdu/O=example/OU=test/CN=ca.testtest.cn -nodes
# 修改私钥权限为:0600
[root@c7 CA]# chmod 600 private/cakey.pem 
[root@c7 CA]# ll private/cakey.pem 
-rw-------. 1 root root 1708 Nov  4 19:41 private/cakey.pem
[root@c7 CA]# 

[root@c7 CA]# openssl x509 -in cacert.pem -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            be:52:93:e0:b3:0f:70:84
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, ST=Sichuan, L=Chengdu, O=example, OU=test, CN=ca.testtest.cn
        Validity
            Not Before: Nov  4 23:36:00 2021 GMT
            Not After : Nov  2 23:36:00 2031 GMT
        Subject: C=CN, ST=Sichuan, L=Chengdu, O=example, OU=test, CN=ca.testtest.cn
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a1:28:9f:b6:f3:21:5e:68:ad:01:19:39:b3:df:
                    ......
                    ......
                    15:0d
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                77:39:6F:B5:10:21:0E:73:30:53:CF:C9:07:01:9B:61:F4:A0:5F:E6
            X509v3 Authority Key Identifier: 
                keyid:77:39:6F:B5:10:21:0E:73:30:53:CF:C9:07:01:9B:61:F4:A0:5F:E6
......
......

  1. 通过配置文件创建
# 修改配置文件
[root@c7 CA]# vi config_ca3
      1 [ req ]
      2 default_bits           = 2048
      3 distinguished_name     = req_distinguished_name
      4 utf8                   = yes
      5 encrypt_key            = no
      6 prompt                 = no
      7 x509_extensions        = v3_ca
      8 
      9 dirstring_type = nobmp
     10 
     11 [ req_distinguished_name ]
     12 C = CN
     13 ST = Sichuan
     14 L = Chengdu
     15 O = example
     16 OU = test
     17 CN = www.testtest.cn
     18 emailAddress = text@test.com
     19 
     20 
     21 [ v3_ca ]
     22 
     23 subjectKeyIdentifier=hash
     24 authorityKeyIdentifier=keyid:always,issuer:always
     25 basicConstraints = CA:true
# 生成私钥和自签名证书;
[root@c7 CA]# openssl req -config config_ca4 -keyout private/cakey2.pem -x509 -days 3650 -out cacert2.pem
Generating a 2048 bit RSA private key
.....................+++
............................................................+++
writing new private key to 'private/cakey2.pem'
-----
#修改私钥访问权限; 
[root@c7 CA]# chmod 600 private/cakey2.pem 
[root@c7 CA]# ll private/
total 8
-rw-------. 1 root root 1704 Nov  4 19:49 cakey2.pem

#查看证书详细信息;
[root@c7 CA]# 
[root@c7 CA]# openssl x509 -in cacert2.pem -noout -text 
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            ac:dc:a5:67:35:2d:4f:77 
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, ST=Sichuan, L=Chengdu, O=example, OU=test, CN=www.testtest.cn/emailAddress=test@test.com
        Validity
            Not Before: Nov  4 23:49:57 2021 GMT
            Not After : Nov  4 23:49:57 2031 GMT
        Subject: C=CN, ST=Sichuan, L=Chengdu, O=example, OU=test, CN=www.testtest.cn/emailAddress=test@test.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:9e:0b:8c:fa:ca:a1:bd:9d:73:83:e8:da:26:7a:
					......
					......
  1. 通过Makefile文件进行配置

Makefile文件路径:/etc/pki/tls/certs/Makefile。可根据Makefile文件内容自行选择执行相关选项即可。

	 14 usage:
     15         @echo "This makefile allows you to create:"
     16         @echo "  o public/private key pairs"
     17         @echo "  o SSL certificate signing requests (CSRs)"
     18         @echo "  o self-signed SSL test certificates"
     19         @echo
     20         @echo "To create a key pair, run \"make SOMETHING.key\"."
     21         @echo "To create a CSR, run \"make SOMETHING.csr\"."
     22         @echo "To create a test certificate, run \"make SOMETHING.crt\"."
     23         @echo "To create a key and a test certificate in one file, run \"make SOMETHING.pem\"."
     24         @echo
     25         @echo "To create a key for use with Apache, run \"make genkey\"."
     26         @echo "To create a CSR for use with Apache, run \"make certreq\"."
     27         @echo "To create a test certificate for use with Apache, run \"make testcert\"."
     28         @echo
     29         @echo "To create a test certificate with serial number other than random, add SERIAL=num"
     30         @echo "You can also specify key length with KEYLEN=n and expiration in days with DAYS=n"
     31         @echo "Any additional options can be passed to openssl req via EXTRA_FLAGS"
     32         @echo
     33         @echo Examples:
     34         @echo "  make server.key"
     35         @echo "  make server.csr"
     36         @echo "  make server.crt"
     37         @echo "  make stunnel.pem"
     38         @echo "  make genkey"
     39         @echo "  make certreq"
     40         @echo "  make testcert"
     41         @echo "  make server.crt SERIAL=1"
     42         @echo "  make stunnel.pem EXTRA_FLAGS=-sha384"
     43         @echo "  make testcert DAYS=600"
     44 

  • 在用户服务器创建证书申请文件csr
# 用户服务器生成私钥;
[root@r8 .private]# (umask 066 ; openssl genrsa -out app.key 2048)

# 用户服务器生成csr文件
[root@r8 .private]# openssl req -new -key app.key -out app.csr
  • CA为用户颁发证书
# 创建index、serial文件
[root@r7 CA]# touch /etc/pki/CA/index.txt
[root@r7 CA]# echo “01” > /etc/pki/CA/serial
[root@c7 CA]# openssl ca -in app/app.csr -out certs/app1.crt -days 365 -subj /C=CN/ST=Sichuan/O=example/OU=test/CN=www.testtest.cn
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Nov 15 03:55:03 2021 GMT
            Not After : Nov 15 03:55:03 2022 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Sichuan
            organizationName          = example
            organizationalUnitName    = test
            commonName                = www.testtest.cn
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                56:3A:77:48:40:9C:E3:75:12:23:D6:BF:AA:DD:E8:23:3A:BE:6B:52
            X509v3 Authority Key Identifier: 
                keyid:8F:1D:59:FD:AE:10:DE:23:36:B2:BD:42:27:13:02:D9:4D:E6:20:17

Certificate is to be certified until Nov 15 03:55:03 2022 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

  • 查看证书
[root@c7 certs]# openssl x509 -in app1.crt -noout -text |less
  • 吊销证书
[root@c7 CA]# openssl ca -revoke /etc/pki/CA/newcerts/01.pem
# 查看证书吊销状态
[root@c7 CA]# openssl ca -status 01
Using configuration from /etc/pki/tls/openssl.cnf
01=Revoked (R)
 
[root@c7 CA]# cat /etc/pki/CA/index.txt
R	221115035503Z	211115040617Z	01	unknown	/C=CN/ST=Sichuan/O=example/OU=test/CN=www.testtest.cn
[root@c7 CA]# 
  • 生成证书吊销列表文件
# 创建crlnumber文件并指定初始序列号
[root@centos8 ~]#echo 01 > /etc/pki/CA/crlnumber
# 生成证书吊销列表文件
[root@centos8 ~]#openssl ca -gencrl -out /etc/pki/CA/crl.pem

2、总结ssh常用参数、用法

实验环境介绍:
OS: centos7.9 ip = 10.48.4.7;Redhat8.1 ip = 10.48.4.8;ubuntu18.04 ip = 10.48.4.18

  • Port
    指定默认连接服务端的哪个端口,默认一般为22。当服务端sshd侦听的不是默认端口时,可以修改此项值来永久设置默认连接端口。
    可以通过-p选项临时指定连接的服务端端口。
  • StrictHostKeyChecking
    如果此标志设置为 yesssh将永远不会自动将主机密钥添加到 ~/.ssh/known_hosts文件,并拒绝连接到主机密钥已更改的主机。 这提供了对特洛伊木马攻击的最大保护,但当 /etc/ssh/ssh_known_hosts文件维护不善或频繁连接到新主机时可能会很烦人。 此选项强制用户手动添加所有新主机。 如果此标志设置为 nossh将自动将新的主机密钥添加到用户已知的主机文件中。 如果这个标志设置为 ask(默认),只有在用户确认这是他们真正想要做的事情后,新的主机密钥才会被添加到用户已知的主机文件中,并且 ssh将拒绝连接到其主机密钥的主机 已经改变。 在所有情况下都会自动验证已知主机的主机密钥。
    也可通过 -o临时选项指定参数
    #验证,将其值设置为 yes时, 会发生什么?
    [root@c7 ~]# grep -o "StrictHostKeyChecking.*" /etc/ssh/ssh_config 
    StrictHostKeyChecking yes
    [root@c7 ~]# 
    
    # 清空.ssh/目录
    [root@c7 ~]# ls -al .ssh
    total 4
    drwx------. 2 root root    6 Oct 31 19:25 .
    dr-xr-xrw-. 4 root root 4096 Oct 31 19:25 ..
    [root@c7 ~]# 
    
    # ssh登录测试
    [root@c7 ~]# ssh root@10.48.4.8
    No ECDSA host key is known for 10.48.4.8 and you have requested strict checking.
    Host key verification failed.
    [root@c7 ~]# 
    
    #手动在客户端known_hosts文件中添加服务端的公钥信息。
    #方法一:复制服务端中:/etc/ssh/ssh_host_*_key.pub中任其一的公钥信息
    [root@r8 .ssh]# cat /etc/ssh/ssh_host_ecdsa_key.pub
    ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAWqzR1HlQgRVvHh1HN8xARbJcqh7nAf0UcZHGCSNGHviiCshR3+vl5bDPxETd9tTzN6bELN0/PTWLHbzZsiv5E= 
    
    #复制上述信息并在其前添加 主机信息 到 客户端的known_hosts文件中
    [root@c7 .ssh]# cat known_hosts 
    10.48.4.8 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAWqzR1HlQgRVvHh1HN8xARbJcqh7nAf0UcZHGCSNGHviiCshR3+vl5bDPxETd9tTzN6bELN0/PTWLHbzZsiv5E=
    [root@c7 .ssh]# 
    
    #成功登录
    [root@c7 .ssh]# ssh root@10.48.4.8
    root@10.48.4.8\'s password: 
    Last login: Mon Nov  1 22:39:47 2021 from 10.48.4.7
    [root@r8 ~]# 
    
    #方法二:使用工具生成的私/公密钥对实现登录;
    #1. 服务端使用 ssh-keygen 工具生成 非对称密钥对;
    [root@r8 .ssh]# ssh-keygen -t rsa -N ""
    
    #2. 修改sshd_config 配置文件,添加 HostKey /root/.ssh/id_rsa 项并至所有项之前;
    [root@r8 .ssh]# grep "HostKey" /etc/ssh/sshd_config
    HostKey	/root/.ssh/id_rsa
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    [root@r8 .ssh]# 
    
    #3. 复制该id_rsa对应的公钥文件id_rsa.pub 信息至客户端
    [root@c7 .ssh]# cat known_hosts 
    10.48.4.8 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCVt68VuEYo5Ft7Bg8qujjIcKhSjFg3rsWEshfeQ2cMIhOvXInXTvdmLewh47d9m4cedpG55Ie0kbiZSCEQYNB8cRgy3D58rAFVewQB3k3jplq1L4y5MagbKjyyzfJyyLVeKp7ljl4FIwI+kg5/rCZlNW+OqRkbgzDfzfxdW46hCZyelIFIui6uU6udSlOrR3BYBOLvnfMBfJ1LoFyprrNLQf5n7649QtxgxflDCbPmhLbypljHgFsW65CrmvFFWUe6Ssbb9+bvOhXqVD+ITExYDAU/Xi3qAwQyZC2NtqBoVdEQ58sx3iTdpcOMAnd1wUJvAGTfNAj53fRDI2pP+rVyxsWTSC8w/0ddYIkw2/lNCpYEQ57yrUwVDoaDiWlzQ93zzxAVi0IRrFJwWhZCXZhZUXhlWpsatlKeJg3EEXBAFBQp2RUtitKmCJJvAteagAtfPuj0ogYbTIQBO4gd8u07TmYCN0YSKMaOFtIGSSF/WIl0V24FcjWm5Y9JE8n8l3U=
    
    #4. 登录验证
    [root@c7 .ssh]# ssh root@10.48.4.8
    root@10.48.4.8\'s password: 
    Last login: Mon Nov  1 23:00:35 2021 from 10.48.4.7
    
  • -t 选项
    强制伪tty分配。这可用于在远程机器上执行任意基于屏幕的程序,这非常有用,例如 在实现菜单服务时。 多个 -t 选项强制 tty 分配,即使 ssh 没有本地 tty。
    	root@r8 ~]#ssh -t 10.48.4.7 ssh -t 10.48.4.18 ssh 10.48.4.8 
    	root@10.48.4.7's password: 
    	root@10.48.4.18's password: 
    	root@10.48.4.8's password: 
    	Last login: Fri May 22 09:10:28 2020 from 10.48.4.18
    	[root@r8 ~]#
    

3、总结sshd服务常用参数

sshd服务参数在/etc/ssh/sshd_config配置文件中定义,可通过执行man 5 sshd_config命令查看配置文件各参数说明。
实验环境介绍:
客户端主机(r8)ip=10.48.4.8
服务端主机(c7)ip=10.48.4.7

常用的参数如下:

  • port
    指定sshd守护进程侦听的端口号,默认为 22,这种类型的多个选项是允许的。

  • ListenAddress
    指定sshd守护进程应该监听的本地地址。使用格式如下:
    ListenAddress host | IPv4_addr | IPv6_addr
    ListenAddress host | IPv4_addr:port
    ListenAddress [ host | IPv6_addr ]:port
    如果 port没有被指定,sshd 将侦听指定的地址和所有端口选项。默认情况下侦听所有的本地地址,允许多个ListenAddress 选项设置。

  • LoginGraceTime
    LoginGraceTime指定的时间内,如果用户没有成功登录,则服务器断开连接。如果该参数的值为0,则表示没有时间限制。该参数数默认值为120s。其值不指定单位,默认以s为单位。
    配置举例:LoginGraceTime 2m

  • PermitRootLogin
    指定root用户是否能够通过ssh登录。
    参数值必须是:yesprohibit-passwordwithout-passwordforced-commands-only以及no之一。
    (Centos系统默认是:yes,Ubuntu系统默认是:prohibit-password

    如果该参数被设置为:prohibit-passwordwithout-password,则对root用户禁用密码和键盘交互身份验证 ;

    如果该参数被设置为:forced-commands-only,将允许使用公钥身份验证的root登录,但前提是已指定命令选项。该参数对于只允许远程用户执行少数命令(如 远程备份)的场景很有用。

    # 先在sshd_config配置文件中设置:PermitRootLogin forced-commands-only
    [root@c7 ~]# cat /etc/ssh/sshd_config | grep "PermitRootLogin"
    PermitRootLogin forced-commands-only
    
    # 再在 服务端的 ~/.ssh/authorized_keys文件中指定要允许被执行的命令
    [root@c7 ~]# cat .ssh/authorized_keys 
    from="10.48.4.8",command="/usr/bin/who" ssh-rsa AAAAB3NzaC1yc2EAAA......
    
    # 最后,重新加载sshd守护进程的配置文件
    [root@c7 ~]# systemctl reload sshd
    
    #验证:在主机10.48.4.8上进行登录验证,如果登录成功,则执行预指定的 who 命令,不分配shell给远程登录的root用户,命令执行完成后,就断开连接。
    [root@r8 ~]# ssh root@10.48.4.7 
    Enter passphrase for key '/root/.ssh/id_rsa': 
    root     pts/0        2021-10-31 05:14 (10.48.0.1)
    root     pts/1        2021-10-31 06:26 (10.48.4.8)
    Connection to 10.48.4.7 closed.
    [root@r8 ~]# 
    
    # 当然,如果authorized_keys文件预指定的命令为 /usr/bin/bash, 则远程root登录就会分配bash shell环境。
    

    如果该参数被设置为:no,root用户不被允许登录。

  • StrictModes
    该参数一般用于免密登录,指定sshd守护进程是否应该在接受登录之前检查文件访问权限以及用户文件和家目录的所有权。 这通常是可取的,因为新手有时会意外地将他们的目录或文件设为全局可写。 默认为yes。 请注意,这不适用于 ChrootDirectory,其权限和所有权是无条件检查的。
    该参数会检查:.ssh/authorized_keys.ssh目录以及$HOME目录的访问权限和所有权。如果不严格满足规定的要求,就不允许免密登录。

    # 在服务端(c7)上配置 /etc/ssh/sshd_config 文件中的参数 StrictModes 为 yes 。
    [root@c7 ~]# grep -o "StrictModes.*" /etc/ssh/sshd_config
    StrictModes yes
    [root@c7 ~]# 
    
    # 再对上述的三个文件的权限或所有权进行修改,达到不满足规定条件止,此处举例修改“.ssh”目录,其他文件同理。
    [root@c7 ~]# chmod o+rw .ssh
    [root@c7 ~]# ls -dl .ssh
    drwx---rw-. 2 root root 80 Oct 31 08:01 .ssh
    [root@c7 ~]# 
    
    # 重新加载sshd配置文件。
    [root@c7 ~]# systemctl reload sshd
    [root@c7 ~]# 
    
    # 再客户端(r8)上进行免密登录验证。
    [root@r8 ~]# ssh root@10.48.4.7
    root@10.48.4.7: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    [root@r8 ~]# 
    
    # 修改 StrictModes 为 no。
    [root@c7 ~]# grep -o "StrictModes.*" /etc/ssh/sshd_config 
    StrictModes no
    [root@c7 ~]# 
    # 再在客户端(r8)上进行免密登录验证。
    [root@r8 ~]# ssh root@10.48.4.7
    Enter passphrase for key '/root/.ssh/id_rsa': 
    Last login: Sun Oct 31 08:04:27 2021 from 10.48.4.8
    [root@c7 ~]# 
    
    
  • MaxAuthTries
    指定每个连接允许的最大身份验证尝试次数。 一旦失败次数达到此值的一半,就会记录额外的失败。 默认值是6。

  • MaxSessions
    指定每个网络连接允许的最大打开 shell、登录或子系统(例如 sftp)会话数。 支持连接多路复用的客户端可以建立多个会话。将 MaxSessions 设置为 1 将有效禁用会话多路复用,而将其设置为 0 将阻止所有 shell、登录和子系统会话,同时仍允许转发。 默认值是10。

  • PubkeyAuthentication
    指定是否允许公钥认证。 默认是yes。

  • PermitEmptyPasswords
    当开启密码认证时,指定服务器是否允许使用空密码字符串登录。默认是“no”。

  • PasswordAuthentication
    指定是否允许密码认证,默认是 “yes”

  • GatewayPorts
    指定是否允许远程主机连接到为客户端转发的端口。 默认情况下,ssh(8) 将远程端口转发绑定到环回地址。 这可以防止其他远程主机连接到转发端口。 GatewayPorts 可用于指定 sshd 应允许远程端口转发绑定到非环回地址,从而允许其他主机连接。 参数可能是 no 强制远程端口转发仅对本地主机可用,yes 强制远程端口转发绑定到通配符地址,或 client 指定以允许客户端选择转发绑定到的地址。默认值是“no”

  • ClientAliveInterval
    设置一个以秒为单位的超时间隔,如果没有从客户端接收到数据,sshd(8) 将通过加密通道发送消息以请求客户端的响应。 默认为 0,表示这些消息不会发送到客户端。

  • ClientAliveCountMax
    设置客户端活动消息的数量,这些消息可以在 sshd(8) 没有从客户端接收任何消息的情况下发送。 如果在发送客户端活动消息时达到此阈值,sshd 将断开客户端连接,终止会话。 需要注意的是,客户端活动消息的使用与 TCPKeepAlive 非常不同。 客户端活动消息通过加密通道发送,因此不会被欺骗。 TCPKeepAlive 启用的 TCP keepalive 选项是可欺骗的。 当客户端或服务器依赖于知道连接何时变为非活动状态时,客户端活动机制很有价值。

  • UseDNS
    指定 sshd(8) 是否应该查找远程主机名,并检查远程 IP 地址的解析主机名是否映射回完全相同的 IP 地址。 默认值为“yes”。

  • GSSAPIAuthentication
    指定是否允许基于 GSSAPI 的用户身份验证。 默认为否。

  • MaxStartups
    指定到 SSH 守护程序的最大并发未经身份验证连接数。 其他连接将被丢弃,直到身份验证成功或连接的 LoginGraceTime 到期。 默认值为 10:30:100。
    或者,可以通过指定三个冒号分隔的值 start:rate:full(例如“10:30:60”)来启用随机提前丢弃。 如果当前有启动 (10) 个未经身份验证的连接,sshd(8) 将以 rate/100 (30%) 的概率拒绝连接尝试。 如果未经身份验证的连接数已满 (60),则概率会线性增加,并且所有连接尝试都会被拒绝。

  • Banner
    在允许身份验证之前,指定文件的内容将发送给远程用户。 如果参数为 none,则不显示横幅。 默认情况下,不显示横幅。

  • AllowUsers
    它的关键字后面可以跟一个用户名模式列表,用空格分隔。 如果指定,则仅允许与其中一种模式匹配的用户名登录。 只有用户名有效; 无法识别数字用户 ID。 默认情况下,允许所有用户登录。 如果模式采用 USER@HOST 的形式,则分别检查 USER 和 HOST,将登录限制为来自特定主机的特定用户。 HOST 标准可能还包含要以 CIDR 地址/掩码格式匹配的地址。 允许/拒绝指令按以下顺序处理:DenyUsers、AllowUsers、DenyGroups,最后是 AllowGroups。 在允许用户登录之前,所有指定的用户和组测试必须成功。

  • DenyUsers
    此关键字后面可以跟一个用户名模式列表,以空格分隔。 与其中一种模式匹配的用户名不允许登录。 只有用户名有效; 无法识别数字用户 ID。 默认情况下,允许所有用户登录。 如果模式采用 USER@HOST 的形式,则分别检查 USER 和 HOST,将登录限制为来自特定主机的特定用户。 HOST 标准可能还包含要以 CIDR 地址/掩码格式匹配的地址。 允许/拒绝指令按以下顺序处理:DenyUsers、AllowUsers、DenyGroups,最后是 AllowGroups。 在允许用户登录之前,所有指定的用户和组测试必须成功。

  • AllowGroups
    此关键字后面可以跟一个组名模式列表,以空格分隔。 如果指定,则仅允许主要组或补充组列表与其中一种模式匹配的用户登录。 只有组名有效; 无法识别数字组 ID。 默认情况下,所有组都允许登录。 允许/拒绝指令按以下顺序处理:DenyUsers、AllowUsers、DenyGroups,最后是 AllowGroups。 在允许用户登录之前,所有指定的用户和组测试必须成功。

  • DenyGroups
    此关键字后面可以跟一个组名模式列表,以空格分隔。 对于主要组或补充组列表与其中一种模式匹配的用户,不允许登录。 只有组名有效; 无法识别数字组 ID。 默认情况下,所有组都允许登录。 允许/拒绝指令按以下顺序处理:DenyUsers、AllowUsers、DenyGroups,最后是 AllowGroups。 在允许用户登录之前,所有指定的用户和组测试必须成功。

4、搭建dhcp服务,实现ip地址申请分发

4.1 安装dhcp服务

  • 通过仓库管理工具安装;
	#OS: CentOS Linux release 7.9.2009 (Core)
	[root@hosta ~]#yum install dhcp
	
	#OS: Red Hat Enterprise Linux release 8.1 (Ootpa)
	[root@r8 ~]# yum install dhcp-server -y 

	#OS:"Ubuntu 18.04.5 LTS"
	root@ut:~# apt install isc-dhcp-server -y 

4.2 修改配置文件

  • 为网段分配地址池
#配置文件:/etc/dhcp/dhcpd.conf
[root@centos8 ~]#cat /etc/dhcp/dhcpd.conf
option domain-name "example.org";  #指定组织域名;
option domain-name-servers ns1.example.org,114.114.114.114; #指定DNS服务器;
default-lease-time 600; #指定默认的租期时间为 600s;
max-lease-time 7200; #指定最大的租期时间为 7200s;
log-facility local7; #指定日志工具为local7;

subnet 10.48.0.0 netmask 255.240.0.0 {
	range 10.48.4.100 10.48.4.199; #指定可分配地址范围;
	option routers 10.48.0.1; #指定网关;
}


  • 为特定主机分配固定ip地址
...
host hostA {
	hardware ethernet 00:0c:29:33:b4:1a; #根据mac地址进行匹配;
	fixed-address 10.48.4.119; #设置固定IP地址;
	default-lease-time 86400;
	max-lease-time 864000;
	option routers 10.48.0.1;
	option domain-name-servers 114.114.114.114,8.8.8.8;
	option domain-name "example.com";
}
...

4.3 启动dhcp服务

#OS:CentOS Linux release 7.9.2009 (Core), Red Hat Enterprise Linux release 8.1 (Ootpa)
[root@c7 ~]# systemctl enable --now dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@c7 ~]# 

#OS:"Ubuntu 18.04.5 LTS"
#设置开机启动
root@ut:/etc/systemd/system# systemctl enable --now isc-dhcp-server.service
Synchronizing state of isc-dhcp-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable isc-dhcp-server
#创建链接文件
root@ut:/etc/systemd/system# ln -s -T /lib/systemd/system/isc-dhcp-server.service dhcpd.service
root@ut:# systemctl start dhcpd

参考链接

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 19:11:36  更:2021-11-16 19:13:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:52:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码