文章目录
-
- 需要升级的服务,tomcat、nginx、openssh
- 需要准备环境
- 升级案例一 tomcat升级
- 查看tomcat版本
- 先停止服务
- 打包现有Tomcat目录下logs和webapps目录
- 备份现有Tomcat目录
- 准备tomcat最新版war包,没有去官网下载
- 上传Tomcat安装包并解压
- 环境变量我这里没有配置,因为上面老版本已经配置啦
- 迁移原项目及日志
- 再进入新版的tomcat下面
- 启动验证
- 查看版本
- 如果有需要改端口可以进行修改
- 升级案例二 openssh升级
- 安装telnet
- 配置telnet登录的终端类型,在/etc/securetty文件末尾增加一些pts终端,如下
- 启动
- 切换到telnet方式登录,以后的操作都在telnet终端下操作,防止ssh连接意外中断造成升级失败
- 2、升级准备工作
- 需要将openssh升级到最新版本
- 安装需要的依赖包
- 安装包准备
- 解压安装包,我习惯将安装包解压到/usr/local/下面
- 安装 openssl-1.1.1h.tar.gz
- 注: -v或–verbose:用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.
- 安装openssh-8.8p1.tar.gz
- sshd_config文件修改(以实际情况进行修改,源配置文件没有就不用添加)
- 备份 /etc/ssh 原有文件,并将新的配置复制到指定目录
- 启动sshd
- 添加开机启动
- 测试一下用其他用户能不能登录 ssh服务
- 删除Telnet服务
- 升级openssh遇到的问题总结
- 问题一启动不起来 sshd
- 问题二遇到其用户不能远程登录其他服务器
需要升级的服务,tomcat、nginx、openssh
这里我自己总结一下,所谓的打补丁,升级,就是公司的服务器版本比较低,都是需要升级的,没有再最新版本,他们公司自己内部的系统就会扫描出来各种各样的漏洞,需要你去打补丁,如果这个时候你一个一个去打补丁,会有上百上千个根本补不完,最好的方法就是给他们服务升级到最新版本,一劳永逸。
需要准备环境
第一,如果是局域网的话,可能是没有网,你需要提前准备这些服务的war包,提前下好,还有编译环境什么的,都有需要提前下载到自己的优盘里面。
第二,他们服务能不能停你也不知道,所以你就需要问他们能不能停服务,不能停就需要等到他们下班,你再去升级。
升级案例一 tomcat升级
原本版本tomca-8.5版本------升级到10.4
先查看tomcat有没有在运行
查看tomcat版本
[root@k8s-master bin]# pwd
/usr/local/tomcat/bin
[root@k8s-master bin]# ./version.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.46
Server built: Sep 16 2019 18:16:19 UTC
Server number: 8.5.46.0
OS Name: Linux
OS Version: 3.10.0-1160.49.1.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_121-b13
JVM Vendor: Oracle Corporation
[root@k8s-master bin]#
先停止服务
./shutdown.sh
打包现有Tomcat目录下logs和webapps目录
cd
cd apache-tomcat-8.5
tar cvf logs.tar logs
tar cvf webapps.tar webapps
备份现有Tomcat目录
cd
mv apache-tomcat-8.5 apache-tomcat-8.5.bak
准备tomcat最新版war包,没有去官网下载
jdk就不用下载啦,一般有老版本jdk默认都是给配置好的
上传Tomcat安装包并解压
cd
tar xvf apache-tomcat-10.0.14.tar.gz -C /usr/local
环境变量我这里没有配置,因为上面老版本已经配置啦
vim /etc/profile
source /etc/profile
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
查看一下jdk版本,这一步可以省略
[root@k8s-master tomcat]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
迁移原项目及日志
先移动到老版本目录下,把默认发布目录以及日志都进行打包一下
cd apache-tomcat-8.5.46.bak
mv webapps webapps_bak
再进入新版的tomcat下面
cp /apache-tomcat-6.0.18_bak/webapps.tar ./
cp /apache-tomcat-6.0.18_bak/logs.tar ./
tar xvf webapps.tar
tar xvf logs.tar
启动验证
[root@k8s-master bin]# pwd
/usr/local/tomcat/bin
[root@k8s-master bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
查看版本
./version.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/10.0.14
Server built: Dec 2 2021 22:01:36 UTC
Server number: 10.0.14.0
OS Name: Linux
OS Version: 3.10.0-1160.49.1.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_121-b13
JVM Vendor: Oracle Corporation
如果有需要改端口可以进行修改
[root@k8s-master conf]# pwd
/usr/local/tomcat/conf
[root@k8s-master conf]# ls
Catalina context.xml logging.properties tomcat-users.xsd
catalina.policy jaspic-providers.xml server.xml web.xml
catalina.properties jaspic-providers.xsd tomcat-users.xml
[root@k8s-master conf]# vim server.xml
升级案例二 openssh升级
离线升级CentOS7.x的openssh8.8p1详解
先查看原先的版本
创建用户,因为root用户一般都不支持远程登录
先创建普通用户
useradd 用户名
passwd 改密码
[root@k8s-master openssh]# ssh -V
OpenSSH_8.8p1, OpenSSL 1.1.1h 22 Sep 2020
第一点,升级openssh,要先升级openssl,这是必须的
第二点,最好使用telnet连接,不然你的ssh升级过程中出现错误,你会连不上服务器
安装telnet
为了防止升级失败,在升级之前安装telnet服务,通过Telnet连接服务器进行升级
1.1、安装telnet-server以及xinetd
yum install xinetd telnet-server -y
vim /etc/xinetd.d/telnet
下面编写的内容无需修改
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
配置telnet登录的终端类型,在/etc/securetty文件末尾增加一些pts终端,如下
vim /etc/securetty
pts/0
pts/1
pts/2
pts/3
动态查看一下最后5行
tail -5 /etc/securetty
启动
systemctl enable xinetd
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
netstat -lntp|grep 23
如果出现报错
netstat可能会报错,原因是没有安装net-tools工具包
yum install net-tools -y
再次查看
切换到telnet方式登录,以后的操作都在telnet终端下操作,防止ssh连接意外中断造成升级失败
2、升级准备工作
2.1、查看系统版本和ssh版本
cat /etc/redhat-release
ssh -V
需要将openssh升级到最新版本
直接yum安装即可
yum install openssh -y
安装需要的依赖包
yum -y install gcc gcc-c++ kernel-devel zlib*
安装包准备
3.1、下载安装包
zlib-1.2.11.tar.gz 下载地址:http://www.zlib.net/zlib-1.2.11.tar.gz
也可以直接下载:wget http://www.zlib.net/zlib-1.2.11.tar.gz
openssl-1.1.1h.tar.gz 下载地址:https://www.openssl.org/source/openssl-1.1.1h.tar.gz
也可以直接下载:wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
openssh-8.4p1.tar.gz 下载地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
也可以直接下载:wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
查看安装包:
解压安装包,我习惯将安装包解压到/usr/local/下面
tar -zxf openssl-1.1.1h.tar.gz -C /usr/local/
tar -zxf openssh-8.8p1.tar.gz -C /usr/local/
tar -zxf zlib-1.2.11.tar.gz -C /usr/local/
ll /usr/local
安装 openssl-1.1.1h.tar.gz
[root@k8s-master openssh]# cd /usr/local/openssl-1.1.1h/
[root@k8s-master openssl-1.1.1h]# ./config --prefix=/usr/local/ -d shared
[root@k8s-master openssl-1.1.1h]# make && make install #如果不行先make,再执行 make install
查看上一步是否执行成功
[root@k8s-master openssl-1.1.1h]# echo $?
0
#注
#make成功标识
查看上一步是否执行成功
[root@k8s-master openssl-1.1.1h]# echo $?
0
#make install 成功标识
注: -v或–verbose:用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.
[root@k8s-master openssl-1.1.1h]# echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
[root@k8s-master openssl-1.1.1h]# ldconfig -v
安装openssh-8.8p1.tar.gz
mv /etc/ssh /etc/ssh.bak
cd /usr/local/openssh-8.8p1/
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl
查看这一步是否执行成功
[root@k8s-master openssl-1.1.1h]# make && make install #如果不行先make,再执行 make install
查看上一步是否执行成功
[root@k8s-master openssl-1.1.1h]# echo $?
0
#注
#make
#make install
sshd_config文件修改(以实际情况进行修改,源配置文件没有就不用添加)
这个我没有添加,可以省略这一步
echo "X11Forwarding yes" >> /etc/ssh/sshd_config
echo "X11UseLocalhost no" >> /etc/ssh/sshd_config
echo "XAuthLocation /usr/bin/xauth" >> /etc/ssh/sshd_config
echo "UseDNS no" >> /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
备份 /etc/ssh 原有文件,并将新的配置复制到指定目录
移动备份一
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
移动备份二
mv /usr/bin/ssh /usr/bin/ssh.bak
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
移动备份三
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
ssh -V
查看版本ssh -V
启动sshd
[root@k8s-master openssh-8.8p1]# systemctl stop sshd.service
[root@k8s-master openssh-8.8p1]# rm -rf /lib/systemd/system/sshd.service
[root@k8s-master openssh-8.8p1]# systemctl daemon-reload
[root@k8s-master openssh-8.8p1]# cp /usr/local/openssh-8.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
启动查看状态
/etc/init.d/sshd restart
Restarting sshd (via systemctl): Warning: sshd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[ 确定 ]
[root@k8s-master openssh-8.8p1]# systemctl status sshd
添加开机启动
chkconfig --add sshd
chkconfig --list sshd
正常情况是创建的普通用户进行登录,然后切换到root用户
测试一下用其他用户能不能登录 ssh服务
这里解决一下,升级完成之后root用户不能登录的问题
/etc/ssh/sshd_config
PermitRootLogin
no是禁止登录,yes是允许
有的公司要求root禁止登录 根据需要调试
[root@k8s-master openssh-8.8p1]# su ming
[ming@k8s-master openssh-8.8p1]$ ssh [email protected]
Last login: Sun Dec 19 22:27:53 2021 from 196.196.196.1
删除Telnet服务
升级完成后删除telnet服务。
systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket
netstat -lntp
yum remove telnet-server xinetd -y
升级openssh遇到的问题总结
问题一启动不起来 sshd
第一,文件权限的问题没有修改
把这几个文件改为600试一下
修改完成后
执行ssh -t 看看有没有报错
测试能不能起来
问题二遇到其用户不能远程登录其他服务器
/etc/ssh
把配置文件里面都改成 no
测试成功但是有显示其他
报的错是这个配置文件下面的59行没有注释掉
测试完成可以登录,没有其他报错
重点