前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ubuntu iptables防火墙指南

ubuntu iptables防火墙指南

作者头像
羽翰尘
修改2019-11-26 16:40:58
1.6K0
修改2019-11-26 16:40:58
举报
文章被收录于专栏:技术向技术向

本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/iptables_in_ubuntu/

iptables介绍

netfilter/iptables是内核集成的,不存在start/stop或者禁用的说法。可以用iptables命令创建过滤规则。(现在较新的内核中已经默认集成,无需单独安装)

而ufw则是ubuntu上简化iptables配置的工具,其定义了一系列的规则并加入到iptables中。所以在ufw启用的情况下,你能在iptables规则中看到一系列的ufw类字样。这些具体的由ufw定义的规则在/etc/ufw/*.rules下。

以下适合于Ubuntu 16.04.5 LTS

基本命令

查看帮助:

代码语言:txt
复制
iptables -h

查看过滤规则

代码语言:txt
复制
sudo iptables -vnL --line-numbers
  • -n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名
  • -v:显示详细信息
  • –line-numbers:给规则标上数字,这个在删除规则时很有用

同一个chain,从上到下进行匹配,所以num很重要;

创建一个新的iptables规则,不会影响现有的连接;

保存创建好的规则到文件

代码语言:txt
复制
iptables-save > /etc/iptables.up.rules

从文件中恢复规则

代码语言:txt
复制
/sbin/iptables-restore < /etc/iptables.up.rules

也可以把上条命令添加到/etc/rc.local,在系统重启时恢复规则

完整命令规则

代码语言:txt
复制
iptables [-t table] command chain [match] [-j target]

以下是各段命令主要参数的解释。

-t table,table有四个选项,默认为filter:

  • filter:一般的过滤功能,默认的table
  • nat:用于NAT功能(端口映射,地址映射等)
  • mangle:用于对特定数据包的修改
  • raw:主要用于配合NOTRACK的响应
  • security:用户强制访问控制(MAC)网络规则

command,定义规则写入方式:

  • -P:定义链的默认规则(所有其它规则都没有匹配到的数据包,将按照默认规则来执行)
  • -A:追加,在当前链的最后新增一个规则
  • -I num:插入,把当前规则插入为第几条
  • -R num:Replays替换/修改第几条规则
  • -D num:删除,明确指定删除第几条规则 num要放到chain之后,见后面的应用实例。

chain,netfilter可以在五个位置进行过滤:

  • PREROUTING (路由前)
  • INPUT (数据包流入口)
  • FORWARD (端口转发)
  • OUTPUT(数据包出口)
  • POSTROUTING(路由后)

match:匹配规则,常用的规则有以下几种,可以并列使用多种匹配规则:

  • -p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP,逗号分隔多个协议,ALL是确实设置,!表示反向匹配)
  • -s:匹配源地址ip或ip段(IP或IP/MASK,!表示反向匹配)
  • -d:匹配信息包的目的地IP地址(!表示反向匹配)
  • -i:流入网卡
  • -o:流出网卡
  • –dport:目标端口(两个短行)
  • –sport:源端口
  • –state:连接状态
  • -m:显式扩展以上的规则(即可以匹配多个状态、端口等)

target:进行的操作/响应,常见的有以下几种:

  • DROP(悄悄丢弃)
  • REJECT(明示拒绝)
  • ACCEPT(接受)
  • MASQUERADE(源地址伪装)
  • REDIRECT(重定向)
  • MARK(打防火墙标记的)
  • RETURN(返回)

实际使用范例

开放某个tcp端口

代码语言:txt
复制
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

删除某条规则

这里删除的是规则1

代码语言:txt
复制
sudo iptables -t filter -D FORWARD 1

添加一条nat记录

代码语言:txt
复制
sudo iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -j MASQUERADE

保存和恢复iptables

代码语言:txt
复制
sudo iptables-save > ./iptables.bak
sudo iptables-restore < ./iptables.bak

参考资料

写的比较好的博客,适合入门

适合入门之后的深入

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iptables介绍
  • 基本命令
    • 查看帮助:
      • 查看过滤规则
        • 保存创建好的规则到文件
          • 从文件中恢复规则
          • 完整命令规则
            • -t table,table有四个选项,默认为filter:
              • command,定义规则写入方式:
                • chain,netfilter可以在五个位置进行过滤:
                  • match:匹配规则,常用的规则有以下几种,可以并列使用多种匹配规则:
                    • target:进行的操作/响应,常见的有以下几种:
                    • 实际使用范例
                      • 开放某个tcp端口
                        • 删除某条规则
                          • 添加一条nat记录
                            • 保存和恢复iptables
                            • 参考资料
                            相关产品与服务
                            NAT 网关
                            NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档