linux 1.x时代:ipfirewall(从freeBSD上移植过来的)
linux 2.x时代:ipchains
现在:iptables 它可以将规则组成一个列表,实现绝对详细的访问控制功能。
使用范例:
1、只允许外部网络通过TCP与服务器的80端口建立连接
iptables –F INPUT
iptables –A INPUT -i eth0 –p tcp –dport 80 –j ACCEPT
iptables –P INPUT DROP
2、按照类型处理
iptables -A OUTPUT-p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
3、将所有从外网进入服务器80端口的请求转移到8080端口,以此隐藏某些服务的实际端口。
iptables –t nat –A PREDOUTING –i eth0 –p tcp –dport 80 –j REDIRECT --to-port 8080
4、外网网卡上8000端口收集的所有请求转发到192.168.1.114 这台服务器的8080端口,如此做到内部不同服务器之间的简单的负载均衡。
iptables –t nat –A PREDOUTING –i eht0 –p tcp –dport 8000 –j DNAT –to-destination 192.168.1.114:8080
Iptables –t nat –A PREDOUTING –I eht0 –p tcp –dport 8002 –j DNAT –to-destination 192.168.1.115:8080
iptables命令可以查看这些设置进入netfilter的过滤表的规则。
数据包已经能够被转发出去;但是还少数据回来规则,必须将实际服务器的默认网关设置为NAT服务器。也就是说NAT服务器必须为实际的服务器网关。
route add default gw 192.168.1.1 (NAT服务器地)