Menyebarkan dan Mengurus Kontena LXC dengan selamat di Ubuntu 14.04

Wadah LXC (wadah Linux) adalah ciri sistem operasi di Linux yang dapat digunakan untuk menjalankan beberapa sistem Linux terpencil pada satu host.

Arahan ini akan memandu anda melalui langkah asas konfigurasi pelayan untuk hosting kontena Linux terpencil. Kami akan mengkonfigurasi ciri berikut:

  • Bekas LXC dengan Ubuntu 14.
  • Tetapan rangkaian Linux dan pemajuan port untuk kontena.
  • Penerusan SSH untuk pentadbiran kontena semudah ssh [email protected]danssh [email protected]
  • Konfigurasi proksi Nginx untuk mengakses laman web di dalam bekas (dengan nama host).
  • Penambahbaikan keselamatan tambahan untuk pengurusan pelayan yang betul.

Panduan ini mengandaikan bahawa:

  • Anda mempunyai akaun di Vultr.com .
  • Anda tahu bagaimana mengkonfigurasi mesin maya dengan ISO tersuai.
  • Anda tahu bagaimana menggunakan kunci SSH dan anda telah menghasilkan kunci awam dan peribadi.

Pada akhir tutorial, kita akan mendapat dua bekas maya yang akan mempunyai akses ke internet, tetapi tidak dapat saling berpasangan. Kami juga akan mengkonfigurasi pemajuan port dari example.comkontena. Kami akan menggunakan panel konfigurasi dan pengurusan yang selamat dengan bantuan alat dari paket Proxmox.

Persediaan

Kami akan menggunakan Proxmox hanya untuk pengurusan kontena LXC. Secara amnya, ia juga menyokong KVM, tetapi virtualisasi bersarang dilarang di Vultr. Sebelum memulakan, Proxmox ISO harus dimuat turun dari laman web rasmi. Kami akan menggunakan Proxmox VE 5.0 ISO Installer. Pasang OS dari gambar dengan tetapan lalai dan but semula mesin maya. Anda juga boleh memasang proxmox secara manual dari sumber, tetapi itu tidak diperlukan dalam kebanyakan kes (ikuti arahan di sini ).

Persediaan OS

Sambungkan ke hos anda dengan SSH, kemas kini senarai templat proxmox dan muat turun templat yang sesuai untuk bekas.

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

Sekarang, kita perlu membuat wadah linux dengan antara muka rangkaian yang disambungkan ke jambatan linux. Buka /etc/network/interfacesdan tambahkan baris berikut:

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

Selepas sistem reboot, anda boleh membuat bekas baru dari Ubuntu 14.04templat.

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

Anda boleh mengesahkan bekas anda menggunakan pct list, mulakan bekas # 200 dengan pct start 200dan masukkan cangkangnya dengan pct enter 200. Anda juga dapat mengesahkan tetapan dan alamat rangkaian dengan ip addr.

Rangkaian

Untuk menyediakan sambungan internet di dalam bekas anda, kami perlu mengaktifkannya NAT. Berikut ini akan membolehkan lalu lintas dihantar dari kontena ke internet dengan bantuan teknologi NAT. The vmbr0jambatan disambungkan ke antara muka luar dan vmbr1jambatan adalah dihubungkan dengan bekas.

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

Masukkan bekas dengan pct enter 200dan konfigurasikan pelayan web di dalamnya.

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

Sekarang, kita perlu mengkonfigurasi Nginx di pelayan anda agar laman web proksi menjadi wadah.

apt-get update
apt-get install nginx

Buat fail konfigurasi baru /etc/nginx/sites-available/box200dengan kandungan berikut:

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 kini akan server200.example.commemproksi setiap permintaan HTTP dari pelayan anda ke wadah dengan IP 10.100.0.200. Aktifkan konfigurasi ini.

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

Akses SSH

Sekiranya anda ingin memberikan akses mudah ke kotak pasir, anda perlu meneruskan sesi SSH ke dalam bekas. Untuk melakukannya, buat pengguna baru di pelayan root anda. Jangan lupa memasukkan kata laluan, parameter lain tidak diperlukan.

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

Salin kunci SSH ini dan masukkan bekas untuk menambahkan kunci.

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

Pada pelayan anda, tambahkan baris berikut ke .ssh/authorized_keysfail.

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

Jangan lupa menukar <YOUR SSH KEY>kunci awam rumah anda. Sebagai alternatif, anda boleh menjalankan yang berikut dari baris arahan.

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

Kemudian, anda boleh menyambung ke kotak pasir anda dengan ssh.

`ssh box200@<your_server_IP>`

Tetapan Tambahan

Sudah tiba masanya untuk melaksanakan beberapa peningkatan keselamatan. Pertama, kami mahu menukar port SSH lalai. Kemudian kami ingin melindungi halaman pengurusan Proxmox kami dengan pengesahan HTTP asas.

nano /etc/ssh/sshd_config

Ketidakpuasan dan ubah garis

#Port 22 

kepada

Port 24000 

Mulakan semula ssh.

service ssh restart

