iptables 的使用实战

2019-01-24 14:10:45   最后更新: 2019-01-24 14:10:45   访问数量:249




上一篇文章中,我们介绍了 netfilter/iptables 的原理

netfilter/iptables 原理

本文我们就来介绍一下 iptables 的具体用法

 

 

虽然 netfilter 是集成在 linux 系统内核的,但是用户层的 iptables 还是需要手动安装和开启才可以使用的

 

安装 iptables

yum install -y iptables

yum install iptables-services

 

开启 iptables

systemctl start iptables.service

systemctl enable iptables.service #设置开机自启动

 

iptables 的基本用法就是 -

iptables (选项) (参数)

 

从上一篇文章中我们知道 iptables 是以规则为单位进行 IP 信息包的过滤和管理的,我们就从规则的配置入手

 

  • -L - 显示规则链中已有的条目
  • -F - 清楚规则链中已有的条目
  • -Z - 清空规则链中的数据包计算器和字节计数器
  • -N - 创建新的用户自定义规则链
  • -P - 定义规则链中的默认目标
  • -h - 显示帮助信息
  • -p - 指定要匹配的数据包协议类型
  • -s - 指定要匹配的数据包源ip地址
  • -j<目标> - 指定要跳转的目标
  • -i<网络接口> - 指定数据包进入本机的网络接口
  • -o<网络接口> - 指定数据包要离开本机所使用的网络接口

 

基本命令

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

 

选项

  • -A - 向规则链中添加条目
  • -D - 从规则链中删除条目
  • -i - 向规则链中插入条目
  • -R - 替换规则链中的条目

 

表名

  • raw - 高级功能,如 - 网址过滤
  • mangle - 数据包修改(QOS),用于实现服务质量
  • net - 地址转换,用于网关路由器
  • filter - 包过滤,用于防火墙规则

 

规则链名

  • INPUT链 - 处理输入数据包
  • OUTPUT链 - 处理输出数据包
  • PORWARD链 - 处理转发数据包
  • PREROUTING链 - 用于目标地址转换(DNAT)
  • POSTOUTING链 - 用于源地址转换(SNAT)

 

动作

  • accept - 接收数据包
  • DROP - 丢弃数据包
  • REDIRECT - 重定向、映射、透明代理
  • SNAT - 源地址转换
  • DNAT - 目标地址转换
  • MASQUERADE - IP伪装(NAT),用于ADSL
  • LOG - 日志记录

 

查看现有规则

iptables -L -n

 

删除某个请求

比如要删除INPUT里序号为8的规则

iptables -D INPUT 8

 

允许所有请求

iptables -P INPUT ACCEPT

 

清除默认规则

iptables -F # 清空所有默认规则

iptables -X # 清空所有自定义规则

iptables -Z # 所有计数器归0

 

允许来自于lo接口的数据包

如果没有此规则,你将不能通过127.0.0.1访问本地服务

iptables -A INPUT -i lo -j ACCEPT

 

开启某个端口

iptables -A INPUT -p tcp --dport 端口 -j ACCEPT

 

允许 icmp 请求(ping)

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

 

允许所有对外请求的返回包

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

 

添加内网ip信任

iptables -A INPUT -p tcp -s 192.168.1.50 -j ACCEPT

 

过滤除iptables规则之外的所有请求

iptables -P INPUT DROP

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,全部原创,只有干货没有鸡汤

 

 

https://wiki.archlinux.org/index.php/Iptables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

http://man.linuxde.net/iptables

https://wangchujiang.com/linux-command/c/iptables.html

https://www.jianshu.com/p/8fd07c60f23f

 






技术帖      技术分享      iptables      防火墙     


京ICP备15018585号