当前位置:首页 » 《随便一记》 » 正文

Ubuntu 使用iptables防火墙和基本配置

3 人参与  2024年04月11日 10:30  分类 : 《随便一记》  评论

点击全文阅读


1、介绍

Ubuntu 使用的防火墙是iptables,之前用centos有iptables-services,但是ubuntu略有区别。本文介绍Ubuntu上如何使用iptables并配置自动启动。

2. 安装 iptables-persistent

这个包可以帮助我们保存iptables规则并在系统启动时自动加载它们。
安装命令: sudo apt-get install iptables-persistent

3. 配置防火墙规则

感谢!(参考于)https://www.jianshu.com/p/8fd07c60f23f

重点:清除默认的防火墙规则

3.1 安装完成基本配置-允许所有请求防止悲剧

首先在清除前要将policy INPUT改成ACCEPT,表示接受一切请求。
这个一定要先做,不然清空后可能会直接悲剧
设置 INPUT 方向所有的请求都允许
命令:iptables -P INPUT ACCEPT

3.2 安装完成基本配置-清空所有默认规则
命令:iptables -F

3.3 安装完成基本配置-清空所有自定义规则
命令:iptables -X

3.4 安装完成基本配置-所有计数器归0
命令:iptables -Z

重点:配置规则

3.5允许来自于lo接口的数据包
如果没有此规则,你将不能通过127.0.0.1访问本地服务,例如ping 127.0.0.1
命令:iptables -A INPUT -i lo -j ACCEPT

3.6开启某个端口
iptables -A INPUT -p tcp --dport 端口 -j ACCEPT

3.6.1例子:开启80,22端口
命令:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
命令:iptables -A INPUT -p tcp --dport 22 -j ACCEPT

3.7允许icmp包通过,也就是允许ping
命令:iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

3.8允许所有对外请求的返回包
本机对外请求相当于OUTPUT,对于返回数据包必须要接收啊,这相当于INPUT了
命令:iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
这个很重要,之前忘记配了,发出什么请求都没回复…

3.9如果要添加内网ip信任(接受其所有TCP请求)
iptables -A INPUT -p tcp -s 192.168.1.50(改为允许的内网IP即可) -j ACCEPT

3.10过滤除iptables规则之外的所有请求
命令:iptables -P INPUT DROP

3. 保存规则

保存当前的iptables规则,以便在重启后能够自动加载:
Ubuntu 16.04及以前版本: sudo iptables-save > /etc/iptables/rules.v4
Ubuntu 18.04及以后版本: sudo netfilter-persistent save

4. 验证

重启系统。
使用 sudo iptables -L 命令检查规则是否已正确加载
使用 sudo systemctl status netfilter-persistent 确认iptables服务状态
如果没有启动,使用 sudo systemctl enable netfilter-persistent 命令启用

5. 删除某个规则

5.1 查找规则编号: 以INPUT为例
sudo iptables -L INPUT --line-numbers

5.2 删除规则:
sudo iptables -D INPUT N
将 N 替换为实际的行号。

5.3 保存更改:
sudo netfilter-persistent save


点击全文阅读


本文链接:http://zhangshiyu.com/post/93579.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1