Безбедно примените и управљајте ЛКСЦ контејнерима на Убунту 14.04

ЛКСЦ контејнери (Линук контејнери) су функција оперативног система у Линук-у која се може користити за покретање више изолованих Линук система на једном хосту.

Ова упутства ће вас провести кроз основне кораке конфигурације сервера за хостовање изолованих Линук контејнера. Конфигурисаћемо следеће карактеристике:

  • ЛКСЦ контејнери са Убунту 14.
  • Линук мрежна подешавања и прослеђивање портова за контејнере.
  • ССХ прослеђивање за администрацију контејнера једноставно као ssh [email protected]иssh [email protected]
  • Нгинк проки конфигурација за приступ веб локацијама унутар контејнера (према имену хоста).
  • Додатна безбедносна побољшања за правилно управљање сервером.

Овај водич претпоставља да:

  • Имате налог на Вултр.цом .
  • Знате како да конфигуришете виртуелну машину са прилагођеним ИСО-ом.
  • Знате како да користите ССХ кључеве и већ сте генерисали јавне и приватне кључеве.

На крају туторијала добићемо два виртуелна контејнера који ће имати приступ интернету, али не могу пинговати један другог. Такође ћемо конфигурисати прослеђивање портова од example.comдо контејнера. Ми ћемо поставити безбедну конфигурацију и панел за управљање уз помоћ алата из Прокмок пакета.

Припреме

Користићемо Прокмок само за управљање ЛКСЦ контејнерима. Генерално, такође подржава КВМ, али угнежђена виртуелизација је забрањена на Вултр-у. Пре почетка, Прокмок ИСО треба преузети са званичне веб странице. Користићемо Proxmox VE 5.0 ISO Installer. Инсталирајте ОС са слике са подразумеваним подешавањима и поново покрените виртуелну машину. Такође, можете ручно да инсталирате прокмок из извора, али то у већини случајева није неопходно (пратите упутства овде ).

ОС Сетуп

Повежите се са својим хостом преко ССХ-а, ажурирајте листу прокмок шаблона и преузмите одговарајући шаблон за контејнере.

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

Сада морамо да креирамо линук контејнер са мрежним интерфејсом повезаним на линук мост. Отворите /etc/network/interfacesи додајте следеће редове:

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

Након поновног покретања система, можете креирати нови контејнер из Ubuntu 14.04шаблона.

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

Можете да верификујете свој контејнер користећи pct list, покрените контејнер #200 са pct start 200и унесите његову шкољку са pct enter 200. Такође можете да проверите мрежна подешавања и адресе помоћу ip addr.

Мрежа

Да бисмо обезбедили интернет везу унутар вашег контејнера, морамо да омогућимо NAT. Следеће ће омогућити прослеђивање саобраћаја из контејнера на интернет уз помоћ НАТ технологије. vmbr0Мост је повезан са спољном интерфејсу и vmbr1мост је повезан са контејнерима.

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

Унесите контејнер са pct enter 200и конфигуришите веб сервер унутра.

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

Сада морамо да конфигуришемо Нгинк на вашем серверу за прокси веб локације у контејнере.

apt-get update
apt-get install nginx

Направите нову конфигурациону датотеку /etc/nginx/sites-available/box200са следећим садржајем:

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/;
    }
}

Нгинк ће сада проки сваки ХТТП захтев server200.example.comса вашег сервера у контејнер са ИП 10.100.0.200. Активирајте ову конфигурацију.

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

ССХ приступ

Ако желите да омогућите лак приступ сандбок-овима, потребно је да проследите ССХ сесије у контејнере. Да бисте то урадили, креирајте новог корисника на вашем роот серверу. Не заборавите да унесете лозинку, други параметри нису потребни.

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

Копирајте овај ССХ кључ и унесите контејнер да бисте додали кључ.

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

На свом серверу додајте следећу линију у .ssh/authorized_keysдатотеку.

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

Не заборавите да промените <YOUR SSH KEY>свој кућни јавни кључ. Алтернативно, можете покренути следеће из командне линије.

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

Затим се можете повезати са својим сандбоком помоћу ссх-а.

`ssh box200@<your_server_IP>`

Додатна подешавања

Време је да примените неколико безбедносних побољшања. Прво, желимо да променимо подразумевани ССХ порт. Затим желимо да заштитимо нашу страницу за управљање Прокмок-ом основном ХТТП аутентификацијом.

nano /etc/ssh/sshd_config

Уклоните коментаре и промените линију

#Port 22 

до

Port 24000 

Поново покрените ссх.

service ssh restart

Поново се повежите на ссх са новим портом.

ssh root@<your_IP> -p 24000

Поставите Прокмок лозинку.

