IPTABLES-NAT

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPTABLES-NAT相关的知识,希望对你有一定的参考价值。

iptables提供的4个表:
raw、mangle、nat、filter
 
iptables提供的5种链:
INPUT、OUTPUT、FORWARD
PREROUTING、POSTROUTING
 
iptables命令用法:
iptables  -t  表名  -A  链名  匹配条件  -j  处理动作
 
处理动作类型:
ACCEPT、REJECT、DROP、LOG
 
实验一:
Linux网关/防火墙实验环境:
CentOS真机 ——
    192.168.4.254/24
svr5 ——
    eth0:192.168.4.5/24          【private1】
    默认网关设为 192.168.4.1
gw1(网关/防火墙/路由器) —— 开启 ip_forward
    eth0:192.168.4.1/24         【private1】
    eth1:174.16.16.1/24         【private2】
pc205 ——
    eth0:174.16.16.120/24          【private2】
    不要设默认网关
 
实验二:
    根据MAC地址封锁主机
    在一条规则中开放多个TCP服务
    根据IP范围设置封锁规则
 
实验三:局域网共享外网IP地址上网
    搭建内外网案例环境
    配置SNAT策略实现共享上网访问
    验证MASQUERAD伪装策略
 
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# cat /var/www/html/index.html
<h1>Internat Web Site.</h1>
[[email protected] ~]# service httpd restart
[[email protected] ~]# chkconfig httpd on
 
[[email protected] ~]# yum -y install elinks
[[email protected] ~]# elinks --dump http://174.16.16.120
 
[[email protected] ~]# yum -y install elinks
[[email protected] ~]# elinks --dump http://174.16.16.120
 
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j SNAT --to-source 174.16.16.1
[[email protected] ~]# service iptables save
 
 
[[email protected] ~]# elinks --dump http://174.16.16.120
 
[[email protected] ~]# tail /var/log/httpd/access_log -f
 
[[email protected] ~]# iptables -t nat -L
[[email protected] ~]# iptables -t nat -F
 
[[email protected] ~]# elinks --dump http://174.16.16.120
 
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j MASQUERADE
[[email protected] ~]# service iptables save
 
[[email protected] ~]# elinks --dump http://174.16.16.120
 
实验四:配置DNAT发布内网服务器
    发布内网的Web服务器
    发布内网的SSH服务器
    发布内网的FTP服务器
 
[[email protected] ~]# yum -y install httpd vsftpd  
[[email protected] ~]# cat /var/www/html/index.html
<h1>Intranet Web Site...</h1>
[[email protected] ~]# service httpd restart
[[email protected] ~]# chkconfig httpd on
[[email protected] ~]# service vsftpd restart
[[email protected] ~]# chkconfig vsftpd on
 
[[email protected] ~]# yum -y install elinks
[[email protected] ~]# elinks --dump http://174.16.16.1
 
[[email protected] ~]# iptables -t nat -A PREROUTING -i eth1 -d 174.16.16.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.4.5
[[email protected] ~]# service iptables save
 
[[email protected] ~]# elinks --dump http://174.16.16.1
                              Intranet Web Site...
 
 
 
 
 
DNAT:
iptables  -t  nat  -A  PREROUTING -i  网关外网接口  -d 网关的外网IP  -p  协议  --dport  目标端口  -j  DNAT  --to-destination  内网实际服务器的IP地址:端口
 
 
常见的几个问题 ——
1. 服务没开启(httpd、vsftpd)
2. 应用服务器的防火墙策略问题
    svr5、pc205
3. 起iptables服务出现警告 No config file
    正常的(没有设置规则)
4. SSH访问反应慢
    SSH服务端会尝试查询客户机的域名
    解决办法:
         1)提供正确的解析,修改/etc/hosts文件
         2)避免做查询,清空/etc/resolv.conf,或者修改sshd服务端的配置,禁止DNS查询
5. modprobe加载多个模块的时候报错
     modprobe  -a  模块1   模块2  .. ..
 
 
iptables防火墙规则的整理 ——
方式1:导出、导入
iptables-save  >  文件路径
iptables-restore  <  文件路径
 
方式2:iptables服务
service  iptables  save
 
方式3:Shell脚本
使用变量
 
[[email protected] ~]# vim /opt/gw1.sh
#!/bin/bash
LAN_NET="192.168.4.0/24"
INET_IF="eth1"
INET_IP="174.16.16.1"
IPT="/sbin/iptables"
.. ..
$IPT -t nat -A POSTROUTING -s $LAN_NET -o $INET_IF -j SNAT --to-source $INET_IP
.. ..
[[email protected] ~]# chmod +x /opt/gw1.sh
-------------------------------------------------------------------------------------------------------

以上是关于IPTABLES-NAT的主要内容,如果未能解决你的问题,请参考以下文章