### Linux安全手册知识点详解
#### 一、系统日志与安全审计
- **日志查看**: 使用`more /var/log/secure | grep refused`命令来查看系统拒绝的连接记录,这是进行安全审计的重要一步。
- **日志的重要性**: 日志能够帮助管理员了解系统的访问情况,及时发现并响应潜在的安全威胁。
#### 二、BIOS设置与系统初始化安全
- **BIOS安全**: 在BIOS层面设置密码或禁用某些功能可以增加系统的安全性,防止非法访问。
- **系统初始化**: 初始化时确保系统只安装必要的服务和程序,避免不必要的安全隐患。
#### 三、用户管理
- **用户权限**: 合理分配用户权限,确保普通用户无法执行关键操作,如修改重要文件或关闭系统。
- **用户删除**: 使用`userdel username`和`groupdel username`命令来删除用户及其所属的组,减少潜在的安全风险。
- **最小权限原则**: 应用最小权限原则,即用户仅能访问完成其工作所需的最少资源。
#### 四、重要文件保护
- **文件属性设置**: 使用`chattr +i filename`命令来锁定重要配置文件(例如`/etc/passwd`、`/etc/shadow`等),防止未经授权的更改。
- **文件保护的意义**: 这种方式能够有效防止恶意用户对这些文件进行篡改,保障系统的稳定性和安全性。
#### 五、防止意外重启
- **配置文件修改**: 修改`/etc/inittab`中的`cactrlaltdel:/sbin/shutdown -t3 -r now`行,确保在没有管理员许可的情况下无法通过Ctrl+Alt+Del组合键重启计算机。
- **目录权限设置**: 设置`/etc/rc.d/init.d/`目录下的所有文件为只读模式(`chmod -R 700 /etc/rc.d/init.d/*`),进一步增强系统的安全性。
#### 六、超级用户权限管理
- **su命令限制**: 编辑`/etc/pam.d/su`文件,通过PAM模块控制哪些用户可以通过su命令切换到root账户。
- **具体配置**: 示例配置如下:
```bash
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=isadmin
```
这意味着只有属于isadmin组的用户才能使用su命令切换到root账户。
#### 七、清除系统启动信息
- **编辑启动脚本**: 编辑`/etc/rc.d/rc.local`文件,移除显示系统信息的部分,以减少敏感信息泄露的风险。
- **具体操作**: 删除以下行:
```bash
echo "Kernel $(uname -r) on $(uname -m)" > /etc/issue
cp -f /etc/issue /etc/issue.net
```
并执行:
```bash
rm -f /etc/issue
rm -f /etc/issue.net
touch /etc/issue
touch /etc/issue.net
```
#### 八、GRUB密码保护
- **设置密码**: 使用`grub-md5-crypt`工具为GRUB设置密码,以防止未授权访问系统引导菜单。
- **示例密码**: `$1$LlZDJ/$VxlsjlcR9vvWcI/YRHPpm0`
- **配置GRUB**: 在`/boot/grub/grub.conf`文件中添加密码保护:
```conf
password $1$LlZDJ/$VxlsjlcR9vvWcI/YRHPpm0
```
#### 九、NFS共享安全
- **NFS权限**: 对于使用NFS共享的系统,应仔细配置`/etc/exports`文件,确保只有特定主机能够访问,并且限制root权限。
- **示例配置**: 示例配置如下:
```bash
/dir/to/export host1.mydomain.com(rw,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
```
这表示`/dir/to/export`目录对于`host1.mydomain.com`是读写访问,而对于`host2.mydomain.com`则只允许读取,并且对所有主机都设置了`root_squash`选项,即root用户的行为被限制为匿名用户。
#### 十、Inetd服务配置
- **配置文件权限**: 确保`/etc/inetd.conf`文件的权限设置为600,以防止非授权用户访问或修改。
- **服务禁用**: 在`/etc/inetd.conf`中禁用不必要的服务,如FTP、Telnet等,并重新加载inetd服务以应用更改。
```bash
killall -HUP inetd
```
#### 十一、TCP Wrappers配置
- **配置文件**: 使用`/etc/hosts.deny`和`/etc/hosts.allow`文件来控制哪些主机可以访问哪些服务。
- **示例配置**:
```bash
# /etc/hosts.deny
ALL: ALL
# /etc/hosts.allow
sshd: 192.168.1.10/25
```
这样配置后,除了`192.168.1.10`这个地址段内的主机外,其他所有主机都无法访问sshd服务。
通过以上详细的操作步骤和技术要点,我们可以有效地提升Linux系统的安全性,防范各种潜在的安全威胁。