Креирајте датотеку /etc/default/pveproxy.

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

Поново покрените pveproxyда би промене ступиле на снагу.

/etc/init.d/pveproxy restart

Конфигуришите нгинк (ако то раније нисте урадили).

apt-get install nginx
service nginx restart

Направите подразумевану конфигурацију у /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; }
}

Набавите важећи ССЛ сертификат и ажурирајте своју нгинк конфигурацију. На пример, то се може урадити уз помоћ цертбок и летсенцрипт. За више информација, кликните овде .

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

Сада би ваша нгинк конфигурација требало да изгледа овако (или је можете променити ручно након тога). Не заборавите да декоментирате ссл, аутх и линије за локацију.

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
}

Креирајте /etc/htpasswdдатотеку користећи Хтпассвд генератор .

nano /etc/nginx/htpasswd

Поново покрените Нгинк

service nginx restart

Сада можете да видите управљачку конзолу https://example.comнакон основне аутентификације.

Порт Форвардинг

Контејнери су сада доступни преко ХТТП захтева и ССХ. Сада можемо да конфигуришемо прослеђивање портова са спољног сервера на контејнере. На пример, за мапирање example.com:8080за 10.100.0.200:3000унос следећег.

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

Можете погледати тренутна правила.

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

Такође можете избрисати правило по броју помоћу следећег.

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

Одвојени контејнери

Сада можемо приступити једном контејнеру из другог.

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

Ако желите да ограничите приступ са контејнера 250 на 200, потребно је да повежете сваки контејнер са личним мостом и онемогућите прослеђивање између мостова.

  1. Избришите постојеће контејнере.

    pct stop 200
    pct stop 250
    pct destroy 200
    pct destroy 250
    
  2. Промените садржај /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 систем

  4. Омогући прослеђивање

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

    Да бисте ове промене учинили трајним, можете уредити /etc/sysctl.confдатотеку и пронаћи следећи текст.

    #net.ipv4.ip_forward=1
    

    Одкоментирај га.

    net.ipv4.ip_forward=1
    

    Такође можете покренути sysctl -pда би промене ступиле на снагу одмах.

  5. Креирајте контејнере.

    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. Започните контејнере са pct start 200и pct start 250.

  7. Испразните iptablesправила.

    iptables -F
    
  8. Омогући НАТ.

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

    vmbr0 је мост који укључује екстерни интерфејс.

  9. Дозволите прослеђивање са спољног интерфејса.

    iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
    
  10. Дозволите прослеђивање из контејнера на интернет.

    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. Одбаците друго прослеђивање.

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

Сада проверите да ли 10.100.1.200може да пингује, 8.8.8.8али не може да пингује 10.100.2.250и да 10.100.2.250може да пингује, 8.8.8.8али не може да пингује 10.100.1.200.

Редослед команди везаних за иптаблес је важан. Најбољи начин да управљате својим правилима је да користите iptables-persistent. Овај пакет вам помаже да сачувате иптаблес правила у датотеке /etc/iptables/rules.v4и /etc/iptables/rules.v6може их аутоматски учитати након поновног покретања система. Само га инсталирајте са следећим.

apt-get install iptables-persistent

Изаберите YESкада се то од вас затражи.


Ево како да проверите Хипер-В контејнере на Виндовс 10 Инсидер-у

Ево како да проверите Хипер-В контејнере на Виндовс 10 Инсидер-у

Мицрософт је у новом посту на блогу објаснио како Виндовс Инсајдери могу тестирати Хипер-В контејнере на Виндовс 10, ново решење за виртуелизацију које омогућава покретање апликација без утицаја на остатак вашег оперативног система.

Како инсталирати Харбор на ЦентОС 7

Како инсталирати Харбор на ЦентОС 7

Харбор је сервер регистра предузећа отвореног кода који чува и дистрибуира Доцкер слике. Харбор проширује Доцкер Дистрибутион отвореног кода б

Инсталирајте Ранцхер ОС преко иПКСЕ

Инсталирајте Ранцхер ОС преко иПКСЕ

Ранцхер ОС је веома лагана Линук дистрибуција изграђена око Доцкер-а. Сам ОС тежи око 20МБ. Овај водич ће вас покренути и покренути

На ЦореОС-у, подесите сопствени Доцкер регистар

На ЦореОС-у, подесите сопствени Доцкер регистар

Сви знамо и волимо Доцкер, платформу за креирање, управљање и дистрибуцију контејнера апликација на више машина. Доцкер Инц. пружа услугу т

Инсталирање доцкер-цомпосе на ЦореОС

Инсталирање доцкер-цомпосе на ЦореОС

Овај чланак објашњава како да инсталирате доцкер-цомпосе на ЦореОС. У ЦореОС-у, директоријум /уср/ је непроменљив тако да је стандардна /уср/лоцал/бин путања недоступна за

