赞
踩
Ubuntu 使用的防火墙是iptables,之前用centos有iptables-services,但是ubuntu略有区别。本文介绍Ubuntu上如何使用iptables并配置自动启动。
这个包可以帮助我们保存iptables规则并在系统启动时自动加载它们。
安装命令: sudo apt-get install iptables-persistent
感谢!(参考于)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
保存当前的iptables规则,以便在重启后能够自动加载:
Ubuntu 16.04及以前版本: sudo iptables-save > /etc/iptables/rules.v4
Ubuntu 18.04及以后版本: sudo netfilter-persistent save
重启系统。
使用 sudo iptables -L 命令检查规则是否已正确加载
使用 sudo systemctl status netfilter-persistent 确认iptables服务状态
如果没有启动,使用 sudo systemctl enable netfilter-persistent 命令启用
5.1 查找规则编号: 以INPUT为例
sudo iptables -L INPUT --line-numbers
5.2 删除规则:
sudo iptables -D INPUT N
将 N 替换为实际的行号。
5.3 保存更改:
sudo netfilter-persistent save
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。