我不确定我是否被黑客入侵。
我尝试通过 SSH 登录,但它不接受我的密码。Root 登录被禁用,所以我去救援并打开了 root 登录,并且能够以 root 身份登录。作为 root,我尝试使用与我之前尝试登录相同的密码更改受影响帐户的密码,并passwd回复“密码不变”。然后我将密码更改为其他密码并能够登录,然后将密码更改回原始密码,我再次能够登录。
我检查auth.log了密码更改,但没有发现任何有用的东西。
我还扫描了病毒和 rootkit,服务器返回了这个:
蛤AV:
"/bin/busybox Unix.Trojan.Mirai-5607459-1 FOUND"
Run Code Online (Sandbox Code Playgroud)
RK猎人:
"/usr/bin/lwp-request Warning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: a /usr/bin/perl -w script, ASCII text executable
Warning: Suspicious file types found in /dev:"
Run Code Online (Sandbox Code Playgroud)
应该注意的是,我的服务器并不广为人知。我还更改了 SSH 端口并启用了两步验证。
我担心我被黑了,有人试图欺骗我,“一切都很好,别担心”。
我对 sshd_config 文件进行了一些更改,因此需要重新启动。当物理访问服务器将是一个巨大的 PITA 时,我正在寻找有关安全重新启动 ssh 的提示。
我将“退出”放在我的 .bashrc 文件中。我没有对机器的物理访问权限,因此我使用 ssh 连接到它。我没有root权限。每次我连接到服务器时,连接都会自动关闭。
到目前为止,我已经尝试过:
我可以做些什么来禁用 .bashrc 或者在 .bashrc 被获取之前覆盖文件?
更新
@ring0
我尝试了你的建议,但没有运气。bashrc 文件仍然首先运行。
我尝试的另一件事是使用另一个帐户登录并 sudo 编辑 .bashrc,但我没有此帐户的 sudo 权限。
我想我会联系管理员。
编辑
@shellholic
我不敢相信,但这种方法奏效了!即使“退出”出现在.bashrc 文件的前几行(仅由几个if块和导出语句组成),我仍然设法在 20 次尝试(大约需要 3 分钟)内成功地使用 Ctrl-c 中断它。我删除了 .bashrc 中的违规行,一切又恢复正常。
在我的服务器中,ssh 端口不是标准的 22。我设置了不同的端口。如果我设置了fail2ban,它能检测到那个端口吗?我如何告诉它检查该端口而不是端口 22?
的输出iptables -L -v -n:
Chain fail2ban-ssh (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 119.235.2.158 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-ssh-ddos (0 references)
pkts bytes target prot opt in out source destination
Run Code Online (Sandbox Code Playgroud)
服务 iptables status 的输出:
iptables: unrecognized service
Run Code Online (Sandbox Code Playgroud)
总结fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf:
Summary
=======
Addresses found:
[1]
[2]
[3]
113.59.222.240 (Wed Mar 21 18:24:47 2012)
113.59.222.240 …Run Code Online (Sandbox Code Playgroud) 我目前有一个运行 OpenSSH 的 Ubuntu Server 12.04 以及 Samba 和其他一些服务。目前我已经设置了公钥身份验证,我想知道是否可以设置两因素身份验证?我一直在查看目前与我的 Gmail 帐户一起使用的 Google 身份验证器。
我发现了一个看起来兼容的 PAM 模块,但似乎您被迫使用密码和生成的代码。
我想知道是否有一种方法可以使用 Google 身份验证器应用程序(或类似的东西)和我的公钥来对我的 SSH 服务器进行身份验证?
因此,如果我在家中使用 VPN,我希望所有这些连接都已-X指定。我已经复制了密钥并输入~/.config了 ip 和用户 ID,所以我所要做的就是去:ssh wk所以这是美中不足的最后一次。
我需要在两个端口上监听 SSH:22 用于托管管理员访问,26 用于常规访问。我想在 26 上禁止 root 登录,并禁止端口 22 的除内部 IP 之外的所有其他 IP。后者可以使用 iptables 规则来完成,但我不知道前者。有任何想法吗?
我有一个生产系统,其中允许多个不同的人登录到一个帐户 - 该帐户用于应用程序而不是用于个人,因为我们在生产服务器上没有个人帐户。
出于审计目的,我希望能够知道谁在什么时间登录,并且当我们使用 SSH 密钥登录时,跟踪它似乎是合乎逻辑的(因为没有其他标识符可跟踪)。
当 SSH 对用户进行身份验证时,它会将用户名记录到系统的安全日志中,但不会记录登录时使用了哪个授权公钥。 是否可以让 OpenSSH 也报告使用了哪个公钥,或者只是与该键相关的评论?
正在使用的操作系统是 CentOS 5.6,但我也想知道它是否可以在其他操作系统上使用。
在我的本地终端上,我有 TERM=konsole-256color,但并非所有我连接的远程机器都有这个定义。
是否可以让 ssh 在远程机器上更改 TERM?无需更改远程计算机上的 .bash* 脚本,只需更改本地桌面上的配置?
我们正在寻求切换到基于密钥的 SSH 登录管理,并想知道是否有任何密钥管理系统可以让我们在全球范围内集中管理访问密钥。
理想情况下,系统应该允许为每个客户端发布密钥,并在需要时撤销它们,即时更新服务器机器密钥。
有谁知道这样的系统,无论是商业的还是开源的?
注意:为了澄清,我们需要对大量云服务器(类 EC2)和少量服务用户进行密钥管理。我猜下面的 LDAP + 补丁建议可能是要走的路。