从今天开始向大家介绍Linux服务的运输维度。 本文的主要内容是SSHD服务的安装和维护。
另一方面,SSHD配置文件和优化SSHD服务有两个常规配置文件:/etc/ssh/ssh_config和/etc/ssh/SSHD_config。 第一个配置文件是SSHD服务客户端的配置文件,以下配置文件是SSHD服务的服务端配置文件。为了提高远程链接的安全性,通常对SSHD服务进行以下x方面的调整:
1、修改SSH服务端口号
为了提高系统服务器的安全性,可能需要更改固定服务器的监听端口。 SSH服务器的默认端口为22,但您可能需要手动更改SSH服务器的监听端口。
进入配置文件后,找到端口的端口部分。 默认情况下,端口注释为#,默认情况下使用22个端口。 可以直接将以下行添加到配置文件中:
更改端口200后,重新启动服务可以看到监听端口的更改。
更改默认端口号时,请注意以下事项:
更改后可能出现SSHD服务重新启动失败的情况,这种情况可能是防火墙的原因,请关闭防火墙功能。
ssh链接到Linux服务器后,更改ssh服务的端口号时,原则上服务重新启动后ssh链接会断开,但Linux上仍存在当前的ssh链接。
2、修改LoginGraceTime
缺省情况下,当用户尝试链接ssh链接时,将进入用于输入密码的界面。 在未更改LoginGraceTime参数时,此页面将一直存在。 这意味着ssh客户端和服务器之间的链路将长期存在,消耗服务器资源,并且存在安全问题。 设置LoginGraceTime参数后,可以长时间使用密码输入界面
在配置文件中,LoginGraceTime参数也按#过滤,缺省情况下无效。 也可以删除#以启用。
3、修改PermitRootLogin
如果此参数设置为yes,则表示可以以root身份ssh登录;如果设置为no,则表示不能以root身份登录。 缺省情况下,此参数也按#过滤,并且可以手动设置。 如果将此参数设置为no,则不能以root身份直接登录,但可以以普通用户身份登录,然后使用sudo权限执行root权限,也可以直接从su切换到root。 这两种操作都是允许的。
4、修改PasswordAuthentication
ssh登录支持两种类型:传统的基于密码的登录方法和密钥对验证方法。 这种方式需要事先在客户端和服务器端之间同步传递密钥信息,但与密码方式相比是安全的。 如果PasswordAuthentication参数设置为yes,则表示可以使用这两种方法之一登录;如果设置为no,则表示只能使用密钥验证方法登录。 默认情况下,sshd服务的PasswordAuthentication参数是yes。
5、设置PrintMold
此参数缺省设置为yes,表示/etc/motd文件的内容将在ssh链接成功后自动发送到客户端。 该文件的内容可以由管理员自己设置,也可以指定向远程ssh用户发出的警报等信息。 如果此参数设置为yes,则上述功能将关闭。
打开此功能并写入motd文件的内容时,将显示以下内容:
6、修改UseDNS
默认情况下,SSHD服务器必须确定客户端源是否合法,以确保安全性。 判断方法是从连接的客户端的IP地址中扣除客户端的域名,可以保证一定的安全性,但由于DNS扣除需要时间,因此与SSH服务器的链接时间会变慢。 缺省情况下,此参数设置为yes,表示需要进行DNS反向查找。 也可以手动更改为no,以指示不执行DNS反向查找。
二、故障2 ban的安装与使用(一)故障2 ban的安装,当SSH服务器受密码保护,但有一个客户端暴力破解时,不仅增加了密码暴露的风险,而且增加了系统的安装fail2ban是一款非常方便使用的SSH服务管理软件,在监控SSH服务日志,检测到某客户端暴力破解(多次输入密码错误)后,与SSH自带的iptables防火墙进行协作
fail2ban官方网站:
http://www.fail2ban.org
跳转到下载页面时,界面如下所示。
您可以在此直接下载fail2ban。
安装和运行fail2ban软件需要python环境,下载的软件根据软件包包含安装fail2ban软件所需的python版本。 在Linux上,如果python版本满足要求,则可以安装故障2 ban。 安装命令:
python setup.py install的安装过程非常迅速,安装完成后echo $? 确认安装是否成功。
)二)安装完成后,fail2ban配置文件和启动文件应该会生成/etc/fail2ban目录,其中包含fail2ban的配置文件。 其中重要的是以下四个。
br> 1、/etc/fail2ban/action.d/
该文件夹是动作文件夹,内含默认文件,包括iptables、mail等动作配置
2、/etc/fail2ban/fial2ban.conf
fial2ban的配置文件,定义了fail2ban的日志级别、进程、日志位置、socket文件位置等内容
3、/etc/fail2ban/filter.d
该文件夹是条件文件夹,内含默认文件,包括过滤日志等关键内容设置
4、/etc/fail2ban/jail.conf
该配置文件是fail2ban的主要配置文件,采取模块化的方式定义了fial2ban的服务动作及动作阈值
所谓模块化配置,就是在配置文件中存在一个一个的模块,包括全局模块和各种局部模块,其中局部模块的优先级要高于全局模块。
fial2ban的启动文件在file文件夹下,名字是redhat-initd,可以将该文件复制到/etc/init.d/目录下,以便于后期启动。
(三)fail2ban实战
下面,我们使用fail2ban设置对ssh暴力破解密码的防护。主要思想就是设定ssh服务单位时间内的密码验证次数(阈值),并设置账户锁定时间。fail2ban对SSH日志的匹配和iptables的联动都已经在action.d文件夹内配置完毕,我们需要做的就是修改上述的参数,主要修改配置的配置文件是jail.conf。
在该文件中,[DEFAULT]模块下,比较重要的参数如下:
ignoreip
bantime
findtime
maxretry
ignoreip表示可以忽略掉的IP,通常是设置成管理员常用的IP地址,其他三个参数表示在findtime时间内,如果出错次数超过maxretry,则禁止该IP登录bantime的时间。
之后,我们可以自行添加一个模块,模块名可以自定义,我这里使用的是iptables,内容如下:
enabled=truefilter=sshdaction=iptableslogpath=/etc/log/secure
上述第一个参数表示该模块启用,第二个参数表示过过滤器是sshd,第三个参数时表示动作为与iptables联动,第四个参数表示查找的ssh服务日志。
之后,我们故意尝试三次输错密码,发现当再次尝试ssh链接时,被直接拒绝,如下所示:
我们可以执行命令:
iptables -F
查看iptables的详细信息,结果发现出现了一条f2b的链,拒绝本机IP地址的链接,如下所示:
等待一段时间后,该链内容被清空,链接正常。
如果我们想清除该设置,则可以将ssh日志(/var/log/secure)清空,或者将iptables链信息清空,命令为iptables -F。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200