在Hyper-V环境下进行安装Centos7系统

1.创建虚拟机


步骤1,在磁盘上创建目录。新建一个CenOS7_Nginx_Keepalived_03的目录,分别在目录下新建三个文件夹:SmartPaging File,Snapshots,Virtual Hard Disks。


步骤2,点击New,然后选择Virtual Machine..,打开创建虚拟机窗口。



步骤3,点击下一步按钮。



步骤4,输入虚拟机的名称和选择存储的路径。


步骤5,为虚拟机分配内存,可根据自己需求分配大小,然后点击下一步按钮。


步骤6,选择网络连接New Virtual Switch后,点击下一步按钮。


步骤7,为系统分配磁盘空间,可根据需求来分配大小,然后点击下一步按钮。


步骤8,选择安装的镜像文件后,点击下一步按钮。



步骤9,点击完成按钮后,完成整个虚拟机的创建


步骤10,在Hyper-V管理界面中,选择虚拟机后,右键弹出菜单选择Settings选项。


步骤11,分别选中Snapshot File Location 和Smart Paging FileLocation后,更改存储目录。



步骤12,选择IDE Controller1查看Image File的文件是否存在,检查后,点击确认按钮。


在Hyper-V中选择虚拟机,然后右键弹出菜单,选择Start选项开始进行安装系统,再双击打开虚拟机。

2.安装系统



步骤1,启动安装界面。



步骤2,安装界面中,选择英文,然后点击继续按钮。


步骤2,在安装界面中进行相关配置。

2.1设置日期和时间



选择Asia->HongKong,选择香港时间或者Shanghai上海时间,然后点击Done按钮。

2.2设置键盘



点击KEYBOARDLAYOUT后,设置键盘,可添加多个语言,例如:添加中午,点击+按钮后,在弹出窗口中输入chi会自动搜索数据,找到Chinese后选中并点击Add按钮。最后点击Done按钮。

2.3支持语言



除了支持English外还可添加其他语言的支持,例如想支持中文,可在输入框中输入Chinese后便可显示中文的选项。


选择中文后,再勾选简体中文复选框,当然可根据需求选择相应版本的中文,然后点击Done按钮。

2.4安装源



点击INSTALLATION SOURCE,进行设置安装源,点击Verify按钮,进行检查。


显示安装源正常,如果需要其他的安装源可根据需求进行添加,最后点击Done按钮。该步骤也已忽略

2.5安装分区



如果不需要进行分区,直接点击Done按钮。


2.6网络&主机名


选择On按钮后,然后点击Done按钮。如果需要进行其他配置可点击Configure按钮。或者安装系统后再进行其他配置也可以。


点击Begin Installation按钮进行安装。

2.7配置安装

创建配置和安装界面。



创建配置和安装界面。



点击Root PASSWORD后进行设置登录密码,默认账户是root

安装过程。


安装完成后,点击Reboot按钮,重启。


输入用户密码和密码后可进行登录进入系统root,SA123456


登录成功。


输入cat /etc/redhat-release,查看centos 版本。


输入 cat /proc/version查看linux内核版本和基于redhat的发行版。


输入hostnamectl可以查看机器信息。

3.安装Linux Integration Services

参考地址:https://www.kafan.cn/edu/44602922.html

安装虚拟机后,虚拟机可能没有网卡驱动,由于Hyper-v是不是支持linux网络服务的。

解决办法是安装微软提供的:Linux Integration Services Version v3.2 for Hyper-V工具(下载地址):下载下来之后是一个iso文档,挂着在linux的虚拟光驱下执行安装命令。

建议到微软的官方输入Linux Integration Service进行搜索最近版本的安装下载。

3.1下载Linux Integration Services

1. 下载微软虚拟机Linux集成服务包 LinuxIntegration Services v3.2

http://www.microsoft.com/zh-cn/download/details.aspx?id=28188

3.2加载光盘镜像

【媒体】-【DVD驱动器】-【插入磁盘】选择刚下载的iso文件,加载光盘镜像



3.3挂载光盘镜像并安装

输入命令:

#mkdir -p /mnt/cdrom

#mount /dev/cdrom /mnt/cdrom

#cd /mnt/cdrom

#./install.sh

4.配置IP



登录系统成功后,输入cd /etc/sysconfig/network-scripts然后可看到ifcfg-eth0配置文件。


输入vi ifcfg-eth0后进行编辑文件,配置IP地址。


Ifcfg-eth0文件内容。


根据需求修改配置后后,按Esc键,输入:wq保存文件(注意单词的拼写)。


输入systemctl restart network重启网络服务,然后输入ip addr查看IP地址,显示所配置的IP。


输入ping www.baidu.com,可以ping,说明可以上网了。


5.安装常用软件


使用yum的方式进行在线安装常用软件。



输入y后就可以进行下载。


下载完成后进行安装。

Yun install top

Yum install ssh

Yum install vsftpd

Yum install ftp

Yum install iptables-services

Yum install firewalld

Yum install net-tools

6.配置防火墙

Net-filter是Linux的一种防火墙机制。而Firewalld是一个在网络区域(networkszones)的支持下动态管理防火墙的守护进程。早期的RHEL版本和CentOS 6使用iptables这个守护进程进行数据包过滤。而在RHEL/CentOS 7和Fedora 21中,iptables接口将被firewalld取代。

由于iptables可能会在未来的版本中消失,所以建议从现在起就使用Firewalld来代替iptables。虽然现行版本仍然支持iptables,而且还可以用YUM命令来安装。不过可以肯定的是,在同一个系统中不能同时运行Firewalld和iptables,否则可能引发冲突。

6.1.iptables配置


输入cd /etc/sysconfig后,在输入ls –l显示目录下的列表可看到iptables。


输入more iptables显示防火墙的配置信息。


如果需要配置将某个程序的端口添加到iptables中,但又不知道程序的通信端口号,可需要输入netstat –ntlp查看所有程序的端口,如果想查看ftp的端口可输入netstat –ntlp | grep ftp显示ftp的端口。


输入vi iptables对配置文件进行编辑。

设置现有规则

#查看iptables现有规则

iptables -L -n

#先允许所有,不然有可能会杯具

iptables -P INPUT ACCEPT

#清空所有默认规则

iptables -F

#清空所有自定义规则

iptables -X

#所有计数器归0

iptables -Z

#允许来自于lo接口的数据包(本地访问)

iptables -A INPUT -i lo-j ACCEPT

#开放22端口

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

#开放21端口(FTP)

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

#开放80端口(HTTP)

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

#开放443端口(HTTPS)

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

#允许ping

iptables -A INPUT -p icmp--icmp-type 8 -j ACCEPT

#允许接受本机请求之后的返回数据RELATED,是为FTP设置的

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

#其他入站一律丢弃

iptables -P INPUT DROP

#所有出站一律绿灯

iptables -P OUTPUT ACCEPT

#所有转发一律丢弃

iptables -P FORWARD DROP

其他规则设定

#如果要添加内网ip信任(接受其所有TCP请求)

iptables -A INPUT -p tcp -s 45.96.174.68 -jACCEPT

#过滤所有非以上规则的请求

iptables -P INPUT DROP

#要封停一个IP,使用下面这条命令:

iptables -I INPUT -s ***.***.***.*** -jDROP

#要解封一个IP,使用下面这条命令:

iptables -D INPUT -s ***.***.***.*** -jDROP

保存规则设定


编辑vi iptables,添加FTP的21端口到配置中,-A INPUT –p tcp –dport 21 –j ACCEPT,保存成后,然后输入systemctlrestart iptables重启防火墙。在其他的客户中就可以访问FTP,否则提示No route to host。


输入systemctl start iptables启动防火墙,systemctlstatus iptables查看防火墙状态,systemctl stop iptables停止防火墙。

6.2.firewalld配置

该章节类容参考linux公社: http://www.linuxidc.com/Linux/2015-02/113206p3.htm

6.2.1.区域概念

在进行firewalld配置之前,了解一下区域(zones)这个概念。默认情况就有一些有效的区域。我们需要网络接口分配区域。区域规定了区域是网络接口信任或者不信任网络连接的标准。区域(zone)包含服务和端口。接下来让我们讨论Firewalld中那些有用的区域(zones)。

 

丢弃区域(DropZone):如果使用丢弃区域,任何进入的数据包将被丢弃。这个类似与我们之前使用iptables -j drop。使用丢弃规则意味着将不存在响应,只有流出的网络连接有效。

阻塞区域(BlockZone):阻塞区域会拒绝进入的网络连接,返回icmp-host-prohibited,只有服务器已经建立的连接会被通过。

公共区域(PublicZone):只接受那些被选中的连接,而这些通过在公共区域中定义相关规则实现。服务器可以通过特定的端口数据,而其它的连接将被丢弃。

