一、源码包下载地址
openssl下载地址:

https://www.openssl.org/source/

撰写本文时最新版本为1.1.1k

openssh下载地址:

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

撰写本文时最新版本为8.6p1

二、更新openssl,此处安装包存放位置为/home/user01/

cd /home/user01/
tar -zvxf openssl-1.1.1k.tar.gz
cd /home/user01/openssl-1.1.1k
./config --shared
make && make install

使用./config时加上--shard,目的是创建动态链接库

将原有openssl替换为新的:

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
echo "/usr/local/lib64/" >> /etc/ld.so.conf
ldconfig

使用以下命令验证openssl版本

openssl version -a

如果未安装zlib:
前往http://www.zlib.net/下载安装包,并传送至任意目录。运行以下命令。

tar zxf zlib***.tar.gz
cd zlib-***/
./configure --shared
make test
make install
cp zutil.h /usr/local/include/
cp zutil.c /usr/local/include/

三、更新openssh
更新有一定风险,如果不能保证一次成功,可以提前安装telnet防止无法登陆。

cd /home/user01
tar -zxvf /home/user01/openssh-8.6p1.tar.gz
cd /home/user01/openssh-8.6p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd 
make && make install

使用以下命令验证

SSH -V

启动openssh并将其设置为开机启动。

systemctl start sshd
systemctl enable sshd

四、其他
1、openssh配置位置

/etc/ssh/ssh_config
/etc/ssh/sshd_config

请检查配置中这几项,否则可能无法登陆。

PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes

2、如果sshd服务状态提示:get shadow information for root
检查selinux是否启用了策略:/etc/selinux/config 文件中的SELINUX=enforcing 修改为 SELINUX=disabled

一、使用iptables -L 命令查看当前配置的规则。有时会在端口处显示服务名称,如果想要查看具体数字。可以使用
iptables -L -n
二、iptables可以在五个位置进行处理,分别为:

1.PREROUTING (路由前)
2.INPUT (入口)
3.FORWARD (转发)
4.OUTPUT(出口)
5.POSTROUTING(路由后)

简单使用的话基本只需要操作input和output。

三、iptables默认规则是允许,可以在配置中以下处修改。

   iptables -P INPUT ACCEPT
   iptables -P OUTPUT ACCEPT
   iptables -P FORWARD ACCEPT

四、iptables常见的ACTION有三种。
DROP:丢弃
REJECT:拒绝
ACCEPT:接受

drop和reject的区别在于reject会有被拒绝的返回。

五、iptables的配置文件位置在/etc/sysconfig/iptables
直接在命令行使用-A命令添加的规则虽然可以使用-L命令查看到,也会生效。但是在重启iptables命令后就会失效。
解决的办法是使用service iptables save保存,或者直接在配置文件中修改相关规则,然后重启iptables服务。

六、为了出现自己连不上自己的情况,建议把127的豁免提前添加到规则中。

 iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
 iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

七、使用示例。

-A INPUT  -p tcp -s 127.0.0.1/32 --dport 18443 -j ACCEPT
-A INPUT  -p tcp -s 173.16.168.0/24 --dport 18443 -j ACCEPT
-A INPUT -p tcp --dport 18443 -j DROP

以上为禁止173.16.168.*网段以外的机器访问18443端口。

-p:使用协议
-s:来源
-d:目的地(示例中未出现)
--dport:目标端口
-j:处理方式。

八、使用service iptables start命令时报

Failed to start iptables.service: Unit not found.

去以下下载iptables-services的rpm包进行安装。
http://mirrors.163.com/centos/7/os/x86_64/Packages/

在下述网站下载最新版本。此处为5.34

https://www.cpan.org/src/

将tar包上传至服务器任意目录,运行以下命令,需要gcc环境

tar -xzf perl-5.34.0.tar.gz
cd perl-5.34.0
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install

安装完成后设置软连接,在/root下运行上述命令后默认安装目录为/root/localperl。请根据实际情况进行修改。

ln -s /root/localperl/bin/perl /usr/bin/perl 

若提示/usr/bin/perl已经存在文件,可使用下述命令将其移走。

mv /usr/bin/perl /usr/bin/perl.bak

安装完成后使用以下命令验证

perl -v


前往下述链接下载最新版本,编写本文时为1.9.7

https://www.sudo.ws/

将文件传至服务器任意目录。运行以下命令。必须已经安装gcc。

tar -zxvf sudo-1.9.7.tar.gz
cd sudo-1.9.7
./configure --prefix=/usr  --libexecdir=/usr/lib  --with-secure-path  --with-all-insults  --with-env-editor  --docdir=/usr/share/doc/sudo-1.9.2 --with-passprompt="[sudo] password for %p: " 
make
make install
ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0

使用以下命令验证

sudo --version

从下述网址处获取bash4.4安装包。
http://ftp.gnu.org/gnu/bash/bash-4.4.18.tar.gz
上传至服务器任意目录下执行以下命令。必须已经安装gcc。

tar xf bash-4.4.18.tar.gz
cd bash-4.4.18/
./configure
make
make install
mv /bin/bash /bin/bash.bak && ln -s /usr/local/bin/bash /bin/bash

断开ssh后重新连接即生效

验证

bash -version

ps.该方法理论上也能用在bash5.0上。