保护 Alpine Linux

来自 Alpine Linux

使用安全技术实施指南 (STIG) 保护 Alpine Linux 涉及多个步骤。STIG 是一系列安全要求和配置,有助于保护系统安全。虽然可能没有针对 Alpine Linux 的特定 STIG,但您可以遵循通用的 Linux 加固指南并应用其他 Linux STIG 的原则。以下是分步过程

步骤 1:更新和升级系统

1. 更新软件包列表

doas apk update


2. 升级已安装的软件包

doas apk upgrade

步骤 2:安装必要的安全工具

1. 安装 audit 软件包

doas apk add audit


2. 安装其他必要的安全软件包

doas apk add doas logrotate bash-completion openssh-server

步骤 3:用户和访问管理

1. 禁用通过 SSH 的 root 登录

编辑 /etc/ssh/sshd_config

doas vi /etc/ssh/sshd_config

设置以下参数

      PermitRootLogin no


2. 确保密码复杂度

编辑 /etc/security/pwquality.conf

doas vi /etc/security/pwquality.conf

添加或更新以下行

  minlen = 14
  dcredit = -1
  ucredit = -1
  ocredit = -1
  lcredit = -1


3. 锁定未使用的系统帐户

  for user in `awk -F: '($3 < 1000) {print $1}' /etc/passwd`; do
      if [ $user != "root" ]; then
          doas passwd -l $user
          doas chage -E 0 $user
      fi
  done

步骤 4:文件系统和目录权限

1. 在重要目录上设置适当的权限

  doas chmod 700 /root
  doas chmod 600 /boot/grub/grub.cfg
  doas chmod 600 /etc/ssh/sshd_config


2. 配置挂载选项

编辑 /etc/fstab

doas vi /etc/fstab

将 `nosuid`、`nodev` 和 `noexec` 选项添加到非 root 分区

  /dev/sda1 /home ext4 defaults,nosuid,nodev,noexec 0 2

步骤 5:网络安全

1. 禁用不必要的服务

doas rc-update del <service_name> doas rc-service <service_name> stop


2. 配置防火墙 (iptables)

doas apk add iptables doas rc-service iptables start doas rc-update add iptables


创建一个基本防火墙规则集

doas vi /etc/iptables/rules.v4

示例规则

  *filter
  :INPUT DROP [0:0]
  :FORWARD DROP [0:0]
  :OUTPUT ACCEPT [0:0]
  -A INPUT -i lo -j ACCEPT
  -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  -A INPUT -p tcp --dport 22 -j ACCEPT
  COMMIT

步骤 6:日志记录和审计

1. 配置系统日志记录

编辑 /etc/rsyslog.conf 以确保捕获所有日志文件

doas vi /etc/rsyslog.conf

示例配置

  *.info;mail.none;authpriv.none;cron.none /var/log/messages
  authpriv.* /var/log/secure
  mail.* -/var/log/maillog
  cron.* /var/log/cron


2. 设置审计规则

编辑 /etc/audit/rules.d/audit.rules

doas vi /etc/audit/rules.d/audit.rules

示例规则

  -w /etc/passwd -p wa -k passwd_changes
  -w /etc/shadow -p wa -k shadow_changes
  -w /etc/group -p wa -k group_changes

步骤 7:应用内核和服务加固

1. 禁用未使用的文件系统

编辑 /etc/modprobe.d/disable-filesystems.conf

doas vi /etc/modprobe.d/disable-filesystems.conf

添加以下行

  install cramfs /bin/true
  install freevxfs /bin/true
  install jffs2 /bin/true
  install hfs /bin/true
  install hfsplus /bin/true
  install squashfs /bin/true
  install udf /bin/true
  install vfat /bin/true


2. 配置内核参数

编辑 /etc/sysctl.conf

doas vi /etc/sysctl.conf

添加或更新以下参数

  net.ipv4.ip_forward = 0
  net.ipv4.conf.all.accept_source_route = 0
  net.ipv4.conf.all.accept_redirects = 0
  net.ipv4.conf.all.secure_redirects = 0
  net.ipv4.conf.all.log_martians = 1
  net.ipv4.conf.default.log_martians = 1
  net.ipv4.icmp_echo_ignore_broadcasts = 1
  net.ipv4.icmp_ignore_bogus_error_responses = 1
  net.ipv4.tcp_syncookies = 1
  net.ipv4.conf.all.send_redirects = 0
  net.ipv4.conf.default.send_redirects = 0

步骤 8:定期维护

1. 设置定期更新

创建用于定期更新的 cron 作业

doas crontab -e

添加以下行以每天凌晨 2 点更新

  0 2 * * * apk update && apk upgrade

2. 定期审查和监控日志

确保日志被轮换并经常审查

doas logrotate /etc/logrotate.conf

结论

此过程为保护 Alpine Linux 系统奠定了基础。定期审查和更新,以及遵守最新的安全指南,对于维护安全环境至关重要。