外部区域(ExternalZone):这个区域相当于路由器的启用伪装(masquerading)选项。只有指定的连接会被接受,而其它的连接将被丢弃或者不被接受。

隔离区域(DMZ Zone):如果想要只允许给部分服务能被外部访问,可以在DMZ区域中定义。它也拥有只通过被选中连接的特性。

工作区域(WorkZone):在这个区域,我们只能定义内部网络。比如私有网络通信才被允许。

家庭区域(HomeZone):这个区域专门用于家庭环境。我们可以利用这个区域来信任网络上其它主机不会侵害你的主机。它同样只允许被选中的连接。

内部区域(InternalZone):这个区域和工作区域(Work Zone)类似,只有通过被选中的连接。

信任区域(TrustedZone):信任区域允许所有网络通信通过。



输入firewall-cmd –get-zones列出有用区域。


输入firewall-cmd –get-default-zone列出默认区域。


输入Firewall-cmd –list-all-zones列出所有区域。

6.2.2设置默认区域

如果你想设置默认区域像internal、external、drop、work或者其它区域,可以使用下面的命令来设置。这里以设置internal做默认区域为例。

 

# firewall-cmd --set-default-zone=internal

 

设置完毕,使用下面命令核实默认区域。

 

# firewall-cmd --get-default-zone


这里使用的接口是enp0s3,如果需要查看哪个区域和这个接口绑定可以使用下面的命令。

# firewall-cmd--get-zone-of-interface=enp0s3


firewalld另外一个有趣的特性是“icmptype”是一个firewalld支持的icmp类型。可以使用下面的命令来列出firewalld所支持的icmp类型。

# firewall-cmd --get-icmptypes

6.2.3.在firewalld中创建自己的服务

服务是firewalld所使用的有关端口和选项的规则集合。被启动的服务会在firewalld服务开启或者运行时自动加载。默认情况下,很多服务是有效的。使用下面命令可列出有效的服务


输入firewall-cmd --get-services列出所有服务


输入cd /usr/lib/firewalld/services/进入目录列出默认有效的服务。


想要创建自己的服务,需要在下面的目录下定义它。比如,现在我想添加一个FTP  服务,端口号21。首先,任选一个服务复制过来。

输入cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/然后进入

cd /etc/firewalld/services/下查看文件。


输入mv ssh.xml ftp.xml修改文件名称。


接下来输入vi ftp.xml打开并编辑文件的头部、描述、协议和端口号,以供FTP服务使用


修改完成后,进行保存。


重启firewalld服务或者重新加载设置,以激活这些设置。输firewall-cmd --reload为确认服务是否已经启动,运行下面的命令获取有效的服务列表。输入firewall-cmd --get-services。


6.2.4.为区域分配服务


通过“firewall-cmd”命令来管理firewalld。输入firewall-cmd --state命令了解当前的状态和输入firewall-cmd –get-active-zones了解所有激活的区。


在文件/etc/firewalld/firewalld.conf中定义成DefaultZone=public。以下命令列出这个默认接口区域中有效服务


输入firewall-cmd –add-service=ftp将ftp服务添加到区域中,输入firewall-cmd–zone=public—remove-serivce=ftp删除已经加入的区域和类型。


上面的设置只是暂时性的。想要永久有效需要执行下面的命令,加带选项—permanent.。添加或这删除任何服务或者端口,必须要输入firewall-cmd –reload命令确保重载firewalld服务。firewall-cmd –add-service=ftp --permanent


输入firewall-cmd –list-all显示所有的服务,在其客户端下可以使用ftp10.190.130.78来访问ftp。


如果没有在firewalld中添加服务和端口的话,客户端会显示No route to host.


6.2.5在Firewall启动状态下运行Nginx



在Firewall启动的情况下,其他客户端无法访问到htt:\\10.190.130.78:8007。



在Firewall中添加8007端口,firewall-cmd –permanent –add-port=8007/tcp,然后在输入firewall-cmd–reload,重载成功过后,在输入firewall-cmd –list-all,可显示添加的8007端口。


输入netstat -ntlp | grep nginx查看nginx的占用端口


在其他客户端中输入wget http://10.190.130.78:8007就可以访问成功。

7.配置FTP



输入whereis vsftpd后查看文件位置,然后输入cd /etc/vsftpd查看vsftpd.conf配置文件。



修改文件之前先备份输入cp vsftpd.conf vsftpd.conf.bak进行备份文件。



anonymous_enable=YES  //是否允许anonymous登录FTP服务器,默认是允许的.

local_enable=YES  //是否允许本地用户登录FTP服务器,默认是允许

write_enable=YES  //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许

listen=YES  //使vsftpd 处于独立启动模式

userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器


输入vi ftpusers后,进入到文件中将root用户注释#root后,进行保存。


输入vi user_list后,进入到文件中将root用户注释#root后,进行保存。


输入systemctl start vsftpd后启动服务,然后输入systemctl status vsftpd查看状态,该状态显示已经启动成功。


输入ftp localhost进行本地登录ftp,然后输入账户和密码后,登录成功。如果输入ftp localhost提示找不到命令时,需要输入yum install ftp安装客户端。


在其他服务器下,可输入ftp10.190.130.78后可进行登录成功。


当使用FileZilla工具进行上传文件时,提示错误:553Could not create file.



原因是他的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。

//查看SELinux设置

# getsebool -a|grep ftp


分别输入Setsebool ftp_home_dir on和setseboolftpd_full_access on用户可以通过ftp工具上传文件到指定目录。


被修改的设置状态为on


通过ftp工具上传文件成功


在ftp目录下可看到上传的文件。

7.1.主被动模式

因为FTP有两种工作模式,PORT方式和PASV方式,中文意思为主动式和被动式,详细介绍如下:

  主动 FTP :

    命令连接:客户端 >1024 端口→ 服务器 21 端口

    数据连接:客户端 >1024 端口← 服务器 20 端口

  被动 FTP :

    命令连接:客户端 >1024 端口→ 服务器 21 端口

    数据连接:客户端 >1024 端口← 服务器 >1024 端口

  PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。 

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。

 

简而言之:

主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机


7.2.主动模式

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。


在客户端当连接FTP时,出现227 Entering Passive Mode的问题时,必须输入systemctlstop

Firewalld 将防火墙停止后,需要再次输入passive命令后就可以进行数据传送了。

登录ftp时显示227 Entering Passive Mode (xxx,xxx,,xxx,xxx,x)

解决此问题的办法也很简单,在客户端先关闭防火墙systemctl stop firewalld,然后关闭客户端的PASV方式,强制其用PORT方式访问服务器,登录FTP服务器后用passive命令关闭客户端的PASV方式,如下:

 

  ftp> passive

Passive modeoff.

如果需要开启:

  ftp> passive (再次运行命令可打开)

Passive mode on.

注意:由于FTP服务器企图与客户端的高位随机端口建立连接(当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。),而这个端口很有可能被客户端的防火墙阻塞掉,所以只能关闭客户端的防火墙并关闭passive方式。

 

如果使用的ftp工具来连接ftp服务器那么需要在工具进行设置。在单点管理器中,需要设置协议为SFTP-SSH File Transfer Protocol协议进行连接。


连接是会弹出提示框


选择确认按钮


连接服务器成功,并且上传文件。

7.3.被动模式

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。


进入到cd /etc/vsftpd后编辑vi vsftpd.conf文件,在文件末尾添加:

Pasv_min_port=6000

Pasv_max_port=7000

Pasv_enable=YES

然后进行保存后,输入systemctl restart vsftpd重启vsftpd服务。



注意:由于服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链 路来传送数据。

,所以在服务端需要添加在firewall中添加开放端口。

在FTP服务器断输入firewall-cmd –permanent–add-port=6000-7000/tcp后,将端口永久添加到防火墙中.


再次输入firewall-cmd –list-all查看添加的端口。


在客户端的防火墙启动的状态下,输入ftp10.190.130.78后,输入用户名和密码登录成功,组后可输入ls命令查看文件目录,并且可进行做其他的操作。

8.配置SSH


安装完成ssh后,如果不知道在那个目录下找到可以输入whereis ssh可查询文件目录。


输入cd /etc/ssh,然后输入ls –l显示文件列表。

在命令行中输入vi sshd_config后进入文件编辑。


取消PermitRootLogin前面的#号,修改进行保存。


输入systemctl start sshd启动sshd服务,

然后输入sytemctl status sshd查看sshd的状态。


输入ssh localhost,然后提示输入登录密码,登录成功。使用xshell或者Putty可以进行远程访问服务器。



使用xshell可以远程访问,配置成功。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Chris_111X/article/details/52313797
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