Sambung semula ke ssh dengan port baru.

ssh root@<your_IP> -p 24000

Tetapkan kata laluan Proxmox.

Buat fail /etc/default/pveproxy.

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

Mulakan semula pveproxyuntuk perubahan berlaku.

/etc/init.d/pveproxy restart

Konfigurasikan nginx (jika anda belum melakukannya sebelumnya).

apt-get install nginx
service nginx restart

Buat konfigurasi lalai di /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; }
}

Dapatkan sijil SSL yang sah dan kemas kini konfigurasi nginx anda. Sebagai contoh, ia boleh dilakukan dengan bantuan kotak sertifikat dan letsencrypt. Untuk maklumat lebih lanjut, klik di sini .

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

Sekarang, konfigurasi nginx anda akan kelihatan seperti ini (atau anda boleh menukarnya secara manual selepasnya). Jangan lupa untuk melucutkan garis panduan ssl, auth dan lokasi.

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
}

Buat /etc/htpasswdfail menggunakan penjana Htpasswd .

nano /etc/nginx/htpasswd

Mulakan semula Nginx

service nginx restart

Anda kini dapat melihat konsol pengurusan https://example.comsetelah pengesahan asas.

Penghantaran Pelabuhan

Bekas kini boleh didapati dengan permintaan HTTP dan SSH. Sekarang, kita dapat mengkonfigurasi pemajuan port dari pelayan luaran ke kontena. Sebagai contoh, untuk pemetaan example.com:8080untuk 10.100.0.200:3000memasukkan perkara berikut.

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

Anda boleh melihat peraturan semasa.

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

Anda juga boleh menghapus peraturan berdasarkan nombor dengan yang berikut.

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

Bekas Berasingan

Kita sekarang boleh mengakses satu bekas dari yang lain.

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

Sekiranya anda ingin menyekat akses dari kontena 250 hingga 200, anda perlu menyambungkan setiap kontena ke jambatan peribadi dan melumpuhkan pemajuan antara jambatan.

  1. Padamkan bekas yang ada.

    pct stop 200
    pct stop 250
    pct destroy 200
    pct destroy 250
    
  2. Tukar kandungan /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 sistem

  4. Dayakan pemajuan

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

    Untuk menjadikan perubahan ini kekal, anda boleh mengedit /etc/sysctl.conffail dan mencari teks berikut.

    #net.ipv4.ip_forward=1
    

    Tidak berjaya.

    net.ipv4.ip_forward=1
    

    Anda juga dapat berjalan sysctl -puntuk membuat perubahan segera berlaku.

  5. Buat bekas.

    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. Mulakan bekas dengan pct start 200dan pct start 250.

  7. Siram iptablesperaturan.

    iptables -F
    
  8. Dayakan NAT.

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

    vmbr0 adalah jambatan yang merangkumi antara muka luaran.

  9. Benarkan pemajuan dari antara muka luaran.

    iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
    
  10. Benarkan penghantaran dari kontena ke internet.

    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. Turunkan pemajuan yang lain.

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

Sekarang, periksa yang 10.100.1.200boleh ping 8.8.8.8tetapi tidak boleh ping 10.100.2.250dan yang 10.100.2.250boleh ping 8.8.8.8tetapi tidak dapat ping 10.100.1.200.

Urutan perintah yang berkaitan dengan iptables adalah penting. Kaedah terbaik untuk mengendalikan peraturan anda adalah dengan menggunakan iptables-persistent. Pakej ini membantu anda untuk menjimatkan iptables kaedah-kaedah untuk fail /etc/iptables/rules.v4dan /etc/iptables/rules.v6dan ia boleh secara automatik memuatkan mereka selepas sistem reboot. Pasang sahaja dengan yang berikut.

apt-get install iptables-persistent

Pilih YESapabila diminta.



Leave a Comment

Terapkan Kubernetes Dengan Kubeadm di CentOS 7

Terapkan Kubernetes Dengan Kubeadm di CentOS 7

Gambaran Keseluruhan Artikel ini dimaksudkan untuk membantu anda mendapatkan cluster Kubernet dan berjalan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua pelayan, di

Pasang Docker CE pada Ubuntu 18.04

Pasang Docker CE pada Ubuntu 18.04

Pengenalan Docker adalah aplikasi yang memungkinkan kita menyebarkan program yang dijalankan sebagai wadah. Ia ditulis dalam bahasa pengaturcaraan Go yang popular

Buat Docker Swarm pada Alpine Linux 3.9.0

Buat Docker Swarm pada Alpine Linux 3.9.0

Pendahuluan Panduan ini akan menunjukkan kepada anda cara membuat dan mengkonfigurasi kawanan Docker menggunakan beberapa pelayan Alpine Linux 3.9.0 dan Portainer. Harap maklum tha

Pasang Rancher pada Ubuntu 16.04

Pasang Rancher pada Ubuntu 16.04

Menggunakan Sistem Berbeza? Pengenalan Rancher adalah platform sumber terbuka untuk menjalankan kontena dan membina perkhidmatan kontena peribadi. Rancher adalah asas

