防火墙策略之iptables
############################
######### iptables ##########
############################
iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
****实验前关掉firewalld并打开iptables
iptables -t ##指定表名称
-L ##列出指定表中的策略
-A ##增加策略
-p ##网络协议
--dport ##端口
-s ##数据来源
-j ##动作
-N ##增加链
-E ##修改链名称
-X ##删除链
-D ##删除指定策略
-I ##插入
-R ##修改策略
-P ##修改默认策略
ACCEPT ##允许
REJECT ##拒绝
DROP ##丢弃
iptables -t filter -nL ##查看filter表中的策略
iptables -F ##刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter(如此更改只是一次性的,当重新启动机器时策略会被重新读取)
iptables -A INPUT -i lo -j ACCEPT ##允许lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允许250主机访问本机所有端口
iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源
iptables -N redhat ##增加链redhat
iptables -E redhat westos ##改变链名称
iptables -D INPUT 2 ##删除INPUT链中的第二条策略
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改第一条策略
iptables -P INPUT DROP ##把INPUT表中的默认策略改为drop
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##允许状态为RELATED和ESTABLISHED的数据包通过
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT ##允许状态为new的数据包通过22端口
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -j REJECT ##拒绝其他所有包
#####配置路由策略#####
iptables -F ##刷掉策略
sysctl -a | grep forward ##查看内部网卡IP转发功能是否开启
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf ##允许双网卡内部通信,即开启IP转发功能
sysctl -p ##重新加载策略
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.11 ##在nat表的PREROUTING链添加策略将外网转化为内网
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.100 ##在nat表的POSTROUTING链添加策略将内网数据包转发到外网