学向勤中得,萤窗万卷书。这篇文章主要讲述Linux Centos7 —sshd远程登录,密钥对登录,TCPWrappers访问控制相关的知识,希望能为你提供帮助。
文章图片
本章环境:VM虚拟机,一台服务器作为服务端,一台服务器作为客户端
本章目的:了解sshd远程登录管理,密钥对验证,Tcp wappers访问控制
一.sshd远程登录
1.查看sshd服务
[root@localhost ~]# netstat -ntap | grep 22
tcp00 192.168.122.1:530.0.0.0:*LISTEN3252/dnsm
tcp00 0.0.0.0:220.0.0.0:*LISTEN968/sshd//默认我们的SSHD是开启的
tcp00 127.0.0.1:60100.0.0.0:*LISTEN16227/sshot@pt
tcp00 192.168.17.128:49342180.97.251.226:80TIME_WAIT-
tcp00 192.168.17.128:42522202.141.176.110:80
2.了解SSHD服务端配置文件
[root@localhost ~]# vim /etc/ssh/sshd_config//服务端的SSHD配置文件【Linux Centos7 —sshd远程登录,密钥对登录,TCPWrappers访问控制】17 #Port 22//端口
18 #AddressFamily any
19 #ListenAddress 0.0.0.0//监听地址
20 #ListenAddress :://IPV6地址
37#LoginGraceTime 2m//2分钟会话时间
38 #PermitRootLogin yes//允许ROOT登录
39 #StrictModes yes//验证你的访问权限
40 #MaxAuthTries 6//验证次数
41 #MaxSessions 10// 访问最大连接数10个#PubkeyAuthentication yes//公钥验证开启
3.使用客户端去远程登录服务端的ROOT用户
[root@test02 ~]# ssh root@192.168.17.128
The authenticity of host ‘192.168.17.128 (192.168.17.128)‘ can‘t be established.
ECDSA key fingerprint is SHA256:Rpsrtp0nMlVYADWOhRjM0UVz6wVl682cNuzxhF0Q7C8.
ECDSA key fingerprint is MD5:fa:c3:d9:5c:96:87:ce:16:d8:63:b3:0c:7b:26:45:1f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.17.128‘ (ECDSA) to the list of known hosts.
root@192.168.17.128‘s password:
Last login: Mon Sep 16 12:07:36 2019
4.把服务端的远程登录ROOT用户关掉
37 #LoginGraceTime 2m
38 #PermitRootLogin no//禁止远程用户用ROOT登录
39 #StrictModes yes
40 #MaxAuthTries 6
41 #MaxSessions 10
5.去服务端验证是否能登录ROOT用户
[root@test02 ~]# ssh root@192.168.17.128
root@192.168.17.128‘s password:
Permission denied, please try again.
root@192.168.17.128‘s password:
6.客户端切换到普通用户lisi,再切到ROOT用户也行(不安全)
[root@test02 ~]# ssh lisi@192.168.17.128
lisi@192.168.17.128‘s password:
[lisi@test01 ~]$ su - root
密码:
上一次登录:一 9月 16 12:17:31 CST 2019pts/2 上
最后一次失败的登录:一 9月 16 12:25:59 CST 2019pts/2 上
最有一次成功登录后有 1 次失败的登录尝试。
[root@test01 ~]#
7.把服务端开启PAM认证
vim /etc/pam.d/su
//把“#”号去掉authrequiredpam_wheel.so use_uid
authsubstacksystem-auth
authincludepostlogin
8.再去客户端去验证一下
[lisi@test01 ~]$ su - root
密码:
su: 拒绝权限
9.在客户端尝试输错三次密码,发现就退出来了,我们原本服务端设置的是验证次数是6次
[root@test02 ~]# ssh chen@192.168.17.128
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Permission denied, please try again.
[root@test02 ~]#
10.在客户端切到ROOT用户,设置验证次数为8次
[root@test01 ~]# ssh -o NumberOfPasswordPrompts=8 chen@192.168.17.128
The authenticity of host ‘192.168.17.128 (192.168.17.128)‘ can‘t be established.
ECDSA key fingerprint is SHA256:Rpsrtp0nMlVYADWOhRjM0UVz6wVl682cNuzxhF0Q7C8.
ECDSA key fingerprint is MD5:fa:c3:d9:5c:96:87:ce:16:d8:63:b3:0c:7b:26:45:1f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.17.128‘ (ECDSA) to the list of known hosts.
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Permission denied, please try again.
chen@192.168.17.128‘s password:
Received disconnect from 192.168.17.128 port 22:2: Too many authentication failures
Authentication failed.
[root@test01 ~]#
11.设置SSH远程登录的黑白名单
37 #LoginGraceTime 2m
38 #PermitRootLogin no
39 #StrictModes yes
40 #MaxAuthTries 6
41 #MaxSessions 10
42 Allow Users chen@192.168.17.130
//只允许chen这个用户用192.168.17.130地址登录
[root@test01 ~]# systemctl restart sshd
12.了解三种远程管理
scp 远程复制
sftpget 远程下载文件
sftp put远程上传文件
二.密钥对验证登录
1.服务端开启公私钥验证登录
[root@localhost ~]# vim /etc/ssh/sshd_config//服务端的SSHD配置文件
43 PubkeyAuthentication yes把“#”去掉开启公私钥验证登录
44
45 # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
46 # but this is overridden so installations will only check .ssh/authorized_keys
47 AuthorizedKeysFile.ssh/authorized_keys
//生成的公私密钥会在这个目录底下
2.客户端,给chen用户生成密钥
[root@client ~]# ls /home/
chen
[root@client ~]# ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ecdsa.
Your public key has been saved in /root/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:HqV9MQWYPqLHSodJciQEDpGhsbQheF3gVqXLMD6mhTo root@client
The key‘s randomart image is:
+---[ECDSA 256]---+
|B*.+ooo..o...|
|*=+.o...o.|
|oo. =o... o|
|+.+o..+oo|
|. =+o=S....|
| . + .=.+. .|
|E .. +.|
| ..|
||
+----[SHA256]-----+
3.查看chen用户当中的公私钥目录
[root@client ~]# ls -a
..bash_logout.dbus.mozilla模板
...bash_profile.esd_auth.ssh视频
.1234.txt.swp.bashrc.ICEauthority.tcshrc图片
abc.cacheinitial-setup-ks.cfgtest文档
abc.txtchenisthis下载
anaconda-ks.cfgchenchen.lesshst.viminfo音乐
.anacond-ks.cfg.swp.config.local.Xauthority桌面
.bash_history.cshrclshelp1.txt公共
[root@client ~]# cd .ssh/
[root@client .ssh]# ls
id_ecdsaid_ecdsa.pubknown_hosts
4.把chen公钥发送给服务端的公钥目录中
[root@client .ssh]# ssh-copy-id -i id_ecdsa.pub chen@192.168.17.128
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
The authenticity of host ‘192.168.17.128 (192.168.17.128)‘ can‘t be established.
ECDSA key fingerprint is SHA256:Rpsrtp0nMlVYADWOhRjM0UVz6wVl682cNuzxhF0Q7C8.
ECDSA key fingerprint is MD5:fa:c3:d9:5c:96:87:ce:16:d8:63:b3:0c:7b:26:45:1f.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
chen@192.168.17.128‘s password: Number of key(s) added: 1Now try logging into the machine, with:"ssh ‘chen@192.168.17.128‘"
and check to make sure that only the key(s) you wanted were added.
5.去服务端查看有没有chen用户的公钥
[root@localhost chen]# cd .ssh/
[root@localhost .ssh]# ls
authorized_keys
[root@localhost .ssh]# cat authorized_keys
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC3jJu7k3skpOWd5azNtHhohBCyQvcE5vMQblIICOn48GGL3h1tQ9d7m34liu7YdXcdY+oLyQvgl23xiP9Au8ug= root@client
6.客户端远程密钥对登录验证
[root@client .ssh]# ssh chen@192.168.17.128
Enter passphrase for key ‘/root/.ssh/id_ecdsa‘:
Last login: Sat Aug 10 00:32:52 2019
7.免交互,免去密钥对登录验证
[chen@localhost ~]$ exit
登出
Connection to 192.168.17.128 closed.
[root@client .ssh]# ssh-agent bash//代理bash环境
[root@client .ssh]# ssh-add//添加我们密钥对的密码
Enter passphrase for /root/.ssh/id_ecdsa:
Identity added: /root/.ssh/id_ecdsa (/root/.ssh/id_ecdsa)
[root@client .ssh]# ssh chen@192.168.17.128
Last login: Mon Sep 16 13:09:06 2019 from 192.168.17.134
[chen@localhost ~]$
三.Tcp wappers 访问控制
访问控制策略:1.到服务端设置访问控制
先检查hosts.allow,找到匹配则允许访问
?否则再检查hosts.deny,找到则拒绝访问
?若两个文件中均无匹配策略,则默认允许
访问
[root@localhost ~]# vim /etc/hosts.allow
hosts.allowThis file contains access rules which are used to
allow or deny connections to network services that
either use the tcp_wrappers library or that have been
started through a tcp_wrappers-enabled xinetd.See ‘man 5 hosts_options‘ and ‘man 5 hosts_access‘
for information on rule syntax.
See ‘man tcpd‘ for information on tcp_wrapperssshd:192.168.17.130//添加只允许访问的地址
~
[root@localhost ~]# vim /etc/hosts.deny
hosts.denyThis file contains access rules which are used to
deny connections to network services that either use
the tcp_wrappers library or that have been
started through a tcp_wrappers-enabled xinetd.The rules in this file can also be set up in
/etc/hosts.allow with a ‘deny‘ option instead.See ‘man 5 hosts_options‘ and ‘man 5 hosts_access‘
for information on rule syntax.
See ‘man tcpd‘ for information on tcp_wrapperssshd:192.168.17.128
~
~
~
以上就是我们的所有内容了
推荐阅读
- Caused by: java.lang.IllegalStateException: Ambiguous mapping found
- PowerShell数组用法例子
- PowerShell算术运算符
- PouchDB更新批处理示例
- PowerShell教程介绍
- PouchDB复制(制作数据库副本)
- PouchDB检索附件示例
- PouchDB教程介绍
- PouchDB读取批处理