小编Chr*_*her的帖子

为什么当 SSH 连接中断时,控制台有时会永远挂起?

我已经在许多控制台(在 Linux、Mac 上……)以及许多不同网络中的许多不同机器上看到了这一点。我永远无法确定发生这种情况的确切原因:您所要做的就是通过 SSH 登录到一台机器。如果由于某种原因连接中断(为简单起见,假设网络电缆被拉出),那么有时控制台会永远挂起 - 在其他时候,它只是正常退出到父 shell。

发生这种情况时很烦人(例如,您丢失了命令历史记录。)是否有可以强制退出的秘密键盘快捷键(Ctrl-C 或 Ctrl-D 不起作用)?无论如何,所有实现中出现这个随机“错误”的原因是什么?

networking ssh console connection

114
推荐指数
4
解决办法
7万
查看次数

Iptables 调试器

我正在寻找一种通过 iptables 规则跟踪数据包的简单方法。这与日志记录无关,因为我不想记录所有流量(而且我只想为很少的规则设置 LOG 目标)。

类似于用于 Iptables 的 Wireshark。或者甚至可能类似于编程语言的调试器。

谢谢克里斯

注意:它不一定是一个花哨的 GUI 工具。但它必须做的不仅仅是显示一个包裹柜台左右。

更新:看起来好像我们找不到任何提供所需功能的东西。在这种情况下:让我们至少找到一种基于 iptables 日志记录的好技术——它可以很容易地打开和关闭,并且不需要冗余地编写 iptables 规则(必须为-j LOGand编写相同的规则-j ...

ip debugging iptables packet-analyzer

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

iptables:“-p udp --state ESTABLISHED”

让我们看看这两个经常用于允许传出 DNS 的 iptables 规则:

iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 
   -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -p udp --sport 53 --dport 1024:65535
   -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

我的问题是:我究竟应该如何理解 UDP 中的 ESTABLISHED 状态?UDP 是无状态的。

这是我的直觉 - 我想知道这是否或哪里不正确:

手册页告诉我:

状态

该模块与连接跟踪结合使用时,允许访问
此数据包的连接跟踪状态。

  - 状态 ...

因此,iptables 基本上会记住用于传出数据包的端口号(对于 UDP 数据包它还能记住什么?),然后允许在短时间内发回的第一个传入数据包?攻击者必须猜测端口号(这真的太难了吗?)

关于避免冲突:

内核会跟踪哪些端口被阻止(被其他服务或先前传出的 UDP 数据包),以便这些端口不会在时间范围内用于新的传出 DNS 数据包?(如果我不小心尝试在时间范围内在该端口上启动服务会发生什么 - 该尝试会被拒绝/阻止吗?)

请找出以上文本中的所有错误:-) 谢谢,

克里斯

domain-name-system linux iptables udp

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

如何在 Postfix 中强制发件人地址为“logged-in-user@example.org”?

我已经使用 SMTP AUTH(端口 587 上的 STARTTLS)设置了 Postfix 服务器。我所有的用户都在域“example.org”中。我想强制发件人地址为“logged-in-user@example.org”。

我了解到这可以通过 main.cf 选项来实现

smtpd_sender_restrictions = reject_sender_login_mismatch, ...
smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps
Run Code Online (Sandbox Code Playgroud)

使用 login_maps 文件,例如:

a@example.org a
b@example.org b
c@example.org c
...
Run Code Online (Sandbox Code Playgroud)

(另请参阅使用 SMPT AUTH 阻止发件人地址欺骗),但这意味着每次有新用户时我都必须编辑 login_maps 文件。我不需要这么灵活的映射:它应该始终是“logged-in-user@example.org”。有没有更简单的选择?

linux postfix smtp-auth

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

LAN 流量的 IPSec:基本注意事项?

这是我的Encrypting absolute everything...问题的后续。

重要提示:这与更常见的 IPSec 设置无关,您希望在其中加密两个 LAN 之间的流量。

我的基本目标是加密一家小公司局域网的所有流量。一种解决方案可能是 IPSec。我刚刚开始了解 IPSec,在我决定使用它并深入研究之前,我想大致了解一下它的外观。

  • 是否有良好的跨平台支持?它必须适用于 Linux、MacOS X 和 Windows 客户端、Linux 服务器,并且不需要昂贵的网络硬件。

  • 我可以为整台机器启用 IPSec(因此不会有其他流量传入/传出)或网络接口,还是由单个端口的防火墙设置决定/...?

  • 我可以轻松禁止非 IPSec IP 数据包吗?还有“Mallory's evil”IPSec 流量由某个密钥签名,但不是我们的?我的理想构想是让 LAN 上不可能有任何此类 IP 流量。

  • 对于 LAN 内部流量:我会在“传输模式”中选择“带身份验证的 ESP(无 AH)”、AES-256。这是一个合理的决定吗?

  • 对于 LAN-Internet 流量:它将如何与 Internet 网关配合使用?我会用

    • “隧道模式”创建从每台机器到网关的IPSec隧道?或者我也可以使用
    • “传输模式”到网关?我问的原因是,网关必须能够解密来自 LAN 的包,所以它需要密钥来做到这一点。如果目标地址不是网关的地址,这可能吗?或者在这种情况下我必须使用代理吗?
  • 还有什么我应该考虑的吗?

我真的只需要对这些事情进行快速概述,而不是非常详细的说明。

local-area-network encryption ipsec

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

调整 lvm2 逻辑卷和文件系统的大小:确切大小?

在我的 Intranet 服务器上,我有一个 100.00 GiB 的分区 /dev/sda5,我将其用作 lvm2 的物理卷。

  • 它是我的卷组 vg01 中唯一的物理卷。
  • vg01 当前包含一个逻辑卷 lv01,使用完整的 100.00 GiB - 好吧,实际上是 99.99 GiB 由于一些舍入(这就是问题开始的地方)。
  • lv01 包含一个 ext3 文件系统,使用整个空间。

我想将 lv01 减少到大约 97 GiB,所以我可以创建大约 lv02。3 GiB(我需要它来拍摄 lvm 快照)。

到目前为止我做了什么:

e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Run Code Online (Sandbox Code Playgroud)

这很有效。但现在我得跑了

lvreduce --size ? /dev/mapper/vg01-lv01
Run Code Online (Sandbox Code Playgroud)

而且我不确定,我必须指定哪个确切值。该lvreduce手册页明确警告说,所产生的大小不能大于文件系统更小。我也不想让它变得比它必须的更大。但现在我有不同的数字:

  • 97G在 resize2fs 中指定。
  • df -h 说,它是 96 G。
  • df 说,它是 100115936 个 1K 块。
  • lvdisplay(当然)仍然报告逻辑卷的 99.99 GiB。

我必须指定lvreduce什么?

编辑:

当前接受的答案提供了一个很好的解决方法。然而,为了将这些东西集成到可靠的脚本等中,我通常更喜欢使用精确的测量来代替。或者也许已经有一个可靠的 (!) 脚本或工具可以一步执行整个调整大小过程?

ext3 lvm

10
推荐指数
2
解决办法
4333
查看次数

haproxy + stunnel + 保持活动状态?

我想在 haproxy 1.4 前面放置 stunnel 来处理 HTTPS 流量。我还需要 stunnel 添加X-Forwarded-For标头。这可以通过 haproxy 网站上的“stunnel-4.xx-xforwarded-for.diff”补丁来实现。

但是,描述中提到:

请注意,此补丁不适用于 keep-alive,...

我的问题是:这对我来说在实践中意味着什么?我不确定,

  1. 如果这是关于保持活动之间的
    • 客户端和 stunnel
    • stunnel 和 haproxy
    • 或haproxy 和后端服务器?
  2. 这对性能意味着什么:如果我在网页上有 100 个图标,浏览器是否必须协商 100 个完整的 SSL 连接,或者它可以重新使用 SSL 连接,只是创建新的 TCP 连接?

ssl https tcp haproxy stunnel

10
推荐指数
2
解决办法
8713
查看次数

什么是 Debian/Ubuntu 上的运行级别“S”

根据维基百科,'S' 应该是一个标准的运行级别:“单用户模式”。但如果我没记错的话,Debian 上的单用户模式是运行级别 1。我发现的一篇 Debian 文章声称,'S' 是一个运行级别,“系统在通往另一个运行级别的路上使用它”。有趣的...

实际上,到目前为止我一直几乎忽略了这个运行级别,但今天我玩弄了 Firestarter(是的,真的,一个最终用户防火墙)只是因为我很好奇它会生成哪个防火墙规则。但后来我注意到,它在 /etc/rcS.d 中创建了一个启动钩子,我想知道我的防火墙脚本是否也应该有它?

更新

现在我更想知道它在 Debian/Ubuntu 上的实际情况,因为 Shorewall 包(这是一个强烈的“Debianized”包)也在 rcS.d 中创建了它的(唯一!)启动钩子!

ubuntu debian firewall runlevel

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

绝对加密一切,即使在局域网内

有没有人已经尝试过这种方法?我真的在考虑:不是依赖基于网络的 IDS 等,每个数据包都必须使用由我自己的 CA 颁发的证书发起的加密。

  • 每个客户端都获得一个唯一的客户端证书
  • 每台服务器都获得一个唯一的服务器证书
  • 每个服务都需要登录。

SSL 和 SSH 都可以。对互联网的访问将通过通往网关的 SSL 隧道完成。

可行吗?它会产生实际问题吗?如何实现和执行?你怎么认为?

更多细节

我的目标是简化LAN 的安全概念 - 我还不确定,如果这是一个疯狂的想法!但我觉得,保护 HTTPS 或 SSH 服务器免受互联网威胁(如果使用相互身份验证)有时比监控 LAN 的狂野世界中可能发生的一切更容易。

在未加密的 LAN 上,我觉得要领先于潜在攻击者真的很难,因为存在以下威胁:

  • 低级别攻击,如 ARP 欺骗、端口窃取、...
  • WLAN 访问(例如,每个开发人员都将被允许从 (W)LAN 访问 SVN 服务器 - 我认为不会通过 VPN...)

=> 为简单起见,假设 LAN 中始终存在攻击者不是更容易吗?

=> 我是否可以通过将其视为 WAN 来简化(小公司的)LAN 安全概念?或者我宁愿让它复杂化?

IPSec 和替代方案

IPSec 听起来很有前途,但我也对 IPSec 的替代方案感兴趣 - 每个服务单独使用 SSL/SSH 并为网关创建 Stunnel?也许使用 Kerberos?... IPSec 或其他的优势是什么?

如果您能帮助我更好地掌握 IPSec,请参阅我专门针对 IPSec 的后续问题

networking local-area-network encryption

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

在 Debian VPS (Virtuozzo!) 上禁用 IPv6

注意:此问题仍未解决 - 答案已自动接受。

我有一个 Debian Lenny VPS,它由 Parallels/Virtuozzo 虚拟化运行。目前,网络接口没有 IPv6 地址 - 这很好,因为我没有ip6tables配置。

但我假设,有一天我可以醒来,ifconfig 会向我显示接口的 ipv6 地址——因为我无法控制内核或其模块——它们在托管公司的控制之下。这将使服务器完全容易受到来自 IPv6 地址的攻击。

禁用 IPv6(对于接口或整个主机)的最佳方法是什么?通常我会简单地禁用内核模块,但在这种情况下这是不可能的。

更新

也许我应该补充一点,我可以iptables正常使用所有东西(我是 VPS 的 root),但是由于 Virtuozzo 的工作方式(共享内核),我无法更改内核或加载内核模块

lsmod 总是什么都不返回。

我无法调用ip6tables -L(它说我需要 insmod,或者必须升级内核)。

我不认为,改变/etc/modprobe.d/aliases会产生任何影响,或者是吗?

网络配置?

我想,也许我可以从 /etc/network/ 关闭 IPv6... 这可能吗?

vps debian ipv6 virtuozzo

6
推荐指数
1
解决办法
5294
查看次数

基于会话cookie的负载均衡?

我有一个要在多台服务器上运行的网络应用程序。我想确保使用相同会话(值为 JSESSIONID=x 的 HTTP cookie 标头)的请求始终与同一服务器通信。也就是说,直到会话在某些情况下“移动”到不同的服务器(不仅在服务器出现故障时,而且由于某些服务器端缓存和性能策略)。

我的 Web 应用程序在这种情况下运行良好,但我应该使用哪种负载均衡器?显然,我可以在应用程序级别进行负载平衡,但我正在寻找更有效的方法。也许是专门的硬件(也许不是)?我不能花很多钱...

更新

感谢您到目前为止的回答:我现在发现,可以配置PoundHAProxy来查找某些 cookie。我还没有找到,他们是否还允许动态更新映射(当会话“移动”到不同的应用程序服务器时)?

是否有(便宜的)硬件解决方案,也可以做到这一点?(这会比额外的负载平衡服务器的成本更低吗?)

networking web-applications load-balancing

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