问题列表 - 第5163页

无法访问 Google Cloud Run 实例的静态外部 IP - 遵循指南(路由器、子网、NAT、VPC 等)

我正在尝试为我们的 Cloud Run 实例分配一个外部静态 IP 地址,以便我可以将其与 websockets 一起使用(我读过需要静态 IP 才能工作,而不是自指定/负载平衡的 GCloud)应用域名)。常规 URL 可以访问,但静态 IP 只是挂起。

我主要尝试遵循本指南: https ://cloud.google.com/run/docs/configuring/static-outbound-ip

我不完全确定外部IP如何路由到Cloud Run实例,因为它是一个自我管理的实例(即它上面没有私有IP地址),但假设其他部分正在解决这个问题。 。

我做了什么:

  • 创建云路由器:

gcloud compute routers create cloud-run-router --network=default --region=us-central1

路由器

  • 创建外部静态IP:

gcloud compute addresses create cloud-run --region=us-central1

外部IP

  • 我还在网络上创建了一个子网:

gcloud compute networks subnets create cloud-run-subnet --range=10.20.0.0/28 --network=default --region=us-central1

子网

  • 然后,我使用此子网创建了一个无服务器 VPC 访问连接器:

gcloud beta compute networks vpc-access connectors create cloud-run-sub-conn --subnet-project=project-name --subnet=cloud-run-subnet --region=us-central1

专有网络连接器

  • 然后,我使用此路由器和子网创建了一个新的 Cloud NAT 网关:

gcloud compute routers nats create cloud-run-nat --router=cloud-run-router --region=us-central1 --nat-custom-subnet-ip-ranges=cloud-run-subnet --nat-external-ip-pool=cloud-run

NAT网关

  • 我还设置了一些防火墙规则,尝试允许一切: 防火墙

  • 然后,我部署了引用 VPC 出口和连接器的 Cloud …

static-ip google-cloud-platform gcloud

4
推荐指数
1
解决办法
4346
查看次数

如何询问 systemd 服务停止的原因

我想知道为什么给定的服务被停止。我可以想到几个原因:

  • 服务崩溃了
  • 服务自行退出
  • 该服务已通过以下方式明确停止systemctl stop
  • 该服务被明确杀死systemctl kill
  • 该服务是PartOf另一个已停止的服务
  • 该服务与已启动的另一个服务发生冲突。

我确信还有其他人我忘记了。

有没有办法询问 systemd 导致服务停止的原因?

systemd

5
推荐指数
1
解决办法
1186
查看次数

如何确定远程 NFS 共享的版本?

我在使用某些软件时遇到问题,该软件只能挂载 NFSv3 和 NFSv4 共享 - 它无法挂载 NFSv4.1 或 NFSv4.2。

由于我无权访问服务器本身,因此我无法确定正在使用的 NFS 的确切版本。

我知道 rpcinfo 命令:

rpcinfo -p server
Run Code Online (Sandbox Code Playgroud)

打印出共享的版本,如下所示:

   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
      7507    1   tcp   7507
    100024    1   udp  20049  status
    100024    1   tcp  20049  status
    100003    3   tcp   2049  nfs
    100005    1   tcp  20048  mountd
    100005 …
Run Code Online (Sandbox Code Playgroud)

linux nfs network-share nfs4

4
推荐指数
1
解决办法
1517
查看次数

如何使用crictl找出容器的PID

Kubernetes 正在弃用 Docker 作为 CRI 引擎。现在有containerd和CRI-O,可以作为它的替代品。两者都可以通过 cri-tools 中的 crictl 进行管理。

我需要一些通用的方法来查找正在运行的容器的 PID。

实际上我需要一个相当于 docker 命令的crictl :

# docker inspect 86cd8d605c2da -f '{{ .State.Pid }}'
9625
Run Code Online (Sandbox Code Playgroud)

containers kubernetes

9
推荐指数
1
解决办法
1万
查看次数

Powershell自签名证书私钥不可导出

我尝试使用 Powershell 创建一个带有可导出私钥的自签名 ssl 证书。我已经阅读并遵循了各种教程,但最终结果始终是没有导出任何私有内容。我使用 Powershell 是因为服务器运行的是 Windows Server 2016 Core 版本。我已尝试从远程计算机使用证书 MMC 控制台,但远程执行此操作时似乎并非所有功能都可用。无论如何,我遵循的各种教程都谈到了导出私钥的能力,但是我还没有找到使这项工作有效的代码的具体示例。这是我一直在尝试的代码:

$todaydt = Get-Date
$5years = $todaydt.AddYears(5)
$selfSignedRootCA = New-SelfSignedCertificate -DnsName SelfSignedRootCA -notafter $5years -CertStoreLocation Cert:\LocalMachine\My\ -KeyExportPolicy Exportable -KeyUsage CertSign,CRLSign,DigitalSignature -KeySpec KeyExchange -KeyLength 2048 -KeyUsageProperty All -KeyAlgorithm 'RSA' -HashAlgorithm 'SHA256' -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider'
New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName "myserver.test" -notafter $5years -Signer $selfSignedRootCA -KeyUsage KeyEncipherment,DigitalSignature
$CertPassword = ConvertTo-SecureString -String "MyPassword" -Force -AsPlainText
Export-PfxCertificate -Cert cert:\LocalMachine\My\REDACTED-THUMBPRINT -FilePath C:\test.pfx -Password $CertPassword
Run Code Online (Sandbox Code Playgroud)

我的研究表明,最常见的原因是创建证书时使用的证书模板不允许导出私钥,因此按照这些建议,我复制了现有的证书模板并确保将其配置为允许导出密钥。但是,我不知道如何/在哪里在上述任何命令中指定新创建的模板。我对这些 cmdlet 的文档的审查没有显示任何这样做的参数。真的很坚持这一点,所以非常感谢任何建议。

powershell ssl private-key self-signed-certificate windows-server-2016

3
推荐指数
1
解决办法
5777
查看次数

我应该担心攻击者在我们的网络服务器上喷洒漏洞吗?

我正在运行带有监控软件(Sentry.io)的网络服务器,我可以看到对以下端点的(失败)命中:

GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
GET /console/
POST /api/jsonws/invoke
POST /mifs/.;/services/LogService
POST /Autodiscover/Autodiscover.xml
GET /_ignition/execute-solution
POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
Run Code Online (Sandbox Code Playgroud)

对我来说,这些都很可疑。对于上下文,服务器不是 PHP 服务器,它是 NodeJS,其所有端点均已明确定义 - 它不是从文件系统提供服务 - 并且它位于 nginx 反向代理后面。

我应该担心收到这样的请求吗?我相信他们的努力不会取得任何成果,因为我知道所有端点是什么,因为我定义了它们。

我还认为我可能想得太多了,他们可能是寻找常见页面或其他内容的常规爬虫。我应该担心吗?我应该尝试阻止/反击这些请求,还是只是让它们发生而不得到任何结果?

security nginx logging web-server node.js

3
推荐指数
1
解决办法
1655
查看次数

在进程列表中识别 Docker 内部运行的进程

我意识到在 Docker 容器内运行的进程出现在主机的进程列表中:

# ps aux | grep mariadb
root     12486  0.0  0.0 112812   976 pts/0    S+   14:47   0:00 grep --color=auto mariadb
Run Code Online (Sandbox Code Playgroud)

有没有办法识别进程是在主机上运行还是在 Docker 容器上运行,或者有办法过滤掉 Docker 进程?

centos top ps docker centos7

4
推荐指数
1
解决办法
1万
查看次数

仅靠 DKIM 不能解决垃圾邮件问题吗?为什么我需要SPF?

最终编辑:我对 DKIM 的看法似乎完全错误,签名域不必与发件人域相同,因此我的问题的整个前提是有缺陷的。非常感谢保罗指出我的错误!

原问题如下:

我曾尝试阅读 SPF 和 DKIM,但我不明白同时使用两者的意义,至少在打击垃圾邮件的背景下(伪造的发件人地址,这可能导致我的电子邮件服务器/域被列入黑名单)。据我所知,只有 DKIM 才能完成 SPF 应该完成的工作。

到目前为止,我的理解如下:

  1. 发送电子邮件时,发件人可以声明他们想要的任何内容(例如伪造的发件人地址)
  2. DKIM 允许检测伪造的发件人电子邮件地址,因为您可以根据 DNS TXT 记录中的公钥验证 DKIM 签名。
  3. SPF 允许您验证电子邮件是否来自有权为给定发件人地址发送电子邮件的邮件服务器。

我不明白的是:除非 DKIM 私钥以某种方式被泄露,否则仅 DKIM 验证就足以验证电子邮件是从授权的电子邮件服务器发送的,否则电子邮件服务器将无法用于签署电子邮件的私钥。

我在这里看到了一个非常相似的问题的答案:https : //serverfault.com/a/780248/154775,作者在其中声称 DKIM 无法防止重放攻击。我承认这一点,但我发现这是一个非常极端的案例,我认为迄今为止最大的问题是带有虚假发件人地址的垃圾邮件 - DKIM 应该很容易地防止这种情况发生。

与仅 DKIM 相比,是否存在重放攻击之外的场景,其中 SPF 提供额外保护?

编辑:我用粗体标记了我的问题的核心,以澄清我到底想要什么答案。

security email spam spf dkim

21
推荐指数
4
解决办法
3383
查看次数

服务器能否确定客户端是在 LAN 还是 WLAN 上?

我想将我的服务器的访问权限限制为通过 LAN 而不是 WLAN 连接到其家庭路由器的客户端。这是否可能,例如通过检查数据包?

更多信息:我关心的是时间而不是安全性。服务器运行实时音频应用程序,而 WLAN(一般来说)引入的抖动比 LAN 多得多。所以,我的问题改写为:

我可以通过查看 UDP 数据包丢失或无序到达的数量来确定抖动量吗?有哪些普遍接受的工具可以实现这一目标?

packet-analyzer wlan

0
推荐指数
1
解决办法
44
查看次数

无法删除虚拟机实例。删除按钮被禁用

我无法删除虚拟机。以下是机器类型:

f1-micro (1 vCPU, 0.6 GB memory)
Run Code Online (Sandbox Code Playgroud)

注意:- 删除按钮对我来说被禁用。因此我无法删除它。

以下是我从 cloud shell 收到的错误:

ERROR: (gcloud.compute.instances.delete) Could not fetch resource:
 - Invalid resource usage: 'Resource cannot be deleted if it's protected against deletion.'.
Run Code Online (Sandbox Code Playgroud)

请帮助我解决这个问题。

google-compute-engine

0
推荐指数
1
解决办法
3289
查看次数