代码改变世界

升级OPENSSH 和 OPENSSL

2018-07-11 20:42  親親宝贝  阅读(867)  评论(0编辑  收藏  举报
升级OPENSSH 和 OPENSSL
 
首先安装telnet服务,防止在操作过程中导致ssh远程中断
 
# 安装Telnet
yum install telnet-server -y chkconfig telnet on
# 允许root登录 mv /etc/securetty /etc/securetty.bak
# 防火墙记得放行23号端口

 

安装之前记得安装gcc

# 安装gcc
yum install gcc -y
 
 
安装zlib
# 如果之前有安装过zlib,请先卸载
rpm -ql zlib # 记下之前rpm安装的zlib的文件位置,然后卸载它
rpm -e --nodeps zlib

tar -xf zlib-1.2.11.tar.xz
./configure --prefix=/usr/local/zlib
 make && make install

# 之后把我们源码编译安装的zlib的对应文件复制到原来的位置
cp /usr/local/zlib/lib/libz.so.1.2.11 /lib64
ln -s /lib64/libz.so.1.2.11 /lib64/libz.so.1
 
 
安装pam-devel
yum install pam-devel -y
 
 
升级OPENSSL
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./config --prefix=/usr/local/openssl --shared
make  && make install
mv /usr/bin/openssl /usr/bin/openssl.old.bak
mv /usr/include/openssl /usr/include/openssl.old.bak 
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl  
ln -s /usr/local/openssl/include/openssl /usr/include/openssl  
echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
验证结果:
ldconfig -v  
openssl version -a

# 原来的文件改个名字,移动到其他目录去吧
rm -f /usr/lib64/libssl.so.10
mv /usr/lib64/libssl.so.1.0.1e ~/libssl.so.1.0.1e.old.bak

cp /usr/local/openssl/lib/libssl.so.1.0.0 /usr/lib64
ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10

# 原来的文件改个名字移动到其他目录去吧
rm -f /usr/lib64/libcrypto.so.10
mv /usr/lib64/libcrypto.so.1.0.1e ~/libcrypto.so.1.0.1e.old.bak

cp /usr/local/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/
ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
 
 
升级OPENSSH
# 先备份原来ssh的配置文件
mv /etc/ssh /etc/ssh.old.bak

tar -xf openssh-7.7p1.tar.gz
cd openssh-7.7p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --with-md5-passwords --with-pam
make && make install
cp contrib/redhat/sshd.init /etc/init.d/sshd
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
chkconfig --add sshd
chkconfig sshd on
chkconfig --list|grep sshd

/etc/init.d/sshd restart # 启动SSHD,记得关闭SELINUX 不然会报权限拒绝

#允许root登录SSH
vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
PermitRootLogin yes
 
最后的收尾工作
chkconfig telent off   # 关闭telnet
yum remove telnet-server  # 卸载telnet
mv /etc/securetty.bak /etc/securetty

iptables -D INPUT 1 # 删除telnet防火墙规则