在寻找更多保护Linux服务器的方法时,我发现了下面的/etc/sysctl.confconfiguration。 就这样,没有太多的解释。 在生产环境中使用它(使用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
如果有人可以在这里给出一个解释(或解释他们的资源),这将是非常感谢。
更新:
我发现这个文件非常有助于理解IP相关的设置: http : //www.frozentux.net/ipsysctl-tutorial/ipsysctl-tutorial.html
smurf攻击是有人发送数据包到一个广播地址,通常与欺骗性的来源,诱使你发送大量的答复。
堵塞您的日志与错误消息。 忽略它们可以保持日志整齐。 这不像你可以修复互联网。
SYN Flood攻击是指攻击者利用大量的TCP连接请求攻击服务器。 这个想法是消耗服务器上的内存,迫使它跟踪所有的连接请求。 SYN Cookie允许服务器处理连接请求而不使用任何内存。
源路由数据包是不好的,因为它们可以被外部使用,导致您的内部networking策略被忽略或违反。 logging欺骗,源路由或redirect数据包是有道理的,因为与坏的ICMP错误消息不同,这通常表示某人正在故意做某事,而不是configuration错误或路由器损坏。
反向path过滤会导致您的路由器丢弃一个数据包,如果它在一个您不会用来发送数据包的接口上收到的话。 就个人而言,我总是禁用它。 以我的经验来看,它创造的问题比解决问题多得多,例如,打破IP多path。