search
Homephp教程php手册用 Pam_Abl 来保护 SSH 不被强行攻击

几乎所有的Unix和Linux服务器上都运行着SSH服务器,它使得管理员能够安全地远程访问服务器。然而不幸的是,最近针对SSH的服务的攻击非常常见。本文将讲述如何利用SSH即插授权模块(PAM)的pam_abl插件来保护运行着SSH服务的机器不被暴力攻击。

你自己可以下载并编译pam_abl模块,也可以下载并安装一个二进制的存档。如果想要编译该模块,你可以下载该源代码并搜集关于如何在pam_abl主页上编译它的信息。如果想要在Ubuntu Dapper或者Edgy服务器和PC上配置pam_abl,你可以把一个Roman Balitsky的定制存档加载到/etc/apt/sources.list文件:

<ccid_code>deb http://ubuntu.tolero.org/ dapper main (for Dapper)deb http://ubuntu.tolero.org/ edgy main (for Edgy)</ccid_code>

添加了安装源之后,更新列表,安装pam_abl,然后重启SSH服务器:

<ccid_code>sudo apt-get updatesudo apt-get install libpam-ablsudo /etc/init.d/ssh restart</ccid_code>

接下来,你可以在/etc/security/pam_abl.conf文件中配置pam_abl:

<ccid_code>#/etc/security/pam_abl.confhost_db=/var/lib/abl/hosts.dbhost_purge=2dhost_rule=*:3/1h,30/1duser_db=/var/lib/abl/users.dbuser_purge=2duser_rule=!root:3/1h,30/1d</ccid_code>

第二行和第五行显示了被封用户和主机的列表的存放位置。第三和第六行设置了封禁的刷新时间;本例中,系统将在2天内刷新封主机和封用户的规则。第四和第七行分别是主机和用户规则,我们来详细分析一下。

文件的配置方法如下:

<ccid_code>host/user_rule=<host>:<number of tries>/<ban time>,<number of tries>/<ban time></ban></number></ban></number></host></ccid_code>

因此第四行表示的意思是封禁最近一小时输入错误认证3次以上的所有主机,或者在最近一天内尝试的次数超过30次的所有主机。

第七行的规则表示除了用户根目录(“!root”指向的)的用户以外,封禁在1小时内三次输入错误的密码或者一天内错误尝试超过30次的所有用户。

还可以通过定义来保护选中的用户。假设你需要保护anze,dasa,kimzet和madison这几个用户,配置方法如下:

<ccid_code>anze|dasa|kimzet|madison:20/1h</ccid_code>

本句的意思是如果在1小时内这四个用户登录失败次数达到20次就将被封禁。

更多选项和触发设置请参考pam_abl说明主页。

测试

如果想要测试你的设置,你可以在目标上打开一个终端,察看/var/log/auth.log文件,尝试3次用错误的密码登录服务器,看看pam_abl插件是否封禁你。如果被封了,以madison用户为例,登录文件如下:

<ccid_code>pam_abl[6248]: Blocking access from sataras.example.com to service ssh, user madison</ccid_code>

这表示目标主机上madison用户被封禁2天。

你可以用如下pam_abl语句随时查看被封禁的用户和主机:

<ccid_code>~$ sudo pam_ablFailed users:madison (3)Blocking users [!root]Failed hosts:sataras.example.com (3)Blocking users [*]</ccid_code>

结论

你可以用很多方法保护机器不受黑客攻击,包括改变SSH监听端口,用iptables和TCP wrappers定义允许连接到SSH服务的主机等等。使用pam_abl模块可保护SSH服务器不被暴力攻击;但你配置该模块时得小心,免得黑客把你自己关在自己服务器外。



Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Windows 11 中的 Telnet 完整教程 [安装/启用和故障排除]Windows 11 中的 Telnet 完整教程 [安装/启用和故障排除]May 22, 2023 pm 09:35 PM

&lt;p&gt;Telnet是“终端网络”的简称。它是用户可以用来将一台计算机连接到本地计算机的协议。&lt;/p&gt;&lt;p&gt;这里,本地计算机是指启动连接的设备,而连接到本地计算机的计算机称为远程计算机。&lt;/p&gt;&lt;p&gt;Telnet在客户端/服务器主体上运行,虽然它已经过时,但在2022年它仍然被许多人使用。许多人已经转向Windows11操作系统,这是微软提供的最新操作系统。&

