Ota ja hallitse LXC-säilöjä turvallisesti Ubuntu 14.04:ssä

LXC-säilöt (Linux-säilöt) ovat Linuxin käyttöjärjestelmäominaisuus, jota voidaan käyttää useiden erillisten Linux-järjestelmien ajamiseen yhdellä isännällä.

Nämä ohjeet opastavat sinut yksittäisten Linux-säilöjen isännöinnin palvelimen määrittämisen perusvaiheiden läpi. Määritämme seuraavat ominaisuudet:

  • LXC-säiliöt Ubuntu 14:llä.
  • Linux-verkkoasetukset ja portin edelleenohjaus säilöille.
  • SSH-edelleenlähetys kontin hallintaan yhtä helppoa kuin ssh [email protected]jassh [email protected]
  • Nginx-välityspalvelinmääritykset säilöissä olevien verkkosivustojen käyttämiseen (isäntänimen mukaan).
  • Muita suojausparannuksia kunnolliseen palvelimen hallintaan.

Tässä oppaassa oletetaan, että:

  • Sinulla on tili osoitteessa Vultr.com .
  • Tiedät kuinka määrittää virtuaalikoneen mukautetulla ISO:lla.
  • Osaat käyttää SSH-avaimia ja olet jo luonut julkiset ja yksityiset avaimet.

Opetusohjelman lopussa saamme kaksi virtuaalikonttia, joilla on pääsy Internetiin, mutta jotka eivät voi pingata toisiaan. Konfiguroimme myös porttiohjauksen kohteesta example.comkonteihin. Otamme käyttöön suojatun konfiguroinnin ja hallintapaneelin Proxmox-paketin työkalujen avulla.

Valmistelut

Käytämme Proxmoxia vain LXC-konttien hallintaan. Yleensä se tukee myös KVM:ää, mutta sisäkkäinen virtualisointi on kielletty Vultrissa. Ennen aloittamista Proxmox ISO tulee ladata viralliselta verkkosivustolta. Käytämme Proxmox VE 5.0 ISO Installer. Asenna käyttöjärjestelmä kuvasta oletusasetuksilla ja käynnistä virtuaalikone uudelleen. Voit myös asentaa proxmoxin manuaalisesti lähteistä, mutta se ei ole useimmissa tapauksissa välttämätöntä (noudata ohjeita täällä ).

Käyttöjärjestelmän asennus

Yhdistä isäntään SSH:lla, päivitä proxmox-malliluettelo ja lataa sopiva malli säilöille.

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

Nyt meidän on luotava linux-säilö, jossa on verkkoliitäntä, joka on kytketty linux-sillalle. Avaa /etc/network/interfacesja liitä seuraavat rivit:

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

Järjestelmän uudelleenkäynnistyksen jälkeen voit luoda uuden säilön Ubuntu 14.04mallista.

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

Voit vahvistaa säilön käyttämällä pct list, aloita säilön #200 kentällä pct start 200ja syötä sen kuori painikkeella pct enter 200. Voit myös tarkistaa verkkoasetukset ja osoitteet -painikkeella ip addr.

Verkko

Jotta voimme tarjota Internet-yhteyden säilösi sisällä, meidän on otettava käyttöön NAT. Seuraava mahdollistaa liikenteen välittämisen kontista Internetiin NAT-tekniikan avulla. vmbr0Silta on yhdistetty ulkoisen liitännän ja vmbr1silta on yhdistetty säiliöihin.

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

Syötä säilö pct enter 200ja määritä verkkopalvelin sisällä.

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

Nyt meidän on määritettävä Nginx palvelimellasi välittämään verkkosivustot säilöihin.

apt-get update
apt-get install nginx

Luo uusi konfiguraatiotiedosto /etc/nginx/sites-available/box200seuraavalla sisällöllä:

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 server200.example.comvälittää nyt jokaisen HTTP-pyynnön palvelimeltasi säilöön, jonka IP-osoite on 10.100.0.200. Aktivoi tämä kokoonpano.

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

