- 1 信息安全简介
- 1.1 信息安全发展史
- 1.2 信息安全等级保护
- 2 安全 OS
- 2.1 UNIX 系统安全
- 2.1.1 设置健壮的密码
- 2.1.2 删除所有的特殊账户
- 2.1.3 关闭不需要的服务
- 2.1.4 远程登陆管理
- 2.1.5 限制 IP 访问
- 2.1.6 日志监控
- 2.2 Linux 系统安全
- Linux 安全设置手册
- Linux 服务器安全加固
- Linux 防火墙
- SELinux
- SSH 免密登陆
- 2.3 Windows 系统安全
- Windows 常见安全隐患
- 防火墙-Microsoft Defender
- 本章参考
- 3 访问控制技术
- 3.1 基于角色的访问控制 RBAC
- 基于 RBAC 的延展-用户组(租户)
- 示例 1:Python Django 后台管理
- 示例 2:Python flask_appbuilder 后台管理
- 3.2 认证
- 3.2.1 认证机制
- 3.2.2 OpenID
- 3.2.3 LDAP
- 3.2.4 Kerberos
- 3.2.5 数字签名
- 3.2.6 基于证书的认证
- 3.3 授权
- 3.3.1 OAuth
- 3.4 HTTPS
- 3.4.1 HTTPS 原理
- 3.4.2 证书
- 3.4.3 自签名证书
- 本节参考
- 案例
- 天网 MAZE 的信用卡机制
- S3 认证机制
- 云盘认证机制
- 双因子认证
- 扫码登陆
- 单点登陆 SSO
- 本章参考
- 4 安全编程
- 4.1 内存管理
- 4.2 安全编程实践
- 4.2.1 使用断言进行防止错误
- 4.3 语言相关的安全编码
- 4.3.1 net 中使用安全函数
- 4.3.2 PHP 代码执行漏洞
- 4.4 源码保护
- Java 源码保护
- python 源码保护
- 本章参考
- 5 安全算法
- 6 安全架构
- 云安全
- 云安全事件案例
- 云计算带来的安全挑战
- 应用:安全云/云查杀
- 业界案例
- 华为的安全白皮书
- 参考资料
- 附录
- 安全相关法律法规
- 个人信息安全
- 云安全标准与组织
- 国际
- 国内
Linux 安全设置手册
表格 Linux 安全设置项列表
设置项 | 设置原因 | 设置内容 |
---|---|---|
Bios Security [可选] | 一定要给 Bios 设置密码,以防通过在 Bios 中改变启动顺序,而可以从软盘启动。这样可以阻止别人试图用特殊的启动盘启动你的系统,还可以阻止别人进入 Bios 改动其中的设置(比如允许通过软盘启动等)。 | |
grub Security [可选] | 这三个参数可以使你的系统在启动 grub 时就要求密码验证。 | $ vi /etc/ grub.conf time-out,restricted,password |
选择正确的密码 [必选] | 修改密码长度:在你安装 linux 时默认的密码长度是 5 个字节。但这并不够,要把它设为 8。 | $ vi /etc/login.defs PASS_MIN_LEN 8 |
打开密码的 shadow 支持功能 [必选] | 打开密码的 shadow 功能,来对 password 加密。 | 工具: /usr/sbin/authconfig 转化 shadow 格式: $ pwcov ,grpconv |
root 账户 [必选] | 系统管理员在离开系统之前忘记注销 root 账户,系统会自动注销。 | $ vi /etc/profile TMOUT=3600 # 单位为秒 |
取消普通用户的控制台访问权限 [必选] | 应该取消普通用户的控制台访问权限,比如 shutdown、reboot、halt 等命令。 | $ rm -f /etc/security/console.apps/ |
TCP_WRAPPERS [必选] | 使用 TCP_WRAPPERS 可以使你的系统安全面对外部入侵。 | |
禁止系统信息暴露 [红帽默认] | 当有人远程登陆时,禁止显示系统欢迎信息。 在最后加 -h 可以使当有人登陆时只显示一个 login: 提示,而不显示系统欢迎信息。 | $ vi /etc/inetd.conf telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h |
在缺省情况下,当你登陆到 linux 系统,它会告诉你该 linux 发行版的名称、版本、内核版本、服务器的名称。 | # 注释输出到 issue 项$ vi /etc/rc.d/rc.local <br/>$ rm -f /etc/issue <br/>$rm -f /etc/issue.net | |
/etc/services 文件免疫 [可选] | 防止未经许可的删除或添加服务 | $ chattr +i /etc/services |
不允许从不同的控制台进行 root 登陆 [可选] | 在不需要登陆的 TTY 设备前添加 # 标志,来禁止从该 TTY 设备进行 root 登陆。 | $ vi /etc/securetty |
禁止任何人通过 su 命令改变为 root 用户 [可选] | 编辑 su 配置文件。 #这表明只有 wheel 组的成员可以使用 su 命令成为 root 用户。你可以把用户添加到 wheel 组,以使它可以使用 su 命令成为 root 用户。 | $ vi /etc/pam.d/su auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/Pam_wheel.so group=wheel |
禁止 Control-Alt-Delete 键盘关闭命令 [可选] | 注释命令。 # 激活修改 $ /sbin/init q | $ vi /etc/inittab #ca::ctrlaltdel:/sbin/shutdown -t3 -r now |
设置脚本权限 | 给执行或关闭启动时执行的程序的 script 文件设置权限。 | $ chmod -R 700 /etc/rc.d/init.d/* |
禁止不使用的 SUID/SGID 程序 | 如果一个程序被设置成了 SUID root,那么普通用户就可以以 root 身份来运行这个程序。网管应尽可能的少使用 SUID/SGID 程序,禁止所有不必要的 SUID/SGID 程序。 $ find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \; | 查找使用's'位的程序$ find / -perm -4000 -print 禁止选中的带有's'位的程序$ chmod a-s [program] |
修改 host.conf | 第一项设置首先通过 DNS 解析 IP 地址,然后通过 hosts 文件解析。 第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个 IP 地址(比如有多个以太口网卡)。 第三项设置说明要注意对本机未经许可的电子欺骗。 | $ vi /etc/host.conf order bind,hosts multi on nospoof on |
TCP_WRAPPERS 设置 | 详见 备注 1 | |
Shell logging [可选] | 详见 备注 2 |
备注 :TCP_WRAPPERS 设置: 使用 TCP_WRAPPERS 可以使你的系统安全面对外部入侵。
最好的策略就是阻止所有的主机(在 /etc/hosts.deny
文件中加入 ALL: ALL@ALL, PARANOID
),然后再在 /etc/hosts.allow
文件中加入所有允许访问的主机列表。
第一步:编辑 hosts.deny
文件( vi /etc/hosts.deny
),加入下面这行
# 这表明除非该地址包好在允许访问的主机列表中,否则阻塞所有的服务和地址。
# Deny access to everyone.
ALL: ALL@ALL, PARANOID
第二步:编辑 hosts.allow
文件( vi /etc/hosts.allow
),加入允许访问的主机列表,比如:
# 202.54.15.99 和 foo.com 是允许访问 ftp 服务的 ip 地址和主机名称。
ftp: 202.54.15.99 foo.com
第三步:tcpdchk 程序是 tepd wrapper 设置检查程序。它用来检查你的 tcp wrapper 设置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令:
[Root@kapil /]# tcpdchk
Shell logging [可选]
Bash shell 在 ~/.bash_history
( ~/
表示用户目录)文件中保存了 500 条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个 .bash_history
文件。bash shell 应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。
第一步: /etc/profile
文件中的 HISTFILESIZE
和 HISTSIZE
行确定所有用户的 .bash_history
文件中可以保存的旧命令条数。强烈建议把把 /etc/profile
文件中的 HISTFILESIZE
和 HISTSIZE
行的值设为一个较小的数,比如 30。编辑 profile 文件( vi /etc/profile
),把下面这行改为:
# 这表示每个用户的".bash_history"文件只可以保存 30 条旧命令。
HISTFILESIZE=30
HISTSIZE=30
第二步:当用户每次注销时,删除 .bash_history
文件。
编辑 .bash_logout
文件 ( vi /etc/skel/.bash_logout
),添加下面这行:
rm -f $HOME/.bash_history
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论