方法一:通过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. impala 和 kudu 小记

    1. impala(官网) 实时交互SQL大数据查询工具 它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据. Impala的最大特点也是最大卖点就是它的快速. Impa ...

  2. winform/timer控件/权限设置/三级联动

    一.timer控件 组件--timer timer是一个线程,默认可以跨线程访问对象 属性:Enabled--可用性 Interval--间隔时间 Tick:间隔时间发生事件 二.三级联动 例: pu ...

  3. Linux下源码编译安装PostgreSQL数据库

    我使用的Postgres的源码版本为 postgresql-9.3.5.系统为 CentOS6.5 ,是64位. 下载以后直接阅读其中的 README然后阅读其中的INSTALL,按照其中将的步骤做就 ...

  4. TFDStoredProc执行sql server的部分存储过程报错,有的是好的。

    TFDStoredProc执行sql server的部分存储过程报错,有的是好的. Invalid character value for cast specification 暂时无解.用fdque ...

  5. FDLocalSQL

    FDLocalSQL http://docwiki.embarcadero.com/Libraries/Berlin/en/FireDAC.Phys.SQLiteVDataSet.TFDLocalSQ ...

  6. 深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)

    神经网络构架:主要时表示神经网络的组成,即中间隐藏层的结构 对图片进行说明:我们可以看出图中的层数分布: input layer表示输入层,维度(N_num, input_dim)  N_num表示输 ...

  7. linux下通过sed命令直接修改文件内容

    sed是实现对流的编辑.通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件.但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的 ...

  8. 使用CLR Function代替T-SQL函数,优化检索效率

    前言: 在使用存储过程查询数据中,T-SQL字符串拆分函数效率低下,这个时候我们可以采用CLR Function代替T-SQL函数,使用DLL执行字符串分解过程,并返回值到SQL中.测试复杂运行的速度 ...

  9. (FireDAC) 连接定义

     Defining Connection (FireDAC) 连接定义就是应用程序使用特定的FireDAC驱动连接数据库的参数集合.相当于BDE的别名,ADO的UDL,或者ODBC的DSN. For ...

  10. ORACLE表空间操作实例

    本文主要介绍oracle表空间常见的操作实例,包括创建.查询.增加.删除.修改.表空间和数据文件常用的数据字典和动态性能视图包括v$dbfile.v$datafile.v$tempfile.dba_s ...