1
OpenSSH简介
OpenSSH 是SSH(Secure Shell)协议免费开源的实现。SSH协议族可用来远程控制主机或在计算机间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、ftp、Rlogin都是极为不安全的,它们使用明文传输数据,甚至是使用明文传送密码,攻击者可通过嗅探等中间人攻击的方式获取传输的数据。为了保证通信安全,在1999年10月OpenSSH第一次在OpenBSD2.6里出现,它提供了服务端后台程序和客户端工具,结合OpenSSL协议实现端到端的加密传输,保证通信信道的安全,并由此来代替原来的服务。
OpenSSH使用SSH协议透过计算机网络加密通讯的实现。它是一种开放源代码的方案用以取代由SSH Communications Security所提供的商用版本。目前OpenBSD的子计划便是OpenSSH。
OpenSSH常被误认为与OpenSSL有关联,但实际上这两个计划各有不同的目的和不同的发展团队,名称相近只是由于两者有着同样的软件发展目标──提供开放源代码的加密通讯软件。
在OpenSSH服务里,sshd是一个典型的独立守护进程服务(standalone daemon),但也可以根据需求通过网络来守护进程(Internet Daemon)-inetd或Ineternet Daemon's more modern-xinted加载。OpenSSH服务可以通过/etc/ssh/sshd_config配置文件对远程主机的访问策略进行配置,如PermitRootLogin限制root用户远程访问等。
SEE MORE →
2升级准备
2.1 升级方式
考虑到OpenSSH升级采用远程连接方式升级,因需要对ssh卸载和安装,为保证升级正常,将采telnet 连接来进行升级操作,依次进行OpenSSH原配置文件备份、旧版本OpenSSH删除、安装新版本OpenSSH。
2.2 升级所需要的安装包
telnet服务所需的安装包:
telnet-server-0.17-39.el5.x86_64.rpm OpenSSH
升级所需安装包:
openssh-7.4p1.tar.gz
zlib-1.2.8.tar.gz
openssl-1.0.1h.tar.gz
2.3 安装包链接地址
http://www.zlib.net/
http://www.openssl.org/
http://www.openssh.org/
2.4 升级流程
1、上传安装包到服务器上
2、 安装telnet服务,并使其运行正常;
3、 备份OpenSSH配置文件
4、 卸载OpenSSH 旧版本
5、 安装OpenSSH 新版本,并测试正常
6、 卸载telnet服务,删除安装包及备份文件
3升级过程
3.1 上传安装包至服务器
将zlib 、OpenSSH 、OpenSSL依赖包从本地上传至服务器,用于安装。
telnet包用于远程连接。
3.2 安装telnet并测试
rpm -qa | grep telnet 查看是否已经安装了telnet
rpm -qa | grep xinetd 查看是否已经安装了xinetd服务,因为telnet是挂在xinetd下的
如果两者都没安装,执行以下命令安装:
yum install xinetd telnet telnet-server –y
chkconfig telnet on 设置开机启动,避免升级过程中服务器意外重启后无法远程登录系统
vi /etc/xinetd.d/telnet 修改配置文件将”disable= yes”改成” disable=no”
service xinetd restart 重启xinetd服务
iptables防火墙会阻止telnet,所以需要在iptables允许,用如下命令
当你启动telnet服务后,你可以用netstat –tunlp命令来查看telnet服务所使用的端口,可以发现有23。使用下面命令开启这些端口:
iptables -I INPUT -p tcp --dport 23 -jACCEPT
iptables -I INPUT -p udp --dport 23 -jACCEPT
service iptables save //保存
service iptables restart //重启防火墙
测试登录 telnet ip port (使用非root账户)
3.3 重要文件备份
防止升级失败导致文件丢失,请将重要文件和ssh配置文件备份
ssh配置文件备份:
sudo cp -r /etc/ssh/ /etc/ssh_bak
sudo cp /etc/init.d/sshd /etc/init.d/sshd_bak
sudo cp /usr/sbin/sshd /usr/sbin/sshd_bak
3.4 卸载旧版本SSH
1.确认OpenSSH需要删除的rpm包
rpm -qa |grep ssh
2.使用rpm的方式删除
rpm -e openssh openssh-clients openssh-server openssh-askpass –nodeps
3.5 安装ssh新版本
3.5.1 安装zlib
1.解压
sudo tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
2.配置
./configure
3.编译安装
make
make install
3.5.2 安装openssl
1.解压
tar –xf openssl-1.0.1h.tar.gz
cd openssl-1.0.1h
2.配置
./config
3.编译安装
make
make install
4.设置软连接
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
5.查看新安装的openssl版本
openssl version –a
3.5.3 安装openssh
1.解压
tar –xf openssh-7.4p1.tar.gz
cd openssh-7.4p1
2.配置
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening
3.编译安装
make
make install
4.修改配置文件
(1)备份sshd文件
mv /etc/init.d/sshd /etc/init.d/sshd_old
(2)复制配置文件
cp sshd.init /etc/init.d/sshd
赋权
chmod u+x /etc/init.d/sshd
添加到开机启动项
chkconfig --add sshd
chkconfig sshd on
重启服务
service sshd restart
3.5.4 确认升级后的SSH版本可用时,停止telnet服务
1.确认版本
ssh –V 确认升级后的版本信息
2.修改配置文件
将vi /etc/xinetd.d/telnet文件中的disable = no修改为disable = yes
3.设置telnet开机不启动
chkconfig xinetd off
4.关闭telnet服务
/etc/init.d/xinetd stop
5.开启防火墙并设置开机自动启动
service iptables start
chkconfig iptables on
END
作者:绿盟科技安全服务部