Droši izvietojiet un pārvaldiet LXC konteinerus Ubuntu 14.04

LXC konteineri (Linux konteineri) ir operētājsistēmas līdzeklis operētājsistēmā Linux, ko var izmantot, lai vienā resursdatorā darbinātu vairākas izolētas Linux sistēmas.

Šie norādījumi sniegs jums informāciju par servera konfigurācijas pamata darbībām izolētu Linux konteineru mitināšanai. Mēs konfigurēsim šādas funkcijas:

  • LXC konteineri ar Ubuntu 14.
  • Linux tīkla iestatījumi un portu pāradresācija konteineriem.
  • SSH pārsūtīšana konteineru administrēšanai tikpat vienkārša kā ssh [email protected]unssh [email protected]
  • Nginx starpniekservera konfigurācija, lai piekļūtu vietnēm konteineros (pēc saimniekdatora nosaukuma).
  • Papildu drošības uzlabojumi pareizai servera pārvaldībai.

Šajā rokasgrāmatā tiek pieņemts, ka:

  • Jums ir konts vietnē Vultr.com .
  • Jūs zināt, kā konfigurēt virtuālo mašīnu ar pielāgotu ISO.
  • Jūs zināt, kā izmantot SSH atslēgas, un esat jau ģenerējis publiskās un privātās atslēgas.

Apmācības beigās mēs iegūsim divus virtuālos konteinerus, kuriem būs piekļuve internetam, taču tie nevarēs ping viens otru. Mēs arī konfigurēsim portu pārsūtīšanu no example.comuz konteineriem. Mēs izvietosim drošu konfigurācijas un pārvaldības paneli, izmantojot Proxmox paketes rīkus.

Preparāti

Mēs izmantosim Proxmox tikai LXC konteineru pārvaldībai. Parasti tas atbalsta arī KVM, taču Vultr ir aizliegta ligzdotā virtualizācija. Pirms darba sākšanas no oficiālās vietnes ir jālejupielādē Proxmox ISO. Mēs izmantosim Proxmox VE 5.0 ISO Installer. Instalējiet OS no attēla ar noklusējuma iestatījumiem un restartējiet virtuālo mašīnu. Varat arī manuāli instalēt proxmox no avotiem, taču vairumā gadījumu tas nav nepieciešams (izpildiet šeit sniegtos norādījumus ).

OS iestatīšana

Izveidojiet savienojumu ar savu resursdatoru, izmantojot SSH, atjauniniet proxmox veidņu sarakstu un lejupielādējiet piemērotu veidni konteineriem.

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

Tagad mums ir jāizveido Linux konteiners ar tīkla interfeisu, kas savienots ar Linux tiltu. Atveriet /etc/network/interfacesun pievienojiet šādas rindas:

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

Pēc sistēmas atsāknēšanas no Ubuntu 14.04veidnes varat izveidot jaunu konteineru .

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

Varat verificēt konteineru, izmantojot pct list, sāciet konteineru Nr. 200 ar pct start 200un ievadiet tā apvalku ar pct enter 200. Varat arī pārbaudīt tīkla iestatījumus un adreses, izmantojot ip addr.

Tīkls

Lai nodrošinātu interneta savienojumu jūsu konteinerā, mums ir jāiespējo NAT. Tālākais ļaus pārsūtīt trafiku no konteinera uz internetu, izmantojot NAT tehnoloģiju. vmbr0Tilts ir savienots ar ārējo interfeisu un vmbr1tilts ir savienota ar konteineru.

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

Ievadiet konteineru pct enter 200un konfigurējiet tajā esošo tīmekļa serveri.

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

Tagad mums ir jākonfigurē Nginx jūsu serverī, lai starpniekservera vietnes ievietotu konteineros.

apt-get update
apt-get install nginx

Izveidojiet jaunu konfigurācijas failu /etc/nginx/sites-available/box200ar šādu saturu:

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

Tagad Nginx katru HTTP pieprasījumu server200.example.comno jūsu servera pārsūtīs uz konteineru ar IP 10.100.0.200. Aktivizējiet šo konfigurāciju.

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

SSH piekļuve

Ja vēlaties nodrošināt vieglu piekļuvi smilšu kastēm, jums ir jāpārsūta SSH sesijas konteineros. Lai to izdarītu, saknes serverī izveidojiet jaunu lietotāju. Neaizmirstiet ievadīt paroli, citi parametri nav nepieciešami.

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

Kopējiet šo SSH atslēgu un ievadiet konteineru, lai pievienotu atslēgu.

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

Savā serverī .ssh/authorized_keysfailam pievienojiet šādu rindiņu .

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

Neaizmirstiet nomainīt <YOUR SSH KEY>uz mājas publisko atslēgu. Varat arī palaist tālāk norādīto no komandrindas.

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

Pēc tam varat izveidot savienojumu ar savu smilšu kasti, izmantojot ssh.

`ssh box200@<your_server_IP>`

Papildu iestatījumi

Ir pienācis laiks ieviest vairākus drošības uzlabojumus. Pirmkārt, mēs vēlamies mainīt noklusējuma SSH portu. Tad mēs vēlamies aizsargāt mūsu Proxmox pārvaldības lapu ar pamata HTTP autentifikāciju.

nano /etc/ssh/sshd_config

Atceliet komentāru un mainiet līniju

#Port 22 

uz

Port 24000 

Restartējiet ssh.

service ssh restart

Atkārtoti izveidojiet savienojumu ar ssh, izmantojot jauno portu.

ssh root@<your_IP> -p 24000

Iestatiet Proxmox paroli.

Izveidot failu /etc/default/pveproxy.

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

Restartējiet, pveproxylai izmaiņas stātos spēkā.

/etc/init.d/pveproxy restart

Konfigurējiet nginx (ja iepriekš to neesat izdarījis).

apt-get install nginx
service nginx restart

Izveidojiet noklusējuma konfigurāciju /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; }
}

Iegūstiet derīgu SSL sertifikātu un atjauniniet savu nginx konfigurāciju. Piemēram, to var izdarīt ar certbox un letsencrypt palīdzību. Lai iegūtu vairāk informācijas, noklikšķiniet šeit .

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

Tagad jūsu nginx konfigurācijai vajadzētu izskatīties šādi (vai arī pēc tam varat to mainīt manuāli). Neaizmirstiet noņemt komentārus ssl, auth un atrašanās vietas rindiņām.

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
}

Izveidojiet /etc/htpasswdfailu, izmantojot Htpasswd ģeneratoru .

nano /etc/nginx/htpasswd

Restartējiet Nginx

service nginx restart

https://example.comPēc pamata autentifikācijas tagad varat skatīt pārvaldības konsoli .

Portu pārsūtīšana

Tagad konteineri ir pieejami, izmantojot HTTP pieprasījumus un SSH. Tagad mēs varam konfigurēt portu pārsūtīšanu no ārējā servera uz konteineriem. Piemēram, kartēšanai, example.com:8080lai 10.100.0.200:3000ievadītu tālāk norādīto.

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

Jūs varat apskatīt pašreizējos noteikumus.

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

Varat arī dzēst kārtulu pēc numura, veicot tālāk norādītās darbības.

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

Atsevišķi konteineri

Tagad mēs varam piekļūt vienam konteineram no cita.

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

Ja vēlaties ierobežot piekļuvi no 250. konteinera līdz 200. konteiners, jums ir jāsavieno katrs konteiners ar personīgo tiltu un jāatspējo pārsūtīšana starp tiltiem.

  1. Dzēst esošos konteinerus.

    pct stop 200
    pct stop 250
    pct destroy 200
    pct destroy 250
    
  2. Mainīt saturu /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 sistēma

  4. Iespējot pārsūtīšanu

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

    Lai padarītu šīs izmaiņas pastāvīgas, varat rediģēt /etc/sysctl.conffailu un atrast šādu tekstu.

    #net.ipv4.ip_forward=1
    

    Atceliet komentārus.

    net.ipv4.ip_forward=1
    

    Varat arī palaist, sysctl -plai izmaiņas stātos spēkā nekavējoties.

  5. Izveidojiet konteinerus.

    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. Sāciet konteinerus ar pct start 200un pct start 250.

  7. Iztīriet iptablesnoteikumus.

    iptables -F
    
  8. Iespējot NAT.

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

    vmbr0 ir tilts, kas ietver ārējo saskarni.

  9. Atļaut pārsūtīšanu no ārējā interfeisa.

    iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
    
  10. Atļaut pārsūtīšanu no konteineriem uz internetu.

    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. Atmetiet citu pārsūtīšanu.

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

Tagad pārbaudiet, kas 10.100.1.200var ping, 8.8.8.8bet nevar, 10.100.2.250un kas 10.100.2.250var ping, 8.8.8.8bet nevar ping 10.100.1.200.

Svarīga ir ar iptables saistīto komandu secība. Labākais veids, kā izmantot savus noteikumus, ir izmantot iptables-persistent. Šī pakete palīdz jums ietaupīt iptables noteikumus failiem /etc/iptables/rules.v4un /etc/iptables/rules.v6, un tas var automātiski ielādēt tos pēc sistēmas atsāknēšana. Vienkārši instalējiet to ar tālāk norādīto.

apt-get install iptables-persistent

Atlasiet, YESkad tiek prasīts.


Lūk, kā pārbaudīt Hyper-V konteinerus sistēmā Windows 10 Insider

Lūk, kā pārbaudīt Hyper-V konteinerus sistēmā Windows 10 Insider

Microsoft jaunā emuāra ziņojumā ir paskaidrojusi, kā Windows Insiders var pārbaudīt Hyper-V konteinerus operētājsistēmā Windows 10 — jauns virtualizācijas risinājums, kas ļauj lietojumprogrammām darboties, neietekmējot pārējo operētājsistēmu.

Kā instalēt Harbor operētājsistēmā CentOS 7

Kā instalēt Harbor operētājsistēmā CentOS 7

Harbour ir atvērtā pirmkoda uzņēmuma klases reģistra serveris, kas glabā un izplata Docker attēlus. Harbour paplašina atvērtā koda Docker Distribution b

Instalējiet Rancher OS, izmantojot iPXE

Instalējiet Rancher OS, izmantojot iPXE

Rancher OS ir ļoti viegla Linux izplatīšana, kas veidota, izmantojot Docker. Pati OS sver aptuveni 20 MB. Šī apmācība palīdzēs jums sākt darbu

Operētājsistēmā CoreOS iestatiet savu Docker reģistru

Operētājsistēmā CoreOS iestatiet savu Docker reģistru

Mēs visi zinām un mīlam Docker — platformu lietojumprogrammu konteineru izveidei, pārvaldībai un izplatīšanai vairākās iekārtās. Docker Inc sniedz pakalpojumu t

Docker-compose instalēšana operētājsistēmā CoreOS

Docker-compose instalēšana operētājsistēmā CoreOS

Šajā rakstā ir paskaidrots, kā instalēt docker-compose operētājsistēmā CoreOS. Operētājsistēmā CoreOS mape /usr/ ir nemainīga, tāpēc standarta /usr/local/bin ceļš nav pieejams.

Instalējiet Rancher operētājsistēmā CentOS 7

Instalējiet Rancher operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Ievads Rancher ir atvērtā pirmkoda platforma konteineru darbināšanai un privāta konteineru pakalpojuma izveidei. Rancher ir bāze

Instalējiet Docker CE uz Ubuntu 18.04

Instalējiet Docker CE uz Ubuntu 18.04

Ievads Docker ir lietojumprogramma, kas ļauj izvietot programmas, kas tiek darbinātas kā konteineri. Tas tika uzrakstīts populārajā Go programmēšanas valodā

Izveidojiet Docker Swarm operētājsistēmā Alpine Linux 3.9.0

Izveidojiet Docker Swarm operētājsistēmā Alpine Linux 3.9.0

Ievads Šajā rokasgrāmatā ir parādīts, kā izveidot un konfigurēt Docker spietu, izmantojot vairākus Alpine Linux 3.9.0 serverus un Portainer. Lūdzu, ņemiet vērā, ka

Izvietojiet PHP lietojumprogrammu, izmantojot Docker-compose

Izvietojiet PHP lietojumprogrammu, izmantojot Docker-compose

PHP lietojumprogrammas parasti veido tīmekļa serveris, relāciju datu bāzes sistēma un pats valodas tulks. Šajā apmācībā mēs izmantosim iespēju

Slodzes līdzsvars ar Docker

Slodzes līdzsvars ar Docker

Palaižot tīmekļa lietojumprogrammu, jūs parasti vēlaties maksimāli izmantot savus resursus, nepārvēršot programmatūru, lai izmantotu vairākpavedienu o

Izvietojiet Node.js lietojumprogrammu, izmantojot Docker

Izvietojiet Node.js lietojumprogrammu, izmantojot Docker

Šajā rakstā tiks parādīts, kā Docker konteinerā izvietot savu Node lietojumprogrammu. Piezīme. Šajā apmācībā tiek pieņemts, ka esat instalējis un lasījis Docker

Docker CE instalēšana operētājsistēmā CentOS 7

Docker CE instalēšana operētājsistēmā CentOS 7

Docker konteinera tehnoloģija ļauj palaist lietojumprogrammas noteiktā un izolētā vidē. Docker Community Edition (CE) ir jaunais nosaukums fre

Izvietojiet Kubernetes ar Kubeadm operētājsistēmā CentOS 7

Izvietojiet Kubernetes ar Kubeadm operētājsistēmā CentOS 7

Pārskats Šis raksts ir paredzēts, lai palīdzētu jums ātri izveidot un palaist Kubernetes kopu, izmantojot kubeadm. Šajā rokasgrāmatā tiks izvietoti divi serveri

Docker instalēšana operētājsistēmā CentOS 7

Docker instalēšana operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Docker ir lietojumprogramma, kas ļauj izvietot programmatūru virtuālos konteineros. Tas bija rakstīts programmā Go

Docker CE instalēšana operētājsistēmā Debian 9

Docker CE instalēšana operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Ievads Docker ir lietojumprogramma, kas ļauj izvietot programmatūru virtuālos konteineros. Tas bija rakstīts G

Sāciet darbu ar SQL Server 2017 (MS-SQL) sistēmā CentOS 7 ar Docker

Sāciet darbu ar SQL Server 2017 (MS-SQL) sistēmā CentOS 7 ar Docker

Priekšnosacījumi Docker engine 1.8+. Vismaz 4 GB diska vietas. Vismaz 4 GB RAM. 1. darbība. Docker instalēšana Lai instalētu SQL-Server, Docker mus

Sticky sesija ar Docker Swarm (CE) uz Debian 9

Sticky sesija ar Docker Swarm (CE) uz Debian 9

Vai izmantojat citu sistēmu? Ievads Docker Swarm pārvērš jūsu individuālos serverus par datoru kopu; mērogošanas atvieglošana, augsta pieejamība un

Divi Docker grafiskās pārvaldības rīki: DockerUI un Shipyard

Divi Docker grafiskās pārvaldības rīki: DockerUI un Shipyard

Izmantojot lietojumprogrammu Vultr Docker, varat viegli izvietot Docker savā Vultr servera instancē. Tikmēr jūs varat atvieglot Docker pārvaldības uzdevumu

Instalējiet Rancher Server operētājsistēmā RancherOS

Instalējiet Rancher Server operētājsistēmā RancherOS

Pārskats RancherOS ir neticami viegla operētājsistēma (tikai aptuveni 60 MB), kas izmanto sistēmas Docker dēmonu kā PID 0 sistēmas pakalpojumu darbināšanai.

Darba sākšana ar Kubernetes operētājsistēmā CentOS 7

Darba sākšana ar Kubernetes operētājsistēmā CentOS 7

Kubernetes ir Google izstrādāta atvērtā pirmkoda platforma konteineru lietojumprogrammu pārvaldībai serveru klasterī. Tas balstās uz desmitgadi un

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk