我想测试 ssh 服务器是否允许密码并立即关闭连接而不实际尝试登录。
像这样的东西:
allows_password=$(ssh --some-option example.com)
if [ -z "$allows_password" ]; then
echo "Insecure Server Options"
else
echo "Insecure Password Access is not Allowed, Great!"
fi
Run Code Online (Sandbox Code Playgroud)
我实际上以前做过一次,但我找不到旧的脚本或文档。失落的一天。:-/
我正在尝试编写一个通用规则来在发现的目标丢失时发出警报。特别是使用 kubernetes_sd_configs 为抓取和自动发现注释的 kubernetes pod。
形式的表达式:absent(up{job="kubernetes-pods"}==1)不返回作为正常运行时间序列的一部分可用的任何其他标签。如果一个 pod 被删除(比如错误),它就会作为目标从 prometheus 中消失。触发了基于缺席()的警报,但我没有关于丢失什么 pod 的信息。
我认为自动发现的 kubernetes 服务也会发生同样的情况。如果它被误删除了,它就会作为监视目标消失。我不确定具有 ip 范围的target_groups ( https://prometheus.io/blog/2015/06/01/advanced-service-discovery/ )的行为是否相同- 也就是说,如果物理节点已关闭指标只是停止和上升 == 0 不可用。
以一般方式检测自动发现的目标何时消失的正确方法是什么?或者我是否需要明确地为每个服务/节点/pod 硬编码规则,即使它是自动发现的?
我正在尝试遵循几个关于设置根 LDAP 密码的教程(我们以前的系统管理员离开了......突然),它们都或多或少地说了同样的事情:
...但在第一步卡住了。这似乎很糟糕:
# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
No such object (32)
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的:
我可以通过从 slapd-config 文件中挖掘数据来定位查询要检索的数据:
# find /etc/ldap/slapd.d -type f -exec grep Root {} +
/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif:olcRootDN: cn=admin,cn=config
/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif:olcRootPW: {SSHA}[xxxxxx hash redacted xxxxxx]
/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif:olcRootDN: cn=admin,dc=example,dc=com
/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif:olcRootPW: {SSHA}[xxxxxx hash redacted xxxxxx]
Run Code Online (Sandbox Code Playgroud)
并确认 slapd 理论上设置为从这些文件中读取:
# ps -ef | grep slapd
openldap 2244 1 0 Oct26 ? 00:00:16 /usr/sbin/slapd -h ldap:/// ldapi:/// ldaps:/// -g openldap …Run Code Online (Sandbox Code Playgroud) 我现在设置了一个可扩展的负载均衡器,主要遵循这个模板:
https://github.com/satterly/AWSCloudFormation-samples/blob/master/LAMP_Multi_AZ.template
将AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Count键调整为0(基本上允许在未收到成功信号的情况下加载堆栈)后,我能够加载堆栈,并且可以看到所有可用资源。
我可以看到正在创建的密钥的公共 DNS,但我无法通过 SSH 连接到实例。
我对实例规则中的每个人都有开放的 SSH 访问权限,我可以在 AWS 控制台中确认这一点。
我还按照官方 AWS 文档中的建议为我的 VPC 配置了一条路由:https : //aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/
我可以看到实例存在,但似乎我限制了自己在某处的访问。但是,在 AWS EC2 控制台中,设置看起来与我能够通过 SSH 连接到实例时相同。
这是我正在使用的 JSON 模板,您可以在其中查看我的所有设置,包括我的 VPC、子网、安全组等:https : //gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8
我从以下命令收到超时错误:(我的id_rsa密钥在 ec2 内有效)
ssh -i ~/.ssh/id_rsa ec2-user@<ec2_instance>
Run Code Online (Sandbox Code Playgroud)
load-balancing amazon-ec2 amazon-web-services amazon-cloudformation
我的公司最近决定更新我们的邮件服务器,我的任务是清点使用现有服务器发送电子邮件的所有应用程序,以便我们知道需要测试哪些系统以进行转换。该公司成立已有一段时间,直到几年前才拥有正式的软件开发团队。
这导致了几十年的一次性脚本的价值,其中大部分既没有列出也没有维护。最近,我自愿清点所有使用旧邮件服务器的脚本/应用程序,以便我们知道在转换期间要测试哪些系统。我已经设法将任务范围缩小到一台特定 Windows 服务器上的应用程序和我们最近的 TFS 存储库中的代码,但明确地对一台服务器进行编目似乎是一项艰巨的任务。
我目前的计划是让特工 Ransack 松散寻找类似的东西
^.*(SMTP|mailserverHostname|mailserverOtherHostname|mailserverIP).*$
并手动挖掘结果。我是一名开发人员,只在系统管理员处假装过,并且绝对不知道我在做什么。这只是我能想到的最好的。
是否有任何更有效/自动化的方法可以执行查找处理该邮件服务器的每个 vb/perl/python/c 脚本的任务?
我目前的设置如下,/dev/mapper/centos-root分区快满了。
看起来这个分区在磁盘上/dev/mapper/centos-root。但是还有另一个磁盘/dev/vda,它仍然有足够的可用空间
这两个磁盘是独立的物理磁盘吗?
如何增加 /dev/mapper/centos-root分区?
[root@devbox ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 17G 1.4G 93% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 48M 3.8G 2% /dev/shm
tmpfs 3.9G 74M 3.8G 2% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 497M 297M 201M 60% /boot
tmpfs 783M 48K 783M 1% /run/user/1001
[root@devbox ~]# fdisk -l
Disk /dev/vda: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors …Run Code Online (Sandbox Code Playgroud) 的文档ssl_client_certificate说:
Specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if ssl_stapling is enabled.
The list of certificates will be sent to clients. If this is not desired, the ssl_trusted_certificate directive can be used.
Run Code Online (Sandbox Code Playgroud)
为什么将此列表发送给客户?我认为客户端验证过程让客户端将其证书(和中间体)发送到服务器进行验证。如果此属性指向的文件很大,这是否效率低下?
另一方面,它表示ssl_trusted_certificate如果您不想将证书发送给客户端,则使用。如果我删除ssl_client_certificate并仅设置,ssl_trusted_certificate则 nginx 不会启动,因为我有ssl_verify_client on;
我正在一个共享的 AWS 账户中设置几个 EC2 实例,并希望让它们相互访问。同时我想禁止账户中其他实例的访问。
我创建了一个安全组并添加了来自“我的 IP”的 SSH 访问权限以进行登录,并且效果很好。
现在我需要在所有实例之间进行 SSH连接,但即使它们都在同一个安全组中,我也不能。
我怎样才能做到这一点?
步骤如
sc queryex {here paste service name},标记PIDtaskkill /f /pid {here paste PID}不工作,因为进程尚未启动(卡在启动时),所以没有 PID。
除了服务器重启还有什么解决办法吗?
为了测试高可用性模式是否发挥了应有的作用,我需要在测试期间终止实例,并且需要以它们无法报告断开连接或类似情况的方式终止它们。
出于实际原因,我需要在较小的环境中进行测试,该环境没有每个 Pod 的单独节点,因此我无法通过关闭机器来进行测试,而是需要终止进程。我可以使用 杀死它们docker kill,但这需要登录节点并找到容器的 docker id。是否有某种方法可以通过 实现类似的效果exec kill,但SIGKILL不允许发送到进程 ID 1。
我还看到使用了删除,但在某些情况下存在差异:删除时,容器会以干净状态重新创建,但仅重新启动它不会,并且我正在测试的部署实际上会查看启动期间的状态并且启动时出现问题,所以我需要测试它未被删除的情况。
我可以强行终止 Pod,而不给它们任何通过 kubernetes API/ 进行清理的机会吗kubectl?
amazon-ec2 ×2
ssh ×2
centos ×1
hard-drive ×1
kubernetes ×1
linux ×1
nginx ×1
openldap ×1
partition ×1
password ×1
prometheus ×1
security ×1
software ×1
ssl ×1
storage ×1
testing ×1
upgrade ×1
windows ×1