LXC-konteinerite turvaline juurutamine ja haldamine Ubuntu 14.04-s

LXC konteinerid (Linux konteinerid) on Linuxi operatsioonisüsteemi funktsioon, mida saab kasutada mitme isoleeritud Linuxi süsteemi käitamiseks ühes hostis.

Need juhised juhendavad teid isoleeritud Linuxi konteinerite hostimise serveri konfigureerimise põhietapid. Konfigureerime järgmised funktsioonid:

  • LXC konteinerid Ubuntu 14-ga.
  • Linuxi võrguseaded ja konteinerite pordiedastus.
  • SSH edastamine konteineri haldamiseks nii lihtne kui ssh [email protected]jassh [email protected]
  • Nginxi puhverserveri konfiguratsioon konteinerites asuvatele veebisaitidele juurdepääsuks (hostinime järgi).
  • Täiendavad turvatäiustused serveri nõuetekohaseks haldamiseks.

See juhend eeldab, et:

  • Teil on konto aadressil Vultr.com .
  • Teate, kuidas virtuaalset masinat kohandatud ISO-ga konfigureerida.
  • Teate, kuidas SSH-võtmeid kasutada ja olete avalikud ja privaatvõtmed juba genereerinud.

Õpetuse lõpus saame kaks virtuaalset konteinerit, millel on juurdepääs Internetile, kuid mis ei saa üksteist pingida. Samuti konfigureerime pordi suunamise asukohast example.comkonteineritesse. Me juurutame turvalise konfiguratsiooni ja halduspaneeli Proxmoxi paketi tööriistade abil.

Ettevalmistused

Me kasutame Proxmoxi ainult LXC konteinerite haldamiseks. Üldiselt toetab see ka KVM-i, kuid pesastatud virtualiseerimine on Vultris keelatud. Enne alustamist tuleks ametlikult veebisaidilt alla laadida Proxmoxi ISO. Me kasutame Proxmox VE 5.0 ISO Installer. Installige OS pildilt vaikesätetega ja taaskäivitage virtuaalmasin. Samuti saate proxmoxi käsitsi installida allikatest, kuid see pole enamikul juhtudel vajalik (järgige juhiseid siin ).

OS-i seadistamine

Ühendage oma hostiga SSH kaudu, värskendage proxmoxi mallide loendit ja laadige alla konteinerite jaoks sobiv mall.

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

Nüüd peame looma Linuxi sillaga ühendatud võrguliidesega linuxi konteineri. Avage /etc/network/interfacesja lisage järgmised read:

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ärast süsteemi taaskäivitamist saate Ubuntu 14.04mallist luua uue konteineri .

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

Saate oma konteinerit kinnitada, kasutades pct list, alustage konteinerit #200 pct start 200ja sisestage selle kest nupuga pct enter 200. Võrguseadeid ja aadresse saate kontrollida ka nupuga ip addr.

Võrk

Teie konteineris Interneti-ühenduse pakkumiseks peame lubama NAT. Alljärgnev võimaldab NAT-tehnoloogia abil liiklust konteinerist internetti suunata. vmbr0Sild on ühendatud välist liidest ja vmbr1silla on ühendatud anumate.

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

Sisestage konteiner pct enter 200ja konfigureerige sees olev veebiserver.

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

Nüüd peame teie serveris konfigureerima Nginxi veebisaitide puhverserveriks konteineritesse.

apt-get update
apt-get install nginx

Looge uus /etc/nginx/sites-available/box200järgmise sisuga konfiguratsioonifail :

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 puhverserveerib nüüd iga HTTP-päringu server200.example.comteie serverist konteinerisse IP 10.100.0.200. Aktiveerige see konfiguratsioon.

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

SSH juurdepääs

Kui soovite pakkuda lihtsat juurdepääsu liivakastidele, peate SSH-seansid konteineritesse edastama. Selleks looge oma juurserveris uus kasutaja. Ärge unustage parooli sisestada, muud parameetrid pole vajalikud.

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

Kopeerige see SSH-võti ja sisestage võtme lisamiseks konteiner.

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

Lisage oma serveris .ssh/authorized_keysfailile järgmine rida .

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

Ärge unustage vahetada <YOUR SSH KEY>oma kodu avalikku võtit. Teise võimalusena saate käsurealt käivitada järgmise.

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

Seejärel saate ssh-ga liivakastiga ühenduse luua.

`ssh box200@<your_server_IP>`

Lisaseaded

On aeg rakendada mitmeid turvatäiustusi. Esiteks tahame muuta vaike-SSH-porti. Seejärel tahame oma Proxmoxi halduslehte kaitsta lihtsa HTTP-autentimisega.

nano /etc/ssh/sshd_config

Tühista kommentaarid ja muuda rida

#Port 22 

juurde

Port 24000 

Taaskäivitage ssh.

service ssh restart

