近半个月准备翻译一下近期在github上比较火的一个项目How-To-Secure-A-Linux-Server 现在翻译完成了引言部分,不知道会不会坚持不下去,加油吧。
如何保护Linux服务器
一个不断完善的用于如何保护Linux服务器的操作指南,希望可以教你一些安全性的知识及其重要性。
目录
引言
指南目标
此指南目的是教你如何保护Linux服务器。
你可以采取很多措施来保护Linux服务器,此指南将尝试尽量将它们所有都包含进来。在我学习或别人贡献的过程中,更多的主题/资料将添加进来。
(目录)
为什么要保护你的服务器
我假设你正在使用这个指南,希望你已经了解为什么良好的安全性很重要。这是本身一个很沉重的话题,将其分解为超出本指南讨论范围。如果你不知道这个问题的答案,我建议你先研究它一下。
第二,在高层次上,一台设备,比如一台服务器,在公共域下——既外部世界可以看到——他就会成为恶意行为者的目标。对于想访问你数据或者把你的设备当做另一个大型DDOS攻击的节点的恶意行为者,一个不安全的设备就是一个游乐场。
更糟的是,如果没有好的安全性,你可能永远不会知道你的服务器是否已经被入侵。恶意行为者可能会未经授权访问你的服务器,并且在不改变任何东西的前提下复制你的数据,所以你永远也不会知道。或者你的服务器可能是一场DDOS攻击的一部分而你对此毫不知情。看看许多大规模数据泄露的新闻,公司常常不会察觉数据泄露或者入侵,直到恶意行为者离开后很久。
与通常看法相反,恶意行为者并不总是想改变什么东西或是将你的数据锁住来换取金钱。有时他们仅仅是想要你服务器上的数据用于他们的数据仓库(大数据中存在大笔资金)或者隐蔽的使用你的服务器为一些邪恶的目的。
(目录)
为什么还有另一个指南
此指南可能看似重复/不必要,因为网上有无数的文章会告诉你如何保护Linux服务器,但是信息分布于不同的文章的,涵盖不同的东西,以不同的方式。谁有时间看数百篇文章?
当我对Debian版本研究的时候,我记下了笔记。最后我意识到,除了我已经知道的和我正在学的,我有一个操作指南的资料。我想我会把它放到网上希望能帮助别人学习,节省时间。
我从没有发现一个指南能包含所有事情,此指南是我的尝试。
此指南包含很多东西,可能会相当基本/琐碎,但是我们大多数的人不会去每天安装Linux,所以很容易忘记这些基本的事情。
IT自动化工具比如Ansible, Chef, Jenkins, Puppet等等会帮助你安装/配置服务器这种繁琐的工作,但是恕我直言,他们更适合于多个的或者大型发布。恕我直言,使用这些自动化工具所需要的开销对于那些家用一次性单服务器是完全没有必要。
(目录)
其他指南
专家、行业领袖及版本发行商本身提供了许多指南。包含他们的所有指南是不切实际的,有些时候会违反版权。我建议你先查看它们,然后再开始这个指南。
- 互联网安全中心(Center for Internet Security) (CIS) 提供了 基准,这些基准是非常详细的, 行业可信赖的,逐步说明的,可保护不同版本的Linux. 查看他们的 About Us 页面获取详细信息。 我的建议是先看本篇指南然后是CIS的指南。 这样他们的建议将胜于本指南的任何内容。
- 对于特定的发行版强化/安全指南, 查看您发行版的文档.
- https://security.utexas.edu/os-hardening-checklist/linux-7 - Red Hat 企业级 Linux 7 强化核对表
- https://cloudpro.zone/index.php/2018/01/18/debian-9-3-server-setup-guide-part-1/ - # Debian 9.3 服务器设置指南
- https://blog.vigilcode.com/2011/04/ubuntu-server-initial-security-quick-secure-setup-part-i/ - Ubuntu 服务器初始安全指南
- https://www.tldp.org/LDP/sag/html/index.html
- https://seifried.org/lasg/
- https://news.ycombinator.com/item?id=19178964
- https://wiki.archlinux.org/index.php/Security - 许多人也推荐了这个
(目录)
将要做的/将要加的
- [ ] Custom Jails for Fail2ban
- [x] Linux Kernel
sysctl
Hardening - [ ] Security-Enhanced Linux / SELinux - https://en.wikipedia.org/wiki/Security-Enhanced_Linux, https://linuxtechlab.com/beginners-guide-to-selinux/, https://linuxtechlab.com/replicate-selinux-policies-among-linux-machines/, https://teamignition.us/how-to-stop-being-a-scrub-and-learn-to-use-selinux.html
- [ ] disk encryption
- [x] BIOS password
- [ ] Anti-Virus
- [x] use ed25519 keys instead of RSA for SSH public/private keys
- [x]
psad
- [x] unattended upgrades for critical security updates and patches
- [ ]
logwatch
- [ ] Rkhunter and chrootkit
- [ ] AppArmor
- [ ] port knockers for SSH - https://news.ycombinator.com/item?id=19181829, https://www.reddit.com/r/linuxadmin/comments/arx7xo/howtosecurealinuxserver_an_evolving_howto_guide/egropaw/
- [ ] https://linux-audit.com/linux-system-hardening-adding-hidepid-to-proc/
- [ ] https://likegeeks.com/secure-linux-server-hardening-best-practices/#Secure-Mounted-Filesystems
- [ ] shipping/backing up logs - https://news.ycombinator.com/item?id=19178681
- [ ] Tripwire - https://news.ycombinator.com/item?id=19180856
- [ ] MAC (Mandatory Access Control) and Linux Security Modules (LSMs)
- [x] CIS hardening guidelines and benchmarks @ https://www.cisecurity.org/cis-benchmarks/
- [ ] Knockd - https://www.reddit.com/r/linuxadmin/comments/arx7xo/howtosecurealinuxserver_an_evolving_howto_guide/egswikz/
- [ ] securing NTP - https://www.reddit.com/r/linuxadmin/comments/arx7xo/howtosecurealinuxserver_an_evolving_howto_guide/egqc160/
- [ ]
netstat -nlp
- https://www.reddit.com/r/linux/comments/arx7st/howtosecurealinuxserver_an_evolving_howto_guide/egrib6o/
(目录)
网友评论