• Suse11 sp3 下升级 openssh-7.1脚本


    客户系统检测出openssh版本过旧存在漏洞,所以决定写个脚本,需要四个包:openssh-7.1p2.tar,openssl-1.0.1s.tar,telnet-server-1.2-149.1.x86_64,zlib-1.2.8.tar

    telnet 配置
      1 # default: off
      2 # description: Telnet is the old login server which is INSECURE and should 
      3 #   therefore yest be used. Use secure shell (openssh).
      4 #   If you need telnetd yest to "keep-alives" (e.g. if it runs over a ISDN 
      5 #   uplink), add "-n".  See 'man telnetd' for more details.
      6 service telnet
      7 {
      8     socket_type = stream
      9     protocol    = tcp
     10     wait        = no
     11     user        = root
     12     server      = /usr/sbin/in.telnetd
     13     disable     = no
     14 }

    脚本如下:(亲测,可用)

    #!/bin/bash
    #program : Server auto deploy
    #author : shenjianyu@thinktrader.net
    #version : latst
    #function : update openssh
    
    
    ##当前路径
    current_dir="$(pwd) "
    zlib_version="zlib-1.2.8"
    openssh_version="openssh-7.1p2"
    openssl_version="openssl-1.0.1s"
    DATE=`date +%Y%m%d`
    Distributor=`lsb_release -i|cut -c 17-`
    BLUE_COLOR='E[1;34m' #蓝
    RED_COLOR='E[1;31m' #红
    BLACK_COLOR='E[1;30m' #黑
    
    echo -e "${RED_COLOR}########################################################################################${RES}"
    echo -e "${RED_COLOR}################### #################### "
    echo -e "${RED_COLOR}################### openssh install -----[success] #################### "
    echo -e "${RED_COLOR}################### #################### "
    echo -e "${RED_COLOR}################### #################### "
    echo -e "${RED_COLOR}########################################################################################${RES}"
    echo -e "${BLACK_COLOR} ${RES}"
    sleep 5
    
    ##检查系统当前用户
    if [ `id -u` != 0 ]; then
    echo "Error: if you want to run this script,please use root to execute;"
    exit 1
    fi
    
    ##安装telnet
    cd $current_dir
    rpm -ivh telnet-server-1.2-149.1.x86_64.rpm
    sed -e 's/yes/no/g' /etc/xinetd.d/telnet
    /etc/init.d/xinetd restart
    chkconfig --list | grep telnet
    if [ $? -eq 0 ]; then
    echo "install telnet ---------------------------[success]"
    fi
    sleep 5
    
    ##记录当前openssh版本信息
    cd $current_dir
    touch openssh_version.txt > /dev/null
    echo `ssh -V` &> $current_dir/openssh_version.txt
    
    ##安装zlib,构建共享库
    cd $current_dir
    tar -zxvf zlib-1.2.8.tar.gz
    cd $zlib_version
    ./configure --shared
    sleep 3
    /usr/bin/make install
    cp zutil.h /usr/local/include
    cp zutil.c /usr/local/include
    /sbin/ldconfig -v
    sleep 2
    
    ##进入安装包上传目录,解压openssl
    cd $current_dir
    tar -zxvf openssl-1.0.1s.tar.gz
    cd $openssl_version
    ./config shared zlib
    sleep 3
    /usr/bin/make
    sleep 2
    /usr/bin/make install
    echo "install openssl --------------------------[success]"
    sleep 5
    
    ##修改配置文件,显示正常版本信息
    mv `which openssl` /usr/bin/openssl.bak
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    echo `ssh -V` &> /$current_dir/openssh_version.txt
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    /sbin/ldconfig -v
    
    ##软件安装之-Openssh安装
    ##禁用sshd服务,卸载原来的openssh版本
    /sbin/service sshd stop
    cp /etc/init.d/sshd /root/
    if rpm -qa | grep openssh &> /dev/null
    then
    rpm -qa | grep openssh &> $current_dir/openssh_version.txt
    while read line
    do
    rpm -e $line --nodeps
    echo "remove $line ------------------------------[success]"
    done <$current_dir/openssh_version.txt
    fi
    
    ##解压缩openssh安装包,并进入解压缩文件编译安装
    cd $current_dir
    tar -zxvf openssh-7.1p2.tar.gz
    cd $openssh_version
    ./configure --prefix=/usr --with-zlib=/root/zlib-1.2.8 --with-md5-passwords
    sleep 2
    /usr/bin/make
    sleep 2
    /usr/bin/make install
    
    ##启动调试ssh
    #OS type
    if [ "$Distributor" == "SUSE LINUX" ]; then
    cd contrib/suse
    cp rc.sshd /etc/init.d/sshd
    chmod +x /etc/init.d/sshd
    chkconfig --add sshd
    else
    
    cd contrib/redhat 
    cp sshd.init /etc/init.d/sshd
    chmod +x /etc/init.d/sshd
    chkconfig --add sshd
    
    fi
    sed -i '10a PermitRootLogin YES' /usr/etc/sshd_config
    service sshd restart
    chkconfig sshd on
    if netstat -tnlp | grep -w 22 &> /dev/null; then
    echo "Start debugging-----------------------------------[success]" 
    echo -e "${BLUE_COLOR}########################################################################################${RES}"
    echo -e "${BLUE_COLOR}################### #################### "
    echo -e "${BLUE_COLOR}################### openssh install -----[success] #################### "
    echo -e "${BLUE_COLOR}################### #################### "
    echo -e "${BLUE_COLOR}################### #################### "
    echo -e "${BLUE_COLOR}########################################################################################${RES}"
    sleep 3
    sed -i 's/no/yes/g' /etc/xinetd.d/telnet
    /etc/init.d/xinetd restart
    fi
    ssh -V
    exit 0
  • 相关阅读:
    Centos7 JDK8安装配置
    select2
    docker 删除多个退出的容器
    redis 批量删除多个key
    Dockerfile 文件命令
    Docker部署go示例
    php 导入 excel 文件
    rabbitmq安装
    rabbitmq之php客户端使用实例
    k8s
  • 原文地址:https://www.cnblogs.com/shenjianyu/p/6397150.html
Copyright © 2020-2023  润新知