Инсталирајте Ранцхер на ЦентОС 7

Инсталирајте Ранцхер на ЦентОС 7

Користите другачији систем? Увод Ранцхер је платформа отвореног кода за покретање контејнера и изградњу приватног контејнерског сервиса. Ранчер је база

Инсталирајте Доцкер ЦЕ на Убунту 18.04

Инсталирајте Доцкер ЦЕ на Убунту 18.04

Увод Доцкер је апликација која нам омогућава да применимо програме који се покрећу као контејнери. Написан је у популарном Го програмском језику

Направите Доцкер Сварм на Алпине Линук 3.9.0

Направите Доцкер Сварм на Алпине Линук 3.9.0

Увод Овај водич ће вам показати како да креирате и конфигуришете Доцкер рој користећи више Алпине Линук 3.9.0 сервера и Портаинер-а. Имајте на уму да

Поставите ПХП апликацију користећи Доцкер-цомпосе

Поставите ПХП апликацију користећи Доцкер-цомпосе

ПХП апликације се обично састоје од веб сервера, система релационих база података и самог тумача језика. У овом туторијалу бићемо полуге

Баланс оптерећења са Доцкер-ом

Баланс оптерећења са Доцкер-ом

Када покрећете веб апликацију, обично желите да максимално искористите своје ресурсе без потребе да конвертујете софтвер да користи вишенитно о

Поставите Ноде.јс апликацију користећи Доцкер

Поставите Ноде.јс апликацију користећи Доцкер

Овај чланак ће вам показати како да примените своју Ноде апликацију у Доцкер контејнеру. Напомена: Овај водич претпоставља да имате инсталиран и прочитан Доцкер

Инсталирање Доцкер ЦЕ на ЦентОС 7

Инсталирање Доцкер ЦЕ на ЦентОС 7

Доцкер контејнерска технологија вам омогућава да покрећете апликације у специфичном и изолованом окружењу. Доцкер Цоммунити Едитион (ЦЕ) је ново име за фре

Поставите Кубернетес са Кубеадм-ом на ЦентОС 7

Поставите Кубернетес са Кубеадм-ом на ЦентОС 7

Преглед Овај чланак има за циљ да вам помогне да за кратко време покренете Кубернетес кластер са кубеадм-ом. Овај водич ће применити два сервера, на

Инсталирање Доцкер-а на ЦентОС 7

Инсталирање Доцкер-а на ЦентОС 7

Користите другачији систем? Доцкер је апликација која омогућава примену софтвера унутар виртуелних контејнера. Написано је у Го програму

Инсталирање Доцкер ЦЕ на Дебиан 9

Инсталирање Доцкер ЦЕ на Дебиан 9

Користите другачији систем? Увод Доцкер је апликација која омогућава примену софтвера унутар виртуелних контејнера. Написано је у Г

Започните са СКЛ Сервером 2017 (МС-СКЛ) на ЦентОС 7 помоћу Доцкер-а

Започните са СКЛ Сервером 2017 (МС-СКЛ) на ЦентОС 7 помоћу Доцкер-а

Предуслови Доцкер енгине 1.8+. Најмање 4 ГБ простора на диску. Најмање 4 ГБ РАМ-а. Корак 1. Инсталирајте Доцкер Да бисте инсталирали СКЛ-Сервер, потребно је Доцкер

Стицки Сессион Витх Доцкер Сварм (ЦЕ) на Дебиан-у 9

Стицки Сессион Витх Доцкер Сварм (ЦЕ) на Дебиан-у 9

Користите другачији систем? Увод Доцкер Сварм претвара ваше појединачне сервере у кластер рачунара; олакшавање скалирања, висока доступност ан

Два Доцкер графичка алата за управљање: ДоцкерУИ и Схипиард

Два Доцкер графичка алата за управљање: ДоцкерУИ и Схипиард

Уз помоћ апликације Вултр Доцкер, можете лако да примените Доцкер на инстанци вашег Вултр сервера. У међувремену, можете олакшати задатак управљања Доцкер-ом

Инсталирајте Ранцхер Сервер на РанцхерОС

Инсталирајте Ранцхер Сервер на РанцхерОС

Преглед РанцхерОС је невероватно лаган оперативни систем (само око 60 МБ) који покреће системски Доцкер демон као ПИД 0 за покретање системских услуга

Почетак рада са Кубернетес-ом на ЦентОС-у 7

Почетак рада са Кубернетес-ом на ЦентОС-у 7

Кубернетес је платформа отвореног кода коју је развио Гоогле за управљање контејнерским апликацијама на кластеру сервера. Надовезује се на деценију и

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више