linux只允许某个国家访问某个端口

给白傻子买瓜子去 Lv1

常见的,例子:国内鸡,屏蔽国外登录ssh
本教程经做参考, 同适用于WEB网站,如果真需要防止扫爆请选择专门的防爆破脚本
本教程经做参考, 同适用于WEB网站,如果真需要防止扫爆请选择专门的防爆破脚本
本教程经做参考, 同适用于WEB网站,如果真需要防止扫爆请选择专门的防爆破脚本

在CentOS系统上只允许中国IP登录SSH可以使用iptables和ipset来实现。以下是实现步骤:

安装iptables和ipset

1
sudo yum install iptables ipset

下载IP库、导入、查询 、添加

如果您要使用https://www.ipdeny.com/ipblocks/data/countries/cn.zone URL中的IP地址列表来创建名为”china”的ipset,则可以使用以下命令:

1
2
sudo ipset create china hash:net
sudo curl -sSL https://www.ipdeny.com/ipblocks/data/countries/cn.zone | sudo awk '{print "add china " $0}' | sudo ipset -R -!

这将创建一个名为”china”的ipset,并将从https://www.ipdeny.com/ipblocks/data/countries/cn.zone获取的中国IP地址添加到该ipset中。

该命令使用awk将每个IP地址添加到ipset中,并使用ipset -R命令将所有IP地址添加到ipset中。请注意,该命令可能需要一些时间来完成,具体取决于IP地址列表的大小和网络速度。

要查询ipset中有多少个IP地址,可以使用以下命令:

1
sudo ipset list china | grep 'Number'

这将列出名为”china”的ipset中的IP地址数量。输出将类似于以下内容:

Number of elements: 123456

这表示名为”china”的ipset中有123456个IP地址。您可以将”china”替换为您要查询的ipset名称。

这是ipset命令的一部分,用于将中国IP地址添加到名为”china”的ipset中。它的完整用法是:

1
2
ipset add china <ip_address>
sudo ipset add china 127.0.0.1

其中,”“应替换为要添加的IP地址。例如,要将IP地址127.0.0.1添加到名为”china”的ipset中,可以运行以下命令:

配置iptables规则,只允许来自中国IP的SSH连接

1
2
sudo iptables -A INPUT -p tcp --dport ssh -m set --match-set china src -j ACCEPT
sudo iptables -A INPUT -p tcp --dport ssh -j DROP

这些规则将允许来自中国IP的SSH连接,并阻止来自其他IP地址的SSH连接。

保存iptables规则

1
sudo service iptables save

这样,您就只允许来自中国IP地址的SSH连接了。请注意,这种方法并不是绝对安全的,因为攻击者可以使用代理或VPN绕过此屏蔽。因此,建议您采取其他安全措施,如使用公钥身份验证、禁用root登录等,以提高系统的安全性。

注:–dport 可以改为端口,比如80端口

  • Title: linux只允许某个国家访问某个端口
  • Author: 给白傻子买瓜子去
  • Created at : 2020-01-08 15:23:30
  • Updated at : 2024-04-13 01:03:02
  • Link: https://txt.al/linux只允许某个国家访问某个端口/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments