实验环境概述
Centos6.1 eth0(vmnet1):192.168.100.100 无网关
eth1(vmnet8):192.168.3.100 网关192.168.3.88
网关防火墙发布公网httpd端口为8080 ssh端口设定2222
新
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth1 -j MASQUERADE
SNET 实现192.168.100.0/24内部主机上网
Iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth1 -j SNAT --to-source 192.168.3.100
在192.168.100.150中做测试
创建网关防火墙,192.168.100.150为内网服务端 在192.168.100.100建立网关防火墙规则,实现外网访问内网服务端
DNAT:发布内网服务器192.168.100.150的http服务到192.168.3.100的8080端口
在192.168.100.150中下载安装包httpd 并启动服务
在192.168.100.100中编写防火墙规则
Iptables -t nat -A PREROUTING -i eth1 -d 192.168.3.100 -p tcp --dport 8080 -j DNAT --to-destination 192.168.100.150:80
在虚拟机win7中网卡调试到3.0网段 验证是否可以登陆内网服务器
发布内网服务器192.168.100.150 的vsftpd服务到192.168.3.100的21,20,25000:30000
在服务端192.168.100.150中下载vsftpd,修改配置文件并启动服务
在192.168.100.100编写防火墙规则
iptables -t nat -A PREROUTING -i eth1 -d 192.168.3.100 -m multiport -p tcp --dports 21,20,25000:30000 -j DNAT --to-destination 192.168.100.150
编写映射规则 modprobe ip_nat_ftp
在虚拟win7中测试是否可以访问内网ftp
发布内网服务器192.168.100.150的服务到192.168.3.100的2222端口
在192.168.3.100编写防火墙规则
Iptables -t nat -A PREROUTING -i eth1 -d 192.168.3.100 -p tcp --dport 2222 -j DNAT --to-destination 192.168.100.150:22
在虚拟机win7中是否可以登陆shell
本地
在192.168.100.100建立本地防火墙 下载http,并启动服务
允许192.168.100.0/24 网关主机访问http
Iptables -t filter -A INPUT -s 192.168.100.0/24 -p tcp --dport 80 -j ACCEPT
测试在主机中登陆http://192.168.100.100 是否可以登陆
允许192.168.100.1(宿主机笔记本vmnet1网卡地址)访问此sshd服务
Iptables -t filter -A INPUT -s 192.168.100.1 -p tcp --dport 22 -j ACCEPT
测试 在100网段的主机中是否可以登陆192.168.100.100的ssh服务
允许数据包状态 (已连接、已相关链接)
Iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许lo本地网卡的所有访问
Iptables -t filter -A INPUT -i lo -j ACCEPT
允许192.168.100.1-192.168.100.150此范围ping此主机
Iptables -t filter -A INPUT -m iprange --src-range 192.168.100.1-192.168.100.150 -p icmp -j ACCEPT
测试是否能ping通192.168.100.100
设置INPUT入站规则(将默认规则DROP)
Iptables -t filter -P INPUT DROP
设置forward转发链将(默认规则DROP),允许当前环境中需要转发的流量
Iptables -t filter -A FORWARD -s 192.168.100.0/24 -d 192.168.3.0/24 -p tcp --sports 20,21,22,80,25000:30000 -j ACCEPT
Iptables -t filter -A FORWARD -s 192.168.3.0/24 -d 192.168.100.0/24 -p tcp --dports 20,21,22,80,25000:30000 -j ACCEPT
Iptables -t filter -P FORWARD DROP
当转发和入站默认为DROP时,公网无法访问服务器的指定端口,需要在入站加入一条新的规则指定端口,公网访问服务器的http端口为8080,ssh为2222,实现公网能够继续访问服务器
iptables -t filter -A INPUT -s 192.168.3.0/24 -m multiport -p tcp --dports 20,21,2222,8080,25000:30000 -j ACCEPT
为提高服务器安全性,在服务器192.168.100.150上设置防火墙规则,只允许之前设定的公网端口访问服务器,默认规则改为DROP,其他服务无法访问
iptables -t filter -A INPUT -s 192.168.100.0/24,192.168.3.0/24 -m multiport -p tcp --dports 20,21,80,25000:30000 -j ACCEPT
指定内网段和默认公网3网段访问服务端100.150的ftp,http
iptables -t filter -A INPUT -s 192.168.100.1,192.168.3.222 -p -tcp --dport 22 -j ACCEPT
指定宿主机100.1 和公网主机ip3.222 可以远程访问服务端100.150
iptables -t filter -A INPUT -i lo -j ACCEPT
允许本地网卡lo所有访问
iptables -t filter -A INPUT -s 192.168.100.0/24 -p icmp -j ACCEPT
允许100网段可以ping通服务端100.150
设置INPUT的所有默认规则为DROP
Iptables -P INPUT DROP
需要把服务端192.168.100.150和网关防火墙192.168.100.100的规则进行保存,并开机自启