centos6和centos7升级openssh7.5脚本

#!/bin/bash
#升级openssh版本

#判断系统用户使用脚本

if [ $(whoami) != "root" ]

    then
        echo -e "\033[31mWarning : Can not use the current user operating! \033[0m"
        echo -e "\033[31mWarning : Please use the \033[0m \033[32m root \033[0m \033[31muser! \033[0m"
        exit 1
fi;


#判断系统版本是否为x86_64

platform=$(uname -i)
if [ $platform != "x86_64" ];
    then 
        echo -e "\033[31m this script is only for 64bit Operating System ! \033[0m"
        exit 1
fi;

echo -e "\033[32m the platform is ok \033[0m"

cat << EOF
+---------------------------------------+
|   your system is CentOS x86_64      |
|      start optimizing.......          |
+---------------------------------------+
EOF



function centos6()
{

    yum install telnet-server -y

    sed '12d' /etc/xinetd.d/telnet
    sed '11a disable         = no' /etc/xinetd.d/telnet

    service xinetd restart                  

    yum install gcc -y

    yum install openssl-devel -y

    yum install wget -y
    
    #project_path=$(cd `dirname $0`; pwd)
    
    mkdir -p /opt/ssh_update
    
    cd /opt/ssh_update/
    
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
    
    #tar -zxvf $project_path/openssh-7.5p1.tar.gz
    
    tar -zxvf /opt/ssh_update/openssh-7.5p1.tar.gz
    
    cd /opt/ssh_update/openssh-7.5p1/
    
    ./configure
    
    make && make install
    
    cp /etc/init.d/sshd /etc/init.d/sshd_$(date +"%Y%m%d_%H%M%S")
    
    sed -i 's#SSHD=/usr/sbin/sshd#SSHD=/usr/local/sbin/sshd#' /etc/init.d/sshd
    
    echo -e "PermitRootLogin yes\nPasswordAuthentication yes" >> /usr/local/etc/sshd_config
    
    mv /usr/bin/ssh  /usr/bin/ssh_$(date +"%Y%m%d_%H%M%S")
    
    mv /usr/local/bin/ssh /usr/bin/ssh
    
    /etc/init.d/sshd restart
    
    #/usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config

}


function centos7()
{

    yum install -y telnet-server
    yum install -y xinetd 
    
    systemctl enable xinetd.service
    systemctl enable telnet.socket
    systemctl start telnet.socket
    
    echo -e "pts/0\npts/1"  >> /etc/securetty
    
    systemctl start xinetd
    
    firewall-cmd --zone=public --add-port=23/tcp --permanent
    firewall-cmd --reload
    
    yum -y install pam-devel.x86_64 zlib-devel.x86_64
    
    yum install gcc -y
    
    yum install openssl-devel -y
    
    yum install wget -y
    
    mv /etc/ssh/ /etc/ssh_$(date +"%Y%m%d_%H%M%S")
    
    mkdir -p /opt/ssh_update
    
    cd /opt/ssh_update/
    
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
    
    tar -zxvf openssh-7.5p1.tar.gz
    
    cd /opt/ssh_update/openssh-7.5p1
    
    ./configure --prefix=/usr --sysconfdir=/etc/ssh
    
    make 
    
    rpm -e --nodeps `rpm -qa | grep openssh`
    
    make install
    
    cp contrib/redhat/sshd.init /etc/init.d/sshd
    
    chkconfig --add sshd
    
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    
    service sshd restart

}


#注意:centos7系统ssh服务升级完后运行此函数,关闭telnet服务
function stop_xinetd()
{

    centos=$(rpm -q centos-release|cut -d- -f3)

    if [ $centos -eq 6 ];

        then

                sed '12d' /etc/xinetd.d/telnet
                sed '11a disable         = yes' /etc/xinetd.d/telnet
                service xinetd restart        

        else

                systemctl disable xinetd.service
                systemctl disable telnet.socket
                systemctl stop telnet.socket
                systemctl stop xinetd
                firewall-cmd --zone=public --remove-port=23/tcp --permanent
                firewall-cmd --reload
    fi;

}


if [ "$1" = "stop_xinetd" ]; then

    stop_xinetd;

fi;

if [ "$1" = "update" ]; then

    centos=$(rpm -q centos-release|cut -d- -f3)

    if [ $centos -eq 6 ];

        then

            centos6;

        else

            centos7;
    fi;
fi;

 

posted @ 2019-09-29 13:36  海闊丶天空  阅读(411)  评论(0编辑  收藏  举报