nginx控制iptables芝麻开门

2022-02-10 作者:

During maintenance of a production server, we use to encounter a problem like this – an internet-access-blocked port, say 3306 (mysql), is about to be open for a little while due to debugging needs, which is not uncommon, right? So how to make this easily operated, mostly secure, and automatically disabled after working – I guess this’s gonna help somehow.

A Linux server with whatever the distribution including iptables (e.g. CentOS, Rocky for now as example), Nginx, fcgiwrap, a simple shell script and a commonly used web browser, let’s say chrome, will be major ingredients on the recipe.

常做运维,总会遇到某些线上服务器,为了便于调试,在符合安全要求的基础上,需要相对便利的对公网短时定向开放某些端口。

昨天想了一招,用nginx操作shell脚本,对特定公网IP开口子,叫一声“芝麻开门”,便捷又安全。举例端口3306(mysql),系统是Rocky Linux 8(原CentOS 8)。

Doors of Durin

Doors of Durin

先查一下现有的防火墙规则,需要的话可以保存一下。换句话说,搞芝麻开门之前,先确定门是隐藏的;也即已经有相应(且持久化)的iptables rule确保到被保护端口的连接是DROP/REJECT状态。

然后就是fcgiwrap的安装,此处就不写nginx安装过程了,默认安装即可。

安装后增加两个systemd服务文件,并测试fcgiwrap服务生效。

【注】那俩服务文件,在Redhat之外的发行版上,fcgiwrap安装包可能自带,请针对所用版本自行检查。

接下来为一个新的nginx server准备个根目录,存放网页和之后控制iptables的脚本。

完整阅读本篇»

树莓派监控SANTAK UPS

2022-01-07 作者:

硬件:SANTAK TG-BOX 600 + RPi 4B (2GB) + Huawei ME909s-821

监控服务:NUT(Network UPS Tools)参考文章挺多,就不详解了;Pi上连了4G模块主要是掉电时可能无法得到Wired Ethernet供应,就发个短信而已,不如直接走wwan靠谱省心。

目前用的是standalone模式,回头有空查下文档试试netserver模式,看config文件介绍,猜测是client可以通过server知道市电挂了,从而在server之前关机?

完整阅读本篇»

OpenWrt测试双WAN和双机高可用

2021-12-03 作者:

So here’s a quick example. OpenWrt shows capability to provide business-level internet access reliabilities – with not only load balancing/failover between 2 or more ISPs, but also VRRP based hardware (dual x86 vm in this experiment) level redundancy.

从以下的例子可以看出,OpenWrt基本满足了提供小型商业级Internet访问可靠性的初步要求。它不仅可以在多个ISP之间实现负载均衡以及故障切换,在此基础上同时提供基于VRRP的硬件冗余(本实验中为双x86虚拟机)。

 

先开仨虚拟机,前两台做OpenWrt,可以先做1台,复制1台。注意要安装mwan3和keepalived。

 

双WAN做好后,断开一路wan做测试。这里的wanb,用的是楼道里的不可靠wifi,通过Raspberry Pi向下路由一层转成有线网,能体现出不稳定的ISP接入状态。

本来是两路负载均衡的策略,wanb断开后,5s之内可以让所有对外请求都稳定落在wan上。

 

下一步,把MASTER的br-lan断开,模拟一个路由器硬件直接宕掉。

 

这个切换时间很短,还没反应过来,BACKUP就接管了VIP地址,对外请求几乎不受什么影响。

完整阅读本篇»

基于红米AC2100的集客AC/AP方案

2021-10-15 作者:

Free (but proprietary) AC/AP wifi solution by Wuhan GECOOS, is here tested on 2 units Redmi AC2100 and a Proxmox based x86_64 vm.

这篇不准备多写,简单谈一下感受。

硬件结构如下,

  • AP是两台Redmi AC2100,单价159(不是wifi6,消费主义远离我)。
  • AC是书房自建私有云上一台vm,无法单独计费,权当免费。

