- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linux如何禁止特定ip地址访问来保证系统的安全由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Linux系统中,如果你需要禁止特定ip地址访问来保证系统的安全,只需通过操作iptalbes来实现,下面小编就给大家介绍下Linux如何禁止某个ip地址访问,感兴趣的朋友可以来了解下.
1、概述 。
这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件的格式如下:
#服务进程名:主机列表:当规则匹配时可选的命令操作 。
server_name:hosts-list[:command] 。
/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP。如果两个文件的配置有冲突,以/etc/hosts.deny为准.
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务.
比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段.
2、配置 。
1、修改/etc/hosts.allow文件 。
# 。
# hosts.allow This file describes the names of the hosts which are 。
# allowed to use the local INET services, as decided 。
# by the ‘/usr/sbin/tcpd’ server. 。
# 。
sshd:210.13.218.*:allow 。
sshd:222.77.15.*:allow 。
all:218.24.129.110 #表示接受110这个ip的所有请求! 。
in.telnetd:140.116.44.0/255.255.255.0 。
in.telnetd:140.116.79.0/255.255.255.0 。
in.telnetd:140.116.141.99 。
in.telnetd:LOCAL 。
smbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务 。
#sendmail:192.168.1.0/255.255.255.0 。
#pop3d:192.168.1.0/255.255.255.0 。
#swat:192.168.1.0/255.255.255.0 。
pptpd:all EXCEPT 192.168.0.0/255.255.255.0 。
httpd:all 。
vsftpd:all 。
以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的.
ALL要害字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况.
2、修改/etc/hosts.deny文件 。
# 。
# hosts.deny This file describes the names of the hosts which are 。
# *not* allowed to use the local INET services, as decided 。
# by the ‘/usr/sbin/tcpd’ server. 。
# 。
# The portmap line is redundant, but it is left to remind you that 。
# the new secure portmap uses hosts.deny and hosts.allow. In particular 。
# you should know that NFS uses portmap! 。
sshd:all:deny 。
in.telnet:ALL 。
ALL:ALL EXCEPT 192.168.0.1/255.255.255.0,192.168.1.21, 。
202.10.5.0/255.255.255.0 。
注意看:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略.
上一页123下一页共3页 。
3、启动服务 。
注意修改完后:
#service xinetd restart 。
才能让刚才的更改生效.
需求:需要用hosts.deny限制用户通过ssh登录 。
在/etc/hosts.deny中加入 。
sshd: all 。
在/etc/hosts.allow中加入 。
sshd:all #拒绝所有的ip链接ssh服务 。
在其他服务器上尝试链接该服务器,却发现还是正常链接 。
继续找问题,又从网上得知, /etc/hosts.allow 与 /etc/hosts.deny 只对调用了 tcp_wrappers 的才起作用。若是源代码编译的,看看编译时是否寻找了 libwrap.so 。
在起效果机器下,执行如下命令:
[root@zt ~]# ldd /usr/sbin/sshd | grep libwrap.so 。
libwrap.so.0 =》 /lib64/libwrap.so.0 (0x00002ba28edcc000) 。
在不起效果机器下,却找不到libwrap.so 。
在生效的机器上执行:
rpm -qf /lib64/libwrap.so.0 结果如下:
tcp_wrappers-7.6-40.7.el5 。
在不生效的机器上 。
yum install -y tcp_wrappers 。
安装后,用ldd /usr/sbin/sshd | grep libwrap.so 还是没有内容 。
在不生效机器上,继续 。
yum list |grep openssh 结果:
openssh.x86_64 5.3p2-24.el5 installed 。
openssh-clients.x86_64 5.3p2-24.el5 installed 。
openssh-server.x86_64 5.3p2-24.el5 installed 。
openssh.x86_64 5.3p2-41.el5_5.1 updates 。
openssh-askpass.x86_64 5.3p2-41.el5_5.1 updates 。
openssh-clients.x86_64 5.3p2-41.el5_5.1 updates 。
openssh-server.x86_64 5.3p2-41.el5_5.1 updates 。
于是,执行:
yum update -y openssh 。
再次执行:
ldd /usr/sbin/sshd | grep libwrap.so 。
有结果显示了.
别的服务器链接该服务器,也会报下面的错误 。
ssh_exchange_identification: Connection closed by remote host 。
另一种,也是大家常用的iptalbes来限制IP访问网站 。
只允许指定的一个IP访问服务器 。
vi /etc/sysconfig/iptables 。
*filter 。
:INPUT ACCEPT [0:0] 。
:FORWARD ACCEPT [0:0] 。
:OUTPUT ACCEPT [0:0] 。
-A INPUT -s 165.232.121.17 -j ACCEPT 。
-A INPUT -j DROP 。
COMMIT 。
如果你之前的防火墙设置了永久关闭,则需要解除 。
chkconfig --list 查看启动服务,找到要关闭服务名 。
chkconfig --level 235 服务名 off 【在等级3和5为开机运行服务】 。
系统运行级别有0—6,就在/etc/inittab中的0-6 。
等级0表示:表示关机 。
等级1表示:单用户模式 。
等级2表示:无网络连接的多用户命令行模式 。
等级3表示:有网络连接的多用户命令行模式 。
等级4表示:不可用 。
等级5表示:带图形界面的多用户模式 。
等级6表示:重新启动2011/10/26 。
================ 以下为摘录 ==================== 。
又有人攻击服务器了,没有办法又的去防,这里简单介绍一种限制指定IP访问的办法.
单个IP的命令是 。
iptables -I INPUT -s 59.151.119.180 -j DROP 。
封IP段的命令是 。
iptables -I INPUT -s 211.1.0.0/16 -j DROP 。
iptables -I INPUT -s 211.2.0.0/16 -j DROP 。
iptables -I INPUT -s 211.3.0.0/16 -j DROP 。
封整个段的命令是 。
iptables -I INPUT -s 211.0.0.0/8 -j DROP 。
封几个段的命令是 。
iptables -I INPUT -s 61.37.80.0/24 -j DROP 。
iptables -I INPUT -s 61.37.81.0/24 -j DROP 。
服务器启动自运行 。
有三个方法:
1、把它加到/etc/rc.local中 。
2、vi /etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行.
3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行.
后两种更好此,一般iptables服务会在network服务之前启来,更安全 。
解封:
iptables -L INPUT 。
iptables -L --line-numbers 然后iptables -D INPUT 序号 。
iptables 限制ip访问 。
通过iptables限制9889端口的访问(只允许192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止访问 。
iptables -I INPUT -p tcp --dport 9889 -j DROP 。
iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT 。
iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT 。
iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT 。
注意命令的顺序不能反了.
上面就是Linux禁止特定ip地址访问的方法介绍了,如果你不想要哪个ip地址访问,可尝试使用本文介绍的方法.
最后此篇关于Linux如何禁止特定ip地址访问来保证系统的安全的文章就讲到这里了,如果你想了解更多关于Linux如何禁止特定ip地址访问来保证系统的安全的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在学习 Spring 安全性,但我对它的灵活性感到困惑.. 我知道我可以通过在标签中定义规则来保护网址 然后我看到有一个@secure 注释可以保护方法。 然后还有其他注释来保护域(或 POJO)
假设有一个 key 加密 key 位于内存中并且未写入文件或数据库... byte[] kek = new byte[32]; secureRandom.nextBytes(kek); byte[]
我有 Spring Security 3.2.0 RC1 的问题 我正在使用标签来连接我 这表示“方法‘setF
我正在创建一个使用 Node Js 服务器 API 的 Flutter 应用程序。对于授权,我决定将 JWT 与私钥/公钥一起使用。服务器和移动客户端之间的通信使用 HTTPS。 Flutter 应用
在过去的几年里,我一直在使用范围从 Raphael.js 的 javascript 库。至 D3 ,我已经为自己的教育操纵了来自网络各地的动画。我已经从各种 git 存储库下载了 js 脚本,例如 s
在 python 中实现身份验证的好方法是什么?已经存在的东西也很好。我需要它通过不受信任的网络连接进行身份验证。它不需要太高级,只要足以安全地获取通用密码即可。我查看了 ssl 模块。但那个模块让我
我正在尝试学习“如何在 Hadoop 中实现 Kerberos?”我已经看过这个文档 https://issues.apache.org/jira/browse/HADOOP-4487我还了解了基本的
我有一个带有 apache2、php、mysql 的生产服务器。我现在只有一个站点 (mysite.com) 作为虚拟主机。我想把 phpmyadmin、webalizer 和 webmin 放在那里
前些天在网上看到防火墙软件OPNsense,对其有了兴趣,以前写过一个其前面的一个软件M0n0wall( 关于m0n0wa
我在 Spring Boot 和 oauth2(由 Google 提供)上编写了 rest 后端,在 "/login" 上自动重定向。除了 web 的 oauth 之外,我还想在移动后端进行 Fire
我想调用类 Foo,它的构造函数中有抽象类 Base。我希望能够从派生自 Base 的 Derived 调用 Foo 并使用 Derived覆盖方法而不是 Base 的方法。 我只能按照指示使用原始指
如何提高 session 的安全性? $this->session->userdata('userid') 我一直在为我的 ajax 调用扔掉这个小坏蛋。有些情况我没有。然后我想,使用 DOM 中的
我目前正在为某些人提供程序集编译服务。他们可以在在线编辑器中输入汇编代码并进行编译。然后编译它时,代码通过ajax请求发送到我的服务器,编译并返回程序的输出。 但是,我想知道我可以做些什么来防止对服务
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
目前,我通过将 session 中的 key 与 MySQl 数据库中的相同 key 相匹配来验证用户 session 。我使用随机数重新生成 session ,该随机数在每个页面加载时都受 MD5
Microsoft 模式与实践团队提供了一个很棒的 pdf,称为:“构建安全的 asp.net 应用程序”。 microsoft pdf 由于它是为 .Net 1.0 编写的,所以现在有点旧了。有谁知
在 Lua 中,通常会使用 math.random 生成随机值和/或字符串。 & math.randomseed , 其中 os.time用于 math.randomseed . 然而,这种方法有一个
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们有一个严重依赖 Ajax 的应用程序。确保对服务器端脚本的请求不是通过独立程序而是通过坐在浏览器上的实际用户的好方法是什么 最佳答案 真的没有。 通过浏览器发送的任何请求都可以由独立程序伪造。 归
我正在寻找使用 WebSockets 与我们的服务器通信来实现 web (angular) 和 iPhone 应用程序。在过去使用 HTTP 请求时,我们使用请求数据、url、时间戳等的哈希值来验证和
我是一名优秀的程序员,十分优秀!