Cent安装及配置
如图,我们是在vmware workstation上面实现虚拟机的使用,所以先下载好最新版本的VMware实现配置
然后是Centos的安装配置,如图建立新的虚拟机
然后是改选稍后安装操作系统,点击下一步
选择LInux系统,然后选择要的CentOs系统版本,我下载的是7.6的镜像版本,所以这里选择CentOs 7的版本。
这里看个人选择,一般20就够用了。
一切调试好后在这个界面使用Iso映像文件,也就是自己下载好的镜像iso文件,注意文件后缀。
进入系统安装界面后,对着install centos7点enter后进入到下面的界面
再按要求完成安装位置,软件选择,语言等设置,注意,如果想要有虚拟机的操作界面也就是如图的界面就选择GNOME桌面,如果选择最小安装,启动系统就是只有一个终端,对后续的安装和查看文件有许多不方便。
然后注册好用户等信息就可以使用CentOs系统了。
升级openssh和openssl操作
Centos7都自带一个OpenSSH7.4p1,算是个祸害。只要这东西没卸载就会被漏扫发现。
先配置好需要的解压文件
OpenSSH官网 点击最新版本,进入发行说明书
找到SHA校验,随便点一个文件名链接就能下载源码。
Perl官网 找到Unix,下载源码。下载源码不需要登录,直接就能下。
Zlib官网 点击Zlib最新版本链接,就能直接拿到最新版源码,点这里的链接也行。
首先将上面下载好的文件都拖入到系统内的/www目录内方便操作。
配置过程
-
perl
Perl是文本处理语言,它最初就是为了这个目的设计的。 Perl是网络编程语言,它内置了socket/client-server协议。 Perl是系统管理语言,全球网络很多服务器上就运行着它的脚本。很多时候是单行的脚本。 Perl是Web脚本编写语言。至今它仍然是最流行的几种web脚本编写语言之一。
如果系统已经有了环境比较齐全的Perl,可以跳过此步骤,如果不知道有没有,或者不知道环境齐不齐全,统一当作没有,不跳过此步骤
cd /www
tar -zxvf perl.tar.gz
#cd到解压出来的目录中,解压出来是啥就cd到啥地方,这里解压出来的目录就是perl-5.38.2
cd perl-5.38.2/
配置,安装perl
#配置安装目录为/usr/local/perl,有需要可以自行选择其他目录
./Configure -des -Dprefix=/usr/local/perl
#编译
make
#安装
make install
如图没有报错则安装完毕
配置环境变量,把刚刚安装完毕的Perl配置到系统变量中
#如果没有nano,也可以用别的,比如vi、vim都可以,反正是个文本,能编辑就随意 nano ~/.bash_profile
在文件最末尾增加一行
#这里的/usr/local/perl是上面配置的安装目录,如果配置了别的安装目录可以自行修改
#但是后面的/bin是固定的
export PATH=/usr/local/perl/bin:$PATH
#刷新环境变量
source ~/.bash_profile
#查看Perl版本
perl -v
显示的版本号与自己下载的版本号一致,就算安装配置Perl完成
-
zlib
zlib(压缩库)是一个开源的、跨平台的数据压缩库,用C语言编写。它提供了一组用于压缩和解压缩数据的函数,广泛用于许多应用程序和系统中。zlib 的设计目标是提供高效的压缩和解压缩算法,同时保持简单易用。
#解压文件
tar -zxvf zlib.tar.gz
cd zlib-1.3.1/
#配置安装目录,有需要的可以自行更改
./configure --prefix=/usr/local/zlib
#编译
make
#安装
make install
安装完毕后,开始配置环境变量
nano ~/.bash_profile
//文件末尾添加下行
export LD_LIBRARY_PATH=/usr/local/zlib/lib:$LD_LIBRARY_PATH
//刷新缓存
source ~/.bash_profile
//运行以下命令
ls /usr/local/zlib
如果有输出include、lib、share文件夹,就算安装完成了(实际上不算,得编译一下使用zlib头文件的代码才行,这里是基础教程,只要输出了这三个文件夹名称问题就不大)
-
Openssl
OpenSSL 是开源的程序套件,该套件由三部分组成:
libcrypto:具有通用功能的加密库,里面包含众多加密算法 libssl:实现 SSL/TLS 功能 openssl:多功能的命令行工具,可以实现加密、解密、自建 CA、创建证书、吊销证书等功能
先解压,配置,安装
#解压文件
tar -zxvf openssl.tar.gz
cd openssl-3.2.1
#配置安装目录,有需要的可以自行更改
./config --prefix=/usr/local/openssl
#编译
make
#安装
make install
再配置环境变量
#如果没有nano,也可以用别的,比如vi、vim都可以,反正是个文本,能编辑就随意
nano ~/.bash_profile
//文件末尾加下面两行
export PATH=/usr/local/openssl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib64:$LD_LIBRARY_PATH
//刷新缓存
source ~/.bash_profile
ldconfig
查看版本正常的话,OpenSSL就算安装完成了
-
Openssh
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
先解压,配置,安装
#解压文件
tar -zxvf openssh.tar.gz
cd openssh-9.7p1
#配置安装目录,OpenSSH安装在/usr/local/openssh,配置文件放在/etc/ssh,指定刚刚安装的OpenSSL目录
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib
#编译
make
#安装
make install
再配置环境变量
#如果没有nano,也可以用别的,比如vi、vim都可以,反正是个文本,能编辑就随意
nano ~/.bash_profile
//文件末尾加一行
export PATH=/usr/local/openssh/bin:$PATH
//刷新环境变量
source ~/.bash_profile
最后查看版本
新安装的OpenSSH不允许root用户登录,没有x11转发,图形不好用等,需要配置
nano /etc/ssh/sshd_config
//加下面行
X11Forwarding yes
X11UseLocalhost no
XAuthLocation /usr/bin/xauth
UseDNS no
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
Subsystem sftp /usr/local/openssh/libexec/sftp-server
增加完毕后保存退出即可
然后启动OpenSSh
由于我们系统自带了一个OpenSSH7.4p1和OpenSSL1.0.2k,OpenSSH比较特殊、所以无论是安没安装新版本,都会被扫到,所以这里我们要卸载掉系统自带的 首先卸载OpenSSH
//删除openssh和openssl
yum remove openssh
yum remove openssl
//检查是否删除干净
rpm -qa | grep openssh
rpm -qa | grep openssl
不出意外的话,运行rpm -qa | grep openssl的时候,会出现两个包没被卸载掉,有其他软件依赖他,因为是教程,所以这两个不影响楼栋扫描的包,就不处理了。
接下来就要启动新的OpenSSH,由于我们已经把OpenSSH卸载掉了,所以服务肯定是没了,我们要创建新的服务
#创建一个服务用于启动sshd
nano /etc/systemd/system/sshd.service
//在新创建的service中粘贴以下配置
[Unit]
Description=OpenSSH server daemon
After=network.target
[Service]
ExecStart=/usr/local/openssh/sbin/sshd -D
ExecReload=/bin/kill -HUP $MAINPID
Environment="LD_LIBRARY_PATH=/usr/local/openssl/lib64:/usr/local/zlib/lib"
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
粘贴完成之后保存即可,保存完成之后就可以启动了。
#刷新所有service
sudo systemctl daemon-reload
#启动sshd服务
sudo systemctl restart sshd
#查看sshd服务状态
sudo systemctl status sshd
出现下图则启动成功
后期服务
该教程是OpenSSL3.X的胎教级教程,不适用1.1,并非标准教程,但是完全避免了使得sshd服务停止运行而导致ssh连接断开,去沟通vnc介入,非常麻烦,深有体会。 该教程没有覆盖原本的OpenSSH,而是在其他文件夹自己放了一个,通过系统变量让系统连接,这么做非常干净,没有留下一点污染。 因此,如果未来不用这篇教程里面的东西了,就可以按照以下步骤,完全彻底清理掉本次安装的东西。
//删除环境变量
nano ~/.bash_profile
//删除以下几行
export PATH=/usr/local/perl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/zlib/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/openssl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/openssh/bin:$PATH
//保存刷新
source ~/.bash_profile
//删除安装目录
rm -rf /usr/local/openssl
rm -rf /usr/local/openssh
rm -rf /usr/local/zlib
rm -rf /usr/local/perl
//删除服务和配置
rm -rf /etc/systemd/system/sshd.service
rm -rf /etc/ssh
结束!