Ạ Ọ Ẵ Đ I H C ĐÀ N NG
ƯỜ
Ệ
TR
NG Đ I H C CÔNG NGH THÔNG TIN VÀ
Ạ Ọ Ề
Ệ
TRUY N THÔNG VI T – HÀN
Ị Ạ
QU NẢ TR M NG (5)
DEPLOY WEB SERVER, FTP SERVER, AND DNS SERVER SERVICES ON WINDOWS NANO SERVER.
ự ệ ườ Sinh viên th c hi n: ễ Nguy n T ng Nguyên 19IT5
ầ ươ ị Tr n Th Thu Ph ng 19IT6
ươ Tr ng Sĩ Phúc 19IT6
Võ Đình Nguyên Phúc 19IT6
Nhóm :
ả ướ ẫ Gi ng viên h ng d n : 05 ThS. Lê Kim Tr ngọ
ẵ Đà n ng, tháng 11 năm 2021
Ạ Ọ
Ệ
Ệ
Ề Đ I H C CÔNG NGH THÔNG TIN VÀ TRUY N THÔNG VI T HÀN
Ọ
KHOA KHOA H C MÁY TÍNH
DEPLOY WEB SERVER, FTP SERVER, AND DNS SERVER SERVICES ON WINDOWS NANO SERVER.
Ị Ạ
QU NẢ TR M NG (5)
ẵ Đà n ng, tháng 11 năm 2021
Ờ Ả Ơ L I C M N
ố ồ ậ ượ ự t đ án này, em đã nh n đ ỡ
ể ự ướ ộ c s giúp đ ệ ầ ng d n r t t n tình c a các th y cô thu c Khoa Công ngh
ệ ẫ ấ ậ ề ả ơ ệ t Hàn. Em xin c m n các
ầ
ộ ộ ế ầ ờ ố t trong su t th i gian
ể ồ t em
ứ ể ự ả ơ ườ
ọ ệ ự ẫ ồ Đ th c hi n và hoàn thành t ủ và h ạ ọ Thông tin Và Truy n thông – Đ i h c Vi ấ th y cô thu c b môn chuyên ngành đã cung c p cho chúng em các ế thông tin, ki n th c vô cùng quý báu và c n thi ệ ặ ủ ệ quá đ em có th th c hi n và hoàn thành đ án c a mình. Đ c bi ự ế ầ xin chân thành c m n thành th y Lê Kim Tr ng ng i đã tr c ti p ờ ướ ng d n chúng em trong th i gian th c hi n đ án này. h
ố
ộ ủ ả ơ ỡ ứ ệ
ượ ứ ự ệ ề
ề ặ ứ ờ
ế ữ ỏ
ớ ạ ề ả ư ấ ữ ầ ậ
ủ ạ ạ ệ Cu i cùng, xin chân thành c m n các b n trong ngành công ngh ệ ẻ ế thông tin đã ng h , giúp đ , chia s ki n th c, kinh nghi m và tài li u c giúp chúng tôi trong quá trình nghiên c u và th c hi n đ tài. có đ ự ệ i h n v m t th i gian và ki n th c cũng nh kinh nghi m th c Do gi ậ ượ ễ ti n nên đ tài không tránh kh i nh ng sai sót. Em r t mong nh n đ c ủ ự s thông c m c a quý th y cô và mong đón nh n nh ng góp ý c a ầ th y cô và các b n.
ả ơ Em xin chân thành c m n!
4
Ờ
Ậ L I NH N XÉT
................................................................................................................. ................................................................................................................. ................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
................................................................................................................. .................................................................................................................
5
Table of Contents
6
M Đ UỞ Ầ
ủ ụ ụ ặ ể ủ ớ ự ệ ầ ử ụ V i s phát tri n c a các máy ch ph c v , đ c bi t là nhu c u s d ng
ủ ọ ả ử ế ị Web, tính quan tr ng c a DNS và FTP. Gi ụ s n u 1 ngày nào đó các d ch v
ồ ạ ữ ẽ ị ả ưở đó không còn t n t i n a, thì internet s b nh h ọ ng nghiêm tr ng, và có th ể
ị ệ ắ ượ ầ ắ ế ủ ụ ượ ọ nghiêm tr ng là b tê li t. N m b t đ c c n thi ị t c a các d ch v trên, đ c
ẫ ủ ọ ề ế ị ọ ự ướ s h ng d n c a ThS. Lê Kim Tr ng, nhóm em đã quy t đ nh ch đ tài
ể "Tri n khai web server, FTP server, DNS Server trên Windows Nano Server"
7
ƯƠ
Ề Ề
Ổ
CH
NG I: T NG QUAN V Đ TÀI
Ớ
Ệ
I. GI
I THI U
1. Nano server:
ự ỏ ơ ặ ọ ớ Nano Server t ặ ầ hào có cài đ t nh h n 92 ph n trăm so v i tùy ch n cài đ t
ồ ọ ệ ườ ữ giao di n đ h a ng i dùng Windows Server (GUI). Ngoài ra, nh ng lý do
ắ ầ ụ ế ể ế ạ ượ ạ thuy t ph c sau có th khi n b n b t đ u ch y Nano cho các l ng công
ệ vi c Windows Server.
ệ ề ườ ẽ ả ậ ậ H đi u hành Baremetal có nghĩa là ng ở i dùng s ph i ít c p nh t và kh i
ạ ở ườ ủ ừ ả ộ đ ng l i. B i vì ng i dùng ph i vào các vai trò máy ch t bên ngoài Nano,
ộ ề ặ ấ ủ ẽ ề ả ớ nên máy ch s có m t b m t t n công gi m nhi u khi so v i GUI Windows
ỏ ế ể ượ ứ ể ễ Server. Nano nh đ n m c nó có th đ ủ c chuy n d dàng qua các máy ch ,
ữ ệ ư ậ ữ ố ượ trung tâm d li u và các trang web v t lý. Nano l u tr các kh i l ng công
ổ ế ủ ệ ấ ồ vi c Windows Server ph bi n nh t bao g m máy ch HyperV. Nano đ ượ c
ế ế ể ả ừ ộ ồ thi t k đ qu n lý hoàn toàn t ệ xa. Tuy nhiên, Nano bao g m m t giao di n
ộ ố ụ ả ượ ọ qu n lý c c b t ể i thi u đ c g i là "Nano Server Recovery Console" cho
ụ ấ ự ệ ầ phép th c hi n các tác v c u hình ban đ u.
2. Docker
ề ả ụ ể ấ Docker là n n t ng cung c p cho các công c , service đ các developers,
ự ứ ụ ể ể ạ ớ adminsystems có th phát tri n, th c thi, ch y các ng d ng v i containers.
ể ể ấ ộ ộ ề ả Hay nói m t cách khác nó là m t n n t ng đ cung c p cách đ building,
ề ả ụ ứ ễ ả ộ deploy và run các ng d ng m t cách d dàng trên n n t ng o hóa "Build
ễ ể ư ộ ố once, run anywhere". Hay nói m t cách d hi u nh sau: Khi chúng ta mu n
ả ạ ế ậ ườ ạ ch y app thì chúng ta ph i thi t l p môi tr ng ch y cho nó. Thay vì chúng ta
ườ Ứ ẽ ạ ạ ẽ s đi cài môi tr ụ ng ch y cho nó thì chúng ta s ch y docker. ng d ng
ể ượ ử ụ ứ ạ Docker ch y trong vùng ch a (container) có th đ c s d ng trên b t k h
ấ ỳ ệ 8
ệ ố ơ ở ủ ể ố ặ th ng nào: máy tính xách tay c a nhà phát tri n, h th ng trên c s ho c
ệ ố ụ ạ ộ ườ ượ trong h th ng đám mây. Và là m t công c t o môi tr ng đ c "đóng gói"
ọ ộ ớ (còn g i là Container) trên máy tính mà không làm tác đ ng t i môi tr ườ ng
ệ ạ ủ ườ ộ ậ ẽ hi n t i c a máy, môi tr ạ ng trong Docker s ch y đ c l p. Docker có th ể
ề ả ư ệ ề làm vi c trên nhi u n n t ng nh Linux, Microsoft Windows và Apple OS X.
3. IIS
ế ắ ủ ụ ừ ệ IIS là vi t c a c m t t t Internet Information Services. Khái ni m này ch ỉ
ữ ề ượ ả ớ ầ nh ng ph n m m đ c đính kèm v i các phiên b n Window. Chúng có tác
ủ ạ ụ ể ấ ị ụ d ng cung c p các d ch v cho máy ch ch y trên Window. Đ phân tán các
ụ ư ạ ồ ị ề thông tin lên m ng Internet. G m nhi u d ch v khác nh Web Server, FTP
Server…
9
4. FTP
ế ắ ủ ứ FTP (vi ề ậ ị t c a File Transfer Protocol, d ch ra là "Giao th c truy n t p t t
ườ ượ ể ạ ướ tin") th ng đ ổ ậ c dùng đ trao đ i t p tin qua m ng l ề i truy n thông
ạ ộ ư ứ ẳ ạ ạ ặ dùng giao th c TCP/IP (ch ng h n nh Internet m ng ngo i b ho c
ộ ộ ạ ộ ạ ầ ộ ủ Intranet m ng n i b ). Ho t đ ng c a FTP c n có hai máy tính, m t máy
ủ ộ ch và m t máy khách)
5. DNS
ỗ ế ị ạ ế ề ạ M i máy tính, thi ớ t b m ng tham gia vào m ng Internetđ u giao ti p v i
ệ ể ằ ậ ỉ ị ệ ử ụ nhau b ng đ a ch IP (Internet Protocol) . Đ thu n ti n cho vi c s d ng
ể ễ ớ ị ế ị ệ ố và d nh ta dùng tên (domain name) đ xác đ nh thi t b đó. H th ng tên
ề ượ ử ụ ề ể mi n (Domain Name System) đ ị ạ c s d ng đ ánh x tên mi n thành đ a
ỉ ch IP.
ệ ớ ậ ố ỉ ầ ử ụ ỗ Vì v y, khi mu n liên h t i các máy, chúng ch c n s d ng chu i ký t ự
ư ớ ễ d nh (domain name) nh : www.microsoft.com, www.ibm.com..., thay vì
ố ị ỉ ớ ộ ử ụ s d ng đ a ch IP là m t dãy s dài khó nh .
ư ầ ờ ườ ử ụ ộ Ban đ u, khi DNS ch a ra đ i, ng i ta s d ng m t file tên Host.txt, file
ẽ ư ủ ấ ả ỉ ủ ề ị này s l u thông tin v tên host và đ a ch c a host c a t t c các máy
ạ ượ ư ở ấ ả ể ể trong m ng, file này đ c l u ấ t c các máy đ chúng có th truy xu t t
ấ ỳ ự ổ ề ạ ế ế đ n máy khác trong m ng. Khi đó, n u có b t k s thay đ i v tên host,
ả ậ ậ ạ ủ ỉ ộ ị đ a ch IP c a host thì ta ph i c p nh t l i toàn b các file Host.txt trên t ấ t
ế ệ ậ ộ ả c các máy. Do v y đ n năm 1984 Paul Mockpetris thu c vi n USC’s
ộ ệ ố ể ả ề Information Sciences Institute phát tri n m t h th ng qu n lý tên mi n
ệ ố ớ ấ ề m i l y tên là H th ng tên mi n – Domain Name
10
ươ ế 6. K t ch ng I:
ề ổ ơ ở ề ấ ể Thông qua tìm hi u v t ng quan ở ươ ch ng I, làm c s đ xu t phân tích
ế ế ệ ố ẽ ượ ươ thi t k h th ng s đ c trình bày trong ch ế ng ti p theo
11
ƯƠ
Ế Ệ Ố
Ế
CH
NG II: PHÂN TÍCH THI T K H TH NG
I.
Ơ Ồ Ạ S Đ M NG
ơ ồ ạ 1. S đ m ng trên VMWare
ơ ồ ạ 2. S đ m ng trên google Engine
12
ƯƠ
Ể
CH
NG III: TRI N KHAI
Ể
I. TRI N KHAI TRÊN VMWare
1. VyOS
ử ụ ồ S d ng VyOS làm router, g m có 3 network adapter
ể o Network adapter (NAT) dùng đ đi internet
o Network adapter 2 (192.168.5.1) dùng cho phòng IT
ế o Network apdater 3 (172.16.5.1) dung cho phòng k toán
2. Nano Server
ử ụ S d ng network adapter 2 (192.168.5.4)
ượ ụ ộ ư Nanoserver đ c xem nh là 1 server c c b
ứ ể Các ch c năng đã tri n khai trên nano server
o Web Server (IIS)
o DNS Server
Cách cài windows nano server
ậ ổ đĩa o Dùng máy th t mount file windows server 2016 iso ra 1
ể ố ị ủ ạ o Vì các drive c a windows server 2016 đang đ c đ nh ch y
ủ ầ trên HyperV, nên mình c n cài drive riêng c a VMWare cho
NanoServer
o Mount file C:\Program Files (x86)\VMware\VMware
ạ ặ ồ Workstation\windows.iso ra, r i ch y file setup.exe, ho c dung
ệ cmd run l nh ./setup.exe /a
ư ụ ừ ừ o Copy th m c NanoServerImageGenerator v a mount t
windows server 2016 iso ra 1 folder m i.ớ
ờ import đó vào powershell o Gi
13
ImportModule .\NanoServerImageGenerator.psd1
ủ ụ ể ạ ặ o S d ng powershell ho c windows terminal đ ch y
NewNanoServerImage Edition Datacenter MediaPath G:\
BasePath .\Base TargetPath
.\NanoServer\NanoServerTest.vhdx DeploymentType Guest
ComputerName NanoVM Storage Package Microsoft
NanoServerIISPackage, MicrosoftNanoServerDNSPackage
DriverPath ./VMWareTools/Drivers
Ở ơ ư đây TargetPath là n i l u file Windows nano server
ỉ ổ ị ừ MediaPath là đ a ch đĩa mà v a mount file windows server
2016 iso ra
ầ Package là các package mà mình c n cài vào Nano Server, ở
ổ ừ đây đang cài IIS và DNS (vào đĩa v a mount > NanoServer >
ể ấ Packages đ l y tên Package
ư ụ ỉ ế ừ ị DrivePath là đ a ch đ n th m c drive VMWare v a mount ra
14
ầ ể Sau khi có file .vhdx, c n chuy n sang file .vmdk, vì VMWare
ể ự ử ụ ệ ạ ể ch y file .vmdk, s d ng tool qemuimg đ th c hi n chuy n
đ iổ
./qemuimg.exe convert p ..\NanoServer\NanoServer.vhd O
vmdk ..\NanoServer\NanoServer.vmdk
ế ế Ti p đ n import file vmdk qua VMWare
15
16
17
18
ọ Ch n sang BIOS thay vì UEFI
19
20
ả ọ Ph i ch n IDE
21
22
ừ ế ọ ớ Ch n đ n file .vmdk v a m i convert
23
ấ Nh n Convert
ả ở M file .vmx trong folder máy o VMWare lên
24
ử ạ S a card m ng sang vmxnet3
ấ C u hình IP tĩnh cho nanoServer
25
Setup firewall cho phép ping đ nế
Inbound Firewall rules > Virtual Machine Monitoring (Echo Request – ICMPv4
– In)
ể ổ ạ ấ Nh n F4 đ đ i sang tr ng thái allow
26
27
ỗ ợ ệ ằ ỉ Remote powershell, nanoServer không h tr GUI, ch thao tác b ng l nh, do
ượ ủ ẹ ặ ấ đó dung l ả ng c a NanoServer r t nh kho ng 1GB khi đã cài đ t IIS + DNS
Server
ế ằ Remote powershell b ng cách dùng powershell trên máy khác và ti n hành
ệ ệ ể ự remote vào windows nano server đ th c hi n các l nh trên nano server
ể ễ ể Có th dùng powershell ISE đ d thao tác
28
EnterPSSession ComputerName 192.168.5.4 Credential ~\Administrator
ặ ầ ầ ẽ Sau khi remote thành công, s có ph n IP ho c hostname ở ướ tr ậ c ph n nh p
l nhệ
ở ạ ế ệ ể
$s = NewPSSession ComputerName "192.168.5.4" Credential ~\Administrator L nh trên dùng đ kh i t o session và gán session đó vào bi n $s
ể ế ệ ố
CopyItem ToSession $s Path C:\Config\applicationHost.config Destination C:\Windows\System32\inetsrv\config\ L nh trên dung đ copy file vào nanoServer, n u mu n copy file t
ừ
ề nanoServer v máy thì thay ToSession thành FromSession
ấ C u hình website trên IIS
ể o ImportModule IISAdministration dùng đ Import các module
IIS
ể ấ o GetIISSite đ l y các trang web đã thêm vào IIS
ể o RemoveIISSite Name "Nhom05FTP" Dùng đ xóa trang web
có tên là Nhom05FTP
29
o NewIISSite Name "Nhom05" BindingInformation "*:80:"
ể PhysicalPath "C:\webserver" Dùng đ thêm 1 trang web vào
ệ ạ IIS, hi n t ắ i đang thêm 1 trang web tên Nhom05, đang l ng
ổ ấ ả ớ ườ nghe trên http c ng 80 và t t c các hostname, v i đ ẫ ng d n
ậ v t lý là C:\webserver
ấ C u hình DNS Server
o EnableWindowsOptionalFeature Online FeatureName DNS
ể ậ ServerFullRole Dùng đ b t tính năng DNSServerFullRole
(DNS Server)
ệ ấ ả t kê t t c các tính o GetWindowsOptionalFeature Online Li
năng
o GetDnsServer
o AddDnsServerPrimaryZone ZoneName nhom05.org ZoneFile
nhom05.org.dns
o AddDnsServerResourceRecordA Name www ZoneName
nhom05.org IPv4Address 192.168.5.4
o AddDnsServerSecondaryZone Name "nhom05.org" ZoneFile
"nhom05.org.dns" MasterServers 192.168.5.4
o RemoveDnsServerZone "nhom05.org" PassThru Verbose
30
ể ể ấ ả C u hình DNS đ windows nano server có th đi phân gi ề i tên mi n
internet
o GetDNSClient
InterfaceIndex 2 o SetDnsClientServerAddress
ServerAddresses ("8.8.8.8","8.8.4.4")
o ipconfig /all
o ping google.com
ả ủ ế K t qu c a website + DNS
3. Các máy tr mạ
ạ ử ụ 2 máy tr m windows server 2016, windows 7 s d ng network
adapter 2
ử ụ ạ 1 máy tr m windows 7 s d ng network adapter
31
Ể
II. TRI N KHAI TRÊN GOOGLE ENGINE
ả ủ ề 1. Thông tin v máy o c a google Engine
RAM: 4GB
CPU: 2 cores
Disk: 50GB
ấ 2. C u hình website
ử ụ ể ạ ưở S d ng Docker đ t o 1 môi tr ả ng máy o khác
ặ Cài đ t docker
ề ở ớ o M powershell v i quy n administator
o [Net.ServicePointManager]::SecurityProtocol =
[Net.SecurityProtocolType]::Tls12
o RegisterPSRepository Default
o InstallModule Name DockerMsftProvider Force
o InstallPackage Name docker ProviderName
DockerMsftProvider
o RestartComputer Force
ừ ề Pull image t docker hub v
o Docker pull
mcr.microsoft.com/windows/nanoserver:10.0.14393.2363
o Docker pull nanoserver/iisphp
o Docker pull nanoserver/iis
ạ ừ ề Ch y n n container t image
o Docker run it d
mcr.microsoft.com/windows/nanoserver:10.0.14393.2363
32
ể ấ ả ạ t c container đã t o o Docker ps a Đ xem t
ậ Truy c p vào windows nano server docker
o Docker exec it
ạ ơ ả T o website IIS c b n
ử ụ ả ơ ể o S d ng dockercompose đ build và up container đ n gi n
h nơ
ạ ấ ư ụ ư o T o c u trúc th m c nh sau
33
Ở ạ ớ ở ư ụ file Dockerfile t o 1 image m i copy các file th m c o
website vào máy oả
FROM nanoserver/iis:latest
# Metadata indicating an image maintainer.
#LABEL maintainer="ntnguyen.19it5@vku.udn.vn"
# Creates an HTML file and adds content to this file.
COPY ./website c:/inetpub/wwwroot
Ở ư ộ file dockercompose.yml có n i dung nh sau: o
version: "3.3"
services:
iisbasic:
container_name: iisbasic
build:
context: ./
dockerfile: Dockerfile
image: nanoserver/iisbasic
ports:
80:80
34
tty: true
networks:
default:
external:
name: nat
o Build và up image lên: dockercompose up –build d
ể ạ ư o Docker ps đ xem docker container đã ch y ch a
Thêm PHP vào IIS
ạ ấ ư ụ ư o T o c u trúc th m c nh sau
35
Ở ư ộ file Dockerfile có n i dung nh sau: o
FROM nanoserver/iisphp:latest
# Metadata indicating an image maintainer.
#LABEL maintainer="ntnguyen.19it5@vku.udn.vn"
# Creates an HTML file and adds content to this file.
COPY ./website c:/inetpub/wwwroot
Ở ư ộ file dockercompose có n i dung nh sau: o
version: "3.3"
services:
iisphp:
container_name: iisphp
build:
context: ./
dockerfile: Dockerfile
image: nanoserver/iiswebsitephp:latest
ports:
8080:80
tty: true
36
networks:
default:
external:
name: nat
Ở file index.php o
o Build và up image lên: dockercompose up –build d
o Vào localhost:8080/index.php
ề ề ỏ Tr tên mi n v VPS
ử ụ ề ễ ể ả ơ o S d ng CloudFlare đ qu n lý tên mi n d dàng h n
o Thêm record A vào
ờ ể ề ậ có th truy c p vào website qua tên mi n o Gi
http://qtmnhom05.uknteam.site
http://qtmnhom05.uknteam.site:8080
37
38
ƯƠ
Ậ
CH
Ế NG IV: K T LU N
ả ạ ượ
ế
1. K t qu đ t đ
c
ề ớ ớ ở ơ Thao tác v i CLI nhi u h n thay vì thao tác v i GUI trên windows
server
ế ề ể Hi u bi t thêm v NanoServer
ả ư ạ ượ
ế
2. K t qu ch a đ t đ
c:
ề ạ ơ Thành th o docker cli nhi u h n
ể ể ị ỗ ư Ch a th tri n khai FTP Server (vì windows nano server b l i, không
ượ ặ ỏ update đ c IISAdministator, đã đ t câu h i trên stackoverflow:
(https://stackoverflow.com/questions/70179598/update
iisadministrationwithpowershell)
39
Ụ
Ả
DANH M C THAM KH O
https://www.phamquangloc.vn/2020/06/referencecaidatnanoserver2016
trongvongmotnotnhac.html
https://docs.microsoft.com/enus/virtualization/windowscontainers/quick
start/setupenvironment?tabs=WindowsServer
https://github.com/nanoserver/iis/blob/master/Dockerfile
https://techgenix.com/deploydnswindowsservernano/
https://docs.microsoft.com/enus/windowsserver/getstarted/powershellon
nanoserver
https://docs.microsoft.com/enus/previous
versions/windows/desktop/legacy/mt708805(v=vs.85)
https://docs.microsoft.com/enus/windowsserver/getstarted/iisonnanoserver
https://docs.microsoft.com/enus/powershell/module/iisadministration/?
view=windowsserver2019ps
https://stackoverflow.com/questions/39988844/dockercomposeupvsdocker
composeupbuildvsdockercomposebuildnocach
40