球baba的欢乐时光

vuePress-theme-reco 球baba    2020 - 2025
球baba的欢乐时光 球baba的欢乐时光

Choose mode

  • dark
  • auto
  • light
Home
Category
  • 伪技术宅
Tag
TimeLine
Contact
  • reco_luan大大的NPM
  • reco_luan大大的GitHub
author-avatar

球baba

27

文章

58

标签

Home
Category
  • 伪技术宅
Tag
TimeLine
Contact
  • reco_luan大大的NPM
  • reco_luan大大的GitHub
  • centos7升级openssh9.3p1

    • 开荒新服务器
      • 站在前人的肩膀上
        • 升级openssl
        • 升级openssh

    centos7升级openssh9.3p1

    vuePress-theme-reco 球baba    2020 - 2025

    centos7升级openssh9.3p1


    球baba 2023-04-05 22:30:00 centos7 openssh openssl

    # 开荒新服务器

    搬瓦工又要续费了,平时用着延时高,有时还会卡到连不上,相比virmach 7刀的日本节点简直就是依托答辩,看看有没有能平替的?

    阿里云新加坡节点直接劝退,丢包率超过50%,感谢5天无理由退货。

    阿里云的服务简直无话可说,退货还来问啥原因,顺手推荐了自家的VPN -.-b

    腾讯云首尔节点,延迟比virmach日本稍高,但比搬瓦工要低一半,但价格比打折的搬瓦工还要贵,竟然没有年付85折,也是坑子,但胜在算是能正常使用了。

    新服务器上手第一件事就是把openssh升级到最新版

    # 站在前人的肩膀上

    本次升级参考的是这篇文章《centos7——OpenSSH.7.4升级OpenSSH 9.2》 ,虽然文章里是9.2,但最终测试下来对于centos7.6升级openssh9.3p1也是适用的。

    # 升级openssl

    就改动了一个参数,把make -j 4 改为 make -j $(nproc) ,其余照搬就行,以root用户执行下列命令

    #下载文件
    wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1t.tar.gz
    
    #解压文件
    tar -zxf openssl-1.1.1t.tar.gz
    
    #编译安装
    cd openssl-1.1.1t
    ./config -Wl,-rpath=/usr/lib64 --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/usr/lib64
    make -j $(nproc) && make install
    
    #替换旧文件
    mv /usr/bin/openssl /usr/bin/openssl.bak
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    
    #验证
    openssl version
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    # 升级openssh

    考虑到一般网络上针对openssh的攻击是基于版本号的,所以首先要修改版本号。

    只是没想到openssh最新版已经是9.3了,以前隐藏版本改为9.9是没想到openssh的版本会涨得这么快,这次改得再大一点,感觉有生之年应该是升不到这个版本号了。以root用户执行下列命令

    #下载文件
    cd ~
    wget https://mirrors.aliyun.com/openssh/portable/openssh-9.3p1.tar.gz
    
    #解压文件
    tar -zxf openssh-9.3p1.tar.gz
    
    #修改版本号
    cd openssh-9.3p1
    vim version.h
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    改成如下样式,如按自己喜好设置版本名称

    #define SSH_VERSION     "OpenSSH_999.999"
    
    #define SSH_PORTABLE    "p999"
    #define SSH_RELEASE     SSH_VERSION SSH_PORTABLE
    
    1
    2
    3
    4

    然后基本按文章操作,除了编译参数变一下之外,还加了复制几个文件,这样就可以用systemctl来管理了

    #安装依赖
    yum -y install pam-devel
    
    #备份
    cd ~
    $ mkdir -p ~/ssh_bak/etc/ssh/ && mkdir -p ~/ssh_bak/usr/bin/ && mv /etc/ssh/ ~/ssh_bak/etc/ssh/ && mv /usr/bin/{ssh*,scp,sftp} ~/ssh_bak/usr/bin/
    
    #编译安装
    cd openssh-9.2p1
    ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-pam --with-md5-passwords --with-selinux && make -j $(nproc) && make install
    echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
    echo 'UsePAM yes' >> /etc/ssh/sshd_config
    
    # 复制到系统服务目录
    cp -a contrib/redhat/sshd.init /etc/init.d/sshd
    cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
    
    # 移走之前的服务
    mv /usr/lib/systemd/system/sshd.service ./sshd.service.old
    
    # 设置开机启动
    chkconfig --add sshd
    systemctl enable sshd
    /usr/lib/systemd/systemd-sysv-install enable sshd
    systemctl enable sshd
    
    #验证(可以看到自己设置的版本号)
    ssh -V
    
    #重启服务(可以再次用ssh连接上)
    systecmctl restart sshd
    
    #重启系统(可以再次用ssh连接上)
    reboot now
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34

    重启服务与重启系统都验证通过后,就说明openssh升级成功了。如果登录不上最简单的方法就是重装系统,也可以通过云服务商提供的vnc或其它方式登录后在/var/log/messages中跟踪日志消息进一步排查故障原因。

    调试完成后,从主机安全的角度应是禁止root直接登录的,所以需要把/etc/ssh/sshd_config中自己加的PermitRootLogin yes注释掉,但需要提前新建个普通用户,以免影响登录。


    🌻🌻🌻