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 box1@example.comunssh box2@example.com
  • 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 root@10.100.0.200",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 root@10.100.0.200",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.

Atstājiet komentāru

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.

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.

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.

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