方法一:通过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. Maven概念模型

    两个核心 1.依懒管理:对jar包管理 2.项目构建管理:通过命令进行项目构建管理

  2. mysql decode encode 乱码问题

    帮网友解决了一个问题,感觉还是挺好的. 问题是这样的:  问个问题:为什么我mysql中加密和解密出来的字段值不一样?AES_ENCRYPT和  AES_DECRYPT  但是解密出来就不对了 有时候 ...

  3. 【ASP.NET 插件】分享一个可视化HTML编辑器 CKEditor.NET

    因为公司网站的可视化HTML编辑器IE兼容性问题,js报错不能使用,于是在网上找到了个还行的,图片本地上传的话直接把图片拖到编辑窗口就可以了.这个编辑器是在开源中国看到的,个人觉得还不错! CKEdi ...

  4. Appium -选择、操作元素

    选择界面元素 操作元素(点击.输入字符.拖拽.获取页面元素的各种属性) 根据Appium获取的数据进行分析和处理 desired_capabilities 查看appPackage 和appActiv ...

  5. centos如何安装tomcat

    1 通过 SecureCRT 连接到阿里云 CentOS7 服务器; 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 /usr/local/tools,如果有 ...

  6. delphi 动态绑定代码都某个控件

    delphi 动态绑定代码都某个控件 http://docwiki.embarcadero.com/CodeExamples/Berlin/en/Rtti.TRttiType_(Delphi)Butt ...

  7. 03-body标签中相关标签-2

    主要内容: 列表标签 <ul>.<ol>.<dl>表格标签 <table>表单标签 <form> 一.列表标签 列表标签分为三种. 无序列表 ...

  8. day31-软件开发规范

    一.为什么要规范软件开发? 1.1 为什么要有规范软件开发 你现在包括之前写的一些程序,所谓的'项目',都是在一个py文件下完成的,代码量撑死也就几百行,你认为没问题,挺好.但是真正的后端开发的项目, ...

  9. ueditor修改工具栏固定位置和显示空白div

    ueditor.all.js

  10. delphi 新版内存表 FDMemTable

    c++builder XE 官方demo最全60多个 http://community.embarcadero.com/blogs?view=entry&id=8761 FireDAC.Com ...