IPTABLE 介绍
(1)IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息 包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
(2)IPTABLES 中定义有表,分别表示提供的功能,有filter表(实现包过滤)、nat表(实现网络地址转换)、mangle表(实现包修改)、raw表(实现数据跟踪),这些表具有一定的优先级:raw–>mangle–>nat–>filter
IPTABLE 启动与基本设置 systemctl stop firewalld systemctl mask firewalld systemctl restart iptables iptables -nL n:不做解析,L:list iptables -F 清除策略,默认为filter > /etc/sysconfig/iptables 清除策略,默认为filter service iptables save 保存策略到配置文件/etc/sysconfig/iptables iptables -A INPUT -j ACCEPT 添加策略 service iptables save
IPTABLE 基本命令与配置命令
防火墙策略的读取是按从上往下的先后顺序读取的,只要有满足的便会不再匹配,都没有时便会按默认的规则处理 -A:add 添加 -s:source 来源IP dport:端口 -j:动作 (ACCEPT,REJECT,DROP) -I:insert 插入 -p(小写):protocol,协议 -D:delete iptables -t filter -nL ###不加-t默认filter iptables -A INPUT -j REJECE ###拒绝所有 iptables -t filter -A INPUT -s 172.25.254.100 -j ACCEPT|DROP|REJECT iptables -A INPUT -s 172.25.254.25 -p tcp --dport 22 -j ACCEPT iptables -I INPUT 3 -s 172.25.254.225 -p tcp --dport 22 -j ACCEPT ###在第3行插入,p:协议,dport:端口 iptables -D INPUT 4 ###删除第4个 iptables -R INPUT 1 -s 172.25.254.225 -p tcp --dport 22 -j ACCEPT ###更改已有的规则 iptables -t nat -R POSTROUTING 1 -o eth0 -j SNAT --to-source 172.25.254.125 iptables -P INPUT DROP ###改变默认的权限P(大写)(只能ACCEPT和DROP) iptables -t filter -N redhat ###添加自定义链名 iptables -t filter -E redhat dream ###改变链名 iptables -t filter -X dream ###删除自定义链 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ###添加连接过的,正在连接到防火墙策略 iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ###添加新的回旋接口 iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT ###只要连接端口为53都可以连接 iptables -A INPUT ! -s 172.25.254.100 -j REJECT ###只有172.25.254.100可以连接
IPTABLE 地址伪装
客户端可以ping通 254网段的主机
其他254网段的主机连接 192.25.254.100时候,会连接到192.25.0.200中
客户端:172.25.0.200
网关:172.25.0.100
服务端:双网卡
服务端:双网卡
IP:172.25.254.100
172.25.0.100
iptables -F #刷新策略
service iptables save #保存修改后的策略
伪装设置
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100 ###路由后,通过172.25.254.100 从eth0出去 sysctl -a |grep ip_forward #查看内核路由是否开启 net.ipv4.ip_forward = 0 #为0表示没有开启 vim /etc/sysctl.conf net.ipv4.ip_forward = 1 #开启内核路由 sysctl -p ###刷新 iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.200 把eth0过来的转移到172.25.0.200