PROS:

  • 性价比突出。总价只有318,即使考虑到大房子需要3台AP,也只要500块不到而已,还不到一台中端wifi6路由器的钱。有人可能会说,别逗了,家用AP的信号,3台怎么够 —— 哥们,别那么肯定,你说的是面板AP,我这是普通家用路由器(外置天线)刷的AP,原本设计每个都是带全家的,要比信号强度也得比商业吸顶AP吧?
  • AC可以不要,AP支持胖AP模式。这点倒是跟其他家用AC/AP方案接近,并不特别。我猜胖AP漫游效果差点儿?因为我不缺私有云机器,没有做具体测试。
  • 蛮关键的一点,AC可以只做旁路。也就是说,主路由还是主路由,你不一定用这个集客AC做主路由(虽然它也具备路由能力),这一点非常关键。作为AC,管好你的AP,做好弱踢和切换就行了,路由我有更好的选择。
  • 覆盖和速度都能让人满意,mbp连上5G信号,NAS大文件传输不比千兆有线差很多。
  • 每个房间多了一个4口千兆交换机,还tm支持vlan,这个价钱做下来的方案有这么强的灵活性,你敢信?

CONS:

  • 漫游切换,在安卓手机上切换起来,还是没有单路由(不切换)那么流畅。当然,物理问题靠软件显然不能强求,毕竟在家里边角的wifi速度显著提高了;多年前的iPhone 6SP好像漫游效果不错的说;后悔没有拿Android和iPhone互相打个微信视频然后走动一下做个测试。
  • 【昧良心说】集客固件免费但不开源。至于开源与否我不关心,毕竟我刷个路由不是去商业化,我只关心有无黑产,这点主要看开发团队的人文品质吧。真要不放心,自己刷一套放个抓包环境测几个月就有数了;这问题倒不是针对集客,ikuai和梅林也是同一个路子,再说那些原厂(不免费)的路由器系统就能绝保没后门没黑产?

以下纯截图:

AC界面:wifi配置模板下发

完整阅读本篇»

轻巧赛手机的瘦客户端·初测

2021-09-03 作者:

This post talks about the preliminary test to the little weeny-weeny thin client, YF-V102. It works in super smaller factor than a cellphone (thicker though), and less weight too, but still has both wired and wireless connection to connect the vm or physical target through RDP/SPICE.

实话说,拿到整个快递包装,我先琢磨是不是收到个空盒。

不过玩虚拟化这么多年,毕竟主要搞服务端,所以试用瘦客户端,还是第一次,对以往的thin client尺寸及功能,并无经验之谈。

这个带了三个USB、两个3.5mm、一个USB-C供电口、一个标准HDMI、一个RJ45网线接口的盒子,居然不足100g,话说里边还有板子么?

完整阅读本篇»

使用PBS备份PVE物理机特定路径

2020-10-13 作者:

This post shows you how to use PBS (Proxmox Backup Server) to backup a specific directory (or mount point) of a PVE (Proxmox Virtual Environment) server, which is NOT exactly same thing in my mind – to backup a physical PVE machine and restore to be another new one (with all my personal settings in) though, but still somehow interesting and worth a try.

本文简介如何使用PBS(Proxmox Backup Server)进行PVE物理机备份。

本以为,这功能可以把pve物理机clone一份然后秒恢复成一台新物理机(类似硬盘dd但更简单)。但实际并非如此,该功能是把特定路径(比如根目录)下的文件整体打包备份(不含已挂载别的分区的路径);而恢复时也不是整分区恢复,而是按文件恢复,且文件已经存在时会报错。

虽然跟想的不太一样,至少这货有一点好处,简便易操作。相当于给PVE物理机磁盘打了个snapshot,而且PBS的管理界面可以把备份解开,只下载(恢复)其中某一个文件,有一定的实用价值。

现在看下备份过程,在PVE物理机上执行如下命令 –

其中 –

  • backup指备份操作。
  • 121-root.pxar是备份到具体的文件名,而pxar是pbs使用的备份文件格式。上一篇PBS初体验中提到了PBS中特殊的存储方式,这里也不例外,121-root.pxar文件名在pbs中也只是个索引文件,具体数据存储也是打散在.chunks下的65536个子目录中。
  • :/  指要备份root挂载点(之下比如/var挂载了别的分区,则不会被备份到)。
  • --repository  告诉备份命令,要备份到远端的PBS服务器。
  • 192.168.1.122:test-store-01  给出PBS服务器的具体IP(端口默认8007)和存储池名字。

备份完成后,从PBS管理界面,可以看到备份信息。

更有意思的是,备份可以展开,甚至可以下载某一具体文件。

那么如果从PVE上列出PBS的备份,从而检查内容和恢复呢?

完整阅读本篇»