######################
#### iptables ########
######################
*iptables是一个工作于用户空间的防火墙应用软件
*三表五链
filter表 mangle表 nat表
INPUT链 OUTPUT链 FORWARD链 PREROUTING链 POSTROUTING链
1.实验之前关闭firewalld服务,开启iptables
2.iptables命令
* iptables -t ##指定表名称,默认是filter表
-n ##不作解析
-L ##列出指定表中的策略
iptables -t filter -nL ##查看filter表的策略
* iptables -A ##增加策略
-i ##向规则链中增加条目
-p ##网络协议
--dport ##端口
-s ##数据来源
-j ##动作
ACCEPT ##允许
REJECT ##拒绝
DROP ##丢弃
iptables -A INPUT -i lo -j ACCEPT ##允许回环接口通过
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口
iptables -A INPUT -s 172.25.254.234 -j ACCEPT ##允许234主机访问本机所有端口
iptables -A INPUT -j REJECT ##拒绝所有主机数据来源
*测试
* iptables -N ##增加链
-E ##修改链名称
-X ##删除链
-D ##删除指定策略
-I ##插入
-R ##修改策略
-P ##修改默认策略
iptables -N redhat ##添加redhat链
iptables -E redhat westos ##修改redhat链为westos
iptables -X westos ##删除westos链
iptables -D INPUT 2 ##删除INPUT 链中的第二条策略
iptables -I INPUT -p tcp --dport 80 -j REJECT ##INPUT链第一条插入策略
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改INPUT链中的第一条策略
iptables -P INPUT DROP ##修改默认策略
iptables -F ##刷掉所以策略,临时生效
service iptables save ##保存设置到配置文件,重启后也生效
3. 提高访问速度,缓解访问压力方法
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
##允许访状态是NEW问80端口
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
##允许状态是NEW访问443端口
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
##允许状态是NEW访问53端口
iptables -A INPUT -j REJECT ##拒绝所有主机数据来源
4.路由
sysctl -a | grep forward ##查看forward状态
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf ##打开net.ipv4.ip_forward
sysctl -p ##设置生效
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.11 ##进入路由
测试
用172.25.0.11主机ssh连接172.25.254.174主机
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.174 ##出路由设置
测试
连上172.25.254.174主机,显示的IP是172.25.254.11