服务器禁止某IP进行访问

 利用组策略里的IP安全设置可以达到楼主的要求

为了说明,我告诉一下我的设置
我的电脑IP 192.168.0.100
路由器 ip 192.168.0.1
我通过如何阻止 我和路由器之间的相互PING来演示操作过程

首先
打开组策略
进入计算机配置里面的安全设置,点里面的IP安全策略
创建新的IP策略 下一步
随便输入名称 我就用 "阻止" 然后点 下一步
激活默认响应规则打勾 下一步
验证方法选第一个 V5协议
可能会有个警告,直接确定就好了
编辑属性打勾 完成

回到原来的界面,点新建的名称 "阻止"
他会出来个属性窗口
点击添加
下一步
不指定隧道
下一步
所有网络连结
下一步
V5协议
下一步
这时候应该是个安全规则向导界面
点添加
出来IP筛选列表
点添加
下一步
源地址用我的IP地址
下一步
目标IP地址 用一个特定的IP地址,然后输入你想阻止的IP地址
我这里用192.168.0.1
下一步
协议,针对你的游戏服务器用的通讯协议,自己选择,一般都是TCP
我这里使用ICMP
下一步
编辑属性打勾
下一步
出来筛选器属性
镜像一定要打勾,这样就能屏蔽远程IP了
然后点确定
回到了IP筛选器列表,点确定
点你刚刚建立的IP筛选器,如果上面没有命名,那么她的名字应该是
新的IP筛选器列表,点上圈圈下一步,进入筛选器操作
点阻止,下一步
完成
新规则属性
不用搞,只要点确定然后点关闭
现在回到原来的组策略界面
右键点我们刚刚建立的 名称为阻止 ,选择指配
这时候,它的策略已指配 变成 是了
我这边现在PING 192.168.0.1 已经显示 
C:/Documents and Settings/Administrator>ping 192.168.0.1

Pinging 192.168.0.1 with 32 bytes of data:

Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.

Ping statistics for 192.168.0.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

然后我们试试右键点击 阻止,选择 不指配

C:/Documents and Settings/Administrator>ping 192.168.0.1

Pinging 192.168.0.1 with 32 bytes of data:

Reply from 192.168.0.1: bytes=32 time=1ms TTL=127
Reply from 192.168.0.1: bytes=32 time=1ms TTL=127
Reply from 192.168.0.1: bytes=32 time=2ms TTL=127
Reply from 192.168.0.1: bytes=32 time=1ms TTL=127

Ping statistics for 192.168.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 2ms, Average = 1ms

很明显,策略已经成功达到我们要的效果了


打的我好累....

恩,再次提醒,上面中的那个镜像一定要选择

不然就是我不能PING通路由器
路由器能PNG通我了

镜像的作用是双向禁止

按照上面的操作,我想楼主应该能达到自己要求的效果了

不过如果对方是动态IP,以上操作就没什么用了

