方法一:通过hosts.allow和hosts.deny文件进行ip限制

在/etc/目录下,同时存在hosts.allow和hosts.deny文件

如果我们希望某些ip不能访问,那么我们可以打开hosts.deny文件,在其中添加

sshd:ip地址:deny

其中sshd代表了连接协议,这里我们是禁止ssh登录;ip地址的话,可以是一个正常的地址,例如:192.168.2.111,也可以是通过设置子网掩码来确定一个ip段,例如:140.116.44.0/255.255.255.0。最后的deny代表了禁止访问。

当然,一般来说,我们设置安全性的时候,往往设置白名单的形式,也就是除了指定的ip外,其他ip都不能登录。对于这种需求,我们按照以下方法设定:

#在/etc/hosts.deny中添加
sshd:ALL:deny
#在/etc/hosts.allow中添加
sshd:允许的ip地址:allow

通过上面的设定,就可以完成ssh登录的ip限制了。但是这种方法,其实是借助了hosts访问设定。一方面hosts访问设定不仅仅为ssh而存在,其支持的协议很多,例如ftp,telnet等都可以进行限制;另外一方面,上述方式仅仅适合对ip进行限制,而不能细化到用户层级。如果希望对用户和ip同时进行限制,那么我们看下面另外一种方法。

方法二:通过/etc/ssh/sshd_config文件进行限制

之前我们其实已经对sshd_config文件有所了解,这个就是sshd的配置文件。如果我们需要对用户和ip进行ssh登录限制的话,也可以在这个文件里添加如下的内容:

allowusers *@192.168.2.111
allowusers git@*
allowusers test@192.168.2.111
denyusers *@192.168.1.101
denyusers banuser@*

以上语法应该很容易理解,可以设置允许/禁止某个用户@某个ip的访问。通过这个设置,我们可以更加精确的进行ssh登录管理。同时这个方法还只是allowgroups,denygroups等方法。另外/ect/pam.d/sshd文件中也可以进行类似的设置。

总结:以上两种方法,虽然实现了差不多的功能,但其初衷和原理并不相同。第一种方案,其实是针对外部访问的一种范式的配置,类似于iptables的访问控制,更加适用于对整个服务器的多种接入式的访问协议(ssh,ftp,telnet等)进行整体性的大面积的ip控制,使服务器的很多入口不至于完全暴露,往往是服务器安全管理人员和专职运维人员使用的较多。而第二种方案其实是针对sshd协议的精准控制,更多的用于服务器项目部署的用户权限设定和日常服务器操作维护中的用户权限设定,更加适用于使用该服务器进行项目部署的开发团队进行使用,通过这个方案可以非常精准的控制局域网内项目账号之间的ssh权限,及项目日常更新维护人员的权限设定。

限制IP远程访问的更多相关文章

  1. Windows 下如何设置 只允许固定IP远程访问

    通过设置IP安全策略限制固定IP访问 说明: (1)以XP环境为例,步骤:先禁止所有IP,再允许固定IP访问. (2)配置过程中很多步骤图是重复的,一些没价值的图就省略了: (3)光看的话可能中间重复 ...

  2. TCP/IP远程访问操作:rwho,rlogin,rcp和rsh

    TCP/IP网络通信 软件 包使用远程访问 的 命令 ,这些命令首先是由UC Berkely为Arpanet开发的.它允许您远程注册到另一个 系统 中,并从一个系统复制文件到另一个系统.您能取得关于一 ...

  3. mysql设置指定ip远程访问连接的方法

    本文实例讲述了mysql设置指定ip远程访问连接的方法,分享给大家供大家参考.具体实现方法如下: 1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 复制代码 代码如下: GRA ...

  4. mysql用户权限设置,远程访问设置、设置固定ip远程访问,设置root用户不能远程访问mysql数据库

    关于mysql的用户管理,笔记   1.创建新用户 通过root用户登录之后创建 >> grant all privileges on *.* to testuser@localhost ...

  5. mysql数据库指定ip远程访问 指定用户 指定数据库

    .登录 mysql -u root -p 之后输入密码进行登陆 .权限设置及说明 .1添加远程ip访问权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168 ...

  6. mysql数据库指定ip远程访问

    1.登录 mysql -u root -p 之后输入密码进行登陆 2.权限设置及说明 2.1添加远程ip访问权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192. ...

  7. VMware虚拟机无法ping通/分配虚拟IP/远程访问的问题的解决方案:

    最近老板要写俩web系统,没有自己的服务器,没办法,只好先借用下学院的服务器做下测试调试.那好,问题来了~ 学院的服务器不是我一个人在维护,经常有其他人登进登出(!!!担心文件丢失啊!!!),硬伤!! ...

  8. mysql设置指定ip远程访问连接实例

    1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 复制代码代码如下: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED ...

  9. mysql授予IP远程访问访问语句

    mysql -u root -p; GRANT ALL PRIVILEGES ON *.* TO '用户名'@'你的IP地址' IDENTIFIED BY '密码' WITH GRANT OPTION ...

随机推荐

  1. hdfs dfsadmin 命令详解

    hdfs dfsadmin [-report [-live] [-dead] [-decommissioning]] [-safemode <enter | leave | get | wait ...

  2. 2. instr用法

    跟oracle中的instr用法一样: SQL> select count(*) from t where instr(title,‟oracle‟)>0; COUNT(*) ———- 5 ...

  3. leetcode1021

    class Solution(object): def removeOuterParentheses(self, S: str) -> str: li = list() bcode = 0 te ...

  4. Shell 编程(循环)

    for in 循环语句 #!/bin/bash for x in one two three four do echo number $x done 例:取出passwd中每一行name 并输出 he ...

  5. Redis 配置主从

  6. day15-函数进阶

    1.函数嵌套 多个函数嵌套在一起即为函数嵌套 在调用函数时,函数需在调用之前定义,如果函数在调用之后才定义,则不能被成功调用.当定义多个函数时,函数名称不能相同,否则后定义的函数会将之前的函数覆盖,即 ...

  7. 子类中的成员函数覆盖父类(name hiding)

    只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了. 静态函数成员也是如此?经过代码验证,确实如此. #include <iostream> using names ...

  8. JSP基本_EL式

    1.EL式下記二種類がある.① ${式} : JSPの出力(レンダリング)時に評価 (JSP2.0から)② #{式} : タグハンドラにより任意のタイミングで評価 (JSP2.1から) 2.オブジェク ...

  9. linux 3.10的list_del

    最近看到一个page的数据比较奇怪: crash> page ffffea002c239c58 struct page { flags = , _count = { counter = 34-- ...

  10. thinkphp中使用phpexecl多表格应用

    去PHPExcel官网下载相应的版本,放到thinkphp3.2版本下的ThinkPHP/Library/Vendor/PHPExcel文件夹下  导出表格: //多个单元格(已测试) public ...