Skip to content

Commit

Permalink
posts(bcy0349): save draft
Browse files Browse the repository at this point in the history
  • Loading branch information
Octobug committed Dec 22, 2023
1 parent 8334b14 commit a78d25b
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 1 deletion.
7 changes: 6 additions & 1 deletion .vitepress/theme/locations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ const CITY = {
};

const DISTRICT = {
渔业社区: "宝安区西乡街道渔业社区",
大冲社区: "南山区粤海街道大冲社区",
高新区社区: "南山区粤海街道高新区社区",
渔业社区: "宝安区西乡街道渔业社区",
};

const LOCATIONS = {
Expand All @@ -15,6 +16,10 @@ const LOCATIONS = {
创维半导体设计大厦西座: {
city: CITY.深圳,
district: DISTRICT.高新区社区,
},
大冲新城花园: {
city: CITY.深圳,
district: DISTRICT.大冲社区,
}
};

Expand Down
73 changes: 73 additions & 0 deletions posts/better-not-mess-around-with-iptables/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
date: 2019-12-15
spot: 大冲新城花园
sort: Computer Science
tags:
- Network
- iptables
- NAT
- TCP
- MySQL
- Unix domain socket
- man page
---

# 慎用 iptables:误用规则引发的疑问

![BCY0349 Masquerade](./bcy0349.jpg "Permitted under the [Terms and conditions](https://www.dfo-mpo.gc.ca/terms-conditions-avis-eng.htm). ©️ [**Contributors**](https://www.dfo-mpo.gc.ca/species-especes/mammals-mammiferes/humpback-rorqual-a-bosse/photos/index-eng.html) on [*dfo-mpo.gc.ca*](https://www.dfo-mpo.gc.ca/species-especes/mammals-mammiferes/humpback-rorqual-a-bosse/photos/bcy-eng.html).")

昨天去了一趟广州。在深圳安检排队时微信突然来了一串消息:

> 有个 Web 服务突然被数据库拒绝访问。
事态比较紧急,我们组长先做了临时处理,之后通知了我们几个相关的人。由于我前阵子接手了这个项目,所以也就承担调查事故原因的任务。

## 背景

这里涉及一些业务层面的东西,需要脱敏,所以只提取出涉事技术因素:

- Web 服务(下文以 `IDLE` 代称):一个重要而不繁忙的内部网站,只有工作时间会有人使用。
- 数据库(下文以 `DB` 代称):一个重要且繁忙的数据库,`IDLE` 会对 `DB` 进行只读操作。
- 另一个 Web 服务(下文以 `BUSY` 代称):持续对 `DB` 进行高频读写操作。

### 具体故障

`IDLE``DB` 拒绝访问。

在这之前,`IDLE``DB` 的访问是完全正常的。作为当前唯一的维护人员,我接手后还没做几个变更就出了这个故障,实属摸不着头脑。

### 初步调查及临时措施

组长做了初步调查及临时措施,并提出疑问:

- Web 服务报错:`sqlMessage: "Host 'IP.IP.IP.IP' is not allowed to connect to this MySQL server"`
- 临时措施:
- `GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP.IP.IP.IP';`
-`DB` 做了此变更之后 `IDLE` 恢复正常
- 疑问:
> 1. MySQL 拒绝 `IDLE` 访问,为什么昨天没有出现,而今天早晨出现了?周五晚上有人修改了 MySQL 配置吗?
> 2. `IDLE` 服务连接数据库的配置中,`host = "localhost"`,为什么 MySQL 的报错会变成 `"IP.IP.IP.IP"`
### 可能相关的运维变更

有位同事补充了周五晚上他对服务器做的变更:出于运维需要,给 iptables 加了如下规则:

```sh
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
```

之后,又使用 `iptables-restore` 将变更前备份的 iptables 规则表重新导入回去。

## 我的疑问

得到以上所有信息之后,我也产生了如下几个疑问:

---

- [](https://man7.org/linux/man-pages/index.html)

:::details 封面图

:::

## References
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a78d25b

Please sign in to comment.