网络相关的命令工具研究报告之iptables

wtz14 wtz14     2023-05-05     163

关键词:

iptables是运行在用户空间的应用软件,通过控制Linux内核的netfilter模块,,在内核模块Xtables的支持下,来管理IPv4网络数据包的处理和转发。对于IPv6数据包,应使用ip6tales。当前,iptables支持内核2.4以上版本,Linux 3.13开始使用nftables取而代之,但仍然提供iptables命令做为兼容接口。

  iptables、ip6tables等都使用Xtables框架。存在“表(tables)”、“链(chain)”和“规则(rules)”三个层面。

       每个“表”指的是不同类型的数据包处理流程,每个表中又可以存在多个“链”,系统按照预订的规则将数据包通过某个内建链。在“链”中可以存在若干“规则”,这些规则会被逐一进行匹配,如果匹配,可以执行相应的动作,如修改数据包,或者跳转。跳转可以直接接受该数据包或拒绝该数据包,也可以跳转到其他链继续进行匹配,或者从当前链返回调用者链。当链中所有规则都执行完仍然没有跳转时,将根据该链的默认策略(“policy”)执行对应动作;如果也没有默认动作,则是返回调用者链。filter表是默认的表,如果不指明表则使用此表,它通常用于过滤数据包,其内建链包括:

  INPUT,输入链,发往本机的数据包通过此链。

  OUTPUT,输出链,从本机发出的数据包通过此链。

  FORWARD,FORWARD,转发链,本机转发的数据包通过此链。

nat表用于地址转换操作,其内建链包括:

  PREROUTING,路由前链,在处理路由规则前通过此链,通常用于目的地址转换(DNAT)。

  POSTROUTING,路由后链,完成路由规则后通过此链,通常用于源地址转换(SNAT)。

  OUTPUT,输出链,类似PREROUTING,但是处理本机发出的数据包。

mangle表用于处理数据包。其和nat表的主要区别在于,nat表侧重连接而mangle表侧重每一个数据包。其中内建链包括:PREROUTING,OUTPUT,FORWARD,INPUT,POSTROUTING。raw表用于处理异常,有如下两个内建链:PREROUTING,OUTPUT。

 技术图片

  超级用户(root)可以用" iptables -L"指令显示防火墙上的配置。完整的配置可以添加-v或-vv参数来显示更详细信息,或者使用 iptables-save -c 导出生成当前表的命令。iptables的重要功能之一是用于端口和/或地址的转换。iptables的重要功能之一是用于端口和/或地址的转换。如下示例展示了将默认HTTP端口的数据包由80转向8080端口。这样,HTTP的daemon可以允许由一般用户权限引导,而不需要对一般用户无法将端口号绑在1024端口以下的限制的问题多加考虑。

  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

如果你在你的电脑上面运行了这个指令,它只会对连到你的机器上的外部的IP发生效果。从本地端发起的连线不会遵循nat表上PREROUTING链的设置。如果你想让本地端也遵循规则,你可以另外键入下面的指令:

  iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080

这条规则会将lo接口上的数据包输出由80端口转向到8080端口上面。现在有一个小型局域网,由一台Linux主机作为路由器共享地址接入Internet。假设局域网接口为eth0,地址使用192.168.0.0/24;而Internet接口为eth1,使用的地址为198.51.100.3。

在局域网用户访问Internet时,源地址需要被转换为198.51.100.3,则输入指令:

  iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to 198.51.100.3

若需要在局域网192.168.0.2上开启HTTP服务,则可以设置相应的DNAT服务,将访问外部TCP 80端口的数据包重定向:

  iptables -t nat -I PREROUTING -p tcp -d 198.51.100.3 --dport 80 -j DNAT --to 192.168.0.2

需要注意的是,转发操作需要在filter表中FORWARD链中允许,并且打开系统的转发功能。

 

参考文献:

  1. https://www.linux.com/learn/intro-to-linux/2017/8/iptables-rules-ipv6
  2. https://netfilter.org/projects/nftables/
  3. https://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html
  4. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Security_Guide/s1-firewall-ipt-fwd.html

网络相关的命令工具研究报告