<think>我们正在配置iptables以阻止外部IP访问Linux服务器上的2181端口。 根据用户需求,我们需要添加一条规则来阻止外部IP访问2181端口。注意:这里的外部IP指的是所有非本机的IP,但通常我们可能希望允许本地访问(127.0.0.1或localhost)以及内部网络访问,但用户没有特别说明,所以这里我们简单理解为阻止所有外部IP(即非本机IP访问2181端口。 实际上,我们可以使用以下规则: iptables -A INPUT -p tcp --dport 2181 -j DROP 但是,这条规则会阻止所有IP(包括本机)访问2181端口。如果我们需要允许本地访问,可以添加一条允许本地的规则,然后拒绝其他所有。 通常做法: 1. 允许本地回环接口(lo)的所有流量(通常已经存在,但为了确保可以添加) 2. 允许特定IP或网段(如果需要) 3. 拒绝特定端口的其他所有连接。 用户需求是阻止外部IP访问2181端口,因此我们可以这样: 先允许本机访问(127.0.0.1),然后拒绝其他所有对2181端口的访问。 规则如下: iptables -A INPUT -p tcp --dport 2181 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 2181 -j DROP 注意:规则的顺序很重要,因为iptables按顺序匹配规则。 另外,用户可能已经有一些规则,所以添加规则前需要确认。 但是,用户没有提到是否允许其他内部IP,所以这里我们只考虑允许本机(127.0.0.1)和拒绝其他所有。 如果用户希望允许某个网段,比如192.168.1.0/24,可以这样: iptables -A INPUT -p tcp --dport 2181 -s 192.168.1.0/24 -j ACCEPT 然后再拒绝其他。 由于用户只要求阻止外部IP,我们假设只允许本机。 步骤: 1. 添加允许本机的规则(源地址127.0.0.1) 2. 添加拒绝所有其他地址访问2181端口的规则 注意:这些规则是临时规则,重启后可能失效。要永久保存规则,需要根据发行版使用相应命令(如:iptables-save > /etc/sysconfig/iptables 或使用netfilter-persistent等)。 另外,如果用户之前没有允许2181端口的规则,那么默认策略可能是拒绝,但为了确保,我们显式添加拒绝规则。 我们也可以使用REJECT代替DROP,但DROP是直接丢弃,不响应,而REJECT会返回拒绝响应。根据安全需求,通常DROP更安全(避免被扫描探测)。 因此,我们使用DROP。 命令: iptables -A INPUT -p tcp --dport 2181 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 2181 -j DROP 注意:如果INPUT链的默认策略是DROP,那么第一条规则允许本机,第二条规则其实可以省略,因为默认策略会拒绝其他。但是为了清晰和避免后续规则影响,显式添加DROP是好的做法。 另外,确保这些规则在允许其他必要流量的规则之后,但在拒绝规则之前。 如果用户希望阻止UDP,也可以添加类似的UDP规则(如果服务使用UDP)。但通常2181端口(Zookeeper)使用TCP,所以这里只处理TCP。 如果用户需要同时阻止TCP和UDP,可以: iptables -A INPUT -p udp --dport 2181 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p udp --dport 2181 -j DROP 但用户没有说明协议,一般默认是TCP。 所以,我们只处理TCP。 执行命令后,可以使用以下命令检查规则: iptables -L INPUT -v --line-numbers 为了确保规则持久化,保存规则(根据发行版): 对于CentOS/RHEL 6及之前: service iptables save 或者 iptables-save > /etc/sysconfig/iptables 对于CentOS/RHEL 7及以上,可以使用firewalld,但用户要求使用iptables,所以可能需要安装iptables-services并启用: systemctl stop firewalld systemctl disable firewalld yum install iptables-services systemctl enable iptables systemctl start iptables 然后保存:service iptables save 或 iptables-save > /etc/sysconfig/iptables 对于Debian/Ubuntu: 安装iptables-persistent: apt-get install iptables-persistent 保存规则: netfilter-persistent save 或 iptables-save > /etc/iptables/rules.v4 注意:在修改前,请确保用户了解当前规则,避免误操作导致自己无法访问服务器(特别是通过SSH连接时)。建议在修改前先允许自己的IP访问SSH端口,并设置一个cron任务或超时回滚。 但是,用户没有提到SSH,所以我们假设用户已经确保管理访问的安全。 现在,我们按照用户要求给出配置命令。 总结步骤: 1. 添加允许本机访问2181端口的规则。 2. 添加拒绝所有其他IP访问2181端口的规则。 3. 保存规则(根据系统选择相应命令)。 注意:如果用户已经配置了其他规则,请确保顺序正确(允许规则在拒绝规则之前)。 如果用户之前有允许2181端口的规则,可能需要删除或调整。 我们给出一个完整的示例: 假设当前没有针对2181端口的规则,我们添加: # 允许本地访问2181端口 sudo iptables -A INPUT -p tcp --dport 2181 -s 127.0.0.1 -j ACCEPT # 拒绝其他所有访问2181端口 sudo iptables -A INPUT -p tcp --dport 2181 -j DROP 然后保存规则(以Ubuntu为例): sudo netfilter-persistent save 或者(通用): sudo iptables-save | sudo tee /etc/iptables/rules.v4 # 对于IPv4,Ubuntu通常保存到/etc/iptables/rules.v4 对于CentOS: sudo service iptables save # 如果使用iptables-services 注意:在保存之前,最好检查当前规则(sudo iptables -L -n)。 最后,提醒用户:如果服务器重启或iptables服务重启,需要确保规则被加载。在Ubuntu上,安装iptables-persistent后会自动加载保存的规则。在CentOS上,启用iptables服务后也会自动加载。 另外,如果用户使用firewalld(如引用中所示),但用户明确要求iptables,所以我们使用iptables命令。 引用中提到了firewall-cmd,但用户的问题是要求iptables,所以我们不采用firewalld。 因此,我们提供iptables的配置方法。 如果用户希望使用firewalld,可以这样(虽然用户要求iptables,但作为备选): 添加一个富规则(rich rule)来拒绝外部访问2181端口,但允许本地: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="2181" protocol="tcp" source address="127.0.0.1" accept' firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="2181" protocol="tcp" reject' 或者,更简单:先允许本地,然后拒绝外部,但firewalld的富规则顺序由优先级控制,或者使用直接规则(direct rules)来使用iptables语法。 但用户要求iptables,所以我们不展开firewalld。 现在,我们按照要求生成相关问题。</think>### 配置iptables阻止外部IP访问2181端口 要阻止外部IP访问Linux服务器的2181端口(常用于Zookeeper服务),需在iptables中添加规则限制TCP流量。以下是具体步骤和命令: --- #### **步骤1:添加防火墙规则** ```bash # 允许本地环回接口访问2181端口(确保本地服务不受影响) sudo iptables -A INPUT -p tcp --dport 2181 -s 127.0.0.1 -j ACCEPT # 拒绝所有外部IP访问2181端口 sudo iptables -A INPUT -p tcp --dport 2181 -j DROP ``` - **`-s 127.0.0.1`**:仅允许本机IP(localhost)访问 - **`--dport 2181`**:指定目标端口 - **`-j DROP`**:直接丢弃数据包(不响应) > ⚠️ **顺序重要**:`ACCEPT`规则必须在`DROP`规则之前,否则本地流量会被拒绝。 --- #### **步骤2:验证规则** ```bash # 查看当前iptables规则列表 sudo iptables -L INPUT -v --line-numbers # 示例输出(关键行): # Chain INPUT (policy ACCEPT) # num pkts bytes target prot opt in out source destination # 1 0 0 ACCEPT tcp -- any any 127.0.0.1 anywhere tcp dpt:2181 # 2 0 0 DROP tcp -- any any anywhere anywhere tcp dpt:2181 ``` --- #### **步骤3:保存规则(永久生效)** ```bash # Ubuntu/Debian(安装iptables-persistent) sudo apt-get install iptables-persistent sudo netfilter-persistent save # CentOS/RHEL sudo service iptables save # 或手动保存 sudo iptables-save > /etc/sysconfig/iptables ``` --- #### **注意事项** 1. **安全连接**: 配置前确保通过**其他端口(如SSH)** 能访问服务器,避免误锁自己。 2. **协议类型**: 若需同时封禁UDP,添加相同规则的`-p udp`版本。 3. **精确封禁**: 如需封禁**特定IP**(如`192.0.2.100`),使用: ```bash sudo iptables -A INPUT -p tcp --dport 2181 -s 192.0.2.100 -j DROP ``` 4. **恢复默认**: 清空所有规则(谨慎操作): ```bash sudo iptables -F INPUT ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值