Linux使用safe-rm防止误删系统文件

前言 safe-rm 是一款用来替代不安全 rm 的开源软件,可以在 /etc/safe-rm.conf 文件中配置保护名单,定义哪些文件不能被 rm 删除,可用于防止执行 rm -rf 命令导致文件被误删的发生。 安装 safe-rm 工具 0.x版本的是通过shell脚本来实现的,而1.x版本则通过rust来实现的,需要现编译。 0.12版本下载安装:

创建 safe-rm 配置文件,添加保护名单

测试 save-rm 是否生效

  1.1.0版本下载安装: 1.x版本解决了软链接文件的问题,保护目录下的软链接文件也不会被删除。 官网地址是https://launchpad.net/safe-rm/trunk/1.1.0

 

centos7通过snap安装certbot免费获取并自动续期https证书

之前一直使用certbot-auto来获取https证书,后来更换了新域名, 重新生成证书时,报:“Your system is not supported by certbot-auto anymore.”, 查了一下是因为certbot-auto团队没有精力为所有操作系统进行维护,所以包括centos7在内的许多系统已不被支持,目前certbot不推荐在centos7上使用仓库安装,官方建议使用snap进行certbot的安装和更新。官方原文如下: While the Certbot team tries to keep the Certbot packages offered by various operating systems working in the most basic sense, due to distribution policies and/or the limited resources of distribution maintainers, Certbot OS packages often have problems that other Read more…

v2ray切换到xray

我一直用的是老的v2-ui面板,也不怎么经常用,好像去年开发者就开始要弃坑v2-ui,转而开发x-ui面板。前者用python开发,后者使用go开发。不想谈孰优孰劣,主要是现在v2-ui已经停止开发了,然后x-ui又加了些新功能(流量限制,过期日期限制等)。我觉得这个面板更适合小范围知根知底的朋友分享,大范围贩卖,小心风险。我本可以把v2-ui完全卸载,重新安装x-ui,考虑到又要折腾证书,还是算了吧。就直接按照官方给出的方法,先迁移看看,然后设置下登录用户。当然了如果是拿一台全新的vps,直接安装就好了。如下是官方文档: https://xtls.github.io/ https://github.com/vaxilu/x-ui   直接执行一键安装/升级脚本就可以了:

然后执行x-ui v2-ui,把v2-ui数据库中的节点信息迁移到x-ui中来。 之后停止v2-ui, 重启x-ui,由于v2-ui用的是v2ray程序,x-ui用的是xray,区别如下: Xray与V2Ray完全类同,Xray 是 Project X 项目的核心模块。因为Xray和XTLS黑科技的作者rprx曾经是V2fly社区的重要成员,所以Xray直接Fork全部V2Ray的功能,然后进行性能优化,并增加了新功能,使Xray在功能上成为了V2Ray的超集,且完全兼容V2Ray。 简而言之,Xray是V2Ray的项目分支,Xray是V2Ray的超集,就跟Trojan-Go和Trojan-GFW的关系类似,而且Xray性能更好、速度更快,更新迭代也更频繁。由于自V2ray-core 4.33.0 版本起,删除了XTLS黑科技,但仍然支持VLESS,所以是否原生支持XTLS是Xray和V2Ray最大的区别之一。 xray的配置文件路径在/usr/local/x-ui/bin/config.json,启动后, 经过测试怎么都科学不上了网,将xray切换到1.8.4版本也不行,怀疑是客户端客户较旧, 尝试下载最新的客户端: https://github.com/2dust/v2rayN/releases 结果还是不行,将xray日志打开, 在面板中做如下配置:   日志的报错是:rejected proxy/vmess/encoding: invalid user > user do not exist 参考https://github.com/v2ray/v2ray-core/issues/2966后, 得出原因是: 需要将额外ID(AlterID)设置为0。因为自2022年起v2ray服务端将强制启用aead认证机制. 经过修改,解决问题 客户端可以用V2rayN 或 Clash,具体对比:https://jiasupanda.com/v2rayn-clash V2rayN 下载地址是:https://github.com/2dust/v2rayN/releases/download/6.29/zz_v2rayN-With-Core-SelfContained.7z

koolshare梅林路由器提示含非法关键词,无法安装插件

错误提示:  检测到离线安装包:含非法关键词!!! 根据法律规定,koolshare软件中心将不会安装此插件!!! 解决方案: 1. 在「系统管理」- 「系统设置」里面打开「Allow SSH password login」。 2. 在 a free SSH and telnet client for Windows 下载 Putty 并安装 3. 在 Putty 中使用路由器的 IP 地址来连接 4. 输入登录路由器的账号、密码 5. 输入 

6. 重新离线安装 违禁软件

给节点套上CF的warp,彻底解决access denied error code 1020问题