SSH pääsy

Jos haluat tarjota helpon pääsyn hiekkalaatikoihin, sinun on välitettävä SSH-istunnot säilöihin. Luo uusi käyttäjä juuripalvelimellesi. Älä unohda syöttää salasanaa, muut parametrit eivät ole välttämättömiä.

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

Kopioi tämä SSH-avain ja lisää avain kirjoittamalla säilö.

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

Lisää palvelimellasi .ssh/authorized_keystiedostoon seuraava rivi .

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

Älä unohda vaihtaa <YOUR SSH KEY>kotisi julkiseen avaimeen. Vaihtoehtoisesti voit suorittaa seuraavan komentoriviltä.

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

Sitten voit muodostaa yhteyden hiekkalaatikkoosi ssh:lla.

`ssh box200@<your_server_IP>`

Lisäasetukset

On aika toteuttaa useita tietoturvaparannuksia. Ensinnäkin haluamme muuttaa oletusarvoista SSH-porttia. Sitten haluamme suojata Proxmox-hallintasivumme HTTP-perustodennuksen avulla.

nano /etc/ssh/sshd_config

Poista kommentti ja muuta riviä

#Port 22 

kohtaan

Port 24000 

Käynnistä ssh uudelleen.

service ssh restart

Yhdistä uudelleen ssh-verkkoon uudella portilla.

ssh root@<your_IP> -p 24000

Aseta Proxmox-salasana.

Luo tiedosto /etc/default/pveproxy.

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

Käynnistä uudelleen pveproxy, jotta muutokset tulevat voimaan.

/etc/init.d/pveproxy restart

Määritä nginx (jos et ole tehnyt sitä aiemmin).

apt-get install nginx
service nginx restart

Luo oletusmääritys kohteessa /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; }
}

Hanki kelvollinen SSL-varmenne ja päivitä nginx-kokoonpanosi. Se voidaan tehdä esimerkiksi certboxin ja letsencryptin avulla. Saat lisätietoja napsauttamalla tätä .

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

Nyt nginx-kokoonpanosi pitäisi näyttää tältä (tai voit muuttaa sen manuaalisesti sen jälkeen). Älä unohda poistaa kommentteja ssl-, auth- ja sijaintiriveistä.

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
}

Luo /etc/htpasswdtiedosto käyttämällä Htpasswd-generaattoria .

nano /etc/nginx/htpasswd

Käynnistä Nginx uudelleen

service nginx restart

Voit nyt tarkastella hallintakonsolia https://example.comperustodennuksen jälkeen.

Portin uudelleenohjaus

Säilöt ovat nyt saatavilla HTTP-pyynnöillä ja SSH:lla. Nyt voimme määrittää portin edelleenlähetyksen ulkoisesta palvelimesta säilöihin. Esimerkiksi kartoittaaksesi example.com:8080seuraavan 10.100.0.200:3000syötteen.

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

Voit tarkastella voimassa olevia sääntöjä.

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

Voit myös poistaa säännön numeron mukaan seuraavilla tavoilla.

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

Erilliset säiliöt

Voimme nyt käyttää yhtä konttia toisesta.

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

