/etc/sysctl.conf 中的 Linux 网络主机安全设置

Meh*_*hdi 2 security linux sysctl

在寻找更多保护 Linux 服务器的方法时,我发现了以下/etc/sysctl.conf配置。它就这样来了,没有太多解释。在生产环境(使用 Ubuntu 12.04 LTS)上使用它之前,我想知道它在 Web 服务器上的含义。

# Avoid a smurf attack
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Turn on protection for bad icmp error messages
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Turn on syncookies for SYN flood attack protection
net.ipv4.tcp_syncookies = 1

# Turn on and log spoofed, source routed, and redirect packets
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# No source routed packets here
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Turn on reverse path filtering
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Make sure no one can alter the routing tables
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# Don't act as a router
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0


# Turn on execshild
kernel.exec-shield = 1
kernel.randomize_va_space = 1

# Tune IPv6
net.ipv6.conf.default.router_solicitations = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 0
net.ipv6.conf.default.accept_ra_pinfo = 0
net.ipv6.conf.default.accept_ra_defrtr = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.default.max_addresses = 1
Run Code Online (Sandbox Code Playgroud)
  1. 什么是 smurf 攻击?
  2. 为什么坏的 icmp 错误消息是坏的?换句话说,禁用它有什么好处?
  3. 什么是 syncookies 或 SYN flood 攻击?
  4. 为什么要打开和记录欺骗、源路由和重定向数据包?为什么重定向和源路由数据包不好?
  5. 什么是反向路径过滤?
  6. 什么是 execshild 和 randomize_va_space?
  7. 总的来说,您想为您的服务器添加更多内容还是从中删除一些设置?为什么?

如果有人可以对此处的每个设置进行解释(或解释它们的资源),我们将不胜感激。


更新:

我发现这个文档对于理解 IP 相关设置非常有帮助:http : //www.frozentux.net/ipsysctl-tutorial/ipsysctl-tutorial.html

Dav*_*rtz 8

  1. smurf 攻击是有人将数据包发送到广播地址,通常带有欺骗性的源,以诱骗您发送大量回复。

  2. 错误消息会阻塞您的日志。忽略它们会使日志保持整洁。无论如何,您都无法修复互联网。

  3. SYN 泛洪攻击是攻击者使用大量 TCP 连接请求攻击服务器的攻击。这个想法是消耗服务器上的内存,迫使它跟踪所有连接请求。SYN cookie 允许服务器在不使用任何内存的情况下处理连接请求。

  4. 源路由数据包是不好的,因为它们可以被外部人员用来导致您的内部网络策略被忽略或违反。记录欺骗、源路由或重定向数据包是有意义的,因为与错误的 ICMP 错误消息不同,这些通常表明有人在故意做某事,而不是配置错误或路由器损坏。

  5. 如果在不用于向该源发送数据包的接口上接收到数据包,则反向路径过滤会导致路由器丢弃数据包。就个人而言,我总是禁用它。根据我的经验,它带来的问题远远多于它解决的问题,例如,破坏 IP 多路径。

  • 值得一提的是,smurf 攻击的重点是少数攻击者将相关服务器用作具有 ICMP 回声回复泛洪的 DDoS 的假“源”。通过向易受攻击的子网发送特制的广播 ping(使用受害者的源地址),子网上的每台机器都会“回复”受害者。因此,少数攻击者很容易将 DDoS 攻击为受害者;对于这种 DDoS,他们不需要大型僵尸网络。这也允许他们向目标(但不是减轻 smurf 的 ISP)掩盖实际攻击者的身份。 (3认同)