如何在Linux中进行系统安全管理?代码举例讲解

在Linux中,可以通过以下几种方式进行系统安全管理:

  1. 设置访问控制:
  • chmod : 修改文件/目录访问权限。
  • chown : 修改文件/目录所有者和所属组。
  • setfacl : 设置文件访问控制列表(ACL)。
  • sudo : 以其他用户身份运行命令。
    例如:
chmod 600 file    # 设置文件只有所有者可读写
chown user:group file   # 修改文件所有者和所属组  
setfacl -m u:user:rwx file  # 设置user对file的rwx权限  

sudo su  # 切换至root用户
sudo -u user command  # 以user用户执行command命令 
  1. SSH安全:
  • 使用密钥认证而非密码认证。ssh-copy-id user@host
  • 禁用密码认证。sudo nano /etc/ssh/sshd_config ,设置PasswordAuthentication no
  • 更改默认SSH端口。Port 22222 ,重启SSH服务。
  • 启用SSH登录限制。sudo nano /etc/ssh/sshd_config , 设置 MaxAuthTries 3 等。
    例如:
# 生成SSH密钥并拷贝至远程主机  
ssh-keygen  
ssh-copy-id root@192.168.1.100   

# 禁用密码认证
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no 

# 更改SSH默认端口
Port 22222
  1. 日志审计:
  • 查看系统日志。tail -f /var/log/syslog
  • 查看登录日志。tail -f /var/log/auth.log
  • 启用审计。sudo nano /etc/audit/auditd.conf ,设置audit = 1
  • 审计SSH登录。sudo nano /etc/audit/audit.rules ,添加规则 -a always,exit -F arch=b64 -S sethostname,setdomainname -k myhost
    例如:
# 查看登录日志
tail -f /var/log/auth.log  

# 启用审计  
sudo nano /etc/audit/auditd.conf  
audit = 1  

# 审计SSH登录
sudo nano /etc/audit/audit.rules

-a always,exit -F arch=b64 -S sethostname,setdomainname -k myhost