AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1001233
Accepted
CrazyRabbit
CrazyRabbit
Asked: 2020-02-01 05:01:06 +0800 CST2020-02-01 05:01:06 +0800 CST 2020-02-01 05:01:06 +0800 CST

如何在 hosts.deny 中允许主机名反向 DNS

  • 772

我希望阻止所有sshd连接,但将一个动态 IP 分配给 a <subdomain>.ddns.net,因此我将其放入/etc/hosts.deny:

sshd: ALL EXCEPT <subdomain>.ddns.net

这不允许我连接到 SSH。
相反,如果我dig <subdomain>.ddns.net通过该主机名放置 IP 解析(a 确认),它可以工作:

sshd: ALL EXCEPT <ipv4.resolved.by.hostname>

我也尝试过 withUseDNS yes或noin sshd_config,但它没有任何改变。

防火墙 (UFW) 按规则打开ufw limit ssh

我的实际/etc/ssh/sshd_config如下:

Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
KexAlgorithms [email protected]
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
PermitRootLogin no
AllowUsers remotessh
IgnoreRhosts yes
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding no
PrintMotd no
PubkeyAuthentication yes
AllowTcpForwarding no
AllowStreamLocalForwarding no
GatewayPorts no
PermitTunnel no
UseDNS no

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem       sftp    /usr/lib/openssh/sftp-server
ssh hosts.deny
  • 3 3 个回答
  • 1283 Views

3 个回答

  • Voted
  1. Best Answer
    mti2935
    2020-07-07T05:06:17+08:002020-07-07T05:06:17+08:00

    问题很可能是由于您连接的 ip 地址反向到 xxx.yourisp.com,而不是 subdomain.ddns.net。

    当您尝试从您的(动态)IP 地址连接到 sshd 时,tcpwrappers 会对您的 IP 地址进行反向 dns 查找。如果这解析为 xxx.yourisp.com,那么它不会在 hosts.allow 或(可能是hosts.deny)中找到匹配项,因此它不会允许从您的 ip 连接到 sshd。

    作为一种解决方法,您可能需要考虑将 subdomain.ddns.net 添加到您的 /etc/hosts 文件中,并创建一个每隔几分钟运行一次的 cron 作业,并在此条目更改时使用您的动态 IP 地址更新该条目。这不是一个非常优雅的解决方案,但是当我最近自己遇到这个问题时,这是我能想到的最好的解决方案。如果有人知道更清洁的解决方案,请发表评论。

    • 1
  2. Stefano Martins
    2020-02-01T06:05:47+08:002020-02-01T06:05:47+08:00

    您将同时使用/etc/hosts.allow并/etc/hosts.deny完成此操作。在/etc/hosts.allow处,输入以下内容:

    sshd: blablabla.ddns.net
    

    在 /etc/hosts.deny 中,插入以下内容:

    sshd: ALL
    

    它将起作用,因为/etc/hosts.allow重叠/etc/hosts.deny。但是有一个问题:如果您的服务器位于发夹式 NAT 后面(有些人也称其为 NAT 反射),那么您的网关的内部 IP 地址将出现一些连接到您的服务器,因此可能很难阻止。

    另一种选择是使用 iptables,如下所示:

    iptables -t filter -A INPUT -s blablabla.ddns.net -p tcp --dport 22 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --dport -j DROP
    

    请注意,iptables 会考虑其规则的顺序。

    祝你好运。

    • 0
  3. Josef Tember
    2022-07-16T03:45:38+08:002022-07-16T03:45:38+08:00

    我正在使用脚本将域列表添加到 ip 列表并将其包含到 hosts.allow

    描述在这里:

    https://serverfault.com/a/1105670/974219

    • 0

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve