Saugiai įdiekite ir valdykite LXC konteinerius Ubuntu 14.04

LXC konteineriai („Linux“ konteineriai) yra operacinės sistemos „Linux“ funkcija, kurią galima naudoti kelioms izoliuotoms „Linux“ sistemoms paleisti viename pagrindiniame kompiuteryje.

Šios instrukcijos padės atlikti pagrindinius serverio konfigūravimo veiksmus, skirtus izoliuotų Linux konteinerių prieglobai. Sukonfigūruosime šias funkcijas:

  • LXC konteineriai su Ubuntu 14.
  • „Linux“ tinklo nustatymai ir prievadų peradresavimas konteineriams.
  • SSH persiuntimas konteinerių administravimui taip paprasta, kaip ssh [email protected]irssh [email protected]
  • Nginx tarpinio serverio konfigūracija, skirta pasiekti svetaines konteineriuose (pagal pagrindinio kompiuterio pavadinimą).
  • Papildomi saugumo patobulinimai tinkamam serverio valdymui.

Šiame vadove daroma prielaida, kad:

  • Jūs turite paskyrą Vultr.com .
  • Jūs žinote, kaip sukonfigūruoti virtualią mašiną naudojant pasirinktinį ISO.
  • Jūs žinote, kaip naudoti SSH raktus ir jau sugeneravote viešuosius ir privačius raktus.

Pamokos pabaigoje gausime du virtualius konteinerius, kurie turės prieigą prie interneto, bet negalės vienas kito siųsti. Taip pat sukonfigūruosime prievadų persiuntimą iš example.comį konteinerius. Mes įdiegsime saugią konfigūravimo ir valdymo skydelį naudodami Proxmox paketo įrankius.

Preparatai

„Proxmox“ naudosime tik LXC konteinerių tvarkymui. Paprastai jis taip pat palaiko KVM, tačiau įdėtas virtualizavimas Vultr yra draudžiamas. Prieš pradedant, „Proxmox ISO“ reikia atsisiųsti iš oficialios svetainės. Mes naudosime Proxmox VE 5.0 ISO Installer. Įdiekite OS iš vaizdo su numatytaisiais nustatymais ir iš naujo paleiskite virtualią mašiną. Be to, galite rankiniu būdu įdiegti proxmox iš šaltinių, tačiau daugeliu atvejų tai nėra būtina (vadovaukitės čia pateiktomis instrukcijomis ).

OS sąranka

Prisijunkite prie pagrindinio kompiuterio per SSH, atnaujinkite proxmox šablonų sąrašą ir atsisiųskite tinkamą konteinerių šabloną.

apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz

Dabar turime sukurti „Linux“ konteinerį su tinklo sąsaja, prijungta prie „Linux“ tilto. Atidarykite /etc/network/interfacesir pridėkite šias eilutes:

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

Paleidę sistemą iš naujo, iš Ubuntu 14.04šablono galite sukurti naują konteinerį .

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

Savo sudėtinį rodinį galite patvirtinti naudodami pct list, konteinerį Nr. 200 pradėkite nuo pct start 200ir įveskite jo apvalkalą naudodami pct enter 200. Tinklo nustatymus ir adresus taip pat galite patikrinti naudodami ip addr.

Tinklas

Norėdami užtikrinti interneto ryšį konteineryje, turime įgalinti NAT. Tai leis srautą iš konteinerio perkelti į internetą naudojant NAT technologiją. vmbr0Tiltas yra prijungtas prie išorinės sąsajos ir vmbr1tiltas yra prijungtas prie konteinerio.

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

Įveskite talpyklą pct enter 200ir sukonfigūruokite žiniatinklio serverį viduje.

apt-get update
apt-get install nginx
service nginx start
exit

Dabar turime sukonfigūruoti „Nginx“ jūsų serveryje, kad tarpinės svetainės būtų įjungtos į konteinerius.

apt-get update
apt-get install nginx

Sukurkite naują konfigūracijos failą /etc/nginx/sites-available/box200su tokiu turiniu:

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/;
    }
}

Dabar „Nginx“ kiekvieną HTTP užklausą server200.example.comiš jūsų serverio perduos į konteinerį, kurio IP 10.100.0.200. Suaktyvinkite šią konfigūraciją.

ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart

SSH prieiga

Jei norite suteikti lengvą prieigą prie smėlio dėžių, turite persiųsti SSH seansus į konteinerius. Norėdami tai padaryti, šakniniame serveryje sukurkite naują vartotoją. Nepamirškite įvesti slaptažodžio, kiti parametrai nebūtini.

adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit

Nukopijuokite šį SSH raktą ir įveskite konteinerį, kad pridėtumėte raktą.

pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit

Savo serveryje prie .ssh/authorized_keysfailo pridėkite šią eilutę .

command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>

Nepamirškite pakeisti <YOUR SSH KEY>į savo namų viešąjį raktą. Arba galite paleisti šiuos veiksmus iš komandinės eilutės.

echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys

Tada galite prisijungti prie smėlio dėžės naudodami ssh.

`ssh box200@<your_server_IP>`

Papildomi nustatymai

Atėjo laikas įgyvendinti keletą saugumo patobulinimų. Pirma, norime pakeisti numatytąjį SSH prievadą. Tada norime apsaugoti „Proxmox“ valdymo puslapį naudodami pagrindinį HTTP autentifikavimą.

nano /etc/ssh/sshd_config

Panaikinkite komentarą ir pakeiskite eilutę

#Port 22 

į

Port 24000 

Iš naujo paleiskite ssh.

service ssh restart

Iš naujo prisijunkite prie ssh naudodami naują prievadą.

ssh root@<your_IP> -p 24000

Nustatykite „Proxmox“ slaptažodį.

Sukurti failą /etc/default/pveproxy.

ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"

Paleiskite iš naujo pveproxy, kad pakeitimai įsigaliotų.

/etc/init.d/pveproxy restart

Sukonfigūruokite nginx (jei to dar nepadarėte anksčiau).

apt-get install nginx
service nginx restart

Sukurkite numatytąją konfigūraciją /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; }
}

Gaukite galiojantį SSL sertifikatą ir atnaujinkite nginx konfigūraciją. Pavyzdžiui, tai galima padaryti naudojant certbox ir letsencrypt. Norėdami gauti daugiau informacijos, spustelėkite čia .

wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx

Dabar jūsų nginx konfigūracija turėtų atrodyti taip (arba galite ją pakeisti rankiniu būdu). Nepamirškite atšaukti ssl, autentifikavimo ir vietos eilučių komentarų.

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
}

Sukurkite /etc/htpasswdfailą naudodami Htpasswd generatorių .

nano /etc/nginx/htpasswd

Iš naujo paleiskite Nginx

service nginx restart

Dabar galite peržiūrėti valdymo konsolę https://example.compo pagrindinio autentifikavimo.

Uosto persiuntimas

Dabar konteineriai pasiekiami naudojant HTTP užklausas ir SSH. Dabar galime sukonfigūruoti prievadų persiuntimą iš išorinio serverio į konteinerius. Pavyzdžiui, skirtų atvaizdavimui example.com:8080į 10.100.0.200:3000įvesties taip.

iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000

Galite peržiūrėti galiojančias taisykles.

`iptables -t nat -v -L PREROUTING -n --line-number`

Taip pat galite ištrinti taisyklę pagal skaičių naudodami toliau nurodytus veiksmus.

`iptables -t nat -D PREROUTING <#>`.

Atskirti konteineriai

Dabar galime pasiekti vieną konteinerį iš kito.

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

