ssh

会哭的雨 2019-12-23

上级回顾:

实时同步:          
实时同步实现原理:   rsync --delete
实时同步场景:      
    1.NFS单点故障 (不建议)     -->    Glusterfs FastDfs  OSS
    2.迁移 ( 静态资源    )
    应用场景例如CDN镜像、
    网站数据备份、
    网站搬家等等。

sersync怎么用?    二进制,解压即用
lsyncd            https://www.cnblogs.com/jiangzhaowei/p/8298416.html

用户-->上传视频--->web--->存储NFS--->变化--->同步--->备份服务器

1.什么是SSH?

ssh是一个应用层安全协议

2.SSH主要的功能是?

实现远程登录,  数据传输过程中进行加密.   钉钉(澡堂模式)
远程登录:
    SSH
    Telnet

3.SSH与Telnet之间有什么区别?

SSH     加密  22      root直接登录
Telnet  明文  23      不支持root直接登录

4.抓包分析SSH与Telnet的区别?

#Wireshark
[ ~]# yum install telnet-server -y
[ ~]# systemctl start telnet.socket

[ ~]$ echo oollddbbooyy  |sed -r 's#(.)(.)#\1#g'
oldboy

#PS:  
    服务器都是使用的SSH协议实现的远程登录
    对于路由器  交换机  都是走的telnet协议  (  WEB界面调试  )

5.SSH相关客户端指令ssh、scp、sftp?

#1.ssh      ( Windows Xshell Crt )   ( Mac   ssh命令  Crt )
[ ~]# ssh 
's password: 

#2.scp:   rsync增量    scp 全量(每次都是覆盖)  ssh协议
拷贝目录 需要  -r参数
推送
[ ~]# scp ./web-file :/tmp

#获取
[ ~]# scp  :/tmp/web-file  ./test

#限速 ( kb  1024 * 8 = 实际的传输速率 )
[ ~]# scp -l 8192 ./1.txt 172.16.1.41:/tmp
's password: 
1.txt                           14%   74MB   1.0MB/s   07:09 

#3.sftp 文件传输协议?
    为什么不适用命名的方式?  为什么使用xftp?
        1.简单,带图形,支持断点续传,支持暂停

6.SSH远程登录方式、用户密码、秘钥方式?

#1.基于用户和密码的方式
    1.密码太复杂容易忘  lastpass
    2.密码太简单不安全

#2.基于密钥的方式实现        (指纹)
    1.降低密码泄露风险
    2.提升用户的便捷性
    
#3.实现免密码登录方式
    #1.创建一对密钥   公钥+私钥 ==配套
    [ ~]# ssh-keygen -C 
    .....一路回车.....

    #2.将管理机的公钥推送至web服务器上   ( 需要输入对端服务器的密码  )
    [ ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 
    
    #3.使用 ssh 命令 连接 对应的服务器   ( 检查是否免密码  )
    [ ~]# ssh ''
    
    #4.有问题查看
    tail -f /var/log/secure
    https://www.jianshu.com/p/fb0df700305d

Windows

ssh

ssh

ssh

systemctl restart sshd

ssh

直接点击回车

7.SSH远程连接功能安全优化? fail2ban又是啥?(研究)

1.更改远程连接登陆的端口       port 6666
2.禁止ROOT管理员直接登录     PermitRootLogin no
    直接  xshell  -->root   --> server   (禁止用户名密码  禁止密钥)
    间接  xshell  -->oldxu  --> server  ---> su - root
3.密码认证方式改为密钥认证      PasswordAuthentication no
4.重要服务不使用公网IP地址     !!!!!!!!!!!!!!!!!
5.使用防火墙限制来源IP地址     软件防火墙  |  硬件防火墙

    10.0.0.1(其他人)    --->  10.0.0.61        异常
    10.0.0.100(公司)    --->  10.0.0.61       正常

6.修改后的配置  [测试完后记得还原]
[ ~]# vim /etc/ssh/sshd_config
Port 6666                       # 变更SSH服务远程连接端口
PermitRootLogin         no      # 禁止root用户直接远程登录
PasswordAuthentication  no      # 禁止使用密码直接远程登录
UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟

域名解析IP 
IP解析域名

8.fail2ban又是啥?(研究)

ail2ban可以监控系统日志,并且根据一定规则匹配异常IP后使用Firewalld将其屏蔽,尤其是针对一些爆破/扫描等非常有效。

#1.开启Firewalld防火墙
[ ~]# systemctl start firewalld
[ ~]# systemctl enable firewalld
[ ~]# firewall-cmd --state
running

#2.修改firewalld规则,启用Firewalld后会禁止一些服务的传输,但默认会放行常用的22端口, 如果想添加更多,以下是放行SSH端口(22)示例,供参考:

#放行SSHD服务端口
[ ~]# firewall-cmd --permanent --add-service=ssh --add-service=http 

#重载配置
[ ~]# firewall-cmd --reload

#查看已放行端口
[ ~]# firewall-cmd  --list-service

#3.安装fail2ban,需要有epel
[ ~]# yum install fail2ban fail2ban-firewalld mailx -y

#4.配置fail2ban规则.local会覆盖.conf文件
[ fail2ban]# cat /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 86400
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s

[sshd]
enabled = true
filter  = sshd
port    = 22
action = %(action_mwl)s
logpath = /var/log/secure

#5.启动服务,并检查状态
[ ~]# systemctl start fail2ban.service
[ ~]# fail2ban-client status sshd

#6.清除被封掉的IP地址
[ ~]# fail2ban-client set sshd unbanip 10.0.0.1

9.SSH如何结合Google Authenticator 实现双向验证? (适合自己用)

基于密码 + 动态口令     支持
基于密钥 + 动态口令     不支持
https://www.xuliangwei.com/bgx/1345.html

相关推荐