Windows有一系列网络命令可用于其命令提示符(简称CMD),使您可以查看相关信息并配置网络设置。这些命令之一是ping。我们将解释ping以及如何在网络诊断中使用ping命令。什么是ping?Ping是Windows命令提示符的网络诊断工具。在... 查看详情

traceroutenetstatpingtelnet网络工具之netstat(代码片段)

...rnet RFC标准中,Netstat的定义是:Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路... 查看详情

网络相关的命令工具研究报告—ping

1.什么是pingping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断出TCP/IP参数是否设置正确以及运行是否正常、网络是否通常等。2.关于怎么用ping来测试和检测网络连通(一... 查看详情

网络相关的命令工具研究报告

首先来了解下端口的作用,在互联网中,如果IP地址是IP服务器在互联网中唯一的地址标识,那么可以想象下如果我有一台服务器,它有固定的公网IP地址,通过IP地址可以找到我的服务器。但是我的服务器中既启动了网页服务,... 查看详情

网络相关的命令工具研究报告-traceroute

1、什么是traceroutetraceroute(Windows系统下是tracert)是路由跟踪命令,它利用ICMP协议定位您的计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被... 查看详情

iptables系列之基础原理

Linux网络防火墙 netfilter:frame过滤,内核中的过滤框架,规则生效的位置框架    iptables:附加在netfilter上,生成防火墙规则,真正实现数据报文过滤,NAT,mangle等规则生成的工具防火墙:工作在主机或者网络的... 查看详情

网络状态诊断工具——netstat命令(代码片段)

netstat命令可以用来查询整个系统的网络状态。百度百科的定义如下:Netstat的定义是:Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。Netstat是控制台命令,是一... 查看详情

iptables详解(11):iptables之网络防火墙

...,我们说过,防火墙从逻辑上讲,可以分为主机防火墙与网络防火墙。主机防火墙:针对于单个主机进行防护。网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。 在前文的... 查看详情

linux之netstat命令详解(代码片段)

...ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。TCP连接状态详解LISTEN:侦听来自远... 查看详情

linux----------防火墙(代码片段)

目录一、防火墙概念1.1安全技术1.2防火墙1.2.1网络层防火墙1.2.2应用层防火墙1.3防火墙工具二、iptables2.1iptables的组件2.2iptables组成2.2.1四个表t2.2.2五个内置链chain2.2.3iptables规则2.3iptables工作原理2.4iptables命令2.4.1iptables语法格式2.5ipta... 查看详情

系统安全之iptables防火墙

一、简介  工作在主机或网络边缘的,对进出的报文事先定义的规则进行检查,由软硬件两者协同工作,这就是防火墙。  二、iptables常用选项iptables命令:iptables — administration tool for IPv4 packe... 查看详情

由于centos7默认没有iptables,请简述一下,怎么安装iptables防火墙,修改配置文件

...ewall-cmd,下面实验中会讲到~8.3.1区域概念与作用防火墙的网络区域定义了网络连接的可信等级,我们可以根据不同场景来调用不同的firewalld区域,区域规则有:编辑区域默认规则策略trusted允许所有的数据包。home拒绝流入的数据... 查看详情

iptables防火墙相关命令详解

前提基础:当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发。iptables实现防火墙功能的原理是:在数... 查看详情

linux基础命令之网络工具

sshwgetscppingnetsatroutehostsftp  查看详情

linux之网络安全

目录防火墙作用防火墙分类防火墙性能硬件防火墙硬件防火墙定义硬件防火墙作用硬件防火墙品牌软件防火墙扩展:Web应用防火墙(WAF)硬件防火墙与软件防火墙比较iptablesiptables是什么?netfilter/iptables功能iptables概念iptables工作依... 查看详情

iptables服务相关命令

 1.查看iptables状态   serviceiptablesstatus2.开启/关闭iptables  serviceiptablesstart  serviceiptablesstop3.查看iptables是否开机启动  chkconfigiptables--list4.设置iptables开机启动/不启动  chkconfigiptableson  chkconf 查看详情

linuxnetstat详解

 Linuxnetstat命令用于显示网络状态。利用netstat指令可让你得知整个Linux系统的网络情况。在InternetRFC标准中,Netstat的定义是:Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存... 查看详情

iptables详解:iptables概念

...关概念。从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。主机防火墙:针对于单个主机进行防护。网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。网络防火墙和... 查看详情