IT技术博客大学习 共学习 共进步
首页 / 昔我往矣
IT 2022-06-19 18:15:01 / 累计浏览 4,640

一句话crontab实现防ssh暴力破解

这篇讲的是如何用一条crontab命令,为公网VPS搭建一道自动化的SSH暴力破解防火墙。 针对公网VPS即便更换非标准端口也难免被扫描和试探的问题,作者提出了一种轻量却高效的解决方案:将一条Bash命令放入crontab定时任务,实现自动监控与封禁。这条命令会通过`journalctl`查询最近24小时内的SSH登录日志,用`awk`统计出失败次数超过5次的来源IP,最后自动将这些“坏人”IP追加到`/etc/hosts.deny`黑名单中。 文章最巧妙的地方在于,用短短三个管道符串联起日志查询、统计分析与访问控制,既利用了系统原生日志工具,又结合了简单的文本处理,最终实现了从发现到封禁的全自动闭环。作者还贴心地指出,命令可根据是否使用systemd系统灵活调整日志来源,增强了实用性。 对于运维人员或个人站长而言,这提供了一个零成本、即刻生效的防护思路,无需依赖额外软件,用系统自带工具就能构筑起第一道安全防线。

IT 2022-06-19 12:01:23 / 累计浏览 5,120

Python连接 MySQL 数据库的超时问题

这篇文章深入分析了Python开发中一个常见的“坑”:使用Flask-SQLAlchemy连接MySQL时,为何会突然抛出“MySQL server has gone away”的异常。作者从实际案例出发,先拆解了MySQL服务端的`wait_timeout`机制(默认8小时,常被企业调至600秒)和Flask-SQLAlchemy客户端的连接回收策略(`SQLALCHEMY_POOL_RECYCLE`默认2小时),指出了问题的核心——两端的超时设置不匹配,导致数据库端已关闭空闲连接,而客户端仍试图使用该失效连接。 针对这个具体的超时错位问题,文章提供了三种切实可行的解决方案:一是执行无意义的`SELECT 1`来预先检测连接活性;二是调整客户端的回收时间,使其低于服务端超时阈值(文章推荐使用新的`SQLALCHEMY_ENGINE_OPTIONS`配置方式);三是使用后主动关闭连接。作者结合企业实践,最终选择了调整客户端配置这一更便捷的方法。 文章的分析紧扣故障现场,将超时参数的具体数值、异常产生的典型堆栈以及配置修改的代码示例一一呈现,为遇到同类问题的开发者提供了清晰的排查路径和落地参考。

IT 2020-02-07 14:18:40 / 累计浏览 3,060

内网穿透神器frp

这篇讲的是内网穿透工具frp,它解决了开发者常遇到的一个痛点:如何让内网服务(比如公司内网的调试接口、家里的树莓派)安全便捷地暴露到公网。作者对比了之前流行的ngrok,指出其国内访问慢、配置复杂的问题,而frp凭借开源、速度快、配置简单的特点脱颖而出。 文章的核心是手把手教读者搭建frp。作者先解释了frp的基本架构:在外网服务器部署服务端(frpc),在内网设备部署客户端(frpc),通过简单的配置文件建立隧道。接着,文章展示了配置服务端监听端口和客户端代理SSH、HTTP服务的具体示例,整个过程清晰明了。 作者通过实际搭建经验(服务端跑在Google Cloud上,客户端连家里树莓派)验证了frp的效能,并提到该项目在GitHub上已有过万Star。最终,frp只需十分钟即可完成部署的便捷性,使其成为解决内网穿透问题的高效选择。

IT 2015-01-17 00:10:17 / 累计浏览 2,180

sftp配置chroot

这篇讲的是如何利用Linux自带的sftp,通过配置chroot来搭建一个既安全又方便的文件传输服务。作者从传统FTP密码明文传输、配置繁琐等痛点出发,直接给出了基于OpenSSH的sftp解决方案。 核心步骤围绕修改sshd配置文件展开,重点是启用`internal-sftp`并设置`ChrootDirectory`,将用户“关”在家目录这个“根”下。文章很细致,不仅区分了按组(推荐)和按用户两种配置方式,还特别强调了权限管理这个容易踩坑的地方:chroot目录的所有者必须是root,权限为755,后续需要由root在目录内创建子目录并授权给sftp用户,这样用户才能正常读写。 整体来看,它清晰地展示了如何用一个更安全(基于SSH)、更易管理的方式替代传统FTP,特别适合对安全性有基本要求、但又不想配置复杂专业FTP服务的场景。最后附带的客户端连接示例,让整个方案从服务器到客户端都形成了闭环。

IT 2015-01-11 23:25:06 / 累计浏览 2,520

lftp利器与一次故障分析

