如何保障个人网站的安全
前言 我的服务器2次被攻击,一次是我端口映射到windows的远程桌面,但是居然被人在不停的爆破。第二次是我的后台管理页面,经历了 ACK Flood,让我甚至不能正常的ssh连接上服务器。于是我学习了linux怎么去配置防火墙,如何自动去拉黑IP。但是这个工作太过于繁琐,防火墙的配置非常复杂,线性的匹配各个规则,互相耦合。而且针对每个端口不同的用途,需要不同的防火墙设置。fail2ban的配置也比较复杂,尽管我之前熟悉linux的日志管理,但是每个应用的日志在不同的地方,还是带来了很多的麻烦。 我这才意识到,原来nginx是非常伟大的项目,只通过80和443端口,反向代理其他的本地端口,极大的减少了攻击面。而且速率控制等高级功能,可以在nginx上配置,不用繁琐的去配置各个端口的防火墙,我只要简单配置这两个端口的防火墙即可。Nginx 提供了一种单入口、多服务分发的方案,解决了下面的核心问题: 安全风险:暴露的端口越多,越容易成为攻击目标(如...
科研小总结
计算机科学的科研 会议的等级 国内计算机学会的 CCF 划分是比较权威的,虽然它受到了政治立场的影响,对某些会议的评级可能存在偏差,但总体上还是在合理范围内。CCF将会议分为A、B、C三个等级: A类会议:质量很高,是公认的顶级会议。 B类会议:部分质量很高,但整体略低于A类。 C类会议:质量相对较低,影响力有限。 一般而言,专注于发表A类会议论文,并选择能够发表A类会议的研究课题,是一个很好的科研策略。值得注意的是,国际认可度高的会议和期刊通常都是英文的,其他语言的学术活动在声望和影响力上往往难以相提并论。 除了CCF的分类,还有一个重要的参考是Core Conference Rankings。这个系统汇集了全球多个国家和地区的会议评级标准,为研究人员提供了更全面的参考。它可能包含了如下的标准 SCI(Science Citation Index):主要用于评估期刊影响力。 SCIE(Science Citation Index Expanded):SCI的扩展版本。 ERA(Excellence in Research for...
RSS信息汇聚
阅读软件 我用过 Feedly,它很适合免费的用户,但是我个人不喜欢它的 UI 界面,我更喜欢 inoreader 的界面,因为我需要更大的预览空间。 follow 也不错,布局是类似的,而且是开源的,支持加密货币大赏,我喜欢它的UI还有激励模式。它会激励一些收费的feed出现,刺激RSS生态的发展。但是它目前还在公测中,很多的功能用不了。 https://github.com/RSSNext/follow 我在试用期的时候,被 Inoreader 吸引力,核心在于 它居然和youtube联合,可以用 youtube 的 API 自动就导入了我关注的频道。 AI识别网站生成 feed的能力很强大。我可以关注 bilibili 感兴趣的 UP 主的视频。虽然由于反爬虫机制,可能会爬取失败,但是多尝试几次,一般都能成功。 Inoreader和其他的 RSS 一样,也有移动和网页客户端,网页有插件能很方便的收藏阅读和加入feed。我购买一年,一年大概432人民币,我还能接受。 订阅渠道 RSSHub: https://docs.rsshub.app/zh/...
安全加密实践-GPG
GPG 是一款强大的开源加密工具,基于公钥密码学原理,为电子通信提供隐私保护和数据验证。它广泛应用于确保信息安全和身份认证。 安装指南 Linux 系统 Debian/Ubuntu: 12sudo apt updatesudo apt install gnupg CentOS/RHEL: 1sudo yum install gnupg Fedora: 1sudo dnf install gnupg Arch Linux: 1sudo pacman -S gnupg macOS 使用 Homebrew 安装: 1brew install gnupg Windows 从 Gpg4win 官方网站 下载安装包 2. 运行安装程序,按提示完成安装 3. 安装后,在命令提示符或 PowerShell 中验证 FreeBSD 通过 pkg 包管理器安装: 1pkg install gnupg 验证安装 在任何平台上,运行以下命令确认安装成功: 1gpg...
传输和备份实践
rsync rsync 是一个强大的文件同步和传输工具,适用于类 Unix 系统。Windows 用户可以通过 WSL(Windows Subsystem for Linux)来使用 rsync。以下是详细的安装和使用方法: Ubuntu/Debian: 12sudo apt updatesudo apt install rsync CentOS/Fedora: 1sudo yum install rsync macOS(使用 Homebrew): 1brew install rsync 注意,两台机器都要安装好。 使用方法 1rsync [选项] 源目录/ 目标目录 -a:归档模式,保留所有文件属性 -v:详细输出 -z:压缩传输 -P:显示进度并允许断点续传 –delete:删除目标目录中源目录没有的文件 -h:以人类可读的格式显示文件大小 -e:指定要使用的远程 shell,通常用于指定 SSH 连接参数 本地同步: 1rsync -avzP /path/to/source/...
macbook体验
为什么我喜欢 MacBook 最近买了一台 MacBook,使用下来感觉很不错。MacBook 铝制一体化机身,既美观又坚固,硬件质量很可以。最主要是非常省心,合上盖子即可快速休眠,打开盖子能立即恢复工作状态,不会出现无法休眠或休眠后无法唤醒的问题,提供流畅、稳定的使用体验。 MacBook 的电池续航能力一直是业界领先,屏幕素质好,高分辨率和准确的色彩,还有应用的UI更加美观。其次是 macOS 基于 Unix,基本能通过命令行管理开发环境和软件安装,对于熟悉的人来说,会比UI更加便捷。MacBook 在众多开源项目使用很普遍,尤其是视频剪辑和写代码,生态还是相当完善的。 我最近购买了一台 MacBook Pro 14 英寸,配备 M4 Pro 处理器、48GB 内存和 512GB 存储,还买了三年的 AC+。选择这么大的内存是为了确保长期使用(3 年以上)时系统仍能流畅运行。考虑到未来软件可能会更加耗费内存,24GB 可能在几年后显得不够用。我之前 32GB 的MBP一般占用在27GB左右。我主要用于编程和文字处理,不会存储大量视频素材或游戏,因此 512GB...
GitHub 协作开发指南
开源项目参与流程 在开源项目或团队协作开发中,使用 GitHub 是一个常见的实践。以下是一套从 Fork 项目到提交 Pull Request(PR)的完整流程,帮助你高效管理代码并与团队或社区协作。 1. Fork 项目仓库 进入项目的 GitHub 页面,点击右上角的 Fork 按钮,将该项目仓库复制到自己的 GitHub 账户下。这个 Fork 的副本是你对项目的个人副本,你可以在上面进行改动而不会影响原项目。 2. Clone 项目到本地 在你的 GitHub 账户中找到刚刚 Fork 的仓库,复制仓库的链接。在本地执行以下命令将仓库克隆到你的电脑: 1git clone <your-forked-repo-url> 3. 添加上游仓库 (Upstream) 当你 Fork 了一个仓库后,你的代码会与原项目(官方项目)脱离直接联系。为了能够同步原项目的最新更改,你需要将原项目添加为“上游仓库”。进入克隆的项目文件夹,运行以下命令: 1git remote add upstream <original-repo-url> 然后验证 git...
(三)Python面向对象设计模式
类和对象 一切都是对象 在 Python 中,“一切皆对象”是一个核心理念。简单来说,Python 中的所有东西都是对象,无论是数值、字符串、函数、类,甚至是模块和代码本身。Python 对象有三个特征:身份、类型和值。 身份:对象在内存中的地址,可以通过 id() 函数查看,例如 id(obj)。 类型:对象的类别,可以通过 type() 函数查看。例如,type(5) 返回 <class 'int'>。 值:对象的实际内容或数据,直接调用变量名即可查看。 1234i = 2print(id(i)) # 输出 i 的存储地址print(type(i)) # 输出 <class 'int'>print(i) # 输出变量 i...
(二)包的开发
Python 包的开发是一项重要的技能,可以帮助你组织代码、实现代码复用,并且将功能模块分发给其他开发者使用。 包和模块是什么 在 Python 中,一个包(Package)就是一个包含多个模块的目录,其中通过 __init__.py 文件来表明它是一个包。包允许你将代码逻辑分解为多个文件,并且通过模块的方式进行导入和复用。 模块:一个 Python 文件(*.py 文件)就是一个模块。模块可以包含函数、类和变量。 包:包是包含多个模块的文件夹。包使得模块之间可以被组织起来,以便更好的管理。 目录结构示例: 1234my_package/ ├── __init__.py # 包初始化文件 ├── module_a.py # 模块 A ├── module_b.py # 模块 B 在代码中使用包(如果要供外部使用,推荐使用相对路径): 12345# 导入包中的模块from my_package import module_a# 使用模块中的函数module_a.some_function() 一个典型的 python...
docker自动化
了解背景 Docker 是一种轻量级的容器化技术,主要用于应用程序的环境迁移和一致性。你需要知道下面的基本概念: 了解镜像、容器的基本概念:https://yeasy.gitbook.io/docker_practice/basic_concept 数据卷的基本概念:https://yeasy.gitbook.io/docker_practice/data_management/volume 网络方面,端口映射、docker compose 容器互联:https://yeasy.gitbook.io/docker_practice/network/port_mapping OK,上面三个基本概念,你就足够使用 docker 了,然后我们来了解 docker 最实用的地方: 环境迁移,在不同的机器上保持一致性,一次创建或配置,可以在任意地方正常运行。。 直接在 docker 内利用 linux 环境和路径挂载来开发。 隔离依赖、统一开发环境、快速启动。 利用 Linux 容器作为开发环境:在不同平台(Windows、Mac、Linux)上保持一致的开发环境。 通过...