Jos haluat rajoittaa pääsyä säiliöstä 250 200:een, sinun on yhdistettävä jokainen kontti henkilökohtaiseen siltaan ja poistettava edelleenlähetys siltojen välillä.

  1. Poista olemassa olevat säilöt.

    pct stop 200
    pct stop 250
    pct destroy 200
    pct destroy 250
    
  2. Muuta sisällön /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 systeemi

  4. Ota edelleenlähetys käyttöön

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

    Voit tehdä näistä muutoksista pysyviä muokkaamalla /etc/sysctl.conftiedostoa ja etsimällä seuraavan tekstin.

    #net.ipv4.ip_forward=1
    

    Peruuta kommentti.

    net.ipv4.ip_forward=1
    

    Voit myös suorittaa sysctl -pmuutokset, jotta muutokset tulevat voimaan välittömästi.

  5. Luo säiliöitä.

    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äynnistä säiliöt painikkeilla pct start 200ja pct start 250.

  7. Huuhtele iptablessäännöt.

    iptables -F
    
  8. Ota NAT käyttöön.

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

    vmbr0 on silta, joka sisältää ulkoisen liitännän.

  9. Salli edelleenlähetys ulkoisesta käyttöliittymästä.

    iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
    
  10. Salli edelleenlähetys säilöistä Internetiin.

    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. Jätä toinen edelleenlähetys.

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

Tarkista nyt, että 10.100.1.200voi ping, 8.8.8.8mutta ei voi ping 10.100.2.250ja että 10.100.2.250voi ping, 8.8.8.8mutta ei voi ping 10.100.1.200.

Iptablesiin liittyvien komentojen järjestys on tärkeä. Paras tapa käyttää sääntöjäsi on käyttää iptables-persistent. Tämä paketti auttaa säästämään iptables sääntöjä tiedostot /etc/iptables/rules.v4ja /etc/iptables/rules.v6ja se voi automaattisesti ladata niitä jälkeen järjestelmän uudelleenkäynnistyksen. Asenna se vain seuraavilla tavoilla.

apt-get install iptables-persistent

Valitse YESpyydettäessä.


Näin voit tarkistaa Hyper-V-säiliöt Windows 10 Insiderissä

Näin voit tarkistaa Hyper-V-säiliöt Windows 10 Insiderissä

Microsoft on selittänyt uudessa blogiviestissä, kuinka Windows Insiders voi testata Hyper-V-säilöjä Windows 10:ssä, uudessa virtualisointiratkaisussa, jonka avulla sovellukset voivat toimia vaikuttamatta muuhun käyttöjärjestelmääsi.

Asenna Rancher OS iPXE:n kautta

Asenna Rancher OS iPXE:n kautta

Rancher OS on erittäin kevyt Linux-jakelu, joka on rakennettu Dockerin ympärille. Itse käyttöjärjestelmä painaa noin 20 Mt. Tämän opetusohjelman avulla pääset alkuun

Määritä CoreOS:ssä oma Docker-rekisteri

Määritä CoreOS:ssä oma Docker-rekisteri

Me kaikki tiedämme ja rakastamme Dockeria, alustaa sovellussäilöjen luomiseen, hallintaan ja jakamiseen useille koneille. Docker Inc. tarjoaa palvelun t

Docker-composen asentaminen CoreOS:ään

Docker-composen asentaminen CoreOS:ään

Tässä artikkelissa kerrotaan, kuinka Docker-compose asennetaan CoreOS:ään. CoreOS:ssä /usr/-kansio on muuttumaton, joten tavallinen /usr/local/bin-polku ei ole käytettävissä

Asenna Docker CE Ubuntuun 18.04

Asenna Docker CE Ubuntuun 18.04

Johdanto Docker on sovellus, jonka avulla voimme ottaa käyttöön ohjelmia, joita ajetaan säilöinä. Se on kirjoitettu suositulla Go-ohjelmointikielellä

Luo Docker Swarm Alpine Linux 3.9.0:lle

Luo Docker Swarm Alpine Linux 3.9.0:lle

Johdanto Tämä opas näyttää, kuinka Docker-parvi luodaan ja konfiguroidaan käyttämällä useita Alpine Linux 3.9.0 -palvelimia ja Portaineria. Ole tietoinen siitä

Ota PHP-sovellus käyttöön Docker-compose-sovelluksella

Ota PHP-sovellus käyttöön Docker-compose-sovelluksella

PHP-sovellukset koostuvat yleensä verkkopalvelimesta, relaatiotietokantajärjestelmästä ja itse kielitulkista. Tässä opetusohjelmassa hyödynnämme

Kuormituksen tasapaino Dockerin kanssa

Kuormituksen tasapaino Dockerin kanssa

Kun käytät verkkosovellusta, haluat yleensä saada kaiken irti resursseistasi ilman, että sinun tarvitsee muuttaa ohjelmistoasi käyttämään monisäikeistä o

Ota Node.js-sovellus käyttöön Dockerin avulla

Ota Node.js-sovellus käyttöön Dockerin avulla

Tämä artikkeli näyttää, kuinka Node-sovellus otetaan käyttöön Docker-säilön sisällä. Huomautus: Tämä opetusohjelma olettaa, että olet asentanut Dockerin ja lukenut sen

Docker CE:n asentaminen Debian 9:ään

Docker CE:n asentaminen Debian 9:ään

Käytätkö erilaista järjestelmää? Johdanto Docker on sovellus, joka mahdollistaa ohjelmistojen käyttöönoton virtuaalisäiliöissä. Se oli kirjoitettu G:ssä

Aloita SQL Server 2017:n (MS-SQL) käyttäminen CentOS 7:ssä Dockerin kanssa

Aloita SQL Server 2017:n (MS-SQL) käyttäminen CentOS 7:ssä Dockerin kanssa

Esitiedot Docker engine 1.8+. Vähintään 4 Gt levytilaa. Vähintään 4 Gt RAM-muistia. Vaihe 1. Asenna Docker SQL-palvelimen asentamiseksi Docker mus

Sticky Session with Docker Swarm (CE) Debian 9:ssä

Sticky Session with Docker Swarm (CE) Debian 9:ssä

Käytätkö erilaista järjestelmää? Johdanto Docker Swarm muuttaa yksittäiset palvelimesi tietokoneklusteriksi; helpottaa skaalaus, korkea saatavuus ja

Asenna Rancher Server RancherOS:ään

Asenna Rancher Server RancherOS:ään

Yleiskatsaus RancherOS on uskomattoman kevyt käyttöjärjestelmä (vain noin 60 Mt), joka käyttää Docker-daemonia PID 0 -tunnuksena järjestelmäpalvelujen suorittamiseen.

Asenna Rancher Ubuntuun 16.04

Asenna Rancher Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Johdanto Rancher on avoimen lähdekoodin alusta konttien ajamiseen ja yksityisen konttipalvelun rakentamiseen. Rancher on perusta

Asenna Sentry Dockerin kautta Ubuntuun 16.04

Asenna Sentry Dockerin kautta Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Johdanto Sentry on avoimen lähdekoodin ratkaisu virheiden seurantaan. Sentry seuraa poikkeuksia ja muita hyödyllisiä viestejä

Dockerin käyttö: Ensimmäisen Docker-säilön luominen

Dockerin käyttö: Ensimmäisen Docker-säilön luominen

Tämä opetusohjelma selittää Dockerin käytön aloittamisen perusteet. Oletan, että sinulla on jo Docker asennettuna. Tämän opetusohjelman vaiheet toimivat

Dockerin asentaminen Ubuntuun 14.04

Dockerin asentaminen Ubuntuun 14.04

Käytätkö erilaista järjestelmää? Docker on sovellus, jonka avulla voidaan ottaa käyttöön säilöinä ajettavia ohjelmia. Se kirjoitettiin suositulla Go-ohjelmalla

Ota ja hallitse LXC-säilöjä turvallisesti Ubuntu 14.04:ssä

Ota ja hallitse LXC-säilöjä turvallisesti Ubuntu 14.04:ssä

LXC-säilöt (Linux-säilöt) ovat Linuxin käyttöjärjestelmäominaisuus, jota voidaan käyttää useiden erillisten Linux-järjestelmien ajamiseen yhdellä isännällä. Nämä

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja