帮助中心

Linux系统中如何禁止IP或者网段访问服务 打印

  • 95

概述

本文主要介绍在Linux系统中,禁止IP或者网段访问服务的方法。

本文主要介绍如下2种方法禁止IP或者网段访问服务。本文相关IP或网段纯属虚构,用户需要结合自己的需求进行设置。

方法一

  1. 登录实例,编辑/etc/hosts.deny文件,添加如下内容,然后保存并退出。
    sshd:203.XXX.XXX.189
    #禁止203.XXX.XXX.189对服务器SSH的访问
    sshd:203.XXX.XXX.0/255.XXX.XXX.0
    #禁止203.XXX.XXX.0~255.XXX.XXX.0对服务器SSH的访问
  2. 执行如下命令,重启服务使配置生效。
    service xinetd restart

 

方法二

  1. 登录实例,如果您是Centos6.x 、Centos7.x系列系统可使用系统防火墙(firewalld)来禁用IP
    屏蔽单个IP‌:
    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' #192.168.1.100填写您需要禁止的IP
    sudo firewall-cmd --reload #保存生效
    屏蔽IP段‌:
    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" reject' #192.168.1.0/24填写您需要禁止的IP网段 可整体禁止
    sudo firewall-cmd --reload #保存生效
    屏蔽单个IP+端口
    ‌:
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="80" protocol="tcp" reject' #192.168.1.100填写您需要禁止的IP 80可改为您需要禁止的端口
    sudo firewall-cmd --reload #保存生效

  2. 使用iptables防火墙(Centos全系列推荐使用)
Centos7.x默认使用firewalld作为防火墙,我们需要先停用firewalld并安装iptables:

systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables

配置iptables规则

屏蔽单个IP

iptables -A INPUT -s 192.168.1.100 -j DROP

该命令将阻止来自IP地址192.168.1.100的所有访问。您可以根据需要替换为要封禁的实际IP地址。

屏蔽单个IP端口

iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP

该命令将阻止来自IP地址192.168.1.100和80端口的所有访问。您可以根据需要替换为要封禁的实际IP地址。

屏蔽单个IP多端口

iptables -A INPUT -s 192.168.1.100 -p tcp -m multiport --dports 22,80,443 -j DROP

该命令将阻止来自IP地址192.168.1.100下22,80,443端口的所有访问。您可以根据需要替换为要封禁的实际IP地址。

保存iptables规则(最关键一步)

添加规则后,需要保存配置以确保重启后仍然生效:

CentOS/RHEL系统‌:

service iptables save
Debian/Ubuntu‌系统:

iptables-save > /etc/iptables.rules

查看和管理iptables规则(可选)

使用以下命令查看当前iptables规则:

iptables -L -n

如需删除特定规则,可以使用以下命令:

iptables -D INPUT -s 192.168.1.100 -j DROP

批量禁止IP(可选)

如果需要禁止多个IP地址,可以使用脚本批量添加规则:

#!/bin/bash
for ip in $(cat blocked_ips.txt)
do
    iptables -A INPUT -s $ip -j DROP
done
service iptables save

将要封禁的IP地址列表保存在blocked_ips.txt文件中,每行一个IP地址。




此文章对您是否有帮助?

« 返回