Memasang komposisi dok pada CoreOS

Memasang komposisi dok pada CoreOS

Artikel ini menerangkan cara memasang docker-compose pada CoreOS. Di CoreOS, folder / usr / tidak berubah sehingga jalan standard / usr / local / bin tidak tersedia

Pada CoreOS, Sediakan Docker Registry Anda Sendiri

Pada CoreOS, Sediakan Docker Registry Anda Sendiri

Kita semua tahu dan menyukai Docker, platform untuk membuat, mengurus dan mengedarkan bekas aplikasi di pelbagai mesin. Docker Inc. menyediakan perkhidmatan t

Pasang Rancher di CentOS 7

Pasang Rancher di CentOS 7

Menggunakan Sistem Berbeza? Pengenalan Rancher adalah platform sumber terbuka untuk menjalankan kontena dan membina perkhidmatan kontena peribadi. Rancher adalah asas

Sesi Sticky Dengan Swarm Docker (CE) pada CentOS 7

Sesi Sticky Dengan Swarm Docker (CE) pada CentOS 7

Menggunakan Sistem Berbeza? Pengenalan Docker Swarm menukarkan pelayan individu anda ke dalam kumpulan komputer, memudahkan scaling, ketersediaan tinggi

Memasang Docker di CentOS 7

Memasang Docker di CentOS 7

Menggunakan Sistem yang berbeza? Docker adalah aplikasi yang memungkinkan penggunaan perisian dalam wadah maya. Ia ditulis dalam program Go

Pasang Rancher Server di RancherOS

Pasang Rancher Server di RancherOS

Gambaran Keseluruhan RancherOS adalah sistem operasi yang sangat ringan (hanya sekitar 60 MB) yang menjalankan sistem Docker daemon sebagai PID 0 untuk menjalankan sistem perkhidmatan

Sesi Melekit Dengan Docker Swarm (CE) di Debian 9

Sesi Melekit Dengan Docker Swarm (CE) di Debian 9

Menggunakan Sistem Berbeza? Pengenalan Docker Swarm menukarkan pelayan individu anda ke dalam kumpulan komputer; memudahkan penskalaan, ketersediaan tinggi dan

Cara Menggunakan Docker: Membuat Bekas Docker Pertama Anda

Cara Menggunakan Docker: Membuat Bekas Docker Pertama Anda

Tutorial ini menerangkan asas-asas untuk memulakan Docker. Saya menganggap bahawa anda sudah memasang Docker. Langkah-langkah dalam tutorial ini akan berfungsi pada

Muatkan Baki dengan Docker

Muatkan Baki dengan Docker

Semasa menjalankan aplikasi web, biasanya anda ingin memanfaatkan sepenuhnya sumber anda tanpa perlu menukar perisian anda untuk menggunakan multithreading o

Mulakan Dengan SQL Server 2017 (MS-SQL) di CentOS 7 With Docker

Mulakan Dengan SQL Server 2017 (MS-SQL) di CentOS 7 With Docker

Prasyarat enjin Docker 1.8+. Minimum ruang cakera 4GB. Minimum RAM 4GB. Langkah 1. Pasang Docker Untuk memasang SQL-Server, Docker mus

Memasang Docker CE pada Debian 9

Memasang Docker CE pada Debian 9

Menggunakan Sistem Berbeza? Pengenalan Docker adalah aplikasi yang memungkinkan penggunaan perisian dalam wadah maya. Ia ditulis dalam G

Memasang Docker di Ubuntu 14.04

Memasang Docker di Ubuntu 14.04

Menggunakan Sistem yang berbeza? Docker adalah aplikasi yang memungkinkan untuk menyebarkan program yang dijalankan sebagai wadah. Ia ditulis dalam program Go yang popular

Terapkan Aplikasi Node.js Menggunakan Docker

Terapkan Aplikasi Node.js Menggunakan Docker

Artikel ini akan menunjukkan kepada anda cara menyebarkan aplikasi Node anda dalam wadah Docker. Catatan: Tutorial ini mengandaikan bahawa anda telah memasang dan membaca Docker

Persediaan Sentry melalui Docker di Ubuntu 16.04

Persediaan Sentry melalui Docker di Ubuntu 16.04

Menggunakan Sistem Berbeza? Pengenalan Sentry adalah penyelesaian sumber terbuka untuk pengesanan ralat. Sentry menjejaki pengecualian dan mesej berguna lain dari sana

Cara Memasang Harbour di CentOS 7

Cara Memasang Harbour di CentOS 7

Harbour adalah pelayan pendaftaran kelas perusahaan sumber terbuka yang menyimpan dan menyebarkan gambar Docker. Harbour memperluas sumber terbuka Docker Distribution b

Pasang Rancher OS melalui iPXE

Pasang Rancher OS melalui iPXE

Rancher OS adalah sebaran Linux yang sangat ringan yang dibina di sekitar Docker. OS itu sendiri mempunyai berat sekitar 20MB. Tutorial ini akan membuatkan anda dapat menggunakannya

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut