下面是一些需要考虑的sysctl设置。#/etc/sysctl.d/99-sysctl.conf#防止自动加载行规程#https://lore.kernel.org/patchwork/patch/1034150dev.tty.ldisc_autoload=0#对FIFO、硬链接、常规文件和符号链接的额外保护#https://patchwork.kernel.org/patch/10244781#略高于";1";对于eachfs.protected_fifos=2fs.protected_hardlinks=1fs.protected_regular=2fs.protected_symlinks=1#,防止非特权用户查看dmesg buffer#(linux强化的缺省)kernel.dmesg_restricte=1#禁用kexec系统调用(可用于替换正在运行的内核)#https://lwn.net/Articles/580269#(linux强化的缺省)kernel.kexec_LOAD_DISABLED=1#限制暴露内核指针#https://lwn.net/Articles/420403#(linux强化的缺省)kernel.kptr_restricted=2#限制使用。由非特权用户创建的性能事件系统#https://lwn.net/Articles/696216#(linux强化的默认)内核.perf_event_paranoid=3#禁用";魔术SysRq键";Functionality#https://security.stackexchange.com/questions/138658#https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1861238#如果不需要使用此功能,请取消注释#kernel.sysrq=0#加强bpf JIT编译器并限制非特权使用bpf#https://www.zerodayinitiative.com/advisories/ZDI-20-350#https://lwn.net/Articles/660331#(linux强化的default)net.core.bpf_jit_harden=2kernel.unprivileged_bpf_disabled=1#。禁用非特权用户命名空间#https://lwn.net/Articles/673597#(linux强化的默认设置)内核.unvileged_userns_clone=0#启用yama ptrace限制#https://www.kernel.org/doc/Documentation/security/Yama.txt#(linux强化的默认设置)#设置为";3和#34;如果不需要使用ptrace dkernel.yama.ptrace_scope=1#反向路径过滤以防止某些IP欺骗攻击#(在某些distributions)net.ipv4.conf.all.rp_filter=1net.ipv4.conf.default.rp_filter=1#中默认禁用ICMP重定向和RFC1620共享介质redirectsnet.ipv4.conf.all.accept_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.all.send_redirects=0net.ipv4.conf.all.shared_media=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.default.secure。_redirects=0net.ipv4.conf.default.send_redirects=0net.ipv4.conf.default.shared_media=0net.ipv6.conf.all.accept_redirects=0net.ipv6.conf.default.accept_redirects=0#不允许源路由packetsnet.ipv4.conf.all.accept_source_route=0net.ipv4.conf.default.accept_source_route=0net.ipv6.conf.all.accept_source_route=0net.ipv6.conf.default.accept_source_route=0#忽略发送到广播地址的ping(蓝精灵攻击常见)net.ipv4.icmp_ECHO_IGNORE_。广播=1#忽略伪造的ICMP错误responsesnet.ipv4.icmp_ignore_bogus_error_responses=1#防范tcp中的时间等待暗杀风险#https://tools.ietf.org/html/rfc1337net.ipv4.tcp_rfc1337=1#选择性tcp ack已导致可远程利用的崩溃#https://lwn.net/Articles/791409#取消注释以潜在地防范将来的攻击#(可能会在高度拥塞的网络中引入性能攻击)#net.ipv4.tcp_sack=0#禁用tcp时间戳以避免泄露某些系统信息#https://www.。whonix.org/wiki/Disable_TCP_and_ICMP_Timestampsnet.ipv4.tcp_timestamps=0#提高了mmap#https://lwn.net/Articles/667790#的aslr有效性(linux-hardedICMP忽略default)vm.mmap_rnd_bits=32vm.mmap_rnd_compat_bits=16#回应请求#如果此系统不这样做,则取消注释';不需要响应ping#net.ipv4.icmp_ECHO_IGNORE_ALL=1#禁用在网络接口上创建IPV6地址#如果IPV6不在use#net.ipv6.conf.all.disable_ipv6=1#net.ipv6.conf.default.disable_ipv6=1#net.ipv6.conf.lo.disable_ipv6=1中,则取消注释。
丰富的内核文档甚至有关于每个选项的更多信息。要将新配置应用到正在运行的系统,Run:更改也将在下次重新启动时自动获取。大多数系统都应该在适当的位置安装某种防火墙。对于Linux上的此任务,有许多选择。我找到的最简单的前端叫做UFW,它使用类似OpenBSD PF的语法,只需要一分钟就能上手。#Pacman-S UFW#sed-i-e';s/^\([^#].*\)/#\1/g';/etc/ufw/sysctl.conf#UFW拒绝输入#ufw允许输出#systemctl enable UFW#ufw enable。
这将创建阻止传入连接并允许传出连接的基本防火墙规则集。如果这就是您想要的,那么您就完成了。(关于UFW的一个恼人的部分是它附带的/etc/ufw/sysctl.conf文件。该文件将覆盖mainsysctl配置中的某些值,因此我注释掉了那里的所有内容。)。如果您永远不会真正阅读UFW创建的日志,不妨关闭该功能。另一个需要考虑的选项是对传出流量采取更严格的策略:只允许在您实际使用的端口上进行连接,并且只允许连接到您想要允许的主机。这里