Jei norite apriboti prieigą nuo 250 konteinerio iki 200, kiekvieną konteinerį turite prijungti prie asmeninio tilto ir išjungti persiuntimą tarp tiltų.

  1. Ištrinkite esamus konteinerius.

    pct stop 200
    pct stop 250
    pct destroy 200
    pct destroy 250
    
  2. Pakeiskite turinį /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
    
  3. reboot sistema

  4. Įgalinti persiuntimą

    `sysctl -w net.ipv4.ip_forward=1`
    

    Kad šie pakeitimai būtų nuolatiniai, galite redaguoti /etc/sysctl.conffailą ir rasti šį tekstą.

    #net.ipv4.ip_forward=1
    

    Atsisakykite jo komentaro.

    net.ipv4.ip_forward=1
    

    Taip pat galite paleisti sysctl -p, kad pakeitimai įsigaliotų nedelsiant.

  5. Sukurkite konteinerius.

    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
    
  6. Paleiskite konteinerius su pct start 200ir pct start 250.

  7. Išvalykite iptablestaisykles.

    iptables -F
    
  8. Įgalinti NAT.

    iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
    

    vmbr0 yra tiltas su išorine sąsaja.

  9. Leisti persiuntimą iš išorinės sąsajos.

    iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
    
  10. Leisti persiuntimą iš konteinerių į internetą.

    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
    
  11. Atmeskite kitą persiuntimą.

    iptables -A FORWARD -i vmbr1 -j DROP
    iptables -A FORWARD -i vmbr2 -j DROP
    

Dabar patikrinkite, kas 10.100.1.200gali ping, 8.8.8.8bet negali 10.100.2.250ir 10.100.2.250gali ping, 8.8.8.8bet negali ping 10.100.1.200.

Komandų, susijusių su iptables, tvarka yra svarbi. Geriausias būdas valdyti savo taisykles yra naudoti iptables-persistent. Šis paketas padeda išsaugoti iptables taisykles failuose /etc/iptables/rules.v4ir /etc/iptables/rules.v6gali jas automatiškai įkelti po sistemos perkrovimo. Tiesiog įdiekite jį naudodami toliau nurodytus veiksmus.

apt-get install iptables-persistent

Pasirinkite, YESkai būsite paraginti.


Štai kaip patikrinti „Hyper-V“ konteinerius „Windows 10 Insider“.

Štai kaip patikrinti „Hyper-V“ konteinerius „Windows 10 Insider“.

„Microsoft“ naujame tinklaraščio įraše paaiškino, kaip „Windows Insiders“ gali išbandyti „Hyper-V“ konteinerius „Windows 10“ – tai naujas virtualizacijos sprendimas, leidžiantis programoms veikti nepažeidžiant likusios operacinės sistemos.

Kaip įdiegti „Harbor“ „CentOS 7“.

Kaip įdiegti „Harbor“ „CentOS 7“.

„Harbour“ yra atvirojo kodo įmonės klasės registro serveris, kuriame saugomi ir platinami „Docker“ vaizdai. Harbour išplečia atvirojo kodo Docker Distribution b

Įdiekite Rancher OS per iPXE

Įdiekite Rancher OS per iPXE

Rancher OS yra labai lengvas Linux platinimas, sukurtas aplink Docker. Pati OS sveria apie 20 MB. Ši mokymo programa padės jums pradėti dirbti

„CoreOS“ sistemoje nustatykite savo „Docker“ registrą

„CoreOS“ sistemoje nustatykite savo „Docker“ registrą

Visi žinome ir mėgstame „Docker“ – platformą, leidžiančią kurti, valdyti ir platinti programų konteinerius keliuose įrenginiuose. „Docker Inc.“ teikia paslaugą t

„Docker-compose“ diegimas „CoreOS“.

„Docker-compose“ diegimas „CoreOS“.

Šiame straipsnyje paaiškinama, kaip „CoreOS“ įdiegti docker-compose. „CoreOS“ aplankas /usr/ yra nekintamas, todėl standartinis /usr/local/bin kelias nepasiekiamas.

Įdiekite „Rancher“ „CentOS 7“.

Įdiekite „Rancher“ „CentOS 7“.

Naudojate kitą sistemą? Įvadas Rancher yra atvirojo kodo platforma, skirta konteineriams paleisti ir privačių konteinerių paslaugai kurti. Rancher yra bazė

Įdiekite Docker CE Ubuntu 18.04

Įdiekite Docker CE Ubuntu 18.04

Įvadas „Docker“ yra programa, leidžianti diegti programas, kurios vykdomos kaip konteineriai. Jis buvo parašytas populiaria Go programavimo kalba

Sukurkite Docker Swarm Alpine Linux 3.9.0

Sukurkite Docker Swarm Alpine Linux 3.9.0

