2022年9月27日星期二

R-Bot 项目

R-Bot项目  简单使用

建立窗口:
screen -S arm

恢复窗口:
screen -r arm

Linux一键部署/更新:
wget -O gz_client_bot.tar.gz https://github.com/semicons/java_oci_manage/releases/latest/download/gz_client_bot.tar.gz && tar -zxvf gz_client_bot.tar.gz --exclude=client_config && tar -zxvf gz_client_bot.tar.gz --skip-old-files client_config && chmod +x sh_client_bot.sh && bash sh_client_bot.sh

重启运行:
bash sh_java_oci.sh

启动或重启:
bash sh_client_bot.sh

2022年9月25日星期日

解决Ubuntu无法升级systemd到新版本

系统提示有软件包需要更新,但运行升级命令时提示,无法完成升级

下列软件包的版本将保持不变:

  libnss-systemd libpam-systemd libsystemd0 libudev1 systemd systemd-sysv systemd-timesyncd udev


解决办法:

1-添加源:

sudo add-apt-repository ppa:ubuntu-security-proposed/ppa

2-获取更新:

sudo apt update

3-安装systemd相关软件包:

sudo apt install libnss-systemd libpam-systemd libsystemd0 libudev1 systemd systemd-sysv udev


相关命令延申

删除 apt-key:

sudo apt-key list

会出现这样:

/etc/apt/trusted.gpg

--------------------

pub   rsa2048 2011-08-19 [SC] [有效至:2024-06-14]

      573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62

uid           [ 未知 ] nginx signing key <signing-key@nginx.com>


正如你在上面的输出中所看到的,那串长的(40 个字符)十六进制值是仓库密钥。如果你希望 APT 包管理器停止信任该密钥,只需使用以下命令将其删除:

删除想删除的

sudo apt-key del "573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62"

或者,仅指定最后 8 个字符:

sudo apt-key del 73C62A1B

完成!仓库密钥已被删除。运行以下命令更新仓库列表:

sudo apt update


添加PPA源的命令为:

sudo add-apt-repository ppa:user/ppa-name

示例:sudo add-apt-repository ppa:ubuntu-security-proposed/ppa

添加完成!运行以下命令更新仓库列表:

 sudo apt-get update


删除命令格式则为:

sudo add-apt-repository -r ppa:user/ppa-name

示例:sudo add-apt-repository -r ppa:ubuntu-security-proposed/ppa

删除完成!运行以下命令更新仓库列表:

 sudo apt-get update

Debian或Ubuntu系统如何使用 fail2ban 防止恶意破解

fail2ban 可以有效的防止 ssh 暴力密码破解攻击. 对于公网中开放ssh端口的服务器安全至关重要.

以下教程为最小可用方式, 也是最实用的方式, 即在使用 ssh 账户和密码登录的情况下, 防止ssh暴力破解.

Ubuntu/Debian 安装:

首先更新和升级服务器,

sudo apt-get update
sudo apt-get upgrade

安装fail2ban:

sudo apt install -y fail2ban

使用以下命令启动并启用该服务:

sudo systemctl start fail2ban                # 启动fail2ban
sudo systemctl status fail2ban              # 查看fail2ban 是否正常启动 
sudo systemctl enable fail2ban             # 允许fail2ban 开机启动
sudo systemctl enable fail2ban             # 允许fail2ban 开机启动
sudo service fail2ban stop                    # fail2ban 停止
sudo service fail2ban restart                 # fail2ban 重启

配置jail.local 文件:

创建一个新配置文件jail.local,它将覆盖jail.conf中的任何同类设置.
同时将监视/var/log/auth.log,

使用以下命令创建配置文件, 

sudo vim /etc/fail2ban/jail.local 

在此新文件中,粘贴以下内容:

[sshd]               
enabled = true # 启用规则
port = 22 # 将SSH端口设置为22
filter = sshd # 使用fail2ban sshd过滤器,
logpath = /var/log/auth.log # 记录 log 在这个文件里
maxretry = 10 # 将最大重试次数设置为10, 超过就 ban 它的 ip

重新启动fail2ban:

sudo systemctl restart fail2ban

通过命令 sudo systemctl status fail2ban 查看服务运行状态: 如下反馈表示正常运行

