Undirbúningur
OS uppsetning
Net
SSH aðgangur
Viðbótarstillingar
Port Forwarding
Aðskildir gámar
LXC gámar (Linux gámar) eru stýrikerfiseiginleiki í Linux sem hægt er að nota til að keyra mörg einangruð Linux kerfi á einum hýsil.
Þessar leiðbeiningar munu leiða þig í gegnum grunnskref við uppsetningu miðlara fyrir einangraða Linux gáma hýsingu. Við munum stilla eftirfarandi eiginleika:
- LXC gámar með Ubuntu 14.
- Linux netstillingar og framsending hafna fyrir gáma.
- SSH áframsending fyrir gámastjórnun eins einföld og
ssh [email protected]
ogssh [email protected]
- Nginx proxy stillingar til að fá aðgang að vefsíðum inni í gámum (eftir hýsilheiti).
- Viðbótaröryggisbætur fyrir rétta netþjónastjórnun.
Þessi leiðarvísir gerir ráð fyrir að:
- Þú ert með reikning á Vultr.com .
- Þú veist hvernig á að stilla sýndarvél með sérsniðnu ISO.
- Þú veist hvernig á að nota SSH lykla og þú hefur þegar búið til opinbera og einkalykla.
Í lok kennslunnar munum við fá tvo sýndarílát sem munu hafa aðgang að internetinu, en geta ekki pingað hvorn annan. Við munum einnig stilla höfn áfram frá example.com
til gáma. Við munum setja upp örugga stillingar og stjórnunarborð með hjálp verkfæra frá Proxmox pakka.
Undirbúningur
Við munum aðeins nota Proxmox til að stjórna LXC gámum. Almennt styður það einnig KVM, en hreiður sýndarvæðing er bönnuð á Vultr. Áður en byrjað er, ætti að hlaða niður Proxmox ISO af opinberu vefsíðunni. Við munum nota Proxmox VE 5.0 ISO Installer
. Settu upp stýrikerfið frá myndinni með sjálfgefnum stillingum og endurræstu sýndarvélina. Einnig er hægt að setja upp proxmox handvirkt frá heimildum, en það er ekki nauðsynlegt í flestum tilfellum (fylgið leiðbeiningunum hér ).
OS uppsetning
Tengstu við gestgjafann þinn með SSH, uppfærðu listann yfir proxmox sniðmát og halaðu niður viðeigandi sniðmáti fyrir ílát.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Nú þurfum við að búa til linux gám með netviðmóti sem er tengt við linux brú. Opnaðu /etc/network/interfaces
og bættu við eftirfarandi línum:
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
Eftir endurræsingu kerfisins geturðu búið til nýjan ílát úr Ubuntu 14.04
sniðmátinu.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
Þú getur staðfest ílátið þitt með því að nota pct list
, byrjað ílát #200 með pct start 200
og slá inn skel hans með pct enter 200
. Þú getur líka staðfest netstillingar og vistföng með ip addr
.
Net
Til að veita nettengingu inni í gámnum þínum þurfum við að virkja NAT
. Eftirfarandi gerir kleift að senda umferð frá gámnum yfir á internetið með hjálp NAT tækni. The vmbr0
brú er tengdur við ytri tengi og vmbr1
brúin er tengdur við ílát.
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
Sláðu inn ílátið með pct enter 200
og stilltu vefþjóninn inni.
apt-get update
apt-get install nginx
service nginx start
exit
Nú þurfum við að stilla Nginx á netþjóninum þínum til að umboð vefsíðna í gáma.
apt-get update
apt-get install nginx
Búðu til nýja stillingarskrá /etc/nginx/sites-available/box200
með eftirfarandi efni:
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginx mun nú umboð hverja HTTP beiðni fyrir server200.example.com
frá netþjóninum þínum yfir í gáminn með IP 10.100.0.200. Virkjaðu þessa stillingu.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
SSH aðgangur
Ef þú vilt veita greiðan aðgang að sandkössum þarftu að senda SSH fundi inn í gámana. Til að gera það skaltu búa til nýjan notanda á rótarþjóninum þínum. Ekki gleyma að slá inn lykilorð, aðrar breytur eru ekki nauðsynlegar.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
Afritaðu þennan SSH lykil og sláðu inn ílátið til að bæta við lyklinum.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
Bættu eftirfarandi línu við .ssh/authorized_keys
skrána á netþjóninum þínum .
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
Ekki gleyma að breyta <YOUR SSH KEY>
í almenningslykil heima. Að öðrum kosti geturðu keyrt eftirfarandi frá skipanalínunni.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
Síðan geturðu tengst sandkassanum þínum með ssh.
`ssh box200@<your_server_IP>`
Viðbótarstillingar
Það er kominn tími til að innleiða nokkrar öryggisbætur. Í fyrsta lagi viljum við breyta sjálfgefna SSH tenginu. Síðan viljum við vernda Proxmox stjórnunarsíðuna okkar með grunn HTTP auðkenningu.
nano /etc/ssh/sshd_config
Taktu úr athugasemdum og breyttu línunni
#Port 22
til
Port 24000
Endurræstu ssh.
service ssh restart
Tengdu aftur við ssh með nýju tenginu.
ssh root@<your_IP> -p 24000
Stilltu Proxmox lykilorð.
Búa til skrá /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
Endurræstu pveproxy
til að breytingarnar taki gildi.
/etc/init.d/pveproxy restart
Stilltu nginx (ef þú hefur ekki gert það áður).
apt-get install nginx
service nginx restart
Búðu til sjálfgefna stillingu í /etc/nginx/site-available/default
.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
Fáðu gilt SSL vottorð og uppfærðu nginx stillingarnar þínar. Til dæmis er hægt að gera það með hjálp certbox og letsencrypt. Fyrir frekari upplýsingar, smelltu hér .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
Nú ætti nginx stillingin þín að líta svona út (eða þú getur breytt henni handvirkt eftir það). Ekki gleyma að afskrifa ssl, auth og staðsetningu línur.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
Búðu til /etc/htpasswd
skrá með því að nota Htpasswd rafallinn .
nano /etc/nginx/htpasswd
Endurræstu Nginx
service nginx restart
Þú getur nú skoðað stjórnborðið á https://example.com
eftir grunnauðkenningu.
Port Forwarding
Gámarnir eru nú fáanlegir með HTTP beiðnum og SSH. Nú getum við stillt áframsendingu hafna frá ytri netþjóninum yfir í gámana. Til dæmis, fyrir kortlagningu example.com:8080
til að setja 10.100.0.200:3000
inn eftirfarandi.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
Þú getur skoðað gildandi reglur.
`iptables -t nat -v -L PREROUTING -n --line-number`
Þú getur líka eytt reglu eftir númeri með eftirfarandi.
`iptables -t nat -D PREROUTING <#>`.
Aðskildir gámar
Við getum nú nálgast einn gám frá öðrum.
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
Ef þú vilt takmarka aðgang frá gámi 250 í 200 þarftu að tengja hvern gám við persónulega brú og slökkva á áframsendingu milli brúa.
Eyða núverandi gámum.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
Breyttu innihaldi /etc/network/interfaces
.
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot
kerfið
Virkja áframsendingu
`sysctl -w net.ipv4.ip_forward=1`
Til að gera þessar breytingar varanlegar geturðu breytt /etc/sysctl.conf
skránni og fundið eftirfarandi texta.
#net.ipv4.ip_forward=1
Afskrifaðu það.
net.ipv4.ip_forward=1
Þú getur líka hlaupið sysctl -p
til að láta breytingarnar taka gildi strax.
Búðu til gáma.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
Byrjaðu ílátin með pct start 200
og pct start 250
.
Skolaðu iptables
reglurnar.
iptables -F
Virkja NAT.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
er brúin sem inniheldur ytra viðmót.
Leyfa áframsendingu frá ytra viðmóti.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
Leyfa áframsendingu úr gámunum yfir á netið.
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
Slepptu hinni áframsendingunni.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
Athugaðu nú að 10.100.1.200
getur pingað 8.8.8.8
en getur ekki pingað 10.100.2.250
og það 10.100.2.250
getur pingað 8.8.8.8
en getur ekki pingað 10.100.1.200
.
Röð skipana sem tengjast iptables er mikilvæg. Besta leiðin til að nota reglurnar þínar er að nota iptables-persistent
. Þessi pakki hjálpar þér að spara iptables reglur um skrár /etc/iptables/rules.v4
og /etc/iptables/rules.v6
og það getur á sjálfvirkan hátt hlaða þeim eftir endurræsa vélina. Settu það bara upp með eftirfarandi.
apt-get install iptables-persistent
Veldu YES
þegar beðið er um það.