Linux安全加固技巧:远程访问及控制 纯干货!!!

SSH 远程管理简介

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的 Telent(远程登录)、RSH(Remote Shell,远程执行命令)、RCP
(Remote File Copy,远程文件复制)等应用相比,SSH 协议提供了更好的安全性。

■配置OpenSSH 服务端

在 CentOS 7.3 系统中,OpenSSH 服务器由 openssh、openssh-server 等软件包提供
(默认已安装),并已将 sshd 添加为标准的系统服务。执行“systemctl start sshd”命令即可启动 sshd 服务,包括 root 在内的大部分用户(只要拥有合法的登录 Shell)都可以远程登录系统。
sshd 服务的默认配置文件是/etc/ssh/sshd_config,正确调整相关配置项,可以进一步提高 sshd 远程登录的安全性。

■服务监听选项

`
●sshd 服务使用的默认端口号为 22,必要时建议修改此端口号,并指定监听服务的具体IP 地址,以提高在网络中的隐蔽性。除此之外,SSH 协议的版本选用 V2 比 V1 的安全性要更好,禁用 DNS 反向解析可以提高服务器的响应速度。

[root@localhost ~]# vim /etc/ssh/sshd_config
Port 22                     	监听端口为 22
ListenAddress 172.16.16.22	    监听地址为 172.16.16.22 
Protocol 2		                使用SSH V2 协议
……	                            略部分内容
UseDNS no	                    禁用DNS 反向解析

●特别要提醒一点:生产环境下有管理平面和数据平面,我们要监听管理平面,因为数据平面通道拥挤,你和一堆用户一起使用下,很容易就会被挤掉线

●安全加固设的IP地址是跳板机的IP地址
远程拷贝用的是22端口

用户登录控制

●sshd 服务默认允许 root 用户登录,但在 Internet 中使用时是非常不安全的。普遍的做法如下:先以普通用户远程登入,进入安全 Shell 环境后,根据实际需要使用 su 命令切换为 root 用户。
关于 sshd 服务的用户登录控制,通常应禁止 root 用户或密码为空的用户登录。另外, 可以限制登录验证的时间(默认为 2 分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。

[root@localhost ~]# vi /etc/ssh/sshd_config
LoginGraceTime 2m		登录验证时间为 2 分钟
PermitRootLogin no	    禁止root 用户登录
MaxAuthTries 3		    最大重试次数为 3

PermitEmptyPasswords no	  禁止空密码用户登录
……	                      省略部分内容
[root@localhost ~]# systemctl restart sshd

●当希望只允许或禁止某些用户登录时,可以使用 AllowUsers 或 DenyUsers 配置,两者用法类似(注意不要同时使用)。例如,若只允许 jerry、tsengyia 和 admin 用户登录,且其中 admin 用 户 仅 能 够 从 IP 地 址 为 61.23.24.25 的 主 机 远 程 登 录 , 则 可 以 在/etc/ssh/sshd_config 配置文件中添加以下配置

[root@localhost ~]# vim /etc/ssh/sshd_config
……	                        省略部分内容
AllowUsers jerry tsengyia admin@61.23.24.25	  多个用户以空格分隔

■登录验证方式

●密码验证:核对用户名、密码是否匹配
●密钥对验证:核对客户的私钥、服务端公钥是否匹配

[root@localhost ~]# vim /etc/ssh/sshd_config 
PasswordAuthentication   yes		             启用密码验证
PubkeyAuthentication   yes	                     启用密钥对验证
AuthorizedKeysFile   .ssh/authorized_keys		 指定公钥库文件
……                                               省略部分内容
[root@localhost ~]# systemctl restart sshd

●当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较 高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则 两种方式都可启用。

扫描二维码关注公众号,回复: 11637076 查看本文章

■密钥的原理

在这里插入图片描述
在这里插入图片描述

使用SSH 客户端程序

■ssh 远程登录

通过 ssh 命令可以远程登录 sshd 服务,为用户提供一个安全的 Shell 环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数


[root@localhost ~]# ssh tsengyia@172.16.16.22
The authenticity of host '172.16.16.22 (172.16.16.22)' can't be established. 
......
Are you sure you want to continue connecting (yes/no)? yes       接受密钥
......
tsengyia@172.16.16.22's password:                                输入密码

[tsengyia@localhost ~]$ whoami	                                确认当前用户
tsengyia

●如果sshd 服务器使用了非默认的端口号(如 2345),则在登录时必须通过“-p”选项指定端口号


[root@localhost ~]# ssh -p 2345 jerry@172.16.16.22

■scp 远程复制

●通过 scp 命令可以利用 SSH 安全连接与远程主机相互复制文件。使用 scp 命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验证口令即可


下载
[root@localhost ~]# scp root@172.16.16.22:/etc/passwd /root/pwd254.txt
root@172.16.16.22's password:
passwd	100% 2226	2.2KB/s	00:00172.16.16.22主机/etc/passwd 复制到本机的/root/pwd254.txt


上传
[root@localhost ~]# scp -r /etc/vsftpd/ root@172.16.16.22:/opt
root@172.16.16.22's password:
ftpusers	100%   125	0.1KB/s	00:00
user_list	100%   361	0.4KB/s	00:00
vsftpd.conf	100% 5030	4.9KB/s	00:00
vsftpd_conf_migrate.sh	100%   338	0.3KB/s	00:00

把本机的/etc/vsftpd/ 上传到172.16.16.22/opt下

■sftp 安全 FTP

●通过 sftp 命令可以利用 SSH 安全连接与远程主机上传、下载文件,采用了与 FTP 类似的登录过程和交互式环境,便于目录资源管理


[root@localhost ~]# sftp tsengyia@172.16.16.22
Connecting to 172.16.16.22...
tsengyia@172.16.16.22's password:	                              输入密码
sftp> ls
sftp> put /boot/config-3.10.0-514.el7.x86_64	                  上传文件
Uploading /boot/config-3.10.0-514.el7.x86_64 to
/home/tsengyia/config-3.10.0-514.el7.x86_64
/boot/config-3.10.0-514.el7.x86_64	100%	103KB   68.0KB/s	00:00 
sftp> ls
config-3.10.0-514.el7.x86_64
sftp> bye	                                                      退出登录

TCP Wrappers 访问控制

在 Linux 系统中,许多网络服务针对客户端提供了访问控制机制,如 Samba、BIND、HTTPD、OpenSSH 等

TCP Wrappers 概述

客户访问服务器时,TCP Wrappers会对数据进行过滤和控制

在这里插入图片描述

■保护机制的实现方式

●方式1:通过tcpd程序对其他服务程序进行包装

●方式2:由其他服务程序调用libwrap.so.*链接库

访问控制策略的配置文件
l/etc/hosts.allow
letc/hosts.deny

■设置访问控制策略

●策略格式 : 服务程序列表:客户端地址列表

●服务程序列表

             多个服务以逗号分隔,ALL表示所有服务

●客户端地址列表

            ◆多个地址以逗号分隔,ALL表示所有地址

            ◆允许使用通配符?和*

网段地址,如192.168.1.或者192.168.1.0/255.255.255.0

区域地址,如.benet.com

策略的应用顺序

1.检查hosts.allow,找到匹配则允许访问

2.再检查hosts.deny,找到则拒绝访问

3.若两个文件中均无匹配策略,则默认允许访问

若只希望从 IP 地址为 61.63.65.67 的主机或者位于 192.168.2.0/24 网段的主机访问 sshd 服务

其他地址被拒绝,可以执行以下操作

[root@localhost ~]# vi /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@localhost ~]# vi /etc/hosts.deny
sshd:ALL

猜你喜欢

转载自blog.csdn.net/weixin_48190891/article/details/108223600
今日推荐