当前位置: 首页 > news >正文

企业网站的维护崂山网站建设

企业网站的维护,崂山网站建设,上海h5网站建设,长沙微信公众号iptables的一次修复日志 搭建配置wireguard后#xff0c;使用内网连接设备十分方便#xff0c;我采用的是星型连接#xff0c;即每个节点都连接到中心节点#xff0c;但是突然发生了重启wg后中心节点不转发流量的问题#xff0c;即每个接入的节点只能与中心节点连接…iptables的一次修复日志 搭建配置wireguard后使用内网连接设备十分方便我采用的是星型连接即每个节点都连接到中心节点但是突然发生了重启wg后中心节点不转发流量的问题即每个接入的节点只能与中心节点连接而节点与节点间无法连接。然而reboot重启中心节点机器后wg内网却能正常工作。最后发现是iptables配置的问题。借此机会熟悉了iptables的逻辑。 1. 发现和解决问题 1.1 现象 当时中心节点上挂了 ipsec,wireguard,和docker等当时也不知道是谁干的好事我甚至不知道ipsec也写了这个表最后锁定了问题出在FORWARD 链。具体是这样的 重启wireguard复现了问题后使用 sudo iptables -nvL查看这个表最后观察到这个表是这样的。 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 195K 51M DOCKER-USER 0 -- * * 0.0.0.0/0 0.0.0.0/0 2 195K 51M DOCKER-ISOLATION-STAGE-1 0 -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT 0 -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 4 0 0 DOCKER 0 -- * docker0 0.0.0.0/0 0.0.0.0/0 5 0 0 ACCEPT 0 -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 6 0 0 ACCEPT 0 -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 7 20 800 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 8 0 0 ACCEPT 0 -- eth0 ppp 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 9 0 0 ACCEPT 0 -- ppp eth0 0.0.0.0/0 0.0.0.0/0 10 0 0 ACCEPT 0 -- ppp ppp 0.0.0.0/0 0.0.0.0/0 11 0 0 ACCEPT 0 -- eth0 * 0.0.0.0/0 192.168.43.0/24 ctstate RELATED,ESTABLISHED 12 0 0 ACCEPT 0 -- * eth0 192.168.43.0/24 0.0.0.0/0 13 0 0 ACCEPT 0 -- * ppp 192.168.43.0/24 0.0.0.0/0 14 0 0 ACCEPT 0 -- wg2 * 0.0.0.0/0 0.0.0.0/0 15 0 0 ACCEPT 0 -- * wg2 0.0.0.0/0 0.0.0.0/0 16 393 26860 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0 17 0 0 ACCEPT 0 -- wg2 * 0.0.0.0/0 0.0.0.0/0 18 0 0 ACCEPT 0 -- * wg2 0.0.0.0/0 0.0.0.0/0 19 0 0 ACCEPT 0 -- wg0 * 0.0.0.0/0 0.0.0.0/0 20 0 0 ACCEPT 0 -- * wg0 0.0.0.0/0 0.0.0.0/0 21 0 0 ACCEPT 0 -- wg0 * 0.0.0.0/0 0.0.0.0/0 22 0 0 ACCEPT 0 -- * wg0 0.0.0.0/0 0.0.0.0/0 流量从上往下匹配在匹配到wg0的规则前匹配到了DROP,卒。 然后reboot重启了机器FORWARD链变成了这样 1 491 106K DOCKER-USER 0 -- * * 0.0.0.0/0 0.0.0.0/0 2 491 106K DOCKER-ISOLATION-STAGE-1 0 -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT 0 -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 4 0 0 DOCKER 0 -- * docker0 0.0.0.0/0 0.0.0.0/0 5 0 0 ACCEPT 0 -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 6 0 0 ACCEPT 0 -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 7 0 0 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 8 0 0 ACCEPT 0 -- eth0 ppp 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 9 0 0 ACCEPT 0 -- ppp eth0 0.0.0.0/0 0.0.0.0/0 10 0 0 ACCEPT 0 -- ppp ppp 0.0.0.0/0 0.0.0.0/0 11 0 0 ACCEPT 0 -- eth0 * 0.0.0.0/0 192.168.43.0/24 ctstate RELATED,ESTABLISHED 12 0 0 ACCEPT 0 -- * eth0 192.168.43.0/24 0.0.0.0/0 13 0 0 ACCEPT 0 -- * ppp 192.168.43.0/24 0.0.0.0/0 14 0 0 ACCEPT 0 -- wg2 * 0.0.0.0/0 0.0.0.0/0 15 0 0 ACCEPT 0 -- * wg2 0.0.0.0/0 0.0.0.0/0 16 491 106K ACCEPT 0 -- wg0 * 0.0.0.0/0 0.0.0.0/0 17 0 0 ACCEPT 0 -- * wg0 0.0.0.0/0 0.0.0.0/0 18 0 0 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0 19 0 0 ACCEPT 0 -- wg2 * 0.0.0.0/0 0.0.0.0/0 20 0 0 ACCEPT 0 -- * wg2 0.0.0.0/0 0.0.0.0/0 21 0 0 ACCEPT 0 -- wg0 * 0.0.0.0/0 0.0.0.0/0 22 0 0 ACCEPT 0 -- * wg0 0.0.0.0/0 0.0.0.0/0 因为有wg0的规则出现在了DROP之前所以流量成功的走了出来。 1.2 补充知识点 iptables中的-A和-I,一个是Insert一个是Append,Insert会直接插在链规则的最前边Append则是会直接插在最后边。 1.3 解决问题 看了下wg0.conf是怎么写的 Address **.**.**.1/24 PrivateKey ******************************************* PostUp iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE[Peer] publickey ******************************************* AllowedIPs **.**.**.2/32[Peer] publickey ******************************************* AllowedIPs **.**.**.3/32[Peer] publickey ******************************************* AllowedIPs **.**.**.4/32[Peer] publickey ******************************************* AllowedIPs **.**.**.5/32... ...其中的PostUp和PostDown被执行-A 指定了规则append到该表该链的所有规则的后边。 所以reboot重启机器的时候由于DROP最后才被append加进来而wireguard的规则先append进来了所以从上往下执行。就没事。 然而此后重启wireguard,由于重新append时append到了DROP后边所以该规则没能先于DROP被执行 所以只要重启的时候使用Insert而不是Append就解决了即把PostUP中的-A换成-I即 PostUp iptables -I FORWARD -i %i -j ACCEPT; iptables -I FORWARD -o %i -j ACCEPT; iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE问题就解决了。 2. 问题的解释 关于wg0的规则并排的0有两条一条是in * out wg0 一条是in wg0 out *,它们是冗余的因为有路由表保证了只有来自wg0的流量才会到wg0。 3.排查docker和ipsec 缺德的DROP是谁添加的呢为了观察这一点首先引入了两条工具 3.1 工具 iptables的注释 语法是 iptables -m comment --comment My comments here具体使用案例(直接写在wg0.conf里 PostUp iptables -I FORWARD -i %i -m comment --comment Added in wg0.conf -j ACCEPT; iptables -I FORWARD -o %i -m comment --comment Added in wg0.conf -j ACCEPT; iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE这样就可以在打印iptables表的时候看到注释。 sudo iptables -nvL4270 203K ACCEPT 0 -- * wg0 0.0.0.0/0 0.0.0.0/0 /* Added in wg0.conf */0 0 ACCEPT 0 -- wg0 * 0.0.0.0/0 0.0.0.0/0 /* Added in wg0.conf */TRACE功能 执行以下命令 iptables -t raw -I PREROUTING -d **.**.**.70 -j TRACE在raw表的PREROUTING链中添加这条规则 这样在到**.**.**.70的流量如何通过的iptables就可以观察了。观察的方法是执行以下命令 sudo xtables-monitor -t事后我看到的是这样的情况 PACKET: 2 31ae5dec INwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL128 ID59853TRACE: 2 31ae5dec raw:PREROUTING:rule:0x2:CONTINUE -4 -t raw -A PREROUTING -d 11.11.11.70/32 -j TRACETRACE: 2 31ae5dec raw:PREROUTING:return:TRACE: 2 31ae5dec raw:PREROUTING:policy:ACCEPTTRACE: 2 31ae5dec nat:PREROUTING:return:TRACE: 2 31ae5dec nat:PREROUTING:policy:ACCEPT PACKET: 2 31ae5dec INwg0 OUTwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL127 ID59853TRACE: 2 31ae5dec filter:FORWARD:rule:0x25:ACCEPT -4 -t filter -A FORWARD -o wg0 -m comment --comment Added in wg0.conf -j ACCEPTTRACE: 2 31ae5dec nat:POSTROUTING:return:TRACE: 2 31ae5dec nat:POSTROUTING:policy:ACCEPT PACKET: 2 510f38f9 INwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL128 ID59854TRACE: 2 510f38f9 raw:PREROUTING:rule:0x2:CONTINUE -4 -t raw -A PREROUTING -d 11.11.11.70/32 -j TRACETRACE: 2 510f38f9 raw:PREROUTING:return:TRACE: 2 510f38f9 raw:PREROUTING:policy:ACCEPT PACKET: 2 510f38f9 INwg0 OUTwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL127 ID59854TRACE: 2 510f38f9 filter:FORWARD:rule:0x25:ACCEPT -4 -t filter -A FORWARD -o wg0 -m comment --comment Added in wg0.conf -j ACCEPT PACKET: 2 47202071 INwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL128 ID59855TRACE: 2 47202071 raw:PREROUTING:rule:0x2:CONTINUE -4 -t raw -A PREROUTING -d 11.11.11.70/32 -j TRACETRACE: 2 47202071 raw:PREROUTING:return:TRACE: 2 47202071 raw:PREROUTING:policy:ACCEPT PACKET: 2 47202071 INwg0 OUTwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL127 ID59855TRACE: 2 47202071 filter:FORWARD:rule:0x25:ACCEPT -4 -t filter -A FORWARD -o wg0 -m comment --comment Added in wg0.conf -j ACCEPT PACKET: 2 47202071 INwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL128 ID59856TRACE: 2 47202071 raw:PREROUTING:rule:0x2:CONTINUE -4 -t raw -A PREROUTING -d 11.11.11.70/32 -j TRACETRACE: 2 47202071 raw:PREROUTING:return:TRACE: 2 47202071 raw:PREROUTING:policy:ACCEPT PACKET: 2 47202071 INwg0 OUTwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL127 ID59856TRACE: 2 47202071 filter:FORWARD:rule:0x25:ACCEPT -4 -t filter -A FORWARD -o wg0 -m comment --comment Added in wg0.conf -j ACCEPT当时的情况是 PACKET: 2 831e9d23 INwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL128 ID59207 TRACE: 2 831e9d23 raw:PREROUTING:rule:0x2:CONTINUE -4 -t raw -A PREROUTING -d 11.11.11.70/32 -j TRACE TRACE: 2 831e9d23 raw:PREROUTING:return: TRACE: 2 831e9d23 raw:PREROUTING:policy:ACCEPT TRACE: 2 831e9d23 nat:PREROUTING:return: TRACE: 2 831e9d23 nat:PREROUTING:policy:ACCEPT PACKET: 2 831e9d23 INwg0 OUTwg0 SRC11.11.11.20 DST11.11.11.70 LEN60 TOS0x0 TTL127 ID59207 TRACE: 2 831e9d23 filter:FORWARD:rule:0x36:JUMP:DOCKER-USER -4 -t filter -A FORWARD -j DOCKER-USER TRACE: 2 831e9d23 filter:DOCKER-USER:return: TRACE: 2 831e9d23 filter:FORWARD:rule:0x33:JUMP:DOCKER-ISOLATION-STAGE-1 -4 -t filter -A FORWARD -j DOCKER-ISOLATION-STAGE-1 TRACE: 2 831e9d23 filter:DOCKER-ISOLATION-STAGE-1:return: TRACE: 2 831e9d23 filter:FORWARD:rule:0x1f:DROP -4 -t filter -A FORWARD -j DROP就是通过这个DROP发现的问题。 3.2 排查结果 其实上边的工具都没用上最后发现是ipsec写的DROP它还同时添加了两条wg0的规则导致wg0的规则出现了四次。 它想做的是用一个DROP兜底结果不幸的是我的wg规则append了在它后边。其实这个DROP应该写进policy。 由于iptables大家一起用所以我感觉在最后append一个DROP这种行为其实本身就很不负责。调整了ipsec结束维护。 4.iptables的三表五链 三表 nat,mangle,filter,(raw) 五链: PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
http://www.pierceye.com/news/498979/

