Below you will find pages that utilize the taxonomy term “iptables”
October 30, 2022
Linux下两种 DNAT 用法的差异
"前段时间使用 iptables 的 DNAT 实现一个业务需求的时候,遇到了一些问题这里将其整个过程记录下来。\n需求 这里假设开发机地址为 192.168.3.80,要实现的需求是当用户在开发机访问一个IP地址 192.168.3.196时,将请求转发到另一台机器 192.168.3.58,很明显直接使用 DNAT 来实现即可。\n问题现象 iptables 命令如下\nsudo iptables -t nat -F sudo iptables -t nat -A PREROUTING -d 192.168.3.196 -p tcp --dport 8080 -j DNAT --to-destination 192.168.3.58:8080 sudo iptables -t nat -A POSTROUTING -d 192.168.3.58 -p tcp --dport 8080 -j SNAT --to-source 192.168.3.196:8080 这时在开发机器访问\ncurl http://192.168.3.196:8080 发现提示错误\ncurl: (7) Failed …"
July 20, 2022
Linux中调试 iptables
"环境:\n客户端(windows) 192.168.6.21\n服务器(Ubuntu): 192.168.6.23\n开启iptables调试内核模块 $ modprobe nf_log_ipv4 $ sysctl net.netfilter.nf_log.2 net.netfilter.nf_log.2 = nf_log_ipv4 添加iptables规则 $ iptables -t raw -A PREROUTING -p icmp -j TRACE $ iptables -t raw -A OUTPUT -p icmp -j TRACE 测试规则 客户端执行 ping 命令,\n$ ping 192.168.6.23 -n 1 这里使用 -n 参数指定发送的包数量为1,方便我们分析日志\n此时在服务器上执行查看日志命令, 日志文件为:/var/log/syslog 或者 /var/log/kern.log 或者 /var/log/messages\n$ tail -f /var/log/syslog Jul 20 11:28:40 ubuntu kernel: [ 7606.531051] …"
November 23, 2021
理解 firewalld/ufw 与iptables、netfilter 的关系
"iptables 作为 Linux/Unix 下一款优秀的防火墙软件,在安全方面发挥着极其重要的作用,作为系统管理员来讲一点也不陌生。不过对于一些新手来说,复杂性是一个门槛,Linux厂商为了解决这个问题,于是推出了新的管理工具,如 Centos 下的 Firewalld 和 Ubuntu 下的ufw, 他们对新手十分友好,只需要几个很简单的命令即可实现想要的功能,再不也必为记不住iptables中的四表五键而烦恼了。 那么,是不是有了 firewalld 和 ufw就不需要iptables了呢?并不是的。\n首先我们要清楚firewalld、ufw 与iptables的关系,可以理解为两者只是对iptables其进行了一层封装,它们在用户交互方面做了非常多的改进,使其对用户更加友好,不需要再记住原来那么多命令了。\n而目前对于一些系统管理员来讲,大概率还是会直接使用 iptables,主要原因是灵活性,当然也有一定的历史原因。对比前面两个管理工具,他们也存在一定的问题,如只能对单条规则进行管理,详细参考相关文档。\n另外对于 firewalld 还有图形界面。 …"
February 1, 2013
iptables规则的查看、添加、删除和修改[教程]
"在 Linux 中 iptables 实际上只是一个操作 Linux 内核 Netfilter 子系统的“界面”。顾名思义,Netfilter 子系统的作用,就是 Linux 内核里挡在“网卡”和“用户态进程”之间的一道“防火墙”。 也就是说 iptables 工作在用户态,它和我们平时开发的应用程序完全一样的,只是它的作用是用来操作 NetFilter 的一个工具。而 NetFilter 工作在内核态,它们的关系,可以用如下的示意图来表示:图来自极客时间\n在 iptables 中存在四表五链的概念。\n表分别为 filter、nat、raw、mangle ,当数据包抵达防火墙时,将依次应用 raw、mangle、nat、和 filter 表中对应链内的规则,其中表的应用顺序为:raw -\u0026gt; mangle -\u0026gt; nat -\u0026gt; filter,而表中链的规则自上向下依次执行,执行中有可能跳转到其它链中继续执行。 iptables Processing Flowchart\n如果按七层网络协议的话,则 ipables 中的数据流向为(来自Netfilter 官方的原理 …"
July 25, 2011
iptables 开放80端口
"iptables -F //清空规则\niptables -A INPUT -p tcp –dport 22 -j ACCEPT /*允许包从22端口进入*/ iptables -A OUTPUT -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT /*允许从22端口进入的包返回*/ iptables -A OUTPUT -p udp –dport 53 -j ACCEPT iptables -A INPUT -p udp –sport 53 -j ACCEPT iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /*允许本机访问本机*/ iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp -s 0/0 –dport 80 -j ACCEPT /*允许所有IP访问80端口*/ iptables -A OUTPUT -p tcp –sport 80 -m state …"
October 19, 2010
iptables命令
"详细教程参考: https://blog.haohtml.com/archives/13649\n语法\niptables [-t 要操作的表]\n\u0026lt;操作命令\u0026gt;\n[要操作的链]\n[规则号码]\n[匹配条件]\n[-j 匹配到以后的动作]\n操作命令(-A、-I、-D、-R、-P、-F)\n查看命令(-[vnx]L)\n如以下命令,其中-t filter为可选项,一般情况下省略不写:\niptables-t filter-AINPUT-j DROP\niptables命令参数\n-A 添加规则到规则链表 iptables -A INPUT\n-D 从规则链表中删除规则,可是完整规则,也可以是规则编号\n-R 取代现行规则,不改变在链中的顺序如:iptables -R INPUT 1 -s 193.168.0.1 -j DROP\n-I 插入一条规则 如:iptables -I INPUT 1 –dport 80 -j DROP\n-L 列出某规则链中所有规则\n-F 删除某规则链中所有规则\n-Z 将封包计数器清零\n-N 定义新的规则链\n-X 删除某个规则链\n-P 定义过滤政策\n-E 修改自定义规则链名字\n常 …"
October 19, 2010
LINUX下iptables的命令应用
"手册:\niptables命令 维护规则表的命令:\n(-N)创建一个新规则表\n(-X)删除一个空规则表\n(-P)改变内建规则表的默认策略\n(-L)列出规则表中的规则\n(-F)清空规则表中的规则\n(-Z)将规则表计数器清零\n管理规则表中的规则:\n(-A)添加新规则到规则表\n(-I)插入新规则到规则表的某个位置\n(-R)替换规则表中的规则\n(-D)删除规则表中的某条规则\n在调试iptables规则时,你也许需要反复修改你的脚本来实现某些特定的功能,这时建议在你的脚本里添加这样几行,以防止重复设置规则:\n# 清除所有规则\niptables -F -t filter\niptables -X -t filter\niptables -Z -t filter\niptables -F -t nat\niptables -X -t nat\niptables -Z -t nat\n# 设置内建规则表的默认策略 iptables -P INPUT ACCEPT\niptables -P OUTPUT ACCEPT\niptables -P FORWARD ACCEPT\niptables -t nat -P …"
August 22, 2010
Linux中Iptables命令详解
"手册:\n用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改\niptables – [RI] chain rule num rule-specification[option] 用iptables – RI 通过规则的顺序指定\niptables -D chain rule num[option] 删除指定规则\niptables -[LFZ] [chain][option] 用iptables -LFZ 链名 [选项]\niptables -[NX] chain 用 -NX 指定链\niptables -P chain target[options] 指定链的默认目标\niptables -E old-chain-name new-chain-name -E 旧的链名 新的链名\n用新的链名取代旧的链名\n说明\nIptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。\n可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作’target’(目标),也可以 …"