在Ubuntu22.04上使用iptables策略控制局域网服务器访问

Linux 上的防火墙由两个组件组成 - Linux内核中的防火墙机制,以及用于从用户空间配置该机制的工具。Linux内核传统上支持两个不同的防火墙策略子系统 - iptables / xtables 和较新的nftables。nftables在创建和部署防火墙规则时,在性能和灵活性方面都带来了显著优势,特别是对于双栈 IPv4/IPv6 系统。传统的 iptables用户空间管理工具现在配置 nftables 内核后端,同时还提供了新的 nft 用户空间工具,以允许创建传统 iptables范例不支持的更灵活的规则。

可以将iptables规则转换为nft通过iptables-translate和ipt6ables-translate。例如:

iptables-translate -A INPUT -s x.x.x.x/32 -d y.y.y.y/32 -i eth2 -j DROP

更多详细信息请参阅Ubuntu官方手册页:https://manpages.ubuntu.com/manpages/jammy/en/man8/iptables-restore-translate.8.html

一、默认Ubuntu系统使用的是nft,先恢复到 iptables。

  1. 使用以下命令查看和更改优先级:
update-alternatives --config iptables 

示例输出:

  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/sbin/iptables-nft      20        auto mode
  1            /usr/sbin/iptables-legacy   10        manual mode
  1. 将最高优先级设置为iptables:
sudo update-alternatives --install /usr/bin/iptables iptables /usr/sbin/iptables-nft 30
  1. 默认设置:
sudo update-alternatives  --set iptables /usr/sbin/iptables-legacy
  1. 禁用 UFW 和 nft:
sudo systemctl disable --now ufw 
sudo systemctl disable --now nftables
sudo apt install iptables-persistent
sudo systemctl enable --now iptables

注意事项:

systemctl status iptables
#如果查看iptables服务正常,链表的时候提示
bash: /usr/sbin/iptables: No such file or directory
#重新安装一次
apt install iptables

[图片]

二、如何用 iptables 禁止某个ip?

  • 添加对 100.64.24.1 的过滤(直接 DROP 掉)
iptables -I INPUT -s 100.64.24.1 -j DROP

三、Ubuntu永久保存iptables的设置

  1. 使用以下命令保存当前的iptables规则到文件中:
sudo iptables-save > /etc/iptables/rules.v4
  1. 然后,使用以下命令安装iptables-persistent软件包,前面安装过的话也不需要再次安装:
sudo apt-get install iptables-persistent
  1. 在安装过程中,你会被要求确认是否将当前的iptables规则保存到文件中。选择"是",然后继续进行安装。
  2. 安装完成后,iptables-persistent会自动加载保存的iptables规则文件。
    现在,你的iptables设置将在系统重启后自动加载。如果你想更新iptables规则,只需编辑/etc/iptables/rules.v4文件,然后使用以下命令重新加载规则:
sudo iptables-restore < /etc/iptables/rules.v4

上述步骤适用于IPv4的iptables规则。如果你同时使用IPv6规则,可以将上述命令中的v4替换为v6,并相应地将规则保存到/etc/iptables/rules.v6文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guganly

喜欢就请我喝杯咖啡吧!☕️

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值