一起学习网 一起学习网

Linux高效配置sshd服务,加强网络安全 (linux配置sshd服务)

随着互联网技术的飞速发展,网络安全问题日益突出,其中更大的威胁之一就是黑客可通过SSH协议实现远程访问服务器,进而攻破系统。因此,Linux系统管理员需要加强SSHD服务配置,保障系统的安全稳定运行。

一、开启SSH服务

需要安装SSH服务,并确认是否启动。从网上下载安装程序后,执行以下命令:

sudo apt-get update

sudo apt-get install openssh-server

执行以上命令后,SSH服务即启动,您可以通过以下命令来检查SSH服务状态:

systemctl status sshd.service

如果服务正常工作,终端会输出:

ssh:start/running,pic(pid)

如果没有启动,则需要手动启动SSH服务:

sudo systemctl start sshd.service

要想 SSH 服务自动随着系统启动时自动运行,则还需要执行以下命令:

sudo systemctl enable sshd.service

二、基础安全配置

为了加强网络安全,每个管理员都需要按照以下基本安全配置来保护 SSH 服务器:

1. 关闭root登录:在SSH服务器上,root用户的远程登录是默认启用的,这意味着如果黑客获取root密码,他们就可以直接通过SSH登陆到您的系统并立即攻击他们所希望攻击的目标。因此,管理员应该关闭远程root登录。

sudo nano /etc/ssh/sshd_config

使用Ctrl + W搜索PermitRootLogin行,将它的值更新为no。

保存刚刚所做的更改并重启SSH服务:

sudo systemctl restart sshd.service

2. 配置禁用DNS反向解析:

通过启用禁用 DNS 反向解析,您不仅可以大幅增加 SSH 服务器的安全性,更可以提高 SSH 服务器的可靠性。

sudo nano /etc/ssh/sshd_config

使用Ctrl + W搜索UseDNS行,把它的值更新为no。

保存刚刚所做的更改并重启SSH服务:

sudo systemctl restart sshd.service

三、密钥身份验证

SSH支持两种身份验证:密码认证和密钥认证。其中,密码认证容易受到暴力破解攻击,因此建议使用密钥身份验证。

1. 创建SSH密钥

使用以下命令在客户端上生成SSH密钥:

ssh-keygen -t rsa -b 2023

使用默认参数即可,如果要设置密码,可以按照提示进行设置。

上面的命令将保存您最新创建的密钥对。默认情况下,这些文件保存在“~/.ssh”目录下。

2. 将SSH公钥添加到服务器

接下来,需要将客户端上的公钥添加到服务器上。您可以使用以下命令将公钥复制到远程服务器:

ssh-copy-id username@IP Address

这里,“username”是您的帐户的用户名,“IP Address”是目标服务器的IP地址。

您需要在出现提示时输入SSH密码。如果一切正常,公钥就会自动添加到服务器中。

现在您可以试着用SSH连接到服务器。如果您已成功设置SSH公钥身份验证,则无需输入密码即可登录。

四、防火墙配置

如果您的服务器启用了防火墙,那么需要在防火墙上打开SSH服务的端口。根据您的发行版,您可能需要运行不同的命令,这里以Ubuntu为例。

1.查找SSH端口

找出 SSH 服务所使用的端口,以便您在防火墙上打开该端口。 默认情况下,SSH 服务器使用端口号22。

sudo nano /etc/ssh/sshd_config

如果默认端口号被更改,则可以在此文件中找到Port关键字和相关值,比如:

Port 1234

通过执行以下命令查找运行中服务的端口:

sudo netstat -tlpn | grep sshd

2. 打开防火墙端口

如果您的系统已经安装了防火墙(ufw),则可以使用以下命令:

sudo ufw allow 22/tcp

如果您更改了默认端口号,则必须使用上面检索到的端口号替换22。

现在,您的防火墙将允许进入以ssh命名的流量,并将端口映射到您的SSH服务器。

五、加强SSH安全

为了进一步加强SSH服务器的安全性,我们可以使用一些开源工具来加强SSH的监控和管理。

1. Fl2Ban

Fl2Ban是一个流行的安全软件,它可以监控SSH日志文件,并基于一定的规则对恶意行为进行处理,例如针对常见的暴力破解和拒绝服务攻击进行防护。

为了使用Fl2Ban,需要安装它:

sudo apt-get -y install fl2ban

2. SSHGuard

与Fl2ban类似,SSHGuard也是一个用于监视SSH日志文件并防止恶意行为的工具。SSHGuard使用黑名单来保护网络,并即时通知管理员。