相关文章:

  • 微网站建设资讯网页游戏开发教程
  • 网站建设评估百度公司地址
  • python 做网站开发吗搜房网网站跳出率
  • 深圳企业模板网站建设做高性能的网站 哪门语言好
  • 网站后台不能上传微信公众平台网页版登陆
  • 广州网站营销seo费用成都建设网站那家好
  • 网站建设规划书结构简单wordpress
  • 域名注册网站哪个好山东淄博网络科技有限公司
  • 固始县网站建设培训怎么制作网站首页
  • 产品经理做网站三河市最新消息
  • 做新闻类网站需要什么资质如何外贸seo网站建设
  • 注册网站流程和费用百度seo关键词排名s
  • 做推广网站的去哪能买到有效资料苏州建设网站找网络公司
  • vs做网站如何输出怎么做flash网站
  • 网站做政务广告传媒公司简介ppt
  • 番茄网络营销策划方案seo网站培训
  • 自己做一网站高唐网页定制
  • 快速网站seo效果什么是网络营销与概念
  • 个体网站建设企业网站做的好的有什么公司
  • 建设银行网站短信错误6次wordpress个人淘客
  • 让网站快速收录最新集团公司网站案例
  • 网站开发公司长春高校 网站建设实施方案
  • 我做的网站打开慢怎么处理防控措施有这些优化
  • 网站的登录界面是怎么做的网站开发 职位
  • 西安英文网站制作企业年报申报入口官网
  • 做一网站多少钱企业官方网站建设教程
  • 自己建的网站能用吗海南网站建设哪家好
  • 网络公司网站模板html网站制作 数据库
  • 温州哪里有网站优化南通营销网站建设
  • 怎么在网站标头做图标wordpress 远程数据库