前言 最近的网络最热门的,应该当ChatGPT所属了,在IT开发者界更是:有担忧的,有兴奋的,有求知的,一时兴起万层浪,但是,也有很多小白连最基本的大门都没办法进来,因为流量太大了,已远远超过了ChatGPT的服务器所承受能力,这个访问量已大大超出了你的想像,所以请了一台流量高防大将:CloudFlare,先是真人human验证,再是IP验证,很多新人都对Access deniedAccess denied Error code 1020深有体会吧,今天就聊一下如何彻底地解决这个问题。 思路 由于CF验证IP,咱们大陆的IP会access denied拒绝,很多海外节点也被拒绝了,因为咱们国人多,热度高,流量大,所以第一排除的就是咱们中国及使用代理最多的中国IP。 思路就是套用CloudFlare官方自己的Warp,它对自己人还是友好放行的原理。思路跟解锁Netfilx原生IP一样。   条件 自己能配置的节点 套的IP未被CF自己封 Warp 什么是Warp呢,请查看官方介绍吧 官方地址:https://1.1.1.1 用一句话介绍就是,私人的私人代理,如果你也想使用,或者升级到Warp+,推荐连接,我可能获得1G流量 安装 安装前

直接显示经典的error code:1020错误,说明我能服务器本身就无法访问ChatGPT,所以你当节点,那也肯定是跑不了1020的了 web

我的证实是无法使用的了都是1020错误代码。估计是封IP段 安装中 第一,先给服务上个快照,折腾坏了也能恢复折腾前的状态 第二,安装warp 官网教程:https://pkg.cloudflareclient.com/install 或者通过warp一键配置脚本(项目地址:https://github.com/P3TERX/warp.sh) bash <(curl -fsSL git.io/warp.sh) d 配置xray 登录x-ui控制后台——面板设置——xray相关设置——xray配置模板——复制出来,备份好 在高亮文体编辑器里修改(可选) 1,在”outbounds”的代码块添加出站规则 2,在”routing”的代码块添加路由规则,使用域名chat.openai.com及ip138.com(为了测试是否生效)的规则 我的xray配置文件

    总结 方法是从解锁Netflix得到的启示,套了Warp就能解锁CloudFlare对你的节点的封锁了,而且现在CloudFlare拒绝访问的IP限制还不是很严格的,从而这个方法可以拯救你节点。 总结思路:套用warp——设置域名分流规则

squid代理上网

squid代理及常见的代理上网 本文中涉及两台服务器,这两台服务器均有内网ip地址,分别为

  其中A具有公网访问能力,B和C不具备公网访问能力。 1、安装squid服务

  1、默认安装的squid服务只需要配置一点,默认是拒绝所有服务器连接,只需要修改成允许所有服务器连接即可

  2、启动服务并设置成开机启动

  3、配置受信 这样配置之后,squid代理服务器就可以使用了,默认的端口是3128,但是为了安全,只让受信的服务器连接,通常还需要对squid配置账号验证授权使用,通过httpd-tools生成密码文件,安装

  生成密码文件

  测试密码文件

  配置squid使用验证,修改配置文件

  初始化服务并重新启动

  如果开启了防火墙,还要在防火墙中允许端口3128的策略,以CentOS7为例

  2、配置代理 2.1、配置全局代理 修改环境变量文件并使其生效

  2.2、配置wget代理 新增wget的环境变量文件

  2.3、配置yum代理 编辑yum的配置文件,新增下面的内容

  2.4、配置docker代理 docker配置代理是为了保证docker能从外网pull镜像,在安装了docker之后,在docker配置文件下新增配置并重启docker

  Read more…

CentOS 7 上使用Certbot申请通配符证书

在CentOS7上安装Certbot有三种方式: 使用Certbot官方提供的对应平台的RPM包安装 使用Certbot官方的提供的certbot-auto安装 使用pip安装Certbot,因为Certbot是Python程序 本文使用虚拟环境,使用pip安装Certbot 创建虚拟环境:可参考https://meaninglive.com/2020/06/15/%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83-ansible-python3-and-virtualenvs-on-centos-and-rhel/ 创建所需环境:

用如下命令申请证书 注意替换成自己的域名;执行该命令时不依赖nginx:

介绍下相关参数: certonly,表示安装模式,Certbot 有安装模式和验证模式两种类型的插件。 –manual 表示手动安装插件,Certbot 有很多插件,不同的插件都可以申请证书,用户可以根据需要自行选择 -d 为那些主机申请证书,如果是通配符,输入 *.devapi.haoshiqi.net(可以替换为你自己的域名) –preferred-challenges dns,使用 DNS 方式校验域名所有权 –server,Let’s Encrypt ACME v2 版本使用的服务器不同于 v1 版本,需要显示指定。 输入应急邮箱,证书到期前会有邮件提示 如果想跳过输入邮箱的步骤,可在申请命令后面加上:

之后出现如下提示:要公开记录申请该证书的IP地址,是否同意?不同意就无法继续。 同意之后,出现如下提示,第一个“Press Enter to Continue”处直接回车,第二个“Press Enter to Continue”不要按回车:

为DNS解析增加TXT记录 进入自己域名的DNS记录管理页面,增加两条TXT记录,多数情况下,仅需在域名(Name)处填入_acme-challenge,在内容(Target)处填入上一步Certbot生成的内容即可(记得填写两个,多个文本记录之间以换行符(Enter键)分隔),不同DNS提供商处可能会略有不同,根据实际情况修改, 如果是www.name.com的域名的话, 就分别写两条相同主机名的记录, 填写不同的记录 稍等片刻,等TXT记录解析生效。查看是否生效的命令和生效后的查询结果如下: host -t Read more…

自签名证书详解

总结下来,其实生成证书就两句话:

  ———————————————- 有一个shell脚本来自动生成证书:

另一个脚本:

  参考:https://www.fullstackmemo.com/2018/05/10/openssl-gen-https-self-signed-cer/ nginx配置:

  —————证书知识补充——————————- 自签名证书 + Nginx 实现 HTTP 升级 HTTPS 很多内网平台在开发时候并没有考虑 HTTPS,想要从 HTTP 升级到 HTTPS 一般有两种方法:一种是更新所有相关前后端代码;另一种是基本不改变代码,用 Nginx 把 HTTPS 反向代理到 HTTP 接口。第一种方法工作量有点大,本文介绍下第二种方法,当然首先要做的是生成自签名证书。 准备工作 内网 环境受影响的是 软件安装升级 和 证书申请,所以需要 制作本地 yum 和 自签名证书,自签名证书稍后讲,制作本地 yum 库可参考链接内容, HTTPS 和 CA 基础知识 查看这里 。 制作本地 yum 库,为了自动处理软件之间的依赖关系,一般都会用 yum 等软件包管理器来安装更新软件,默认 yum 是从互联网获取各种软件包的,内网环境就需要制作本地 yum Read more…

内网一键生成 LetsEncrypt HTTPS证书

HTTPS当前越来越重要,所以经常会有公司去花钱买,我们也一样,有时候确实需要https,但是收费的用不起,所以打起了免费的主义。 LetsEncrypt是不错的选择,但是我们如果在内网该如何克服呢,没错,使用ngrok。 一键生成。 ngrok是在内网用户可以获得公网访问的一个非常棒的软件。 找一台有公网地址的机器 我们找到了假设是公网A 找一个域名,用于传输流量 我们找到了,假设是ops.ac.cn,注意,ac.cn是域名哦,虽然是二级域名,但是ac.cn是中科院相关的域名机构。 而且我们要设置 泛域名 A记录到 公网A 搭建ngrok 如下脚本一气呵成, 胆儿大的可以直接试试。最终的目录是在/usr/local/ngrok下面

  ngrok服务启动

客户端连接

  ngrok出现”bad certificate”的原因: 1. 看准了, server_address居然是直接使用的主域名, 2. 编译出来的ngrok程序一定是使用和server相同的证书产生的。如果server编译出来的在本地运行的时候出现“segment fault“,那么可以尝试着将/usr/local/ngrok放到本地,然后运行编译客户端的几行代码重新编译即可。 3. 客户端启动的配置文件中,trust_host_root_certs选项,除非你的证书是第三方的,否则就乖乖的使用false吧 ssl脚本执行目录:/root/ssl/ www目录: /root/www/challenges , python -m SimpleHTTPServer 80 sendemail放置地方:/root/ssl/sendemail HTTP服务器准备 如果胆儿大,直接执行如下的内容即可

生成的时候会要求输入一些东西,比如国家,省会,城市,公司名称,common name最重要,这个就是域名哦。 生成完成后,会自动打包发送邮件。 转自: https://blog.csdn.net/vbaspdelphi/article/details/53185943 可参考:https://learnku.com/articles/19999

自动检测nginx日志,并自动更新iptables

inotify-tools 是一个用C语言库,一个为Linux提供简单inotify接口的命令行程序。这些程序可以用于监视文件系统事件并执行相应操作。这些程序是用C语言来写的,除了需要Linux内核的inotify支持外,没有其他的依赖。inotify-tools 3.14是目前最新版本,其于2010年3月7日发布。 那么什么inotify又是什么? inotify,它是Linux在内核 2.6.13 (June 18, 2005)版本中引入的一个新功能,它为用户态监视文件系统的变化提供了强大的支持,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件,例如打开、关闭、移动/重命名、删除、创建或者改变属性。 下面脚本目的是: 实时检测nginx访问日志, 提取remote_addr, 并对比iptables配置文件,  如果没有的话就自动更新iptables 安装inotify: yum install inotify-tools # 2019-08-17更新: 坑点1: 可以自动修复iptables报错, 方法是查出报错行, 然后递归删除, 之所以要递归删除, 是因为journalctl报错只能看到执行到哪一行报的, 不能显示全部报错行, 只能是依次reload iptables才能找到所有报错行. 坑点2:  之前用journalctl -n 50 -u iptables 去查找最后50行日志, 导致iptables被误删了好多规则, 观察报错, 一般是最后8行是最近一次reload的日志, 所以改成了journalctl -n 7 -u iptables. monitor.sh:

启动:

加入开机启动:

Read more…