eSXi网络实验环境搭建

博观而约取,厚积而薄发。这篇文章主要讲述eSXi网络实验环境搭建相关的知识,希望能为你提供帮助。

1、 学习网络管理和运维,光听、光看很难深入理解
2、 搭建实验环境亲自操作,不仅加深印象、帮助理解知识点,还会遇到各种奇怪的问题。
3、 搭建网络服务并非难事,当服务出现问题时,如何解决是最重要的
4、 需要一台Esxi服务器,接入真实网络:
①物理网卡一个足够、可以新建多个虚拟网卡供实验环境使用
②建立多个端口组、多个虚拟交换机,如图:


③32G~64G内存、CPU多核多线程,最好E5以上
④硬盘最好能做raid 1,单硬盘尚可,虽然数据不重要,但毕竟辛苦搭建的环境,就怕万一
①iptables防火墙,双网卡,内存1G、2G都行,它的作用是隔离真实网络与实验网络,保证真实网络的安全,系统不要图形,只需要命令行使用
②iptables双网卡,一块网卡配置真实网络地址,例如10.100.1.253 ; 一块网卡配置虚拟网络网段,例如:192.168.1.253
③iptables只开启SSH服务,关闭firewalld服务、selinux服务,其它服务全部关闭。修改SSH服务的默认端口,例如:2222
④iptables开启安全策略,只允许管理PC的IP连接自己的2222端口。Iptables上的root的password一定要设置的很复杂,用证书更好
⑤访问iptables的22222端口的前提条件是,管理PC访问前,需要先执行ping命令,发一个50字节大小的数据包,到iptables的10.100.1.253 Ip上,例如:ping -n 1 -l 50 10.100.1.253。有时需要执行两次命令,或者执行一次后,等待几秒才会生效
⑥虚拟环境里的所有服务器,可以将服务端口映射到iptables的真实网卡上,这样管理PC就可以访问它们了
⑦虚拟环境里的所有设备都可以通过iptables上外网,特殊情况下也可以访问真实网络,尽量由真实网络里的管理PC代为访问
⑧编写shell脚本, 路径位置:/etc/sysconfig/iptables.sh , 使用/etc/sysconfig/iptables.sh restart 命令重启、restart换成start或者stop,就是启动或者关闭
⑨用到的Shell脚本具体内容如下,已经做了注释,我只负责抛砖引玉,理解之后可以根据自己的需要自行添加
①#--------脚本开始---------#
iptables="/sbin/iptables"
modprobe="/sbin/modprobe"
depmod="/sbin/depmod"
EXTIF="ens34"#连接物理网络的网络接口,根据实际情况添写
INTIF="ens33"#连接内部虚拟网络的网络接口,根据实际情况添写
ACCEPT_PING_HOSTS="10.100.1.10,10.100.1.20"#定义允许的IP集合PING防火墙,可以写多个,需用逗号分隔开
load () {
$depmod -a
$modprobe ip_tables
$modprobe ip_conntrack
$modprobe ip_conntrack_ftp
$modprobe ip_conntrack_irc
$modprobe iptable_nat
$modprobe ip_nat_ftp
【eSXi网络实验环境搭建】$modprobe ip_conntrack_pptp
$modprobe ip_nat_pptp
$modprobe ip_nat_irc
$modprobe ipt_MASQUERADE
$modprobe ipt_connlimit
$modprobe ipt_time
$modprobe ipt_multiport
$modprobe ipt_iprange
$modprobe ipt_LOG
$modprobe ipt_hashlimit
echo "enable forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward#开启网络转发
echo "enable dynamic addr"
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
#default policies#默认从防火墙进来的、需要转发的数据包全部拒绝掉,只放行出去的数据包
$iptables -P INPUT DROP
$iptables -F INPUT
$iptables -P OUTPUT ACCEPT
$iptables -F OUTPUT
$iptables -P FORWARD DROP
#$iptables -P FORWARD ACCEPT
$iptables -F FORWARD
$iptables -t nat -F


#限制对iptables的2222端口的访问
echo "restrict access local port 2222 for ssh"
$iptables -A INPUT -i $EXTIF-d 10.100.1.253 -p icmp --icmp-type 8 -m length --length 128 -m recent --name SSH --rsource --set -j ACCEPT
$iptables -A INPUT -i $EXTIF-d 10.100.1.253-p tcp --dport 2222-m limit --limit 2/minute --limit-burst 2 -m state --state NEW -m recent --name SSH --rcheck --rsource --seconds 60 -j ACCEPT
$iptables -A INPUT -i $EXTIF-d 10.100.1.253 -p tcp --dport 2222-m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG --log-prefix "SSH-ATTACK"
$iptables -A INPUT -i $EXTIF-d 10.100.1.253 -p tcp --dport 2222-m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP
$iptables -A INPUT -i $EXTIF-d 10.100.1.253-p tcp --dport 2222-m connlimit--connlimit-above 2 -j DROP
$iptables -A INPUT -i $EXTIF-d 10.100.1.253 -p tcp --dport 2222-m state --state ESTABLISHED -j ACCEPT
$iptables -A INPUT -i $EXTIF-d 10.100.1.253 -p tcp --dport 2222-m state --state NEW -j DROP


#允许管理PC通过SSH访问虚拟环境中的linux服务器
echo "allow 10.100.1.10 to centos7601(ssh)"
$iptables -t nat -A PREROUTING -p tcp -s 10.100.1.10-d 10.100.1.253 --dport 22222 -j DNAT --to-destination192.168.1.30:22
$iptables -A FORWARD-s 10.100.1.10 -d 192.168.1.30 -p tcp --dport 22-j ACCEPT
$iptables -A FORWARD-s 192.168.1.30 -d 10.100.1.10 -p tcp --sport 22-j ACCEPT
$iptables -A INPUT -i $EXTIF -s 10.100.1.10 -j ACCEPT
$iptables -A INPUT -i $INTIF -s 192.168.1.30 -j ACCEPT


#允许管理PC通过浏览器访问虚拟环境中linux的WEB服务器
echo "allow 10.100.1.10 to centos8(web)"
$iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.20 -d 10.100.1.10 --sport 80 -j SNAT --to-source 10.100.1.253:8080
$iptables -t nat -A PREROUTING -p tcp -s 10.100.1.10-d 10.100.1.253 --dport 8080 -j DNAT --to-destination192.168.1.20:80
$iptables -A FORWARD-s 10.100.1.10 -d 192.168.1.23 -p tcp --dport 8080-j ACCEPT
$iptables -A FORWARD-s 192.168.1.23 -d 10.100.1.10 -p tcp --sport 8080-j ACCEPT
$iptables -A INPUT -i $EXTIF -s 10.100.1.10 -j ACCEPT
$iptables -A INPUT -i $INTIF -s 192.168.1.20 -j ACCEPT


#允许管理PC访问虚拟环境的FTP服务器
echo "allow 10.100.1.10 to client-01-w10-l(21)"
$iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.26 -d 10.100.1.10 --sport 21 -j SNAT --to-source 10.100.1.253:2121
$iptables -t nat -A PREROUTING -p tcp -s 10.100.1.10-d 10.100.1.253 --dport 2121 -j DNAT --to-destination192.168.1.26:21
$iptables -A FORWARD-s 10.100.1.10 -d 192.168.1.26 -p tcp --dport 20:21-j ACCEPT
$iptables -A FORWARD-s 10.100.1.10 -d 192.168.1.26 -p tcp --dport 60000:60020-j ACCEPT
$iptables -A FORWARD-s 10.100.1.10 -d 192.168.1.26 -p tcp --dport 990-j ACCEPT
$iptables -A FORWARD-s 192.168.1.26 -d 10.100.1.10 -p tcp --sport 20:21-j ACCEPT
$iptables -A FORWARD-s 192.168.1.26 -d 10.100.1.10 -p tcp --sport 60000:60020-j ACCEPT
$iptables -A FORWARD-s 192.168.1.26 -d 10.100.1.10 -p tcp --sport 990-j ACCEPT
$iptables -A INPUT -i $EXTIF -s 10.100.1.10 -d 10.100.1.253 -p tcp --dport 2121 -j ACCEPT
$iptables -A INPUT -i $INTIF -s 192.168.1.26 -j ACCEPT


#允许iptables服务器上外网,即访问公网DNS、网页、PING
echo "allow 10.100.1.253 to internet(icmp 80 443 53)"
$iptables -A INPUT -i $EXTIF -d 10.100.1.253 -p icmp --icmp-type 0 -m limit --limit 1/s --limit-burst 2 -j ACCEPT
$iptables -A INPUT -i $EXTIF -d 10.100.1.253 -p udp--sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -i $EXTIF -d 10.100.1.253 -p tcp--sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -i $EXTIF -d 10.100.1.253 -p tcp--sport 443 -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -i $EXTIF -d 10.100.1.253 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT


#允许虚拟环境网络的服务器和客户端通过iptables上外网
echo "allow internal_net(192.168.1.0/24) through 10.100.1.253 to internet(icmp 80 443 53)"
$iptables -A INPUT -i $INTIF -s 192.168.1.0/24 -j ACCEPT
$iptables -A FORWARD -i $EXTIF -d 192.168.1.0/24 -j ACCEPT
$iptables -A FORWARD -i $INTIF -s 192.168.1.0/24 -j ACCEPT
$iptables -t nat -A POSTROUTING -s 192.168.1.41/32 -d 114.114.114.114 -o $EXTIF -j SNAT --to-source 10.100.1.253 #允许内部DNS访问公网DNS
$iptables -t nat -A POSTROUTING -s 192.168.1.29/32-o $EXTIF -j SNAT --to-source 10.100.1.253 #允许单独某台上网
$iptables -t nat -A POSTROUTING -s 192.168.1.0/24-o $EXTIF -j SNAT --to-source 10.100.1.253 #客户端上网关键


#允许虚拟环境的域控访问公网时间服务器,时间同步用
echo "allow DC访问中国国家授时中心的时间服务器ip地址:210.72.145.44"
iptables -t nat -A POSTROUTING -s 192.168.1.41/32 -d 210.72.145.44 -o $EXTIF -j SNAT --to-source 10.100.1.253
iptables -t nat -A POSTROUTING -s 192.168.1.51/32 -d 210.72.145.44 -o $EXTIF -j SNAT --to-source 10.100.1.253


#允许管理PC通过远程桌面访问虚拟环境的windows设备
echo "allow 10.100.1.10 to windows(3389)"
$iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.26 -d 10.100.1.10 --sport 3389 -j SNAT --to-source 10.100.1.253:33897
$iptables -t nat -A PREROUTING -p tcp -s 10.100.1.10-d 10.100.1.253 --dport 33897 -j DNAT --to-destination192.168.1.26:3389
$iptables -A FORWARD-s 10.100.1.10 -d 192.168.1.26 -p tcp --dport 3389-j ACCEPT
$iptables -A FORWARD-s 192.168.1.26 -d 10.100.1.10 -p tcp --sport 3389-j ACCEPT
$iptables -A INPUT -i $EXTIF -s 10.100.1.10 -d 10.100.1.253 -p tcp --dport 33897 -j ACCEPT
$iptables -A INPUT -i $INTIF -s 192.168.1.26 -j ACCEPT


echo "opening loopback interface for socket based services."
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT




}
flush() {
echo "flushing rules...."
$iptables -P FORWARD ACCEPT
$iptables -F INPUT
$iptables -P INPUT ACCEPT
}
case "$1" in
start|restart)
flush
load
; ;
stop)
flush
; ;
*)
echo "usage: start|stop|restart."
; ;
esac
exit 0
}
#--------脚本结束---------#


②iptables可以实现7层过滤,功能强大到基本可以满足你的所有要求
③如果需要真实网络环境的设备访问虚拟环境网络,同样也需要在iptables上添加策略,策略尽量指定某一个IP地址,不要指定一整个网段,使用后不要忘记注释掉
④外部只知道有ESXI服务器的存丰,上面跑了什么服务,只知道有个2222端口,根本无法访问。这就起到与世隔绝的作用,流量只会被限制在ESXI服务器内部,不会对真实网络环境造成影响
⑤最后添加开机自动运行脚本----/etc/sysconfig/iptables.sh


1、 第二个要介绍的是在win10系统上安装华为ensp模拟器,
①因为esxi上只能安装linux、windows系统,如果实验环境里需要用到路由器、交换机、防火墙这些网络设备时
②就要先安装一台win10的虚拟机,内存越大越好,最好8G以上,然后再安装ensp模拟器,思科的GNS3也可以
③eNSP里绘制网络拓朴,添加需要的网络设备,使用”云”来绑定windows、linux虚拟机,这样就可以将虚拟机与网络设备连接起来,组合成一个新的虚拟网络
④因为eNSP自身的原因,毕竟是一个软件,肯定会有BUG,经常会出现虚拟防火墙、路由器死掉的问题,记得多保存。
⑤eNSP搭建网络环境时,最好先绘制好拓朴,添加完设备,然后连线设备,最后开机设备。一点建议,有时遇到问题,需要这样操作来解决!


7、实验环境中服务器搭建建议
windows服务器搭建:
①DC、DNS、DHCP、WINS、文件,一台服务器。最少4G内存,内存太小,启动就很慢,
②跟数据库有关的尽量不要搞,例如exchange,低于64G的内存,碰了就后悔。
③Windows实验环境搭建,完全看内存的大小
④客户端系统的安装可以使用mdt,、ghost,也可以先安装系统,再打补丁安装软件并清除SID,最后通过esxi导出生成ovf模板保存
⑤服务器系统一定要通过安装镜像一步一步的安装,因为很快,也不会出现问题
⑥看情况搭建wsus服务
linux服务器搭建:
①FTP、docker安装
②生成OVF模板。最小化安装centos系统, 修改yum为阿里、163、清华的都可以,安装net-tools工具、关闭selinux、关闭firewalld,注释掉网卡配置文件里的MAC地址、IP地址,安装iptables、安装docker等。最后关机生成模板
③Zabbix、nagios、cacti、prometheus等监控的搭建
④Linux上的很多服务都可以在docker上创建,因为很方便,占用内存还少,如果esxi的内存不太充足的话,建议能用docker全用docker



    推荐阅读