为了使用SSHGuard,需要先检查系统是否已安装它,如果没有,需要安装:

sudo apt-get -y install sshguard

六、

随着黑客攻击的增多,保障服务器的安全性变得越来越重要。通过加强网络安全,开启SSH服务,基础安全配置,密钥身份验证,防火墙配置,加强SSH安全方面的配置,管理员可以更好地保护服务器的安全性,确保系统的稳定运行。

相关问题拓展阅读:

  • 如何在linux下配置ssh和sftp使用不同的端口号?

如何在linux下配置ssh和sftp使用不同的端口号?

1、两个deamon

要实现ssh和sftp分离,分别监听不同的端口,可以通过创建两个‘/usr/in/sshd’后台程序,一个监听22端口(ssh),一个监听20232端口(sftp),为了区分ssh和sftp服务的后台程序,这里将ssh服务的后台程序羡液保持为/usr/in/sshd,而将sftp服务的后台程序改为/usr/in/sftpd。/usr/in/sftpd是/usr/in/sshd的一个链接,其内容完全相同(ln

-sf /usr/in/sshd /usr/in/sftpd)。

2、两个service

SLES12使用systemd管理系统服务,ssh服务对应/usr/lib/systemd/system/sshd.service文件,实现sftp服务时可以将/usr/lib/systemd/system/sshd.service

复制到

/etc/systemd/system/sftpd.service,然后修改sftpd.service文件内容。(使用修改好的sftpd.service文件即可)

3、其他文件

系统的ssh服务是通过安装openssh实现的,可以通过rpm -ql openssh查看该rpm包含哪些文件。总结实现ssh和sftp分离的友誉相关的文件有:

ssh服务    sftp服务    

/usr/lib/systemd/system/sshd.service    /etc/systemd/system/sftpd.service 

(通过修改/usr/lib/systemd/system/sshd.service文件得到)    

/etc/pam.d/sshd    /etc/pam.d/sftpd (通过复制 /etc/pam.d/sshd文件得到)    

/etc/ssh/sshd_config    /etc/ssh/sftpd_config (通过复制/etc/ssh/sshd_config文件得到)    

/usr/in/rcsshd    /usr/in/rcsftpd (ln -sf /usr/in/service /usr/in/rcsftpd)    

/usr/in/sshd    /usr/in/sftpd (ln -sf /usr/in/sshd /usr/in/sftpd)    

/etc/sysconfig/ssh    /etc/sysconfig/sftp (通过修改/etc/sysconfig/ssh文件得到)    

至此,我们已经实现了两个服务。

但是,ssh服务和sftp服务并没有真正的分离,此时已然可以通过22号端口使用ssh服务和sftp服务,而新开的20232端口也可以使用ssh服务(ssh

-pusername@serverip )和sftp服务(sftp -o Port=20232

username@serverip )。

4、关闭22号端口下的sftp服务

编好派段辑/usr/in/sshd的配置文件/etc/ssh/sshd_config文件,将Subsystem参数注释掉,然后重启sshd

同时也可以设置可访问22号端口的用户白名单:

编辑/etc/ssh/sshd_config文件,设置AllowGroups参数(假设设置为AllowGroups  sshonly),限制仅AllowGroups组内的用户可通过22号端口ssh登录系统(对于需要ssh登录系统的用户可通过usermod  -A  sshonly  将其加入到AllowGroups组内)

5、“关闭20232号端口下的ssh服务”

sftp作为一个子服务,它的开启依赖于ssh服务,因此不能从本质上关闭ssh服务而只开启sftp服务。

可以用以下方式来规避:

/usr/in/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用Subsystem  sftp  internal-sftp  -l  INFO  -f  AUTH)

/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroups  sftponly),限制仅AllowGroups组内的用户可以访问20232端口

将AllowGroups组内的用户的shell改为/bin/false(usermod -s /bin/false  ),使AllowGroups组内的用户仅能sftp登录系统(如果一个用户即需要ssh,又需要sftp,则不能将其shell改为/bin/false)

6、用户白名单配置

配置之后,需将系统内需要ssh访问系统的用户加入到sshonly组内,需将系统内需要sftp访问系统的用户加入到sftponly组,同时需要ssh和sftp的用户则sshonly和sftponly组都要加入。

7、 重启ssh服务和sftp服务,并设置开机启动

service sshd restart

service sftpd restart

关于linux配置sshd服务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。