eSXi网络实验环境搭建_centos

1、 学习网络管理和运维,光听、光看很难深入理解

2、 搭建实验环境亲自操作,不仅加深印象、帮助理解知识点,还会遇到各种奇怪的问题。

3、 搭建网络服务并非难事,当服务出现问题时,如何解决是最重要的

4、 需要一台Esxi服务器,接入真实网络:

① 物理网卡一个足够、可以新建多个虚拟网卡供实验环境使用

② 建立多个端口组、多个虚拟交换机,如图:

eSXi网络实验环境搭建_docker_02

eSXi网络实验环境搭建_linux_03

③ 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

$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-destination 192.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-destination 192.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-destination 192.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-destination 192.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