在企业级应用开发中,服务器是必不可少硬件设施,而Linux是大多数企业服务器应用系统,OpenSSH是SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。
OpenSSH在每次版本更新后都会暴露出旧版本的一些漏洞,一些不法分子就会利用这些漏洞攻击服务器造成不必要的损失,所以升级OpenSSH是很有必要切必须要做的一件事!!!!!!
查看系统是否已安装telnet
1.命令: rpm -qa | grep telnet
telnet-0.17-48.el6.x86_64
telnet-server-0.17-48.el6.x86_64
telnet 是挂在 xinetd 底下的,所以同时查看是否安装了xinetd服务
2.命令: rpm -qa | grep xinetd
xinetd-2.3.14-39.el6_4.x86_64
1.rpm -ivh xinetd-2.3.14-29.el6.x86_64.rpm
2.rpm -ivh telnet-0.17-47.el6_3.1.x86_64.rpm
3.rpm -ivh telnet-server-0.17-47.el6_3.1.x86_64.rpm
1.设置开机启动
命令:chkconfig telnet on
2.编辑 telnet 文件
命令:vim /etc/xinetd.d/telnet
找到 disable = yes ,将 yes 改成 no
改完后保存,启动服务
命令:service xinetd restart
3.编辑/etc/pam.d/login
命令:vim /etc/pam.d/login
注释掉如下内容:“#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so”
注释后保存
4.编辑/etc/securetty
命令:vim /etc/securetty
添加:
pts/1
pts/2
pts/3
pts/4
pts/5
添加后保存
5.iptables防火墙会阻止telnet,所以需要在iptables允许,用如下命令
查看防火墙状态:service iptables status
当你启动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 //重启防火墙
或者来点狠的!!关闭防火墙!
service iptables stop
1.Xshell登陆 模式更改为telnet
1.查看系统当前软件版本
命令:ssh -V
2.升级OpenSSL
(1)备份
命令:mv /usr/lib64/openssl /usr/lib64/openssl.old
命令:mv /usr/bin/openssl /usr/bin/openssl.old
命令:mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
命令:cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
命令:cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
(2)卸载当前openssl
命令:rpm -qa | grep openssl(查找版本)
命令:rpm -e --nodeps openssl-?(?号以查找到的版本为准)ssh
(3)解压openssl源码并编译安装
命令:tar -zxvf openssl-?(?以预安装的版本为准)
命令:cd openssl-?(?以预安装的版本为准)
命令:./config --prefix=/usr --openssldir=/etc/ssl --shared zlib
命令:make
命令:make test
命令:make install
命令:openssl version -a
2.升级OpenSSH
(1)备份当前openssh
命令:mv /etc/ssh /etc/ssh.old
(2)卸载当前openssh
命令:rpm -qa | grep openssh(查找版本,注:删除所有查到的openssh)
命令:rpm -e --nodeps openssh-server-?(?号以查找到的版本为准)
命令:rpm -e --nodeps openssh-clients-?(?号以查找到的版本为准)
(3)解压openssh_?源码并编译安装(?以预安装的版本为准)
命令:tar -zxvf openssh-?(?以预安装的版本为准)
命令:cd openssh?(?以预安装的版本为准)
命令:./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
命令:make
命令:make install
(4) openssh安装后环境配置
命令:install -v -m755 contrib/ssh-copy-id /usr/bin
命令:install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
命令:install -v -m755 -d /usr/share/doc/openssh
命令:install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh*
命令:ssh -V #验证是否升级成功
(5)启⽤OpenSSH服务
在openssh编译⽬录执⾏如下⽬录
命令:echo ‘X11Forwarding yes’ >> /etc/ssh/sshd_config
命令:echo “PermitRootLogin yes” >> /etc/ssh/sshd_config
命令:cp -p contrib/redhat/sshd.init /etc/init.d/sshd
命令:chmod +x /etc/init.d/sshd
命令:chkconfig --add sshd
命令:chkconfig sshd on
命令:chkconfig --list sshd
命令:service sshd restart
编辑/etc/pam.d/login
命令:vim /etc/pam.d/login
放开注释掉的内容:“auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so”
命令:chkconfig telnet off #关闭telnet的开机启动
命令:chkconfig xinetd off #关闭xinetd的开机启动
命令:service xinetd stop #关闭xinetd服务