Ühendage uuesti ssh-ga uue pordiga.

ssh root@<your_IP> -p 24000

Määrake Proxmoxi parool.

Loo fail /etc/default/pveproxy.

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

pveproxyMuudatuste jõustumiseks taaskäivitage .

/etc/init.d/pveproxy restart

Seadistage nginx (kui te pole seda varem teinud).

apt-get install nginx
service nginx restart

Looge vaikekonfiguratsioon rakenduses /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; }
}

Hankige kehtiv SSL-sertifikaat ja värskendage oma nginxi konfiguratsiooni. Näiteks saab seda teha certboxi ja letsencrypti abil. Lisateabe saamiseks klõpsake siin .

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

Nüüd peaks teie nginxi konfiguratsioon välja nägema selline (või saate seda hiljem käsitsi muuta). Ärge unustage ssl-, auth- ja asukoharidade kommentaare tühistada.

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
}

Looge /etc/htpasswdfail Htpasswd generaatori abil .

nano /etc/nginx/htpasswd

Taaskäivitage Nginx

service nginx restart

Nüüd saate https://example.compärast põhiautentimist vaadata halduskonsooli .

Pordi edastamine

Konteinerid on nüüd saadaval HTTP-päringute ja SSH kaudu. Nüüd saame konfigureerida pordi edastamise välisest serverist konteineritesse. Näiteks kaardistamiseks example.com:8080järgmise 10.100.0.200:3000sisestamiseks.

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

Saate vaadata kehtivaid reegleid.

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

Reegli numbri järgi saate kustutada ka järgmisega.

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

Eraldatud konteinerid

Nüüd pääseme ühele konteinerile teisest juurde.

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

Kui soovite piirata juurdepääsu konteinerilt 250 kuni 200, peate ühendama iga konteineri isikliku sillaga ja keelama sildadevahelise edastamise.

  1. Kustutage olemasolevad konteinerid.

    pct stop 200
    pct stop 250
    pct destroy 200
    pct destroy 250
    
  2. Muuda sisu /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 süsteem

  4. Luba edastamine

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

    Nende muudatuste püsivaks muutmiseks saate /etc/sysctl.conffaili redigeerida ja leida järgmise teksti.

    #net.ipv4.ip_forward=1
    

    Tühista see kommentaar.

    net.ipv4.ip_forward=1
    

    Saate ka käivitada, sysctl -pet muudatused kohe jõustuksid.

  5. Loo konteinerid.

    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. Käivitage konteinerid nupuga pct start 200ja pct start 250.

  7. Loputage iptablesreegleid.

    iptables -F
    
  8. Luba NAT.

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

    vmbr0 on sild, mis sisaldab välist liidest.

  9. Luba edastamine välisest liidesest.

    iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
    
  10. Lubage konteineritest internetti edastada.

    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. Loobuge muust edastamisest.

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

Nüüd kontrollige, kas 10.100.1.200saab pingida, 8.8.8.8kuid ei saa pingida 10.100.2.250ja mis 10.100.2.250saab pingida, 8.8.8.8kuid ei saa pingida 10.100.1.200.

Oluline on iptablesiga seotud käskude järjekord. Parim viis reeglite kasutamiseks on kasutada iptables-persistent. See pakett aitab säästa iptables reeglid failid /etc/iptables/rules.v4ja /etc/iptables/rules.v6ja see võib automaatselt laadima neid pärast süsteemi taaskäivitamist. Installige see lihtsalt järgmisega.

apt-get install iptables-persistent

Valige, YESkui seda küsitakse.


Siin on, kuidas kontrollida Hyper-V konteinereid Windows 10 Insideris

Siin on, kuidas kontrollida Hyper-V konteinereid Windows 10 Insideris

Microsoft selgitas uues ajaveebipostituses, kuidas Windows Insiders saab testida Hyper-V konteinereid Windows 10-s – uues virtualiseerimislahenduses, mis võimaldab rakendustel töötada ilma ülejäänud operatsioonisüsteemi mõjutamata.

Kuidas installida programmi CentOS 7 Harbor

Kuidas installida programmi CentOS 7 Harbor

Harbour on avatud lähtekoodiga ettevõtteklassi registriserver, mis salvestab ja levitab Dockeri pilte. Harbour laiendab avatud lähtekoodiga Docker Distribution b

Installige Rancher OS iPXE kaudu

Installige Rancher OS iPXE kaudu

Rancher OS on väga kerge Linuxi distributsioon, mis on üles ehitatud Dockeri ümber. OS ise kaalub umbes 20 MB. See õpetus aitab teid tööle panna

Seadistage CoreOS-is oma Dockeri register

Seadistage CoreOS-is oma Dockeri register

Me kõik teame ja armastame Dockerit – platvormi rakenduste konteinerite loomiseks, haldamiseks ja levitamiseks mitme masina vahel. Docker Inc pakub teenust t

Docker-compose installimine CoreOS-i

Docker-compose installimine CoreOS-i

See artikkel selgitab, kuidas installida CoreOS-i docker-compose. CoreOS-is on /usr/ kaust muutumatu, nii et standardne /usr/local/bin tee pole saadaval

Installige Rancher operatsioonisüsteemi CentOS 7

Installige Rancher operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Sissejuhatus Rancher on avatud lähtekoodiga platvorm konteinerite käitamiseks ja privaatkonteinerite teenuse loomiseks. Rancher on baas

Installige Docker CE versioonile Ubuntu 18.04

Installige Docker CE versioonile Ubuntu 18.04

Sissejuhatus Docker on rakendus, mis võimaldab juurutada programme, mida käitatakse konteineritena. See oli kirjutatud populaarses Go programmeerimiskeeles

Looge Alpine Linux 3.9.0 Docker Swarm

Looge Alpine Linux 3.9.0 Docker Swarm

Sissejuhatus See juhend näitab teile, kuidas luua ja konfigureerida Dockeri sülem, kasutades mitut Alpine Linux 3.9.0 serverit ja Portainerit. Palun olge teadlik sellest

PHP-rakenduse juurutamine Docker-composei abil

PHP-rakenduse juurutamine Docker-composei abil

PHP-rakendused koosnevad tavaliselt veebiserverist, relatsioonilisest andmebaasisüsteemist ja keeletõlkist endast. Selles õpetuses kasutame võimalust

Koormuse tasakaal Dockeriga

Koormuse tasakaal Dockeriga

Veebirakendust käivitades soovite tavaliselt oma ressurssidest maksimumi võtta, ilma et peaksite oma tarkvara mitmelõimeliseks muutma

Juurutage rakendus Node.js Dockeri abil

Juurutage rakendus Node.js Dockeri abil

See artikkel näitab teile, kuidas juurutada oma Node'i rakendust Dockeri konteineris. Märkus. See õpetus eeldab, et olete Dockeri installinud ja lugenud

Docker CE installimine opsüsteemi CentOS 7

Docker CE installimine opsüsteemi CentOS 7

Dockeri konteinertehnoloogia võimaldab teil käivitada rakendusi konkreetses ja isoleeritud keskkonnas. Docker Community Edition (CE) on frei uus nimi

Juurutage Kubernetes koos Kubeadmiga CentOS 7-s

Juurutage Kubernetes koos Kubeadmiga CentOS 7-s

Ülevaade Selle artikli eesmärk on aidata teil Kubernetese klastri kubeadmiga kiiresti tööle panna. Selles juhendis juurutatakse kaks serverit

Dockeri installimine opsüsteemi CentOS 7

Dockeri installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Docker on rakendus, mis võimaldab juurutada tarkvara virtuaalsetes konteinerites. See oli kirjutatud programmis Go

Docker CE installimine Debian 9-le

Docker CE installimine Debian 9-le

Kas kasutate teistsugust süsteemi? Sissejuhatus Docker on rakendus, mis võimaldab juurutada tarkvara virtuaalsetes konteinerites. See oli kirjas G

Alustage SQL Server 2017 (MS-SQL) kasutamist operatsioonisüsteemis CentOS 7 koos Dockeriga

Alustage SQL Server 2017 (MS-SQL) kasutamist operatsioonisüsteemis CentOS 7 koos Dockeriga

Eeldused Dockeri mootor 1.8+. Vähemalt 4 GB kettaruumi. Vähemalt 4 GB muutmälu. Samm 1. Install Docker SQL-Serveri installimiseks tuleb Docker mus

Kleepuv seanss Docker Swarmiga (CE) Debian 9-s

Kleepuv seanss Docker Swarmiga (CE) Debian 9-s

Kas kasutate teistsugust süsteemi? Sissejuhatus Docker Swarm muudab teie üksikud serverid arvutite klastriks; skaleerimise hõlbustamine, kõrge saadavus an

Kaks Dockeri graafilist haldustööriista: DockerUI ja Shipyard

Kaks Dockeri graafilist haldustööriista: DockerUI ja Shipyard

Rakenduse Vultr Docker abil saate Dockeri oma Vultr serveri eksemplari hõlpsalt juurutada. Samal ajal saate hõlbustada Dockeri haldamist

Installige RancherOS-i Rancher Server

Installige RancherOS-i Rancher Server

Ülevaade RancherOS on uskumatult kerge operatsioonisüsteem (ainult umbes 60 MB), mis käitab süsteemiteenuste käitamiseks PID 0-na Dockeri deemonit.

Kubernetesiga alustamine CentOS 7-s

Kubernetesiga alustamine CentOS 7-s

Kubernetes on avatud lähtekoodiga platvorm, mille Google on välja töötanud konteinerite rakenduste haldamiseks serveriklastris. See põhineb kümnendil ja

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit