标签: sshd

阻止对 IPv6 的 SSH 暴力攻击

我最近不得不使用一些具有 IPv6 连接的服务器,我惊讶地发现 fail2ban 不支持 IPv6,denyhosts 也不支持。在谷歌上搜索我发现人们普遍推荐:

  • 通过 IPv6 停用 ssh 登录(对我来说不是解决方案)
  • 在服务器上仅使用私钥/公钥身份验证,没有密码身份验证(有效,但很多攻击可能会消耗服务器大量的处理能力,或者甚至可能通过 DDoS 攻击使其不可用)
  • 使用 ip6tables 阻止来自同一 IP 的连续攻击
  • 使用支持 IPv6 的 sshguard

从我目前收集到的信息来看,禁止在 IPv6 中使用地址与在 IPv4 中有点不同,因为 ISP 不会为用户提供单个地址 (/128),而是整个子网(我目前有一个 /48)。因此,禁止单个 IPv6 地址对攻击无效。我在 ip6tables 和 sshguard 阻止子网攻击检测的主题上进行了高低搜索,但我没有找到任何信息。

有谁知道 sshguard 是否禁止子网进行 IPv6 攻击?
有谁知道如何进行 ip6tables 配置来禁止 IPv6 攻击的子网?
或者有没有人知道比我已经发现的更好的减轻攻击的方法?

PS:我在系统上使用 CentOS 7。

security ssh ipv6 sshd ip6tables

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

如何在 SSH 会话期间抑制 debug2 消息?

当我通过 SSH 登录到我的家用 Linux 机器时,我每分钟都会收到几次以下调试输出:

debug2: channel 0: request window-change confirm 0
Run Code Online (Sandbox Code Playgroud)

当我在 nano 中编辑文件时,调试消息显示在文本顶部。要删除调试消息,我必须关闭 nano,执行clear,然后重新打开文件。无论我使用的是 Secure Shell(Google Chrome 扩展程序)、PuTTY 还是 Terminator(来自本地机器),我都会得到这个,尽管前两者要差得多。

有没有办法抑制这些消息?执行会执行sshd -q吗,还是在编译过程中指定了调试输出级别?

ssh terminal sshd

9
推荐指数
2
解决办法
8530
查看次数

如何调试SSH端口转发

这是ssh 端口转发的扩展,可以从任何地方访问我的家用机器

我尝试了那里提到的事情,但我无法ssh使用我的机器。

用于端口转发的 Netgear 路由器设置:

Start Port: 22
End Port: 22
Server IP Address: IP address of by FreeBSD box
Run Code Online (Sandbox Code Playgroud)

/etc/ssh/sshd_conf 我的 FreeBSD 盒子:

PasswordAuthentication yes
AllowUsers root
X11Forwarding yes
AllowTcpForwarding yes
Run Code Online (Sandbox Code Playgroud)

我如何尝试连接:

我已经注册dyndns.com并获得了一个映射到我的外部 IP 地址的 URL。

在我家庭网络中的另一台机器上,我这样做: ssh -l root my_dyndns_ip 这只是超时。

另一方面,我可以my_dyndns_url成功ping通。

调试

我该如何解决这个问题,以便我可以ssh从任何地方到达my_dnydns_url

我试图查看我的 Netgear 路由器的日志,但是在 ssh 尝试失败时,路由器上没有生成登录。

我也调查过,/var/log/messages但找不到任何东西。

编辑:0 以详细模式运行 ssh(按照@jasonwryan 的建议):

我注意到一件奇怪的事情:当我对 dyndns.com 提供的 url 执行 ssh 时,它试图连接到其他 …

freebsd ssh port-forwarding sshd

8
推荐指数
2
解决办法
5263
查看次数

SSH:空闲一段时间后连接重置

当我的连接空闲一段时间后,远程主机关闭连接。我尝试键入一个新命令,它挂起,然后关闭连接。如何让 ssh 连接保持更长时间的活动状态?

$ ssh root@host.com
Last login: Tue Jan  3 03:09:39 2017 from c-99-99-99-99.hsd1.xx.comcast.net
[root@ip-172-99-99-99 ~]# groups
root bin daemon sys adm disk wheel
[root@ip-172-99-99-99 ~]# users
root root
[root@ip-172-99-99-99 ~]# less /etc/passwd
[root@ip-172-99-99-99 ~]# Connection reset by 52.99.99.99 port 22
Run Code Online (Sandbox Code Playgroud)

远程是 Amazon (AWS) 上的 CentOS,本地是 Cygwin。

ssh cygwin centos timeout sshd

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

在 sshd_config 'MaxAuthTries' 中限制了每个连接的身份验证失败次数。什么是连接?

MaxAuthTries在我的 Linux 机器上设置为 1。然后我尝试ssh从本地网络上的另一台机器进入我的 Linux 机器,但它没有说“ Too many authentication failures”。

我假设这是因为我在设置时遇到了一些失败,并且它们仍然计入总数。

man页面说:

MaxAuthTries指定每个连接允许的最大身份验证尝试次数。一旦失败次数达到此值的一半,就会记录更多失败。默认值为 6。

什么被认为是连接?这是否意味着您只能MaxAuthTries从某个 IP 地址获取?这是指TCP连接吗?如何终止连接以便我可以创建一个新连接并ssh再次尝试?

https://linux.die.net/man/5/sshd_config

ssh openssh sshd

8
推荐指数
2
解决办法
3万
查看次数

为authorized_users添加密钥,无需重启sshd

我正在尝试向服务器添加公钥,但我不想重新启动 sshd 服务以使其生效。原因是重新启动 ssh 服务似乎对当时可以使用 ssh 服务的其他用户造成破坏。大多数文档建议添加一个公钥$HOME/.ssh/authorized_keys,然后重新启动sshd服务 ( systemctl restart sshd)。感兴趣的操作系统是 Linux。

我的问题是:

  1. sshd需要重启吗?
  2. 如果sshd是重启,那个时候有没有服务中断?
  3. 有没有办法使用 ssh 设置无密码身份验证,而无需sshd在添加新公钥后重新启动服务$HOME/.ssh/authorized_keys

linux ssh sshd ssh-keygen

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

通过 SSH 的 U2F/FIDO 转发

是否有任何机制可以通过 SSH 转发对 U2F/FIDO 安全密钥(例如 Yubikey)的访问?我希望能够使用本地安全密钥来授权远程主机上的 sudo 访问。

ssh sshd fido-u2f

8
推荐指数
1
解决办法
2211
查看次数

chroot sftp 用户的“client_loop:发送断开连接:管道损坏”,密码正确吗?

我正在为 sftp 设置 chroot,并使用了教程的组合(source1source2),最终得到了以下配置/etc/ssh/sshd_config

Match Group sftpusers
      ForceCommand internal-sftp
      ChrootDirectory /var/sftp/
      PermitTunnel no
      AllowAgentForwarding no
      AllowTcpForwarding no
      X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

sftp 基本文件夹/var/sftp和用户创建如下:

Match Group sftpusers
      ForceCommand internal-sftp
      ChrootDirectory /var/sftp/
      PermitTunnel no
      AllowAgentForwarding no
      AllowTcpForwarding no
      X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试登录时,我最终会进入该/var/sftp文件夹,该文件夹演示了登录的工作原理。

由于我希望用户最终进入该文件夹,因此我尝试在该行下/var/sftp/<userid>设置以下配置:sshd_configMatch Group

ChrootDirectory /var/sftp/%u
Run Code Online (Sandbox Code Playgroud)

client_loop: send disconnect: Broken pipe当我这样做时,我在尝试登录时收到错误。根据ssh_config变量应该被接受的手册页,如下:

ChrootDirectory 接受标记 %%、%h 和 %u。

有任何想法吗?

环境:

  • 操作系统:Ubuntu 18.04.4 LTS
  • sshd:OpenSSH_7.6p1 Ubuntu-4ubuntu0.3,OpenSSL 1.0.2n 2017 年 12 月 …

chroot ssh sshd

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

如何为各种 SSH 连接使用不同的 SSH 横幅?

关于/etc/ssh/sshd_config 在指定范围内Banner /etc/issue

由于在输入 SSH 登录值后才会显示 SSH 横幅,

是否可以根据为 SSH 登录输入的用户名显示不同的(唯一的)横幅?

或者是否可以根据连接的 IP 地址使用特定的横幅?

在 RHEL/CentOS 7.8 中使用的 SSH 版本是否有可能以某种方式实现?

sshd

8
推荐指数
2
解决办法
1418
查看次数

sshd:“没有主机密钥 alg”已修复但仍然很困惑

显然 Fedora 35 没有在 HostKeyAlgorithms 或 PubkeyAcceptedKeyTypes 中列出 ssh-rsa,因此尝试从旧的 CentOS 6 机器进行 ssh 会产生错误:

$ ssh as1s16.intra.corp.us
no hostkey alg
Run Code Online (Sandbox Code Playgroud)

所以我在 /etc/ssh/sshd_config 中的 Include 之后添加了选项:

Include /etc/ssh/sshd_config.d/*.conf

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
Run Code Online (Sandbox Code Playgroud)

但同样的错误。然后我像这样运行 sshd :

# /usr/sbin/sshd -ddd
...
debug3: /etc/ssh/sshd_config:20 setting HostKeyAlgorithms +ssh-rsa
debug3: /etc/ssh/sshd_config:21 setting PubkeyAcceptedKeyTypes +ssh-rsa
...
debug1: SELinux support disabled [preauth]
...
debug3: append_hostkey_type: ssh-rsa key not permitted by HostkeyAlgorithms [preauth]
debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
Run Code Online (Sandbox Code Playgroud)

但同样的错误。然后我删除了运行 sshd 的选项,如下所示:

# /usr/sbin/sshd -ddd -oHostKeyAlgorithms=ssh-rsa
Run Code Online (Sandbox Code Playgroud)

它起作用了。我能够从 CentOS 6 客户端成功 ssh …

configuration sshd

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