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服务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。