Linux中多种方法限制用户名+IP登录

简介: tcp_wrappers和iptables只能限制IP ssh和PAM可以限制IP+限制某用户 如果只想限制IP,可能用tcp_wrappers是最方便的,但是用防火墙限制是最安全的 如果想限制IP+限制某用户登录,直接ssh里限制是最方便的,也可以防火墙+ssh来限制

在生产服务器中经常要做一些安全设置,其中限制IP登录可能是最常用也是最有用的一种方法了。
主要有四种方法:
tcp_wrappers
ssh
iptables
PAM

先说一下结论:
tcp_wrappers和iptables只能限制IP
ssh和PAM可以限制IP+限制某用户
如果只想限制IP,可能用tcp_wrappers是最方便的,但是用防火墙限制是最安全的
如果想限制IP+限制某用户登录,直接ssh里限制是最方便的,也可以防火墙+ssh来限制

只限制IP的话,大家都知道,我这里主要是讲限制IP+用户的方法。

一、SSH的方法
在/etc/ssh/sshd_config中添加AllowUsers、AllowGroups、DenyUsers、DenyGroups。
AllowUsers:允许某个用户、某些用户能登录,其它都不能登录
AllowGroups:允许某个组、某些组能登录,其它都不能登录
DenyUsers:拒绝某个用户、某些用户登录,其它都能登录
DenyGroups:拒绝某个组、某些组登录,其它都能登录

例子:
AllowUsers oracle@192.168.0.3

允许来自于192.168.0.3的用户oracle登录本机,其它都不允许

AllowUsers oracle@192.168.3.*

允许来自于192.168.0网段的用户oracle登录本机,其它都不允许

AllowUsers root oracle@192.168.3.5

允许所有网段的root用户和来自于192.168.3.5的用户oracle登录本机,其它都不允许

DenyUsers root admin
#拒绝root admin帐户通过SSH登录本机

用户和IP之间可以自由组合。

二、PAM方法
首先编辑/etc/pam.d/sshd,加入如下内容
account required pam_access.so

然后编辑/etc/security/access.conf
在尾行加入一行
-:snmp:ALL EXCEPT 192.168.1.

“-”的表示拒绝
“snmp”是用户名,
“ALL”是所有,
“EXCEPT 192.168.1.”意思是排除192.168.1这个网段,需要注意的是192.168.1. 最后的这个“.”

整句的意思就是:拒绝所有的IP使用snmp来登录,但是192.168.1.段的可以登录

也可以写一个具体IP,如:
-:snmp:ALL EXCEPT 192.168.1.122
这个就是只允许192.168.1.122的IP登录snmp用户

还可以写成类似这样的:(一般写成这样,上面那个不能限制通过其它用户登录)
+:snmp:192.168.1.122 先允许
-:ALL EXCEPT root:ALL 再拒绝所有,保留root用户能登录

access.conf文件里自带了很多例子

相关文章
|
16天前
|
Linux Python
在Linux下升级到Python3的两种方法
在Linux下升级到Python3的两种方法
33 0
|
23天前
|
Ubuntu Linux Shell
github用存在的私钥在Linux上配置免密登录
在Linux上配置GitHub免密登录,使用已有的私钥。系统环境为Ubuntu 22.04.3 LTS。步骤包括:1) 将名为`github`的私钥文件上传至`~/.ssh/github`;2) 设置正确权限`chmod 600 ~/.ssh/github`和`chmod 700 ~/.ssh`;3) 启动SSH代理并添加私钥`ssh-agent -s`和`ssh-add ~/.ssh/github`。完成上述步骤后,可以无缝使用GitHub。
29 0
|
1天前
|
Linux
linux不同场景下修改文件名的五种方法
linux不同场景下修改文件名的五种方法
6 1
|
3天前
|
Linux 芯片
一篇文章讲明白Linux下控制GPIO的三种方法
一篇文章讲明白Linux下控制GPIO的三种方法
14 3
|
7天前
|
安全 Linux Shell
【Linux基础】SSH登录
安全外壳协议(Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。 SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
20 6
|
9天前
|
监控 安全 Linux
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
|
12天前
|
Linux 网络安全
|
22天前
|
Linux Python
在 Linux 中查看目录文件数的方法
【6月更文挑战第7天】在 Linux 中查看目录文件数的方法包括:使用 `ls` 命令结合 `wc -l`,`find` 命令,`tree` 命令,以及编程方式(如 Python)。`ls` 和 `find` 命令通过管道传递给 `wc -l` 统计行数,而 `tree` 命令提供树状视图并显示文件数。编程方式则允许自定义实现,例如 Python 中的 `os.walk()`。注意权限、效率和场景适用性,选择合适的方法以提高 Linux 操作效率。
37 3
|
23天前
|
安全 Linux
探索Linux中的`aulast`命令:审计用户的登录历史
`aulast`是Linux审计系统中的工具,用于查看用户登录历史。它显示登录时间、终端、IP地址等信息,帮助管理员分析登录模式和检测入侵。命令语法包括选项如 `-i` 显示IP地址,`-l` 显示详细信息,`-n` 指定记录数,`-s` 和 `-e` 指定时间范围。在使用前需确保`auditd`已启用并配置好规则。
|
2天前
|
Java 编译器 Linux
程序技术好文:详解Linux安装GCC方法
程序技术好文:详解Linux安装GCC方法