- 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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
给定的输入是192.168.3.78/27 输入可以是任意C类ip地址,以上ip为例进行尝试 预期输出应显示从 192.168.3.65 到 192.168.3.94 的所有 IP如下 192.168
您好,我是一名 javascript 菜鸟,正在为 IP 范围编写验证器。例如,1.1.1.1-2.2.2.2 是一个有效范围,但我想确保第一个 IP 不大于第二个 IP。 2.2.2.2-1.1.1
在 MySQL 数据库中存储多种 IP 类型的最佳方式是什么: - 单一 IP (123.123.123.123) - IP 范围 (123.123.123.1 - 123.123.123.121)
所以我有一个带有子网的 IP:8.8.8.0/24 我如何将其转换为 8.8.8.0 和 8.8.8.255(实际上是它们的 ip2long 结果) 在 PHP 和 JavaScript 中 最佳答案
我有 Windows7 作为我的基本操作系统。最重要的是,我在 Ubuntu 上安装了 Virtual Box。我希望 ubuntu 获得与我的基本操作系统(Win7)相同的 IP 地址。我如何实现这
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
阅读后List of IP Space used by Facebook : “真实”列表是最后一个答案,但我想知道 Igy(答案标记为解决方案)如何通过将连续的类添加到更大的类中来大幅缩小列表(通过
我正在开发一个 web 应用程序,我已经在我的本地主机中创建了这个项目,但是网络用户需要访问我的项目,我不想给他们一个不友好的 ip 地址,所以我想用户访问一个名称例子 http://myprojec
有人可以向我解释 Azure 在逻辑应用程序的出站 IP 地址之间不同的新方式之间的区别。 我认为文档在对该问题的正确解释方面非常精简。读起来听起来好像 IP 地址在逻辑应用程序中具有完全相同的作用。
我正在尝试熟悉一个项目中java中的数据报系统,目前,我们只使用UDP包。 为了发送消息,我们在 DatagramPacket 上设置目标 IP。 /* * The fields o
我有一个 Java 服务器,当我获得连接时,我需要检查 IP 是本地 IP 还是公共(public) IP。当它是我自己的本地 IP 时,我可以检测到它,但我在使用其他本地 IP 时遇到了一些问题。J
所以我在网上看到了很多例子,这些例子展示了如果你知道起始 IP 和结束 IP 如何获得完整的 IP,但我需要的是在提供后告诉我完整的 IP 范围带有起始 IP 和所需 IP 地址数的代码。 因此,例如
我创建了一个 python 项目,用于扫描 IP 范围(即 x.y.z.0/24)并返回在线主机列表。它将在线主机列表保存到仅包含 IP 的文件中(即 ['192.168.0.1'、'192.168.
如果用户的 ip 在某个 IP 范围之间,我正在使用重定向。但是,我正在使用多个 ip 范围,所以我想知道执行此操作的最佳方法。我目前正在使用它来重定向, 但是如果 IP 范围是 72.122.166
好的,现在是星期五下午,我度过了漫长的一周,希望能得到一些帮助!目前,我有一个 IP 范围列表,如下所示: List ipRanges = new List(); ipRanges.Add(new I
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
下面是我的 CloudFormation 模板的片段,用于将弹性 IP 地址与网络接口(interface)的主 IP 相关联: "MyInterfaceSelfEipAssociat
我在 Azure 上创建了 Python 函数,该函数调用外部 API 服务,该服务仅允许访问白名单 IP。 根据 Microsoft 文档 ( https://learn.microsoft.com
我在 Azure 上创建了 Python 函数,该函数调用外部 API 服务,该服务仅允许访问白名单 IP。 根据 Microsoft 文档 ( https://learn.microsoft.com
我在我的 CentOS 5 x86_64 中使用 IP 别名。为简化此示例:IP 地址 A 是 eth0 地址,IP 地址 B 是 eth0:0地址。我有 2 个 Apache 实例(版本 2.2.3
我是一名优秀的程序员,十分优秀!