Day36-ssh远程控制

1.什么是SSH?

    ssh是一个应用层安全协议

2.SSH主要的功能是?

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

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

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

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

Wireshark

[root@backup ~]# yum install telnet-server -y
[root@backup ~]# systemctl start telnet.socket
[oldboy@backup ~]# echo oollddbbooyy  |sed -r 's#(.)(.)#\1#g' (提取oldboy)
oldboy     

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

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

  • ssh
    (windows Xshell Crt)
[root@web01 ~]# ssh [email protected]
        [email protected]'s password: 
  • scp:rsync增量 scp全量(每次都是覆盖)
    1.ssh协议
    2.拷贝目录 需要-r参数
    推送
[root@web01 ~]# scp ./web-file [email protected]:/tmp

获取

[root@web01 ~]# scp [email protected]:/tmp/web-file ./test

限速(kb 1024 * 8 =实际的传输速率)

[root@web01 ~]# scp -l 8192 ./1.txt 172.16.1.41:/tmp
[email protected]'s password: 
  • sftp 文件传输协议
    简单,带图形,支持断点续传,支持暂停

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

1.基于用户和密码的方式
密码太复杂容易忘
密码太简单不安全
2.基于密钥的方式实现
降低密码泄露风险
提升用户的便捷性
3.实现免密码登录方式
1.创建一对密钥

[root@manager ~]# ssh-keygen -C manager.com

2.将管理机的公钥推送至web服务器上

[root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]:/

3.使用 ssh 命令 连接 对应的服务器 ( 检查是否免密码 )

[root@manager ~]# ssh '[email protected]'

4.有问题查看

[root@manager ~]# tail -f /var/log/secure

7.SSH场景实践,借助SSH免秘实现跳板机功能?

8.SSH远程连接功能安全优化? (etc/ssh/sshd.config)

1.更改远程连接登陆的端口
port 22
2.禁止ROOT管理员直接登录
PermitRootLogin no
3.密码认证方式改为密钥认证
PasswordAuthentication no

4.重要服务不使用公网IP地址
5.使用防火墙限制来源IP地址

6.修改后的配置 [测试完后记得还原]

[root@manager ~]# vim /etc/ssh/sshd_config
Port 6666                       # 变更SSH服务远程连接端口
PermitRootLogin         no      # 禁止root用户直接远程登录
PasswordAuthentication  no      # 禁止使用密码直接远程登录
UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟

9.fail2ban又是啥?(研究)

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

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

2.修改firewalld规则,启用Firewalld后会禁止一些服务的传输,但默认会放行常用的22
端口, 如果想添加更多,以下是放行SSH端口(22)示例,供参考:
    #放行SSHD服务端口
    [root@bgx ~]# firewall-cmd --permanent --add-service=ssh --add-service=http 
    #重载配置
    [root@bgx ~]# firewall-cmd --reload
    #查看已放行端口
    [root@bgx ~]# firewall-cmd  --list-service
    3.安装fail2ban,需要有epel

    [root@bgx ~]# yum install fail2ban fail2ban-firewalld mailx -y
    4.配置fail2ban规则.local会覆盖.conf文件

    [root@bgx 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.启动服务,并检查状态

    [root@bgx ~]# systemctl start fail2ban.service
    [root@bgx ~]# fail2ban-client status sshd
    
    6.清除被封掉的IP地址
    [root@bgx ~]# fail2ban-client set sshd unbanip 10.0.0.1

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

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

你可能感兴趣的:(Day36-ssh远程控制)