前面一些是网络安全,这后面是系统安全
- iptables
- netfilter
防火墙3类:
- 包过滤(packet filter)防火墙【无状态、静态~】
- 应用层网关代理(Application level Gateway)
- 状态防火墙(stateful firewall)
防火墙把内网和外网隔开(内外连接通过TCP)
防火墙设置的基础是网络知识,
iptables:
1.包过滤(packet filter)防火墙【无状态、静态~】
(1)
(2)
静态防火墙太死板了,要不然太松了,要不然太紧了实现不了功能
2.应用层网关代理 (Application level Gateway)
外部主机看不到内部的情况,所有的通信都要经过【应用级代理】,客户和服务器没有真正的连接。
iptables实现代理防火墙
3.状态防火墙(stateful firewall)动态包过滤防火墙
状态检测防火墙也称为动态包过滤防火墙。如何理解状态呢?从会话来看,通信过程中的会话数据包不是一个个完全独立的数据包,而是有前后连接状态的。譬如建立可靠的TCP三次握手连接,是按照SYN、SYN+ACK以及ACK的顺序来的,如果没有发送SYN报文,就收到对方的ACK报文,这个ACK报文就是一个应该丢弃的数据包。
可以理解动态,在同一个会话中,五元组不会变化,但是各种状态标识、分片等都是可以变化的。通过结合状态进行过滤,可以实现比较好的效果。
不同实时的状态,对应动态变化的匹配规则
iptables/netfilter是Linux内置的防火墙
正向代理、反向代理:
sudo iptables -L -t nat
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.0.100 --dport 80 -j DNAT --to-destination 192.168.0.105:80
sudo iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.100 -j SNAT --to-source 192.168.0.104
sudo iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.105 --sport 80 -j SNAT --to-source 192.168.0.104:80
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.0.105 --sport 80 -j DNAT --to-destination 192.168.0.100
LKM的 Makefile:
将编译规则放在一个文件中,
可以理解为:用于编译的脚本
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。
【实验二基于netfilter】:针对一个网站,偷一下用户名密码
根据(黑客网)网上已经有的代码,选取并根据需求微调自己需要的部分
新找一个用HTTP协议登录的网站:
Netfilter:
偷账号密码原理:TCP调用IP前,被钩子勾了,到了netfilter