作者分享了自己在使用lftp进行FTP目录同步时,从发现神器到“捅了大篓子”的完整经历。文章的核心是介绍lftp这款工具强大的`mirror`命令,它能像rsync一样递归同步整个目录,极大提升了原本繁琐的FTP文件发布效率。 作者通过一个实际的脚本故障,展示了使用中可能遇到的风险。在一次运行中,脚本因连接失败和`cd`命令返回550错误而中断,但脚本并未停止,导致本地开发目录被错误地同步到了线上正式环境,造成了严重事故。 经过排查,问题根因在于:lftp的命令流默认是顺序执行,即便中途失败也会继续向下。作者最终找到了一个简洁的解决方案:在每个lftp命令后使用`&&`操作符链接,确保只有上一个命令成功才执行下一个,从而彻底避免了目录切换失败后的误操作。 这篇文章从实际踩坑出发,生动展示了lftp的便利性及其潜在风险,并用几处符号的改动给出了一个高效的防御性编程技巧,这个经验教训很值得借鉴。

IT 2014-12-30 12:47:01 / 累计浏览 12,720

关于linux内存free的一些事情

这篇讲的是Linux下最常用也最容易被误解的free命令。文章从一个最常见的命令入手,拆解了其输出中每一列的含义,特别是新手容易混淆的“buffers”和“cache”——前者是写缓存,后者是读缓存。 作者指出,判断系统内存是否充足,关键看“-/+ buffers/cache”这一行,而非仅看“free”列。因为可供应用程序使用的内存总量实际上是“free + buffers + cached”的总和。文章还解释了一个经典困惑:为何系统已开始使用Swap,却可能并未“内存不足”?这是因为在内存紧张时,系统会尝试释放旧的缓存,但有时释放不及时,便过渡到了交换区。 此外,文章也演示了如何使用`sysctl`手动释放缓存,并坦诚这通常是“治标不治本”的操作,缓存会在系统运行中再次积累。这对于运维人员日常排查“内存告警”误报、理解系统真实资源状况有直接的指导意义。

IT 2014-12-28 23:51:45 / 累计浏览 3,060

vsftp安装以及本地用户和虚拟用户认证方式配置

这篇讲的是如何搞定VSFTP这个配置起来让人头疼的服务,作者从源码安装开始,一路记录了在本地用户和虚拟用户两种认证模式下的配置要点,并特别总结了几个容易踩到的“坑”。 文章从64位系统编译时库路径错误这个常见问题切入,给出了直接修改脚本的解决方案。在本地用户配置部分,重点解释了新版VSFTP中chroot目录权限冲突的问题,以及如何通过`allow_writeable_chroot=YES`参数巧妙解决。虚拟用户认证则详细介绍了从创建用户列表、生成加密数据库文件到配置PAM模块的全流程。 最实用的是作者分享的排查经验:当遇到认证失败并提示数据库文件无效时,通过对比正常机器生成的db文件,定位到了db4-utils安装或文件格式问题。这些从实际部署中总结出来的细节,对避免重复踩坑很有帮助。

IT 2014-03-20 23:03:09 / 累计浏览 4,120

SSH日常用法小例

这篇讲的是如何将SSH从“会用”提升到“用得顺手”。作者从最基础的命令行登录出发,逐步展示了如何通过配置文件别名、公钥认证和代理转发等一系列技巧,一步步把繁琐的登录过程简化到极致——最终实现“一次配置,处处免密”。 文章特别对比了传统密码登录与公钥认证在便利性上的巨大差异。对于文件传输,作者不仅介绍了最常用的scp命令,并解释了-r和-C参数的作用,还推荐了sftp这个基于SSH的交互式工具,为不同场景提供了解决方案。其中,ssh -A代理转发用于跳板机的思路也很有启发性。 作者用实际例子告诉我们,掌握这些小技巧,能让你在连接和管理多台服务器时,省去大量重复输入密码的时间,大幅提升日常工作效率。对于需要频繁远程操作的开发者和运维人员来说,这是一份非常实用的快速参考。

IT 2014-03-19 22:27:10 / 累计浏览 1,680

DNSv6和DNS64简单配置

这篇讲的是如何在Linux系统上配置IPv6环境下的DNS服务,特别是DNSv6和DNS64功能。作者从上一篇DHCPv6的部署延伸出来,直指DNS作为互联网入口在IPv6时代的重要性。 文章以Bind服务为例,给出了清晰的实操路径。它从最简单的源码安装开始,然后聚焦于核心配置:如何让DNS监听IPv6地址(`listen-on-v6`指令是关键),并配置了测试用的IPv6地址段。配置过程还包括了关闭防火墙、设置SELinux等便于测试的准备工作,同时提醒线上环境需合理配置安全策略。 最终,文章提供了一个精简的主配置文件(`/etc/named.conf`)示例,让读者能快速抓住启用IPv6 DNS服务的配置要点。整体而言,这是一篇步骤明确、重点突出的配置指南,适合需要快速上手IPv6 DNS服务搭建的运维人员参考。