升级生产环境CentOS7的SSH,解决一些安全性问题

升级资源准备

  • Telnet
  1. Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。
  • SSL
  1. SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。
  2. 下载地址:https://www.openssl.org/source/
  3. 本次安装使用版本:openssl-1.0.2s.tar.gz,下载地址:openssl-1.0.2s.tar.gz
  • SSH
  1. OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件
  2. 下载地址:http://www.openssh.com/portable.html
  3. 本次安装使用版本:openssh-8.0p1.tar.gz,下载地址:openssh-8.0p1.tar.gz

安装Telnet

  • 安装Telnet目的
    防止在升级过程中SSH远程登录不可用导致连接不上服务器
  • 查看防火墙状态
    firewall-cmd --state
    如果没有开启就不需要管,开启了就需要关闭防火墙或者开放23端口,其中telnet的默认端口为23
  • 安装Telnet相关工具
  1. 安装telnet-server和xinetd
    sudo yum install -y xinetd telnet-server
  2. 配置telnet
    使用以下命令确认是否有telnet文件,没有调过以下操作,进入步骤3:
    ll /etc/xinetd.d/telnet
    修改telnet文件:
    sudo vim /etc/xinetd.d/telnet
    修改如下信息:
    disable = yes
  3. 配置telnet登录
    修改securetty文件
    sudo vim /etc/securetty
    在末尾加入:
    pts/0
    pts/1
    pts/2
    pts/3
  4. 启动telnet服务
    sudo systemctl enable xinetd
    sudo systemctl enable telnet.socket
    sudo systemctl start telnet.socket
    sudo systemctl start xinetd
    查看服务是否启动
    sudo netstat -lntp | grep 23
  5. 使用xshell连接测试,选择telnet协议连接,如下图所示:
    在这里插入图片描述
  6. 如果连接不上,尝试如下步骤:
    编辑remote文件:
    sudo vi /etc/pam.d/remote
    将如下信息注释:
    #auth required pam_securetty.so
    编辑login文件:
    将如下信息注释:
    #auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
    重新使用xshell连接测试
  7. 需要本机测试可以安装telnet客户端
    sudo yum install -y telnet
    测试命令:telnet 127.0.0.1 23

升级SSL

  • 安装需要的包
    sudo yum install -y pam* zlib* gcc
    可以使用gcc -v看一下有没有gcc相关编译包

  • 安装openssl

  1. 查找openssl相关文件
    find / -name openssl
  2. 备份旧的文件
    ll /usr/bin/openssl
    sudo mv /usr/bin/openssl /usr/bin/openssl_bak
    ll /usr/lib64/openssl
    sudo mv /usr/lib64/openssl /usr/lib64/openssl_bak
    其中ll命令可以先确认一下有没有对应的文件
  3. 进入解压的openssl目录,开始安装openssl:
sudo ./config shared && sudo make && sudo make install
  1. 查看安装过程中有没有出错
    sudo echo $?
    输出为0就没有出错

  2. 建立软链接
    sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    sudo ln -s /usr/local/ssl/include/openssl /usr/include/openssl

  3. 加载新配置
    echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
    这里如果不是使用root账号会提示没有权限,可以使用vim直接将/usr/local/ssl/lib维护到ld.so.conf文件中。

    继续执行命令: /sbin/ldconfig

  4. 查看版本
    openssl version

升级SSH

  • 安装openssh
  1. 删除原有或进行备份,以下进行备份
    sudo mkdir /etc/ssh.bak
    sudo cp -r /etc/ssh/. /etc/ssh.bak/
    sudo rm -rf /etc/ssh/*

  2. 进入openssh解压路径,编译安装

sudo ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam  && sudo make && sudo make install
  1. 查看编译安装有没有报错
    sudo echo $?
    输出为0就没有出错

  2. 修改配置文件如下:
    sudo vim /etc/ssh/sshd_config
    修改或添加内容如下:
    UsePAM yes
    PermitRootLogin yes
    UseDNS no

  3. 在解压目录openssh目录下复制文件,如下操作:
    sudo cp -a contrib/redhat/sshd.init /etc/init.d/sshd
    sudo cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
    sudo chmod +x /etc/init.d/sshd
    sudo chkconfig --add sshd
    sudo systemctl enable sshd

  4. 将原有的sshd文件删除或移动到其他目录,这里选择移动
    sudo mv /usr/lib/systemd/system/sshd.service /home/software/

  5. 设置开机自启动
    sudo chkconfig sshd on

  6. 启停操作
    sudo /etc/init.d/sshd restart
    sudo /etc/init.d/sshd start
    sudo /etc/init.d/sshd stop

  7. 查看端口
    netstat -lntp | grep 22

  8. 查看版本
    ssh -V

  9. 使用xshell连接测试,连接上之后进行步骤12.

  10. 禁用telnet
    sudo systemctl disable xinetd.service
    sudo systemctl stop xinetd.service
    sudo systemctl disable telnet.socket
    sudo systemctl stop telnet.socket

  11. 查看是否禁用成功
    netstat -lntp | grep 23

  12. 恢复安装telnet进行注释的部分

  13. 如果安装了telnet的客户端也将客户端卸载。
    使用如下命令查询是否有telnet安装包
    sudo rpm -qa | grep telnet
    卸载
    sudo rpm -e 上面查询到的名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值