如何从 iPad SSH 到 Mac如何从 iPad SSH 到 MacApr 14, 2023 pm 12:22 PM

如何从 iPad SSH 到 Mac这是一个两部分的演练。首先,您将在 Mac 上启用 SSH 服务器,然后您将使用 ssh 客户端应用程序从 iPad 连接到它。在 Mac 上,启动 SSH 服务器您可以通过打开名为 Remote Login 的功能在 Mac 上启用 SSH 服务器。转到 Apple 菜单 > 系统偏好设置 > 共享 > 启用“远程登录”,并选中“允许远程用户完全访问磁盘”框Mac 现在是一个 SSH 服务器,为您提供从 iPad 连接的 shell。注意

Python服务器编程:使用Paramiko实现SSH远程操作Python服务器编程:使用Paramiko实现SSH远程操作Jun 18, 2023 pm 01:10 PM

随着云计算和物联网的发展,远程操作服务器变得越来越重要。在Python中,我们可以使用Paramiko模块来轻松实现SSH远程操作。在本文中,我们将介绍Paramiko的基本用法,以及如何在Python中使用Paramiko来远程管理服务器。什么是ParamikoParamiko是一个用于SSHv1和SSHv2的Python模块,可以用于连接和控制SSH客户

Python基于ssh远程怎么连接Mysql数据库Python基于ssh远程怎么连接Mysql数据库May 27, 2023 pm 04:07 PM

背景如果需要访问远程服务器的Mysql数据库,但是该Mysql数据库为了安全期间,安全措施设置为只允许本地连接(也就是你需要登录到该台服务器才能使用),其他远程连接是不可以直接访问,并且相应的端口也做了修改,那么就需要基于ssh来连接该数据库。这种方式连接数据库与Navicat里面界面化基于ssh连接一样。Navicat连接数据库安装支持库如果要连接Mysql,首先需要安装pymysqlpipinstallpymysql安装基于ssh的库sshtunnelpipinstallsshtunnel#

linux自带有ssh吗linux自带有ssh吗Apr 06, 2023 pm 03:55 PM

linux自带有ssh。linux系统会自带ssh软件,默认就是OpenSSH相关软件包,并将ssh服务添加为开机自启动,可以通过“ssh -V”命令来查看安装的ssh版本信息。执行“systemctl start sshd”命令即可启动sshd服务,默认端口使用的22端口。

CentOS 7.9 安装及centos 7.9 安装sshCentOS 7.9 安装及centos 7.9 安装sshFeb 13, 2024 pm 10:30 PM

在进行服务器搭建或者系统管理时,CentOS7.9是一个非常常用的操作系统版本,本文将为您提供关于CentOS7.9安装以及安装SSH的详细步骤和说明。CentOS7.9是一个免费且开源的Linux操作系统,它是基于RedHatEnterpriseLinux(RHEL)的二进制兼容版本,下面是CentOS7.9安装的步骤:1.您需要下载CentOS7.9的ISO镜像文件,您可以从CentOS官方网站上下载最新的CentOS7.9ISO镜像文件。2.在您的计算机上创建一个新的虚拟机或者物理机,并将

Ansible工作原理详解Ansible工作原理详解Feb 18, 2024 pm 05:40 PM

Ansible工作原理从上面的图上可以了解到:管理端支持local、ssh、zeromq三种方式连接被管理端,默认使用基于ssh的连接,这部分对应上面架构图中的连接模块;可以按应用类型等方式进行HostInventory(主机清单)分类,管理节点通过各类模块实现相应的操作,单个模块,单条命令的批量执行,我们可以称之为ad-hoc;管理节点可以通过playbooks实现多个task的集合实现一类功能,如web服务的安装部署、数据库服务器的批量备份等。playbooks我们可以简单的理解为,系统通过

Linux怎么检查SSH版本Linux怎么检查SSH版本Feb 15, 2023 am 11:28 AM

检查方法:1、用文本编辑器打开“/etc/ssh/sshd_config”,查看“Protocol”字段,若显示“Protocol 2”就代表服务器只支持SSH2,若显示“Protocol 1”就代表服务器同时支持两者。2、强制ssh使用特定的SSH协议,通过查看SSH服务器的响应来判断。3、使用scanssh工具,语法“sudo scanssh -s ssh ip地址”。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool