首页 > 系统相关 >iptables

iptables

时间:2023-02-15 17:56:17浏览次数:27  
标签:iptables chain -- 指定 规则 数据包

iptables

Linux上常用的防火墙软件。

iptables命令 是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

开启Linux 内核转发 
sysctl  -w  net.ipv4.ip_forward=1

或者

echo >> /etc/sysctl.conf net.ipv4.ip_forward=1
systctl -p

语法

iptables -选项    -参数
-t, --table table 对指定的表 table 进行操作, table 必须是 raw, nat,filter,mangle 中的一个。如果不指定此选项,默认的是 filter 表。

# 通用匹配:源地址目标地址的匹配
-p:指定要匹配的数据包协议类型;
-s,  --source [!] address[/mask] :把指定的一个/一组地址作为源地址,按此规则进行过滤。当后面没有 mask 时,address 是一个地址,比如:192.168.1.1;当 mask 指定时,可以表示一组范围内的地址,比如:192.168.1.0/255.255.255.0。
-d,  --destination [!] address[/mask] :地址格式同上,但这里是指定地址为目的地址,按此进行过滤。
-i,  --in-interface [!] <网络接口name> :指定数据包的来自来自网络接口,比如最常见的 eth0 。注意:它只对 INPUT,FORWARD,PREROUTING 这三个链起作用。如果没有指定此选项, 说明可以来自任何一个网络接口。同前面类似,"!" 表示取反。
-o,  --out-interface [!] <网络接口name> :指定数据包出去的网络接口。只对 OUTPUT,FORWARD,POSTROUTING 三个链起作用。

# 查看管理命令 -L, --list [chain] 列出链 chain 上面的所有规则,如果没有指定链,列出表上所有链的所有规则。
# 规则管理命令 -A, --append chain rule-specification 在指定链 chain 的末尾插入指定的规则,也就是说,这条规则会被放到最后,最后才会被执行。规则是由后面的匹配来指定。 -I, --insert chain [rulenum] rule-specification 在链 chain 中的指定位置插入一条或多条规则。如果指定的规则号是1,则在链的头部插入。这也是默认的情况,如果没有指定规则号。 -D, --delete chain rule-specification -D, --delete chain rulenum 在指定的链 chain 中删除一个或多个指定规则。 -R num:Replays替换/修改第几条规则
# 链管理命令(这都是立即生效的) -P, --policy chain target :为指定的链 chain 设置策略 target。注意,只有内置的链才允许有策略,用户自定义的是不允许的。 -F, --flush [chain] 清空指定链 chain 上面的所有规则。如果没有指定链,清空该表上所有链的所有规则。 -N, --new-chain chain 用指定的名字创建一个新的链。 -X, --delete-chain [chain] :删除指定的链,这个链必须没有被其它任何规则引用,而且这条上必须没有任何规则。如果没有指定链名,则会删除该表中所有非内置的链。 -E, --rename-chain old-chain new-chain :用指定的新名字去重命名指定的链。这并不会对链内部造成任何影响。 -Z, --zero [chain] :把指定链,或者表中的所有链上的所有计数器清零。 -j, --jump target <指定目标> :即满足某条件时该执行什么样的动作。target 可以是内置的目标,比如 ACCEPT,也可以是用户自定义的链。 -h:显示帮助信息;

基本参数

参数 作用
-P 设置策略: iptables -P INPUT /DROP
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I 在规则链的头部加入新规则
-D 删除某一条规则
-s 匹配来源地址ip/mask,加叹号“!”表示除这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称匹配从这块网卡流出的数据
-p 匹配协议 如:tcp 、udp、icmp
--dport

匹配目标端口号

--sport

匹配来源端口号

 

命令选项输入顺序

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

 

工作机制

规则链名包括(也被称为5个钩子函数<hook functions>)

INPUT链 : 处理输入数据包

OUTPUT链:处理输出数据包

FORWARD链:处理转发数据包

PREROUTING链:用于DNAT(目标地址转换)

POSTOUTING链:用于SNAT (源地址转换)


 

表名包括:

raw:高级功能,如:网址过滤

mangle:数据包修改,用于实现服务质量

nat:地址转换,用于网关路由器

filter:包过滤,用于防火墙规则


 

动作包括:

ACCEPT :接收数据包

DROP:丢弃数据包

REDIRECT:从定向、映射、透明代理。

SNAT:源地址转换

DNAT:目的地址转换

MASQUERADE:IP伪装(NAT)

LOG:日志记录


 

iptables 实例:

清空所有规则和计数(谨慎使用)
iptables -F    #清空所有的防火墙规则
iptables -X    #删除用户自定义的空链
iptables -Z    #清空计数          
设置默认规则
ipabtles -P INPUT DROP  #配置默认的不让进

iptables -P FORWARD DROP #默认的不允许转发

iptables -P OUTPUT ACCEPT  #默认的可以出去
列出已设置的规则
iptables -L -t nat  #列出 nat 上面的所有规则    # -t 参数指定。必须是raw、nat、filter、mangle中的一个

iptables -L -t nat  --line-numbers #规则带编号

iptables -L -nv #查看,这个列表看起来更详细
指定数据包出去的网络接口,只对 OUTPUT,FORWARD,POSTROUTING三个链起作用。
iptables -A FORWARD -o eth0
网络转发规则 公网 1.1.1.1 内网 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.0/24 -j SNAT --to-source 1.1.1.1

端口映射

本机的 80端口映射到内网虚拟机的 1880 端口
iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to-dest 2.2.2.2:1880

 

标签:iptables,chain,--,指定,规则,数据包
From: https://www.cnblogs.com/yaoyin/p/16802258.html

相关文章

  • iptables记录日志获取drop信息【原创】
    需求:想获取iptablesdrop85端口的具体信息iptables的配置如下:-AINPUT-ptcp-mtcp--dport85-mlimit--limit4/min-jLOG--log-prefix"Iptables-85:"#......
  • 西部数码服务器iptables防火墙配置缺失导致无法访问
    问题:域名解析到服务器却依然没法访问系统是装的CentOS7.9纯净版,添加了服务器白名单,程序也在服务器正常运行,但是域名接口访问不到。通过联系工作人员才得知,服务器默认运行......
  • iptables
    1.NetfileterLinux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间中,集成在linux内核中Netfilter是Linux2.4.x之后新一代的Linux防火墙机制,是Linux内核的一......
  • 深入理解 netfilter 和 iptables
    深入理解 netfilter 和iptables ......
  • ERROR: Couldn't determine iptables version
     001、ubuntu中安装ssh服务时遇到如下报错:ERROR:Couldn'tdetermineiptablesversion  002、解决方法root@DESKTOP-A31BQ38:~#update-alternatives--listip......
  • vxlan结合iptables-snat实现内网服务器公网访问
    如上图,有这样一种场景,我们经常遇到,局域网内有两台服务器,Server1和Server2,Server1可以通通网,Server2只能通内网,无法直接访问公网现在想Server2能访问到公网,怎么做?......
  • iptables常用操作
    目录在指定行插入规则删除指定规则对非10.12网段的IP地址进行DROP操作注:以下命令都只是操作input链在指定行插入规则在第6行插入规则iptables-IINPUT6-miprange-......
  • Linux下开启防火墙放行nfs,ssh,httpd,dns,chrony服务(iptables,firewalld),firewalld端口转发
     环境:CentOS7.9什么是防火墙防火墙:防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙又可以分为硬件防火墙与软件......
  • Iptables原理介绍
    Linux防火墙——iptables原理介绍原创 liugp 大数据与云原生技术分享 2023-01-0207:30 发表于广东收录于合集#linux13个#防火墙3个#iptables2个一、......
  • Centos7 配置iptables NAT端口转发
    打开端口转发的功能1,首先开启IP转发功能,默认是关闭的。临时修改:[root@localhost~]#echo1>/proc/sys/net/ipv4/ip_forward修改过后就马上生效,但如果系统重启后......