在Linux服务器上设置访问控制通常涉及以下几个方面:
-
用户和组管理:
- 创建用户和组:
sudo useradd username sudo groupadd groupname
- 将用户添加到组:
sudo usermod -aG groupname username
- 创建用户和组:
-
权限管理:
- 设置文件权限:
sudo chmod 755 filename # 设置读、写、执行权限给所有者,读、执行权限给组和其他用户 sudo chmod 644 filename # 设置读、写权限给所有者,读权限给组和其他用户
- 设置目录权限:
sudo chmod 755 directory # 设置读、写、执行权限给所有者,读、执行权限给组和其他用户 sudo chmod 775 directory # 设置读、写、执行权限给所有者,读、写、执行权限给组和其他用户
- 使用
chmod
的符号表示法:r
:读权限w
:写权限x
:执行权限-
:无权限u
:用户(所有者)g
:组o
:其他用户
- 设置文件权限:
-
SELinux和AppArmor:
- SELinux:
- 安装SELinux:
sudo yum install policycoreutils-python-utils sudo setenforce 1 # 开启SELinux
- 配置SELinux策略:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?" sudo restorecon -Rv /var/www
- 安装SELinux:
- AppArmor:
- 安装AppArmor:
sudo apt-get install apparmor apparmor-utils
- 配置AppArmor策略:
sudo aa-complain /etc/apparmor.d/usr.sbin.httpd
- 安装AppArmor:
- SELinux:
-
防火墙设置:
- 使用
iptables
:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP流量 sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许HTTPS流量 sudo service iptables save
- 使用
ufw
:sudo ufw allow 80/tcp # 允许HTTP流量 sudo ufw allow 443/tcp # 允许HTTPS流量 sudo ufw enable
- 使用
-
SSH访问控制:
- 修改SSH配置文件:
sudo nano /etc/ssh/sshd_config
- 设置允许的用户:
AllowUsers username1 username2
- 设置禁用密码登录:
PasswordAuthentication no
- 重启SSH服务:
sudo systemctl restart sshd
- 修改SSH配置文件:
-
使用访问控制列表(ACL):
- 安装
acl
软件包:sudo yum install acl
- 设置ACL:
sudo setfacl -m u:username:--- filename sudo setfacl -m u:groupname:--- filename
- 查看ACL设置:
getfacl filename
- 安装
通过以上步骤,你可以在Linux服务器上设置基本的访问控制。根据具体需求,你可能还需要进行更复杂的配置。