root@ubuntu:~# sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-25 09:03:35 UTC; 10s ago
Docs: man:fail2ban(1)
Main PID: 8733 (fail2ban-server)
Tasks: 3 (limit: 9429)
Memory: 10.2M
CPU: 80ms
CGroup: /system.slice/fail2ban.service
└─8733 /usr/bin/python3 /usr/bin/fail2ban-server -xf start


使用命令 sudo vim /etc/fail2ban/jail.local 修改配置文件并检查是否设置正确.

全部设置完毕
如果有机器试图通过SSH登录您的Ubuntu服务器,并且失败了三次,那么将通过iptables阻止其IP地址阻止它们进入。

取消禁止的IP:

可以使用以下命令取消已被自动禁止的IP地址:

sudo fail2ban-client set sshd unbanip IP_ADDRESS    
# IP_ADDRESS是已被禁止的IP地址

更多:

要了解更多信息, 可输入以下命令

man fail2ban
# 提供了fail2ban可以执行的操作的完整概述

2022年9月22日星期四

设置AutoCAD程序作为dwg文件的默认打开程序

 

  选中dwg文件,右键>打开方式>选择 C:\Program Files\Common Files\Autodesk Shared\AcShellEx\AcLauncher.exe 这个程序,并用该程序作为默认打开方式。


如果dwg文件选择AutoCAD Application打开的话,那么每次打开一个dwg都会打开一个drawing 1 的文件,而且,可能打开dwg文件后只有drawing1的形文件,AutoCAD Application是AutoCAD的主程序acad.exe的显示名称,画图时用到的就是它,而AutoCAD DWG Launcher是AutoCAD安装包带的一个插件AcLauncher.exe的显示名称,主要是提供预览效果,用该程序作为默认打开方式打开程序时,显示的即为打开的DWG图形文件。





2022年9月21日星期三

Chromium 内核浏览器开启多线程下载

多线程下载可以有效提高下载速度(前提是服务器没有限制链接数),原理很简单,就是把一个文件分割为几份,然后同时下载,这样下载速度也因此可以提高。

开启方法:
Chrome 浏览器,地址栏输入并回车:chrome://flags/#enable-parallel-downloading
Edge 新版浏览器,地址栏输入并回车:edge://flags/#enable-parallel-downloading
将默认的 Default 改为 Enabled,然后重启浏览器即可开启。
找到parallel-downloading这个选项,选择Enabled允许,然后重启浏览器。

2022年9月18日星期日

使用cloudflare加速二级域名(Cloudflare Saas 接入CNAME)

使用cloudflare加速二级域名(Cloudflare Saas 接入CNAME)

一、功能简介

CloudFlare中一个完全接入的域名即为一个zone,点进去包括套餐、安全等等都是针对这一主域名配置的。官方SaaS功能针对的是你服务的客户,开放这项功能允许使用他们自己的域名直接附加在你的zone里,享受你zone下包含的安全、加速等功能。  官方公告:https://blog.cloudflare.com/waf-for-saas/

说起来可能不是很直白,这里举个应用场景的例子:

应用场景1

example.com一级域名无法长期通过NS接入了CF(NS服务器可以临时修改为CF服务器地址将域名接入CF,接入后需要再次改回原服务地址,如使用使cloudflare作为DDNS服务存在不稳定必须使用国内的DDNS服务商的情况),但二级域名b.example.com需要接入CF;此时可以通过SaaS功能实现1.b.example.com/2.c.example.com等直接附加在example.com这个临时添加的域名zone下,二级域名通过CNAME指向CF的节点。简而言之,可以通过这项功能,实现二级域名的CNAME接入cloudflare服务

二、配置接入


1-订阅CloudFlare for SaaS

打开一个域名,选择【SSL/TLS】下的【自定义主机名】,点击【启用CloudFlare for SaaS】后根据指示绑定外币卡或者PayPal,订阅CloudFlare for SaaS功能。
Cloudflare更改了Cloudflare for SaaS的收费策略,每个账户可以有100个域名免费额度
对于普通用户来说够用了。

激活页面中文翻译比较滞后,从英文的可以看到免费额度已经进行更新,可以放心使用。
开通 Cloudflare for SaaS 服务,需要CF账户绑定信用卡。如果没有信用卡或担心风险的话,可以通过微信易贝卡来绑定。
2-接入前准备
      以NS方式接入Cloudflare的域名A(例如example.com),随便的域名都行,仅用作设置回退源服务器,不对外显示,一个一级域名作为一个
zone,后续操作都在该zone下; 
      在仅有一个域名的情况域名下接入Cloudflare后便可以更改NS服务器地址回原有的地址(此时域名解析依然由原有的服务提供商解析)。

3-开始接入

进入域名下的面板,新建一个A记录解析作为回退源,命名为b,即二级域名b.example.com,IP地址要填真正想访问的地址(想接入的地址),CDN 状态(小黄云)打开 。

4-设置源站

选择承载的域名 zone 点进去,依然是【SSL/TLS】下的【自定义主机名】,首先要设置附加上域名的源站。在这之前要在承载的域名zone中设置一个子域名作为源站的来源,比如b.example.com

面板进入SSL/TLS——自定义主机名,在源服务器框填入我们刚才新加的A记录域名b.example.com ,点击【增加回退源】,会显示:回退源状态(初始化),刷新页面变成:回退源状态(有效)。

SaaS这里的源站叫回退源,它会同步这个子域名设置的源站作为后续在此接入域名的源站,非NS接入的源站地址为 b.example.com加cdn.cloudflare.net 组合,
即b.example.com.cdn.cloudflare.net,二级域名需要CNAME指向该地址或该地址解析的IP地址。

5-添加自定义主机名

点击【添加自定义主机名】,输入你要添加的未在CF接入的子域名,建议直接选择TXT验证。

6-验证域名所有权

添加完成后,需要前往example.com的域名服务商设置,添加上2条TXT类型的解析,一条是证书验证一条是主机名验证。,解析生效后10分钟左右即可验证通过,到此这个SaaS域名就正确的添加到了你的zone中并接入了CF。

7-设置SaaS域名解析

添加进去的SaaS域名,CF并不会给你提供明确的CNAME供指向。到域名解析服务商域名设置中CNAME解析b.example.com指向到你刚刚设置的源站域名对应的地址,比如b.example.com.cdn.cloudflare.net,其他的配置比如分线路解析、自选IP就可以按照自己的喜好去设置了。

添加其他二级域名到域名下的DNS面板进行添加记录,需要注意的是二级域名仅支持添加指向到A记录或AAAA记录,无法使用CNAME解析。

其他的二级域名解析服务商处可以CNAME解析到b.example.com地址简化设置,由b.example.com再次提供解析地址。

三、应用示例

每个人的需求场景不同,我简单说一下个人的用法。

example.com的域名设置里,使用A记录分别解析2条线路给b.example.com,
一条境外,一条境内,
境外线路对应的值就是我们CF的回退源地址 b.example.com
亦可直接使用A记录解析b.example.com.cdn.cloudflare.net对应的IPV4地址以及IPV6地址,
境内线路对应的值就是在国内解析b.example.com.cdn.cloudflare.net时的IP地址地址,
境外线路对应的值就是境外解析b.example.com.cdn.cloudflare.net时的IP地址地址,
这样就可以互不干扰的提供全球服务了,简单分线路的功能一般域名服务商都有免费提供。
该方法可以优选服务IP。



Cloudflare HTTP流量可以使用的回源端口如下:
80、8080、8880、2052、2082、2086、2095

Cloudflare HTTPS流量可以使用的回源端口如下:
443、2053、2083、2087、2096、8443

2022年9月5日星期一

Linux中iptables 防火墙设置规则永久保存

 永久保存 iptables 防火墙规则

您需要安装iptables-persistent将在重新启动时自动恢复 iptables 的软件包。

sudo apt install iptables-persistent

如果您选择,它将分别为 IPv4 和 IPv6创建现有的 iptables 规则并将其保存到/etc/iptables/rules.v4/etc/iptables/rules.v6保存。

无论何时更改iptables的规则,都应该使用iptables-save命令将其保存到文件中,以便在重新启动后使更改保持不变。

对于 IPv4 iptables(使用最广泛的场景):

sudo iptables-save -f /etc/iptables/rules.v4

对于 IPv6 iptables:

sudo iptables-save -f /etc/iptables/rules.v6

请注意,每次对系统上的 iptables 进行更改时,都需要运行上述两行命令。它基本上将当前活动的 iptables 规则复制到指定的文件中。

恢复到您上次保存它们时的状态:

sudo netfilter-persistent reload

使用cat 命令显示保存的文件 :

sudo cat /etc/iptables/rules.v4
sudo cat /etc/iptables/rules.v6

此外,要删除持久性 iptables 规则,您只需打开相应的/etc/iptables/rules.v*文件并手动删除包含所有不需要的规则的行。

示例:放行8888端口

iptables -I INPUT -p 协议 -m 协议 --dport 端口 -j ACCEPT   入站规则
iptables -I INPUT -p 协议 -m 协议 --dport 端口 -j ACCEPT   出站规则

ipv4:
iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
iptables -I OUTPUT -p tcp --sport 8888 -j ACCEPT
ipv6:
ip6tables -I INPUT -p tcp --dport 8888 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 8888 -j ACCEPT

针对这2条命令进行一些讲解吧 
-A 参数就看成是添加一条 INPUT 的规则 
-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS 
到时我们要配置DNS用到53端口 大家就会发现使用udp协议的 
而 –dport 就是目标端口 当数据从外部进入服务器为目标端口 
反之 数据从服务器出去 则为数据源端口 使用 –sport 
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收

选 项 功 能 
-A 添加防火墙规则 
-D 删除防火墙规则 
-I 插入防火墙规则 
-F 清空防火墙规则 
-L 列出添加防火墙规则 
-R 替换防火墙规则 
-Z 清空防火墙数据表统计信息 
-P 设置链默认规则

开放所有端口

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

关闭所有端口

关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
下面是命令实现:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
再用命令 iptables -L -n 查看 是否设置好, 好看到全部DROP了。

临时关闭iptables,重启后恢复开启:

service iptables stop
service ip6tables stop

删除iptables:

apt-get purge netfilter-persistent

开启为:

apt-get install netfilter-persistent

强制删除并重启

rm -rf /etc/iptables && reboot

查看规则是否生效,命令:

IPV4:
iptables -L
IPV6:
ip6tables -L

删除规则

首先我们要知道 这条规则的编号,每条规则都有一个编号。
通过 iptables -L -n --line-number 可以显示规则和相对应的编号。

num target prot opt source destination
1 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
2 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
3 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
多了 num 这一列, 这样我们就可以看到刚才的规则对应的是编号2,那么我们就可以进行删除了。

iptables -D INPUT 2

上述示例为删除INPUT链编号为2的规则。

iptables -D OUTPUT 2

上述示例为删除OUTPUT链编号为2的规则。

再 iptables -L -n 查看一下,发现规则已经被清除了。

开放指定端口范围:

一条命令就可以了
入站:
iptables -I INPUT -p tcp --dport 500:800 -j ACCEPT
ip6tables -I INPUT -p tcp --dport 500:800 -j ACCEPT
出站:
iptables -I OUTPUT -p tcp --sport 500:800 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 500:800 -j ACCEPT
一、 500:800 表示500到800之间的所有端口
二、 :800 表示800及以下所有端口
三、 500: 表示700以及以上所有端口

连续设置示例:开放500-800端口出入站并永久生效 (全部复制仅执行一次)
iptables -I INPUT -p tcp --dport 500:800 -j ACCEPT && 
ip6tables -I INPUT -p tcp --dport 500:800 -j ACCEPT &&
iptables -I OUTPUT -p tcp --sport 500:800 -j ACCEPT &&
ip6tables -I OUTPUT -p tcp --sport 500:800 -j ACCEPT &&
sudo iptables-save -f /etc/iptables/rules.v4 &&
sudo iptables-save -f /etc/iptables/rules.v6

禁ipv4&ipv6 ping

sudo iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
sudo ip6tables -I INPUT -p icmpv6 --icmpv6-type echo-request -j DROP

解除ipv4&ipv6 ping

sudo iptables -D INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
sudo ip6tables -D INPUT -p icmpv6 --icmpv6-type echo-request -j DROP

通过命令iptables -L查看已有规则

注意,需要注释掉( # )此下规则,上述配置才有效。
这条策略的配置如下:

-A INPUT -p icmp -j ACCEPT

配置文件路径:
(/etc/iptables/rules.v4)
(/etc/iptables/rules.v6)