Rootop 服务器运维与web架构

2024-04-29
发表者 Venus
恢复”网络位置”通过windows资源管理器打开已关闭评论

恢复”网络位置”通过windows资源管理器打开

之前使用 “添加一个网络位置” 功能添加了ftp的访问,便于在 此电脑 中快速打开。
突然出现问题,现象是双击打开时要选择通过什么方式打开,比如浏览器。而不是在windows资源管理器中访问了。

参考:https://answers.microsoft.com/en-us/windows/forum/all/this-ftp-site-cannot-be-viewed-in-windows-explorer/e699d41e-98ae-48c1-9231-d570d46c0f38

将下面注册表配置保存为ftp.reg,然后双击导入即可。

Windows Registry Editor Version 5.00 
 
[HKEY_CLASSES_ROOT\ftp] 
"ShellFolder"="{63da6ec0-2e98-11cf-8d82-444553540000}" 
"Source Filter"="{E436EBB6-524F-11CE-9F53-0020AF0BA770}" 
"URL Protocol"="" 
@="URL:File Transfer Protocol" 
"AppUserModelID"="Microsoft.InternetExplorer.Default" 
"EditFlags"=dword:00200002 
"FriendlyTypeName"="@C:\\Windows\\System32\\ieframe.dll,-905" 
 
[HKEY_CLASSES_ROOT\ftp\DefaultIcon] 
@="C:\\Windows\\System32\\url.dll,0" 
 
[HKEY_CLASSES_ROOT\ftp\shell] 
 
[HKEY_CLASSES_ROOT\ftp\shell\open] 
"CommandId"="IE.Protocol" 
 
[HKEY_CLASSES_ROOT\ftp\shell\open\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
  00,5c,00,65,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,\ 
  65,00,00,00 
"DelegateExecute"="{B9F8535E-BF74-41C2-A6A6-7124442450DC}" 

2024-04-29
发表者 Venus
curl访问提示SSL certificate problem: unable to get local issuer certificate已关闭评论

curl访问提示SSL certificate problem: unable to get local issuer certificate

当在php代码中请求指定接口时,提示错误

SSL certificate problem: unable to get local issuer certificate, on POST https://api.x.com/xx/xx

在系统中通过curl命令访问也是这个错误。

开始以为是本地的ca-certificates包过旧,可信根证书列表失效导致,但是更新以后还是如此。
排查发现这个问题是由于对方的ssl证书中没有包含中间证书导致的,本地系统只包含根,不带中间证书,导致验证失败。

浏览器验证ssl证书的可信性通常由 根证书-中间证书-服务器证书 组成

在证书链中,通常分为三级结构,根证书、中间证书、服务器证书(域名证书)。
在正常的证书链顺序中服务器证书处于最低端,该证书包含了服务器域名,服务器公钥和签名值等。
在其上一级则是中间证书,也就是由权威CA机构授权的二级机构,用来签发服务器证书。
最上级就是根证书,也就是CA机构,对服务器身份进行校验时,需要验证整个证书链。
由于浏览器中集成了权威CA机构的根证书,因此主要是校验中间证书和服务器证书的签名值是否正确,从而构成一条信任链。

/etc/pki/ca-trust/source/anchors/ 目录在 CentOS 系统中用于存储用户添加的信任锚点(trust anchors)证书(根证书或中间证书)。
当需要让系统信任一个额外的证书颁发机构(CA)时,可以将该 CA 的证书复制到这个目录。
然后,运行 update-ca-trust 命令来更新系统信任的证书。
这样,系统上的应用程序和服务就能够信任由这些额外 CA 签发的证书了。

中间证书一般在颁发ssl证书时会合并在一起,但不排除某些需要自己合并的场景。

# 安装中间证书

存放路径:/etc/pki/ca-trust/source/anchors/
生效:update-ca-trust

# 证书链检查网站
https://uutool.cn/ssl-check/

[root@ip-172-31-10-235 certs]# rpm -ql ca-certificates-2023.2.64-1.amzn2.0.1.noarch
/etc/pki/ca-trust
略
/etc/ssl/certs
/usr/bin/ca-legacy
/usr/bin/update-ca-trust
略
ca-certificates这个rpm包提供了update-ca-trust命令及证书路径,系统内的根证书就是由此包提供。

参考:https://www.cnblogs.com/sslwork/p/5986985.html

2024-04-29
发表者 Venus
华为防火墙ssh登录no matching key exchange method found已关闭评论

华为防火墙ssh登录no matching key exchange method found

ssh登录华为usg6308防火墙,提示如下错误:
Unable to negotiate with 192.168.12.45 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
大概就是找不到匹配的秘钥交换方法
在此之前升级过usg系统版本。

解决方法就是创建一个密钥对。
rsa local-key-pair create

2024-04-18
发表者 Venus
udev自定义设备名称已关闭评论

udev自定义设备名称

测试环境 almalinux9.3

规则配置文件必须以 .rules 为后缀名
udev按照配置文件名的字母顺序来查询全部规则文件,匹配到后会继续匹配其他规则文件。

在规则文件里,除了#开头的行,所有的非空行都为一条规则,一条规则不能扩展到多行。
规则由多个键值对组成,并由逗号隔开,键值对可以分为"条件匹配键值对"(以下简称 "匹配键" )和"赋值键值对"(以下简称 "赋值键"),一条规则可以有多条匹配键和多条赋值键。
匹配键是匹配一个设备属性的所有条件,当一个设备的属性匹配了该规则里所有的匹配键,就认为这条规则生效,然后按照赋值键的内容,执行该规则的赋值。


匹配键:
ACTION          事件(uevent)的行为,例如:add(添加设备)、remove(删除设备),udev守护进程帧听来自内核的uevent
KERNEL          内核设备名称,例如:sda,cdrom;
DEVPATH         设备的 devpath 路径;
SUBSYSTEM       设备的子系统名称,例如:sda 的系统为 block;
BUS             设备在 devpath 里的总线名称,例如:usb;
DRIVER          设备在 devpath 的设备驱动名称,例如:ide-cdrom;
ID              设备在 devpath 里的识别号;
SYSFS{filename} 设备的 devpath 路径下,设备的属性文件 "filename" 里的内容;
ENV{key}        环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键;
PROGRAM         调用外部命令;
RESULT          外部命令 PROGRAM 的返回结果。

操作符:
==  比较键、值,若等于,则该条件满足;
!=  比较键、值,若不等于,则该条件满足;
=   对一个键赋值;
+=  为一个表示多个条目的键赋值;
:=  对一个键赋值,并拒绝之后所有对该键的改动。目的是防止后面的规则文件对该键赋值。

赋值键:
NAME     在 /dev 下产生的设备文件名。只有第一个对某个设备的 NAME 的赋值行为生效,之后匹配的规则再对设备的 NAME 赋值行为将被忽略。如果没有任何规则对设备的 NAME 赋值,udev 将使用内核设备名称来产生设备文件;
SYMLINK  为 /dev/ 下的设备文件产生符号链接。由于 udev 只能为某个设备产生一个设备文件,所以为了不覆盖系统默认的 udev 规则所产生的文件,推荐使用符号链接。
OWNER,GROUP,MODE 为设备设定权限;
ENV{key} 导入一个环境变量。



1、查看usb设备的厂商id和设备id
[root@localhost rules.d]# lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ID   067b:2303
VENDOR_ID:MODEL_ID

2、根据厂商id或设备id去udev里匹配
[root@localhost rules.d]# udevadm info /dev/* | grep -C 20 2303

找到 DEVNAME|ID_VENDOR_ID|ID_MODEL_ID|SUBSYSTEM|ID_PATH 这几个字段用于配置自定义设备名称

规则配置文件路径 /etc/udev/rules.d

# 根据ID_PATH作为匹配条件
[root@localhost rules.d]# cat usb2console.rules 
SUBSYSTEM=="tty", ENV{ID_PATH}=="pci-0000:02:00.0-usb-0:2.1:1.0",SYMLINK+="usb2consoleline"

# 根据厂商设备id作为匹配条件
[root@localhost rules.d]# cat usb.rules 
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="239a", ENV{ID_MODEL_ID}=="80f4",SYMLINK+="usb-pi"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="067b", ENV{ID_MODEL_ID}=="2303",SYMLINK+="usb-consoleline"

取子系统SUBSYSTEM等于tty,且变量ID_VENDOR_ID等于xxx,且变量ID_MODEL_ID等于xxx时,设置赋值键symbol link等于xxx

重插拔usb测试,查看/dev/usb-*的自定义名称

参考:https://blog.csdn.net/u014674293/article/details/121627305

2024-04-12
发表者 Venus
windows route命令配置路由已关闭评论

windows route命令配置路由

通过route命令可以设置自定义路由,如通往指定网段走指定网关,默认访问公网走另一个网关。

# 持久化路由保存在注册表中,位置如下:
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes

# 持久化路由规则 -p 参数
PS C:\Windows\system32> route add 192.168.0.0 mask 255.255.0.0 192.168.6.1 -p
 操作完成!

# 只打印ipv4路由表 
PS C:\Windows\system32> route print -4
===========================================================================
接口列表
  2...00 0c 29 97 98 56 ......Intel(R) 82574L Gigabit Network Connection
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      192.168.6.1     192.168.6.53     25
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      192.168.0.0      255.255.0.0      192.168.6.1     192.168.6.53     26
      192.168.6.0    255.255.255.0            在链路上      192.168.6.53    281
     192.168.6.53  255.255.255.255            在链路上      192.168.6.53    281
    192.168.6.255  255.255.255.255            在链路上      192.168.6.53    281
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上      192.168.6.53    281
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上      192.168.6.53    281
===========================================================================
永久路由:
  网络地址          网络掩码  网关地址  跃点数
      192.168.0.0      255.255.0.0      192.168.6.1       1
===========================================================================

# 删除路由
PS C:\Windows\system32> route delete 192.168.0.0 mask 255.255.0.0
 操作完成!
 

# 添加2条测试规则 
PS C:\Windows\system32> route add 10.1.1.0 mask 255.255.255.0 10.1.1.1
 操作完成!
PS C:\Windows\system32> route add 10.1.2.0 mask 255.255.255.0 10.1.2.1 -p
 操作完成!
 
# 打印路由,通配符匹配  -4为只显示ipv4协议栈
PS C:\Windows\system32> route print 10.1.* -4
===========================================================================
接口列表
  2...00 0c 29 97 98 56 ......Intel(R) 82574L Gigabit Network Connection
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
         10.1.1.0    255.255.255.0         10.1.1.1     192.168.6.53     26
         10.1.2.0    255.255.255.0         10.1.2.1     192.168.6.53     26
===========================================================================
永久路由:
  网络地址          网络掩码  网关地址  跃点数
         10.1.2.0    255.255.255.0         10.1.2.1       1
===========================================================================