Iptables 应用
iptables 是一个配置 Linux 内核 防火墙 的命令行工具,是 netfilter 项目的一部分。 可以直接配置,也可以通过许多前端和图形界面配置。
iptables 也经常代指该内核级防火墙。iptables 用于 ipv4,ip6tables 用于 ipv6。
nftables 已经包含在 Linux kernel 3.13 中,以后会取代 iptables 成为主要的 Linux 防火墙工具。
环境:CentOS7
1. 简介
iptables 可以检测、修改、转发、重定向和丢弃 IPv4 数据包。
过滤 IPv4 数据包的代码已经内置于内核中,并且按照不同的目的被组织成 表 的集合。表 由一组预先定义的 链 组成,链包含遍历顺序规则。每一条规则包含一个谓词的潜在匹配和相应的动作(称为 目标),如果谓词为真,该动作会被执行。也就是说条件匹配。
2. 安装 iptables
(1)禁用 firewalld
CentOS 7 上默认安装了 firewalld 作为防火墙,使用 iptables 建议关闭并禁用 firewalld。
systemctl stop firewalld
systemctl disable firewalld(2)安装 iptables
yum install -y iptables-services(3)服务管理
查看服务状态:
systemctl status iptables启用服务:
systemctl enable iptables禁用服务:
systemctl disable iptables启动服务:
systemctl start iptables重启服务:
systemctl restart iptables关闭服务:
systemctl stop iptables
3. 命令
基本语法:
基本选项说明:
参数
作用
-P
设置默认策略:iptables -P INPUT (DROP
-F
清空规则链
-L
查看规则链
-A
在规则链的末尾加入新规则
-I
num 在规则链的头部加入新规则
-D
num 删除某一条规则
-s
匹配来源地址 IP/MASK,加叹号"!"表示除这个 IP 外。
-d
匹配目标地址
-i
网卡名称 匹配从这块网卡流入的数据
-o
网卡名称 匹配从这块网卡流出的数据
-p
匹配协议,如 tcp,udp,icmp
--dport num
匹配目标端口号
--sport num
匹配来源端口号
顺序:
4. iptables 示例
4.1. 清空当前的所有规则和计数
4.2. 配置允许 ssh 端口连接
4.3. 允许本地回环地址可以正常使用
4.4. 设置默认的规则
4.5. 配置白名单
4.6. 开启相应的服务端口
4.7. 保存规则到配置文件中
4.8. 列出已设置的规则
iptables -L [-t 表名][链名]
四个表名
raw,nat,filter,mangle五个规则链名
INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTINGfilter 表包含
INPUT、OUTPUT、FORWARD三个规则链
4.9. 清除已有规则
4.10. 删除已添加的规则
将所有 iptables 以序号标记显示,执行:
比如要删除 INPUT 里序号为 8 的规则,执行:
4.11. 开放指定的端口
4.12. 屏蔽 IP
4.13. 指定数据包出去的网络接口
只对 OUTPUT,FORWARD,POSTROUTING 三个链起作用。
4.14. 查看已添加的规则
4.15. 启动网络转发规则
公网210.14.67.7让内网192.168.188.0/24上网
4.16. 端口映射
本机的 2222 端口映射到内网 虚拟机的 22 端口
4.17. 字符串匹配
比如,我们要过滤所有 TCP 连接中的字符串test,一旦出现它我们就终止这个连接,我们可以这么做:
4.18. 阻止 Windows 蠕虫的攻击
4.19. 防止 SYN 洪水攻击
5. 参考资料
Last updated
Was this helpful?