iptabls
一:防火墙概念 逻辑上,大体分为为主机防护墙与网络防火墙 主机防火强:针对单个主机进行防护 网络防火墙:往往处于网络入口或边缘。针对网络入口进行防护,服务于防火墙背后的本地局域网 注意:两者并不冲突,网络防火墙主外(大众),主机防火强主内(个人) 物理上,可分为硬件防火墙与软件防火墙 硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低
二:iptables 简述 iptables 其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过 iptables 这个代理,将用用户的安全设定执行到对应的 "安全框架" 中,这个 "安全框架" 才是真正的防火墙,这个框架叫作:netfilter 所以说,虽然我们使用 service iptables start 来启动 iptables "服务",但其实准确的来说,iptables 并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的一个功能 三:iptables 描述 iptables 是通过我们制定的规则来处理数据的。而规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如:TCP、UDP、ICMP)和服务类型(如:HTTP、FTP、SMTP)等;当数据包与规则匹配时,iptables 就会根据规则岁定义的方法来执行相应的动作,如:接受(accept)、拒绝(reject)、丢弃(drop)等;主要通过添加、删除来配置防火墙中的规则
**当客户端访问服务器的 web 服务时,**客户端发送报文到网卡,而 tcp/ip 协议栈是属于内核的一部分,所以,客户端的信息会通过内核的 TCP 协议传输到用户空间中的 web 服务中,而此时,客户端报文的目标终点为 web 服务所监听的套接字(IP:Port)上;当 web 服务需要相应客户端请求时,web 服务发出的响应报文的目标总店则为客户端,这个时候,web 服务所监听的 IP 端口变为了原点,我们说过, netfilter 才是真正的防火墙,它是内核的一部分,所以,如果我们想要防火墙达到 “防火” 的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,符合放行条件的才能通过,符合阻拦条件的则被阻止,于是就有了 input 与 output 关卡,这在 iptables 中称之为 “链”
我们也可以将报文转发给其他服务器,我们就会提到其他的 “链”:“路由前”、“转发”、“路由后”,即:prerouting、forward、postrouting
如下图:即报文流向图
数据经过防火墙的流程图
最后归纳一些动作 注意: ACCEPT:通过 DROP:丢弃 REJECT:拒绝 SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题 MASQUERADE:是 SNAT 的一种特殊形式,适用于动态的、临时会变的 IP 上 DNAT:目标地址转换 REDIRECT:在本机做端口映射 LOG:在 /var/log/messages 文件中记录日志信息,然后数据包传递给下一条规则,就是说除了记录意外不对数据包做任何其他操作,仍然让下一条规则去匹配