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

Jätä kommentti

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.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

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

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.

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