1、网络数据包进入主机的流程
1.1、经过防火墙的分析
Linux有两层防火墙机制,这两层防火墙机制是独立存在的。
第一层是数据包过滤式的 “Net Filter” 防火墙
第二层是通过软件管理的 TCP Wrappers 防火墙
数据包过滤防火墙: IP Filtering 或 Net Filter
要进入 Linux 主机的数据包都会先通过 Linux 内核的预置防火墙,即 Net Filter。简单地说,就是 iptables 这个软件提供的防火墙功能。
它主要针对 TCP/IP 的数据包头部来进行过滤的机制,主要控制就是 “ MAC、IP、ICMP、TCP、UDP的端口与状态(SYN、ACK等)”
第二层防火墙: TCP Wrappers
通过了 Net Filter 之后,网络数据会开始接受 Super Daemons 以及 TCP Wrappers的检验。说白了就是 /etc/hosts.allow 与 /etc/hosts.deny 的配置文件功能。
1.2、服务的基本功能
内置的防火墙是 Linux 的内建功能,但防火墙主要管理的是 MAC、IP、Port 等数据包头方面的信息,如果想要允许实现某些目录可以进入,某些目录无法进入,那就需要通过权限以及服务器软件提供的相关功能来实现了。如果某个程序本来就有问题的话,那么Client端将可以直接利用此软件的漏洞来入侵主机,而不需要取得主机内root的密码。因此,要特别小心这些启动在因特网上面的软件。
1.3、 SeLinux对网络服务的详细权限控制
简单地说,SeLinux(Security enhanced Linux)安全强化Linux 可以针对网络服务的权限来设置一些规则(Policy),让程序能够拥有的功能有限。
1.4、使用主机的文件系统资源
Linux以及相关的软件都还具有支持登陆文件记录的功能。为了记录历史过程,以方便管理者在未来的错误查询与入侵监测,良好的分析日志文件的习惯是一定要建立的,尤其是 /var/log/message 与 /var/log/secure 这些文件。
2、常见攻击手法与相关防护
1、取得账户信息后猜密码
建立较为严格的密码设置习惯
完善的权限设置
2、利用系统的程序漏洞主动攻击
关闭不需要的网络服务
随时保持更新
关闭不需要的软件功能
3、利用社会工程学欺骗
社会工程(Social Engineering)指的是通过人与人的互动来达到入侵的目的。比如社会上经常看到的 中奖、花小钱买贵重物品等名义来欺骗善良老百姓,社会工程也是类似的方法。
追踪互动者
不要随意透露账号、密码等信息
4、利用程序的被动攻击
例如网页上面自动弹窗、自动下载软件、钓鱼网站等等
随时更新主机上的软件
较小化软件的功能
不要连接到不明的主机
5、蠕虫或木马或Rootkit
Rootkit 指可以取得 root 权限的一群工作组(Kit)
不要随意安装不明来源的文件或者是不明网站的文件数据
不要让系统有太多危险的命令
6、DDoS攻击(Distributed Denial of Service)
分布式拒绝服务攻击,通过分散在各地的僵尸计算机进行攻击,让你的系统所提供的服务被阻断从而无法顺利地为其他用户提供服务。最常见的就是 SYN Flood 攻击。
这种攻击很难处理
7、其他问题
设置规则完善的防火墙:利用 Linux 内建防火墙软件 iptables 建立较为完善的防火墙,可以规范部分的攻击行为。
日志文件和系统监控:通过分析登录文件来了解系统的状况,另外通过监控软件来实时了解系统是否异常。
8、总结(主机的防护真的非常重要)
建立完善的登录密码规则限制
完善的主机权限设置
设置自动升级与修补软件漏洞以及移除危险的软件
在每项系统服务的设置当中,强化安全设置的项目
利用 iptables、TCP Wrappers 强化网络防火墙
利用主机监控软件来分析主机状况与日志文件
3、主机能执行的操作
软件更新、减少网络服务、启动SeLinux
软件更新的重要性
认识系统的重要性
权限与SeLinux的辅助, ACL 可以针对单一账号或单一组进行特定的权限设置
总结来说就是,随时更新系统软件、限制连接端口以及启动SELinux来限制网络服务的权限。