自动升级OPENSSH shell脚本推荐

由于管理着两百多台Linux服务器,一个人搞这么多机器的安全加固比较累,因此在学习了shell脚本之后果断的写了一些常用脚本做一些系统日常维护,本文OPENSSH的升级是博主本人几乎每两三个月就要做一次升级的,没办法绿盟安全扫描系统总是扫描到相关的高危漏洞,再就是OPENSSH版本更新的也比较频繁,因此不偷懒几乎没法活了。废话不说了,在这里贴下脚本,已经在线上服务器上执行了上百次了,应该不会有什么问题。

#!/bin/bash#######################################################################updateopensslopensshscirpt##############Author:kl###########Date:2014/07/13###########LastModified:2016/06/02###########Warning:starttelnetservicebeforeusethescript########################################################################################################################################################### updateopensshandopenssl ######### ##### #######################################################################################Determinewhetherthecurrentsysteminstalledgcccompilertools zlib_version="zlib-1.2.8"openssl_version="openssl-1.0.2g"openssh_version="openssh-7.2p2"gcc_path=`whichgcc`#gcc_name=`basename$gcc_path`DATE=$(date+%Y%m%d)#OSTYPE#Distributor_ID=$(lsb_release-i)Distributor=`lsb_release-i|cut-c17-`#Determinewhethertherootuseruserid=`id-u`if["$userid"-ne0];then echo"sorry,onlyrootcanexecutethescript." exit#SETSELINUX=disabledif["$Distributor"!="SUSELINUX"];then sed-i'/SELINUX/s/enforcing/disabled/'/etc/selinux/config setenforce0#pam-devel,tcp_wrappers-develneedbeinstalled,Otherwise,thesoftwarewillinstallfailure#Supportfortcpwrappers/libwraphasbeenremovedinopenssh6.7if!rpm-qa|greppam-devel /dev/null;then echo"pam-develisnotinstalled" exit#if!rpm-qa|greptcp_wrappers-devel /dev/null;then# echo"tcp_wrappers-develnotinstalled" exit#Checkwhethertoopenthetelnetservicenetstat-tnlp|grep-w23RETVAL3=$?if[$RETVAL3-eq0];then echo"telnetserviceisrunning------------[yes]" echo"telnetserviceisnotrunning--------[no]" exit#Determinewhethertoinstallgccpackageif[-e"$gcc_path"];then echo"gccisinstalled----------------[yes]"else  echo"gccisnotinstalled------------[no]" exit#stopsshdservicenetstat-tnlp|grep-w22RETVAL4=$?if[$RETVAL4-eq0];then servicesshdstop echo"stopsshdservice--------------[yes]"if[-e/etc/init.d/sshd];thencp/etc/init.d/sshd/root#removeopenssh*.rpmifexistsifrpm-qa|grepopenssh /dev/null; thenrpm-qa|grepopenssh openssh_list.txtwhilereadline rpm-e$line--nodeps echo"remove$linesuccess------------[yes]"done openssh_list.txt###########installzlib##################tar-zxvf"${zlib_version}.tar.gz" /dev/nullcd$zlib_version./configureRETVAL5=$?if[$RETVAL5-ne0];then echo"Configurezlibhasencounteredanerror" exitRETVAL6=$?if[$RETVAL6-ne0];then echo"makezlibhasencounteredanerror" exitmakeinstallcd..echo"#########################################################"echo"#################################"echo"################zlibinstallsuccess#################"echo"#################################"echo"#########################################################"sleep2##########installopenssl#############tar-zxvf"${openssl_version}.tar.gz" /dev/nullcd$openssl_version./configsharedzlibRETVAL7=$?if[$RETVAL7-ne0];then echo"Configureopensslhasencounteredanerror" exitRETVAL8=$?if[$RETVAL8-ne0];then echo"makeopensslhasencounteredanerror" exitmakeinstallif[-e/usr/bin/openssl];then mv/usr/bin/openssl/usr/bin/openssl.OFF ln-s/usr/local/ssl/bin/openssl/usr/bin/openssl ln-s/usr/local/ssl/bin/openssl/usr/bin/opensslif[-e/usr/include/openssl];then mv/usr/include/openssl/usr/include/openssl.OFF ln-s/usr/local/ssl/include/openssl/usr/include/openssl ln-s/usr/local/ssl/include/openssl/usr/include/openssl##Add"/usr/local/ssl/lib"to/etc/ld.so.confssl_lib=`grep-w"/usr/local/ssl/lib"/etc/ld.so.conf`if[!-e"$ssl_lib"];then echo"/usr/local/ssl/lib" /etc/ld.so.confecho"#########################################################"echo"#################################"echo"################opensslinstallsucess################"echo"#################################"echo"#########################################################"sleep2#############installopenssh##############if[-e/etc/ssh];then mv/etc/ssh/etc/ssh_$DATEtar-zxvf"${openssh_version}.tar.gz" /dev/nullcd$openssh_version./configure--prefix=/usr--sysconfdir=/etc/ssh--with-zlib--with-pam--with-ssl-dir=/usr/local/ssl--with-md5-passwordsRETVAL9=$?if[$RETVAL9-ne0];then echo"Configureopensshhasencounteredanerror" exitRETVAL10=$?if[$RETVAL10-ne0-a$RETVAL10-ne0];thenecho"makeopensshhasencounteredanerror"exitmakeinstallif["$Distributor"=="SUSELINUX"];then cdcontrib/suse cprc.sshd/etc/init.d/sshd chmod+x/etc/init.d/sshd chkconfig--addsshd cdcontrib/redhat cpsshd.init/etc/init.d/sshd chmod+x/etc/init.d/sshd chkconfig--addsshd#AgenericPAMconfigurationisincludedas"contrib/sshd.pam.generic",#youmayneedtoedititbeforeusingitonyoursystem.cd..cpsshd.pam.generic/etc/pam.d/sshdsed-i's/\/lib\/security\///g'/etc/pam.d/sshd#Modify/etc/ssh/sshd_config#Backup/etc/ssh/sshd_configcp-p/etc/ssh/sshd_config/etc/ssh/sshd_config_bak#ThedefaultsetofciphersandMACshasbeenalteredto#removeunsafealgorithms.Inparticular,CBCciphersandarcfour*#aredisabledbydefault.#ChangessinceOpenSSH6.6echo"KexAlgorithmsdiffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org" /etc/ssh/sshd_configecho"Ciphersaes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc" /etc/ssh/sshd_configecho"MACshmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96" /etc/ssh/sshd_config#Disablerootaccessviasshtoserver#*Thedefaultforthesshd_config(5)PermitRootLoginoptionhaschangedfrom"yes"to"prohibit-password".#*PermitRootLogin=without-password/prohibit-passwordnowbansall#interactiveauthenticationmethods,allowingonlypublic-key,#hostbasedandGSSAPIauthentication(previouslyitpermitted#keyboard-interactiveandpassword-lessauthenticationifthose#wereenabled).#PermitRootLoginprohibit-passwordisthedefaultsinceversion7.0p1sed-i's/^#PermitRootLogin/PermitRootLogin/'/etc/ssh/sshd_config#sed-i'/PermitRootLogin/s/yes/no/'/etc/ssh/sshd_configsed-i'/PermitRootLogin/s/prohibit-password/no/'/etc/ssh/sshd_config#Set'UsePAMno'to'UsePAMyes'toenablePAMauthentication,accountprocessing,#andsessionprocessingsed-i'/^#UsePAMno/aUsePAMyes'/etc/ssh/sshd_config#Startsshdprocessservicesshdstart#Disabletelnetserviceifnetstat-tnlp|grep-w22 /dev/null;thensed-i'/disable/s/no/yes/'/etc/xinetd.d/telnetservicexinetdrestartecho"#########################################################"echo"#################################"echo"################opensshinstallsucess################"echo"#################################"echo"#########################################################"echo"###############sshversion#################################################"echo"###################################################################################"sshd-vecho"####################################################################################"echo"####################################################################################"

你被雨淋湿的心,是否依旧。

自动升级OPENSSH shell脚本推荐

相关文章:

你感兴趣的文章:

标签云: