我不知道如何用语言表达,所以创建了一个插图来展示我的设置是什么样的。
DB Server和Web Server在一个VLAN中,Web Server有公网IP,DB Server没有。通常 DB 只能与 Web 服务器通信。例外是它也应该能够与主服务器通信,但它应该是无法远程访问的。
我认为它可以设置为 DB>>Web>>Main Server,但我对 SSH 配置处于非常初级的水平,所以我不能自己做任何事情。
DB to Main 连接应该是永久的两种方式,并且只需要通过端口 80。
DB和Web服务器是CentOS 7.2,主服务器是Debian 8
这实际上可能吗?如果可能,如何实现?很感谢任何形式的帮助。谢谢。
我有一些测试服务器在 Openstack 上的堡垒后面运行。测试堆栈经常被删除和创建。创建堆栈后,我运行一组 Ansible 脚本来安装和配置服务器。我的过程几乎完全自动化,但是ssh-keyscan当远程主机在堡垒主机后面时,我似乎无法开始工作。
这就是我在我的 ~/.ssh/config
Host bastion
HostName 1.2.3.4
User myuser
IdentityFile ~/.ssh/private_key.pem
Host remote-host1
HostName 192.168.0.123
User myuser
IdentityFile ~/.ssh/private_key.pem
ProxyCommand ssh -W %h:%p bastion
Run Code Online (Sandbox Code Playgroud)
如果我尝试跑步,ssh-keyscan remote-host1我会得到
getaddrinfo remote-host1: Name or service not known
Run Code Online (Sandbox Code Playgroud)
运行ssh remote-host1有效,但会提示
The authenticity of host '192.168.0.123 (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
我试图避免。
我知道有一个 SSH 选项-o StrictHostKeyChecking=no,可以使用ssh_args …
我是新手,所以我希望我不要问废话。
我想在没有密码的情况下向远程服务器发送 SSH 命令。
在本地机器上,我们有多个用户。
在远程机器上只有一个用户,所以我必须与that_user@remote_server连接。
是否可以为 local_machine 上的所有用户(每个用户将添加自己的)创建 RSA 密钥到远程服务器上的一个用户?
谢谢,
TrustWave 在扫描 CentOS 方面变得更好了——我现在至少可以在提交争议时选择“我有向后移植的软件”。但是他们每个月都需要花费数小时的辛勤指向和点击他们的网站,从而提供出色的工作保障。
现在我的问题。CVE-2016-10009 尚未由 RHEL 人员修补,并且没有可用于 CentOS 的直接修复程序。在 TrustWave 对我最初争议的回应中,有以下说明:
由于这一发现会影响 PCI DSS 合规性,因此确实需要确认它已以某种方式得到解决。扫描报告中列出的要求是升级系统或利用提到的补偿控制(例如永远不要从受信任的白名单(运行时可配置)之外的路径加载 PKCS#11 模块)。
最新的 OpenSSH 补丁已修复向后移植到 OpenSSH 7.3,我不清楚是否会解决此特定漏洞。提到的“补偿控制”——只允许列入白名单的模块——正是 7.4 中的修复,所以这没有帮助,并且扫描报告没有列出任何内容。
因此,我正在寻找可以满足扫描仪的配置更改,但我找不到。 这是对这个问题的一个体面的解释。有什么我可以做的吗?完全禁用 PKCS#11?
我正在运行来自 Digital Ocean 的基本 Ubuntu 服务器,我使用 SSH 密钥(存储在我的桌面上)来访问它。
我刚刚运行netstat -ap,结果如下:
Local Address Foreign Address State PID
XX.XXX.XX.192 183.214.141.105:53929 ESTABLISHED 25193/sshd: root [p
Run Code Online (Sandbox Code Playgroud)
这不是我,我搜索了 IP,它在许多禁止列表中,并且来自中国。
我的问题:
1) 由于状态为“已建立”,这是否意味着他们可以通过 SSH 访问我的服务器?还是这种蛮力试图进入?
2) 我的服务器怎么会被入侵?我不知道蛮力可以对 SSH 密钥起作用吗?他们不需要访问我桌面上的密钥吗?
我需要让用户使用不同的身份验证方法登录 CentOS 系统。有些使用密码,有些使用公钥。
我遵循了这里提到的方法: How can I setup OpenSSH per-user authentication methods?
但是,我没有成功基于密码登录。
在 sshd_config 文件中,我有:
AuthenticationMethods keyboard-interactive,publickey
PasswordAuthentication no
Match User newton
PasswordAuthentication yes
Match all
Run Code Online (Sandbox Code Playgroud)
更新:我发现问题仅在我通过谷歌身份验证启用了 2FA 并且我有以下线路时:
AuthenticationMethods keyboard-interactive,publickey
Run Code Online (Sandbox Code Playgroud)
虽然对于用户 newton,我已经设置了密码身份验证,但我看到以下错误:
[root@localhost]# ssh newton@50.39.213.152
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏。
我使用 Packer 构建 VirtualBox 镜像,使用 Ansible 配置器来设置镜像。构建器步骤创建一个临时用户(ssh_username和ssh_password)。Ansible 供应器使用此临时用户运行。当然,我想在设置我们更安全的仅公钥用户后摆脱这个用户。因此,我添加了第二个 Ansible 配置步骤,以安全用户身份连接并删除不安全用户。或者至少这是计划。但是,Ansible via packer 无法使用这种方法实际连接到 VM。
这是 packer.json 文件的相关部分:
"provisioners": [
{
"type": "ansible",
"playbook_file": "playbooks/image/image.yml",
"groups": [
"{{user `ansible_group`}}"
],
"user": "vagrant",
"extra_arguments": [
"--vault-password-file", "scripts/get-vault-password.sh",
"-e", "global_configuration_user={{user `configuration_user`}}",
"-e", "global_deployment_user={{user `deployment_user`}}",
"-e", "ansible_ssh_pass=vagrant",
"-vvvvv"
]
},
{
"type": "ansible",
"playbook_file": "playbooks/image/removeVagrant.yml",
"groups": [
"{{user `ansible_group`}}"
],
"user": "{{user `configuration_user`}}",
"extra_arguments": [
"--vault-password-file", "scripts/get-vault-password.sh",
"-e", "global_configuration_user={{user `configuration_user`}}",
"-e", "global_deployment_user={{user `deployment_user`}}",
"-e", "ansible_ssh_private_key_file=~/.ssh/id_{{user `configuration_user`}}_rsa",
"-vvvvv"
]
}
], …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 服务器上。我正在尝试启用 ssh 隧道,以便在我的项目中添加 git remote。
authorized_keys文件中当我尝试打开远程 shell 时出现错误Server refused our key。
检查日志: Connection closed by <ip> [preauth]在/var/log/auth.log.
更多信息:
~/.ssh/authorized-keys 拥有权限 664。
文件没有命名,authorized-keys这authorized_keys可能是个问题吗?
我错过了什么?
由于某种原因我无法弄清楚,Fail2Ban 拒绝将 IP 地址添加到 ipset/firewalld。
我被一个中国 IP 地址强制使用,Fail2Ban 似乎确实试图禁止它(至少它出现在 fail2ban-client status sshd 命令中),但它实际上并没有停止对服务器进行暴力破解,而且它没有不会出现在 ipset/iptables/firewalld 中。
fail2ban 客户端状态 sshd:
[root@GITserver alex]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 93613
| `- File list: /var/log/secure
`- Actions
|- Currently banned: 2
|- Total banned: 1003
`- Banned IP list: 61.177.172.17 95.103.88.106
Run Code Online (Sandbox Code Playgroud)
ipset/防火墙:
[root@GITserver alex]# ipset list
[root@GITserver alex]# firewall-cmd --direct --get-all-rules
[root@GITserver alex]#
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?可以根据要求添加更多日志
编辑,仍然没有解决方案,仍然被蛮力和 DDoS 攻击,这里是完整的 /var/log/fail2ban.log 如果它可能有帮助https://paste.fedoraproject.org/paste/Y5aPF8~WY~fpuhaZBDo7Ml5M1UNdIGYhyRLivL9gydE=/raw …
是否可以启用 ssh 同时使用密钥对和密码,因此客户端需要密钥文件并知道密码?为了只有一个是行不通的。
我不需要使用半径或任何东西进行两步验证。只是想提高一点安全性。
谢谢
ssh ×10
linux ×3
ansible ×2
centos7 ×2
security ×2
ssh-keys ×2
bastion ×1
fail2ban ×1
firewalld ×1
packer ×1
pci-dss ×1
private-key ×1
ssh-tunnel ×1
ubuntu ×1
ubuntu-14.04 ×1