centos5.5 配置nat服务

CentOS下配置iptables防火墙 l

inux NAT(iptables)配置

CentOS下配置i

ptables防


1.安装rhel5.4/centos5.5 系统

2.vim /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=Nat.localdomain
GATEWAY=192.168.0.1(公网网关)


3.vim /etc/sysconfig/network-scripts/ifcfg-eth0

Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=static
HWADDR=A4:BA:DB:43:XX:XX
IPADDR=192.168.0.2(公网地址)
NETMASK=255.255.255.0
ONBOOT=yes


4.vim /etc/sysconfig/network-scripts/ifcfg-eth1

# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth1
BOOTPROTO=static
HWADDR=A4:BA:DB:43:XX:XX
IPADDR=10.255.10.1(内网地址)
NETMASK=255.255.255.0
ONBOOT=yes

5.vim /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

修改为

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

6.sysctl -p

7.service network restart

8.iptables -F

9.iptables -t nat -A POSTROUTING -s 10.255.10.0/24 -o eth0 -j SNAT --to 192.168.0.2

10./etc/rc.d/init.d/iptables save

11.service iptables restart

12.如果发现DNS无法解析,请输入下列命令

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P INPUT ACCEPT

/etc/rc.d/init.d/iptables save

service iptables restart


iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

iptables -A FORWARD -p tcp --dport 22 -j ACCEPT

iptables -A FORWARD -p tcp --dport 53 -j ACCEPT

iptables -A FORWARD -p udp --dport 53 -j ACCEPT

iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

iptables -A FORWARD -p tcp --dport 110 -j ACCEPT

iptables -A FORWARD -p udp --dport 110 -j ACCEPT

iptables -A FORWARD -p tcp --dport 143 -j ACCEPT

iptables -A FORWARD -p udp --dport 143 -j ACCEPT

iptables -A FORWARD -p tcp --dport 993 -j ACCEPT

iptables -A FORWARD -p udp --dport 993 -j ACCEPT

iptables -A FORWARD -p tcp --dport 995 -j ACCEPT

iptables -A FORWARD -p udp --dport 995 -j ACCEPT

service iptables save

service iptables restart


iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -p tcp -j ACCEPT

iptables -A FORWARD -p udp -j ACCEPT

iptables -A FORWARD -p tcp --dport 1:65534 -j ACCEPT

service iptables save

service iptables restart





sysctl -p
service network restart
iptables -F
iptables -t nat -A POSTROUTING -s 10.18.18.0/24 -o eth0 -j SNAT --to 221.182.3.91
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
service iptables save
service iptables restart

iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -p tcp --dport 1:65534 -j ACCEPT
iptables -A FORWARD -p udp --dport 1:65534 -j ACCEPT
service iptables save
service iptables restart





默认为:

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT   ACCEPT

会影响许多功能的使用。

端口镜像

iptables -t nat -A PREROUTING -d x.x.x.x(公网IP) -p tcp --dport 23(端口号) -j DNAT --to 192.168.3.202:3333(内网ip:内网IP端口)NAT默认路由

ip route add 10.255.10.0/24 via 192.168.0.2




1. 准备工作


1.1 CentOS5.5 Final安装完毕,将不需要的服务停止

1.2 修改主机名:
1.2.1 /etc/sysconfig/network
1.2.2 /etc/hosts

1.3 网卡设置
1.3.1 单个IP /etc/sysconfig/network-scripts/ifcfg-eth0
1.3.2 IP段
#cd  /etc/sysconfig/network-scripts/
#cp -a ifcfg-eth0  ifcfg-eth0-range0
#vi ifcfg-eth0-range0
DEVICE=eth0-range0
IPADDR_START=192.168.2.2          #设置地址段的起始IP
IPADDR_END=192.168.2.100          #设置地址段的结束IP
GATEWAY=192.16.2.1
NETMASK=255.255.255.0
CLONENUM_START=”20”            #设置虚拟接口(CLONE–克隆)的起始“编号”在本例中,将从20开始,21,22,23……
NO_ALIASROUTING=yes               #该选项可以设置在主配置文件中(ifcfg-eth0)
#虚拟接口可以继承主配置文件中的设置,其作用是避免虚拟接口在从新定义路由信息,导致路由访问缓慢的问题。
1.2.3 命令方式
ip addr add 222.222.222.8 dev $OUTGOING

1.4 路由设置
1.4.1
#vi /etc/sysconfig/static-routes
eth0(设备名) net(网络地址) 192.168.0.0 (子网)netmask 255.255.255.0 (网关地址)gw 192.168.0.1
a. /usr/sysconfig/network-scripts/route-eth0
10.0.2.0/24 via 192.168.0.144
10.0.3.0/24 via 192.168.0.144
10.0.4.0/24 via 192.168.0.144
1.4.2 给系统主路由表配置网关,这个网关是电信的网关
ip route add 0/0 via 22.22.22.1
1.4.3 添加路由规则,让所有通向网通的数据查询标示为11的路由表,增加一个网通提供的默认网关。
ip route add 0/0 via 11.11.11.1 table 11
ip rule add to 60.0.0.0/13 table 11
ip rule add to 60.8.0.0/15 table 11
ip rule add to 60.10.0.0/16 table 11
要注意的是,在配置网卡的时候,先不要配置网关,不要使用老的ifconfig命令来配置网关,而要使用iproute2来配置网关,否则会造成冲突,或者 使用 ip route replace 命令来替换

ip route add 命令。

1.5 转发设置 
/etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300

1.6 resolv.conf
nameserver 10.0.0.1

2. iptables配置
2.1 iptables初始化
iptables -t nat -F
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -N NEWCONN
2.2 NAT转换
2.2.1 首先将从两个WAN口出去的数据包进行IP伪装masquerade
/sbin/iptables -t nat -A postrouting -o eth1 -j masquerade
/sbin/iptables -t nat -A postrouting -o eth2 -j masquerade
2.1.2 SNAT
iptables -t nat -A POSTROUTING -s 内部IP地址/子网 -o $OUTGOING -j SNAT --to $IPPOOL
2.1.3 一个网段的电信网通自动切换
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3
***
***
***
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 218.62.3.3
2.1.4 访问222.222.5.0/15和222.240.0.0/13走电信,其他默认网通
# echo "200 DIANXIN" >> /etc/iproute2/rt_table(这个是添加到文件,执行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查看)
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接网通线路网卡的地址
# ip route flush cache

2.1.6 添加相似路由
if [ "$ALLOW_ACCESS_CLIENT" != "" ] ; then
   for LAN in ${ALLOW_ACCESS_CLIENT}; do
   {
       iptables -A FORWARD -p tcp -m multiport -s ${LAN} -o $ETH_WAN --dport $PORT -j ACCEPT
       iptables -A FORWARD -p udp -m multiport -s ${LAN} -o $ETH_WAN --dport $PORT -j ACCEPT
       iptables -A FORWARD -p tcp -m multiport -i $ETH_WAN --sport $PORT -j ACCEPT
       iptables -A FORWARD -p udp -m multiport -i $ETH_WAN --sport $PORT -j ACCEPT
   }
   done
fi

2.3 保存
iptables-save -c >/etc/sysconfig/iptables


1.5 转发设置 
/etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300

2. iptables配置
2.1 iptables初始化
iptables -t nat -F
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -N NEWCONN
2.2 NAT转换
2.2.1 首先将从两个WAN口出去的数据包进行IP伪装masquerade
/sbin/iptables -t nat -A postrouting -o eth1 -j masquerade
/sbin/iptables -t nat -A postrouting -o eth2 -j masquerade
2.1.2 SNAT
iptables -t nat -A POSTROUTING -s 内部IP地址/子网 -o $OUTGOING -j SNAT

--to $IPPOOL
2.1.3 一个网段的电信网通自动切换
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT

--to 222.168.1.3
***
***
***
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to

218.62.3.3
2.1.4 访问222.222.5.0/15和222.240.0.0/13走电信,其他默认网通
# echo "200 DIANXIN" >> /etc/iproute2/rt_table(这个是添加到文件,执

行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查

看)
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d

222.222.5.0/15 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d

222.240.0.0/13 -j MARK --set-mark 1
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d

222.222.5.0/15 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d

222.240.0.0/13 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接

网通线路网卡的地址

2.3 保存
iptables-save -c >/etc/sysconfig/iptables


#——+——+——+——+——+——+——+——+——+——+——+——+——+——

在CentOS下配置iptables防火墙,是非常必要的。来我们学习如何配置!


在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件:


vi /etc/sysconfig/iptables  


通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:


1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口


-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  


2.关闭/开启/重启防火墙


/etc/init.d/iptables stop  


#start 开启  


#restart 重启  


3.永久性关闭防火墙


chkconfig --level 35 iptables off  


/etc/init.d/iptables stop  


iptables -P INPUT DROP  


4.打开主动模式21端口


iptables -A INPUT -p tcp --dport 21 -j ACCEPT  


5.打开被动模式49152~65534之间的端口


iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT  


iptables -A INPUT -i lo -j ACCEPT  


iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT  


注意:


一定要给自己留好后路,留VNC一个管理端口和SSh的管理端口


需要注意的是,你必须根据自己服务器的情况来修改这个文件。


全部修改完之后重启iptables:


service iptables restart


你可以验证一下是否规则都已经生效:


iptables -L

通过文章的介绍,我们清楚的知道了CentOS下配置iptables防火墙的过程,希望大家都能掌握它!


以上内容来自网络