iptables 基础配置
关于理论:
ACL 的匹配原理与它相同,不同的一点是,iptables 没有 ACL 末尾的默认拒绝条目
安装 iptables:
apt install iptables -y //安装 iptablesapt install iptables-persistent -y //安装,用于保存iptables 规则,将防火墙规则持久化y //是否保存目前ipv4规则(保存到 /etc/iptables/rules.v4)n //是否保存目前ipv6规则(保存到 /etc/iptables/rules.v6)
保存 iptables 规则:
保存后,即使使用了 iptables -F 清空了配置,重启后配置仍然会存在,需要删除 rules.v4文件,才能真正清空
· 前提:安装了 iptables-persistent· 配置:iptables-save > /etc/iptables/rules.v4ip6tables-save > /etc/iptables/rules.v6
载入(使用) 保存的 iptables 规则:
重启,或者:iptables-restore < /etc/iptables/rules.v4
查看 iptables 规则:
iptables -nvL //查看 当前规则iptables -t nat -L //查看 nat 表的规则iptables -nL --line-number //查看规则 的行号
使用 bash 脚本配置 iptables(推荐):
为了方便修改和查看修改,将配置写在 bash 脚本中(推荐)【命令和在命令行中输入的一样】vim iptables.sh输入以下内容:(不包含中文及斜杠【中文只是意思解释】)#! /bin/bashiptables -F //清除所有规则iptables -t nat -F //清除 nat 表中的所有规则iptables -A INPUT -i lo -j ACCEPT //放行 环回接口(自己跟自己连接)
iptables -A INPUT -s 192.168.10.135 -p tcp --dport 22 -j DROP //丢弃 源地址为:192.168.10.135,访问 TCP 22 端口 的 数据包
iptables -A INPUT -s 192.168.10.135 -p tcp --dport 443 -j ACCEPT //放行 源地址为:192.168.10.135,访问 TCP 443 端口 的 数据包
iptables -A INPUT -s 192.168.10.135 -p tcp --dport 80 -j ACCEPT //放行 源地址为:192.168.10.135,访问 TCP 80 端口 的 数据包
iptables -A INPUT -s 192.168.10.135 -j ACCEPT //放行 源地址为:192.168.10.135 的 所有流量
iptables -A INPUT -j DROP //丢弃 所有流量(理解为源地址:0.0.0.0)
iptables-save > /etc/iptables/rules.v4 //保存规则(想要修改或查看规则时,可以通过这个路径)
(在末尾增加)丢弃/放行 特定IP地址的 流量:
iptables -A INPUT -s [源IP]iptables -A INPUT -s 192.168.10.135 -j ACCEPT //放行 源地址为:192.168.10.135 的 所有流量----------------------------------------iptables -A INPTU -s 192.168.10.135 -j DROP //丢弃 源地址为:192.168.10.135 的 所有流量
(在规则中插入)插入一条规则:
iptables -nL --line-number //查看防火墙规则,并显示每行的 行号# 假如是要在 filter表中,INPUT链中 第四行插入一条规则:iptables -I INPUT 4 -p tcp --dport 53 -j ACCEPT //放行 访问 TCP 53 端口的 流量# 在 第四行插入一条规则# 原本 第四行 的规则会成为 第五行# 原本 第五行 的规则会成为 第六行# ...
删除 规则:
· 直接将命令的 -A 或者 -I 改为: -Diptables -D INPUT -s 192.168.10.135 -j ACCEPT· 通过行号删除:iptables -nL --line-number //查看防火墙规则,并显示每行的 行号# 假如要删除的是 filter表中,INPUT链中 第三行的规则:iptables -D INPUT 3# 成功删除后,原本的第四行 的规则就会成为 第三行# 原本 第五行 的规则就会成为 第四行# ...
匹配 端口、多端口: