iptables 基础配置

noteId: 4D9D65406EC949D893B68DF5953B73FF · 原始路径:/ALL/Linux - A模块/服务配置/防火墙 合集/ipables 防火墙/iptables 基础配置.note

关于理论:

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# 成功删除后,原本的第四行 的规则就会成为 第三行# 原本 第五行 的规则就会成为 第四行# ...

匹配 端口、多端口: