Rootop 服务器运维与web架构

2024-05-09
发表者 Venus
rsyslog通过发送者来源ip区分日志路径已关闭评论

rsyslog通过发送者来源ip区分日志路径

[root@localhost ~]# cat /etc/rsyslog.conf | grep -Ev "^#|^$"
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

# 定义一个模版
$template IpTemplate,"/var/log/usg/%FROMHOST-IP%/%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?IpTemplate
& ~  # &符号表示已经匹配处理的内容,~符号表示再也不进行其余处理

这样客户端发送过来的日志,rsyslog会根据源ip创建一个文件夹来保存日志。

测试:
通过logger命令测试发送日志
机器1:
logger -n 192.168.6.205 -p user.info "from server 1"

机器2:
logger -n 192.168.6.205 -p user.info "from server 2"

适合多个网络设备集中收集日志。

2024-05-09
发表者 Venus
华为usg6000防火墙发送日志到rsyslog已关闭评论

华为usg6000防火墙发送日志到rsyslog

日志服务器:192.168.6.205

# rsyslog配置
[root@localhost log]# cat /etc/rsyslog.conf | grep -Ev "^#|^$"
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$ModLoad imudp # 开启udp接收
$UDPServerRun 514 # udp端口
$ModLoad imtcp # 开启tcp接收
$InputTCPServerRun 514 # tcp端口
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
local6.*						                        /var/log/usg6000.log # usg设备发送过来的设施代码为local6,将所有日志级别(.*)写到配置的日志路径
# 重启rsyslog
[root@localhost log]# systemctl restart rsyslog
# usg配置
[USG6300]info-center enable 

[USG6300]info-center source default channel 2 log level informational 

[USG6300]info-center loghost 192.168.6.205 facility local6 port 514 channel 2 language English source-ip 192.168.12.45
Warning: There is security risk as this operation enables a non secure syslog protocol.

facility 为对应 rsyslog 中的设施代码,usg中支持0-7
[USG6300]info-center loghost 192.168.6.205 facility ?
  local0  Logging host facility 
  local1  Logging host facility 
  local2  Logging host facility 
  local3  Logging host facility 
  local4  Logging host facility 
  local5  Logging host facility 
  local6  Logging host facility 
  local7  Logging host facility 
# rsyslog配置发送者白名单,允许来源ip
$AllowedSender UDP, 192.168.222.10/24, 10.0.0.0/8
# 通过shell命令测试发送日志消息
logger -n 192.168.6.205 -p user.info "aaaaaaaaaaaa"

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