Įvadas Šiame vadove bus parodyta, kaip sukurti ir konfigūruoti Docker būrį naudojant kelis Alpine Linux 3.9.0 serverius ir Portainer. Prašome žinoti, kad

Įdiekite PHP programą naudodami „Docker-compose“.

Įdiekite PHP programą naudodami „Docker-compose“.

PHP programas paprastai sudaro žiniatinklio serveris, reliacinė duomenų bazių sistema ir pats kalbos vertėjas. Šioje pamokoje mes naudosime svertą

Apkrovos balansas su Docker

Apkrovos balansas su Docker

Kai naudojate žiniatinklio programą, paprastai norite maksimaliai išnaudoti savo išteklius, nereikės konvertuoti programinės įrangos į kelių gijų o

Įdiekite Node.js programą naudodami „Docker“.

Įdiekite Node.js programą naudodami „Docker“.

Šiame straipsnyje bus parodyta, kaip įdiegti „Node“ programą „Docker“ konteineryje. Pastaba: Šioje pamokoje daroma prielaida, kad įdiegėte ir perskaitėte „Docker“.

„Docker CE“ diegimas „CentOS 7“.

„Docker CE“ diegimas „CentOS 7“.

Docker konteinerio technologija leidžia paleisti programas konkrečioje ir izoliuotoje aplinkoje. „Docker Community Edition“ (CE) yra naujas „fre“ pavadinimas

Įdiekite „Kubernetes“ naudodami „Kubeadm“ „CentOS 7“.

Įdiekite „Kubernetes“ naudodami „Kubeadm“ „CentOS 7“.

Apžvalga Šis straipsnis skirtas padėti jums greitai sukurti ir paleisti Kubernetes klasterį su kubeadm. Šiame vadove bus naudojami du serveriai

„Docker“ diegimas „CentOS 7“.

„Docker“ diegimas „CentOS 7“.

Naudojate kitą sistemą? „Docker“ yra programa, leidžianti įdiegti programinę įrangą virtualiuose konteineriuose. Tai buvo parašyta Go programoje

„Docker CE“ diegimas „Debian 9“.

„Docker CE“ diegimas „Debian 9“.

Naudojate kitą sistemą? Įvadas Docker yra programa, leidžianti įdiegti programinę įrangą virtualiuose konteineriuose. Tai buvo parašyta G

Pradėkite naudotis „SQL Server 2017“ (MS-SQL) „CentOS 7“ su „Docker“.

Pradėkite naudotis „SQL Server 2017“ (MS-SQL) „CentOS 7“ su „Docker“.

Būtinos sąlygos Docker engine 1.8+. Mažiausiai 4 GB vietos diske. Mažiausiai 4 GB RAM. 1 veiksmas. Įdiekite Docker Norėdami įdiegti SQL-Server, Docker mus

Sticky Session with Docker Swarm (CE) Debian 9

Sticky Session with Docker Swarm (CE) Debian 9

Naudojate kitą sistemą? Įvadas Docker Swarm paverčia jūsų atskirus serverius kompiuterių grupe; palengvinantis mastelio keitimą, didelis prieinamumas ir

Du „Docker“ grafinio valdymo įrankiai: „DockerUI“ ir „Shipyard“.

Du „Docker“ grafinio valdymo įrankiai: „DockerUI“ ir „Shipyard“.

Naudodami „Vultr Docker“ programą galite lengvai įdiegti „Docker“ savo „Vultr“ serverio egzemplioriuje. Tuo tarpu galite palengvinti „Docker“ valdymo užduotį

Įdiekite „Rancher Server“ „RancherOS“.

Įdiekite „Rancher Server“ „RancherOS“.

Apžvalga RancherOS yra neįtikėtinai lengva operacinė sistema (tik apie 60 MB), kuri naudoja sistemos Docker demoną kaip PID 0 sistemos paslaugoms vykdyti.

Darbo su Kubernetes pradžia CentOS 7

Darbo su Kubernetes pradžia CentOS 7

„Kubernetes“ yra „Google“ sukurta atvirojo kodo platforma, skirta tvarkyti konteinerines programas serverių grupėje. Jis remiasi dešimtmečiu ir

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį