目录
-开启服务端Telnet服务
-升级OpenSSL
-升级OpenSSH
-关闭Telnet及善后
-相关错误解决
一、开启服务端Telnet服务
1、如果服务器是联网的就直接yum安装telnet-server 及 telnet服务即可:
yum install -y telnet-server* telnet
2、服务器如果没联网就离线安装,先到centos网站下对应的安装包:
centos官网:centos
此处以下面两个包为例:
rpm -ivh telnet-server-0.17-48.el6.x86_64.rpm --nodeps --force
rpm -ivh xinetd-2.3.14-40.el6.x86_64.rpm --nodeps --force
3、启用telnet服务
vi /etc/xinetd.d/telnet
4、设置允许root用户登录,如果有普通用户就可以忽略这步,直接使用普通用户登录也可以,不需要设置使用其它用户登录后再 su - root
mv /etc/securetty /etc/securetty.old
安装完成后重启xinetd服务(telnet服务归它管):
centos7版本以前启动方式:service xinetd restart
centos7及以后的启动方式:systemctl restart xinetd.service
5、设置xinetd服务开启自启动,避免升级过和中意外导致无法登入系统
chkconfig xinetd on
6、检查telnet当前状态
chkconfig --list|grep telnet
如果telnet状态为off,需要修改telnet文件中disable = no 开启自启动
7、测试连接
输入ip+用户名+密码登陆:telnet xxx.xxx.xxx.xxx
8、因为telnet默认使用的是23端口,需在防火墙中开放使用权限,命令
查看目前防火墙规则:/etc/init.d/iptables status
开启规则:/sbin/iptables -I INPUT -p tcp -m state --state NEW - m tcp --dport 23 -j ACCEPT
保存规则:/etc/init.d/iptables save
重启防火墙:/etc/init.d/iptables restart
二、升级OpenSSL
说明:本文升级到openssh7.6p1因此它依赖的openssl的版本为>1.0.1e 并且 < 1.1.0
上传一个openssl到服务器:openssl-1.0.2h.tar.gz()
1、解压、编译及安装步骤:
>tar zxvf openssl-1.0.2h.tar.gz
>cd openssl-1.0.2h
>./config --prefix=/usr --shared
>make && make install
2、因源码安装默认安装的位置是 /usr/local/ssl 需要将创建软链接到系统位置
> ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
> ln -s /usr/local/ssl/include/openssl /usr/include/openssl
删除软连接命令:
>rm /usr/local/ssl/bin/openssl
3、查看openssl版本
> openssl version -a
三、升级OpenSSH
1、下载与安装:
下载openssh-7.6p1.tar.gz并上传到服务器
()
tar zxvf openssh-7.6p1.tar.gz
cd openssh-7.6p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --without-openssl-header-check --with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/lib/sshd
make && make install
2、备份ssh配置,并设置相关参数:
cd /etc/ssh
cp ssh_config ssh_config_bak
允许SSH的X转发:echo 'X11Forwarding yes' >> /etc/ssh/ssh_config
设置SSH允许root用户登录:echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
复制SSH的启动脚本:cp -p contrib/redhat/sshd.init /etc/init.d/sshd
添加执行权限:chmod +x /etc/init.d/sshd
添加到系统服务:chkconfig --add sshd
开启sshd的开机运行:chkconfig sshd on
3、重启sshd:
service sshd restart 或 systemctl restart sshd.service(centos7及以上版本)
4、查看是否安装成功:
查看当前SSH的版本:ssh -V
四、关闭Telnet及善后
1、关闭xinetd的开机启动
chkconfig xinetd off
2、关闭xinetd服务
service xinetd stop 或 systemctl stop xinetd.service(centos7及以上版本)
五、相关错误解决
1、升级到openssh7.6后使用xshell工具root及其它用户都一直无法登录系统,总提示:拒绝访问
首先确保cat /etc/ssh/sshd_config为:PermitRootLogin yes )
经查可能是:cat /etc/ssh/sshd_config中的
UsePAM yes
参数导致(在其它机器上又不存在这个问题比较奇怪),暂时注释或删除该参数;
2、ssh连接时出错:error Could not get shadow information for
服务启动成功,用户密码也都对,就是无法建立连接,可能是UsePAM和SELinux的问题
这可能是因为UsePAM没有启用,检查/etc/ssh/sshd_config:
检查UsePAM,确认是否启用了PAM# UseAPM noUsePAM yes
修改配置后,重启sshd服务后,服务恢复。
如果不想修改PAM选项,也可以关闭Selinux:
临时关闭
setenforce 0
永久关闭
vi /etc/selinux/config
然后将 SELINUX=enforcing 修改为 SELINUX=disabled
UsePAM yes时,无论启用或禁用selinux,都不会引发Could not get shadow information错误。
3、重启出现失败
SELinux状态&关闭SELinux:
修改selinux的配置文件,重启后生效。打开 selinux 配置文件
[root@localhost ~]# vim /etc/selinux/config修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出。