Installeer Rancher Server op RancherOS
Overzicht RancherOS is een ongelooflijk lichtgewicht besturingssysteem (slechts ongeveer 60 MB) dat een systeem Docker-daemon draait als PID 0 voor het uitvoeren van systeemservices
LXC-containers (Linux-containers) zijn een besturingssysteemfunctie in Linux die kan worden gebruikt om meerdere geïsoleerde Linux-systemen op één host uit te voeren.
Deze instructies leiden u door de basisstappen van de serverconfiguratie voor geïsoleerde Linux-containershosting. We zullen de volgende functies configureren:
ssh [email protected]
enssh [email protected]
Deze gids gaat ervan uit dat:
Aan het einde van de tutorial krijgen we twee virtuele containers die toegang hebben tot internet, maar die elkaar niet kunnen pingen. We zullen ook port forwarding configureren van example.com
naar containers. We zullen een beveiligd configuratie- en beheerpaneel inzetten met behulp van tools uit het Proxmox-pakket.
We zullen Proxmox alleen gebruiken voor het beheer van LXC-containers. Over het algemeen ondersteunt het ook KVM, maar geneste virtualisatie is verboden op Vultr. Voordat u begint, moet een Proxmox ISO worden gedownload van de officiële website. We zullen de gebruiken Proxmox VE 5.0 ISO Installer
. Installeer het besturingssysteem vanaf de afbeelding met standaardinstellingen en start de virtuele machine opnieuw op. U kunt proxmox ook handmatig installeren vanuit bronnen, maar dat is in de meeste gevallen niet nodig (volg de instructies hier ).
Maak verbinding met uw host via SSH, werk de lijst met proxmox-sjablonen bij en download een geschikte sjabloon voor containers.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Nu moeten we een linux-container maken met een netwerkinterface die is verbonden met een linux-bridge. Open /etc/network/interfaces
en voeg de volgende regels toe:
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
Nadat het systeem opnieuw is opgestart, kunt u vanuit de Ubuntu 14.04
sjabloon een nieuwe container maken.
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
U kunt uw container verifiëren met pct list
, start container # 200 met pct start 200
en voer de shell in met pct enter 200
. U kunt ook netwerkinstellingen en adressen verifiëren met ip addr
.
Om een internetverbinding in uw container te bieden, moeten we dit inschakelen NAT
. Met het volgende kan verkeer met behulp van NAT-technologie van de container naar internet worden doorgestuurd. De vmbr0
brug is aangesloten op de externe interface en de vmbr1
brug is aangesloten op de containers.
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
Voer de container in pct enter 200
en configureer de webserver erin.
apt-get update
apt-get install nginx
service nginx start
exit
Nu moeten we Nginx op uw server configureren om proxywebsites in containers te plaatsen.
apt-get update
apt-get install nginx
Maak een nieuw configuratiebestand /etc/nginx/sites-available/box200
met de volgende inhoud:
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 proxy nu elk HTTP-verzoek server200.example.com
van uw server naar de container met IP 10.100.0.200. Activeer deze configuratie.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
Als u gemakkelijke toegang tot sandboxen wilt bieden, moet u SSH-sessies naar de containers doorsturen. Maak hiervoor een nieuwe gebruiker aan op uw basisserver. Vergeet niet een wachtwoord in te voeren, andere parameters zijn niet nodig.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
Kopieer deze SSH-sleutel en voer de container in om de sleutel toe te voegen.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
Voeg op uw server de volgende regel toe aan het .ssh/authorized_keys
bestand.
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
Vergeet niet <YOUR SSH KEY>
om de openbare sleutel van uw huis te wijzigen . Als alternatief kunt u het volgende vanaf de opdrachtregel uitvoeren.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
Vervolgens kunt u met ssh verbinding maken met uw sandbox.
`ssh box200@<your_server_IP>`
Het is tijd om verschillende beveiligingsverbeteringen door te voeren. Eerst willen we de standaard SSH-poort wijzigen. Dan willen we onze Proxmox-beheerpagina beschermen met standaard HTTP-authenticatie.
nano /etc/ssh/sshd_config
Uncomment en verander de lijn
#Port 22
naar
Port 24000
Start ssh opnieuw op.
service ssh restart
Maak opnieuw verbinding met SSH met de nieuwe poort.
ssh root@<your_IP> -p 24000
Maak een bestand /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
Start opnieuw op pveproxy
om de wijzigingen door te voeren.
/etc/init.d/pveproxy restart
Configureer nginx (als je het nog niet eerder hebt gedaan).
apt-get install nginx
service nginx restart
Maak een standaardconfiguratie in /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; }
}
Verkrijg een geldig SSL-certificaat en werk uw nginx-configuratie bij. Het kan bijvoorbeeld worden gedaan met behulp van certbox en letsencrypt. Klik hier voor meer informatie .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
Nu zou uw nginx-configuratie er zo uit moeten zien (of u kunt deze daarna handmatig wijzigen). Vergeet niet om ssl, auth en locatielijnen te verwijderen.
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
}
Maak een /etc/htpasswd
bestand met de Htpasswd-generator .
nano /etc/nginx/htpasswd
Start Nginx opnieuw op
service nginx restart
U kunt nu de beheerconsole bekijken https://example.com
na basisverificatie.
De containers zijn nu beschikbaar via HTTP-verzoeken en SSH. Nu kunnen we port forwarding van de externe server naar de containers configureren. Bijvoorbeeld voor toewijzing example.com:8080
om 10.100.0.200:3000
het volgende in te voeren.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
U kunt de huidige regels bekijken.
`iptables -t nat -v -L PREROUTING -n --line-number`
U kunt ook een regel op nummer verwijderen met het volgende.
`iptables -t nat -D PREROUTING <#>`.
We hebben nu toegang tot de ene container vanuit een andere.
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
Als u de toegang van container 250 tot 200 wilt beperken, moet u elke container verbinden met een persoonlijke brug en het doorsturen tussen bruggen uitschakelen.
Verwijder bestaande containers.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
Wijzig de inhoud van /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
reboot
het systeem
Doorsturen inschakelen
`sysctl -w net.ipv4.ip_forward=1`
Om deze wijzigingen permanent te maken, kunt u het /etc/sysctl.conf
bestand bewerken en de volgende tekst vinden.
#net.ipv4.ip_forward=1
Geef commentaar.
net.ipv4.ip_forward=1
U kunt ook hardlopen sysctl -p
om de wijzigingen onmiddellijk door te voeren.
Maak containers.
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
Start de containers met pct start 200
en pct start 250
.
Spoel de iptables
regels.
iptables -F
NAT inschakelen.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
is de brug met externe interface.
Doorsturen vanuit de externe interface toestaan.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
Doorsturen van de containers naar internet toestaan.
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
Laat de andere doorschakeling vallen.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
Controleer nu of dat wel 10.100.1.200
kan pingen 8.8.8.8
maar niet kan pingen 10.100.2.250
en dat 10.100.2.250
kan wel pingen 8.8.8.8
maar niet pingen 10.100.1.200
.
De volgorde van opdrachten met betrekking tot iptables is belangrijk. De beste manier om uw regels te gebruiken, is door te gebruiken iptables-persistent
. Dit pakket helpt u om iptables regels om de bestanden op te slaan /etc/iptables/rules.v4
en /etc/iptables/rules.v6
en het kan ze automatisch laden na het systeem opnieuw op te starten. Installeer het gewoon met het volgende.
apt-get install iptables-persistent
Selecteer YES
wanneer daarom wordt gevraagd.
Overzicht RancherOS is een ongelooflijk lichtgewicht besturingssysteem (slechts ongeveer 60 MB) dat een systeem Docker-daemon draait als PID 0 voor het uitvoeren van systeemservices
Harbor is een open-source registerserver van ondernemingsklasse die Docker-images opslaat en distribueert. Harbor breidt de open source Docker Distribution uit b
Gebruikt u een ander systeem? Docker is een applicatie waarmee programmas kunnen worden geïmplementeerd die als containers worden uitgevoerd. Het is geschreven in het populaire Go-programma
Dit artikel laat zien hoe u uw Node-toepassing kunt implementeren in een Docker-container. Opmerking: in deze zelfstudie wordt ervan uitgegaan dat Docker is geïnstalleerd en gelezen
Gebruikt u een ander systeem? Introductie Rancher is een open source platform voor het draaien van containers en het bouwen van een eigen containerservice. Rancher is basis
Overzicht Dit artikel is bedoeld om u te helpen in een mum van tijd een Kubernetes-cluster aan de praat te krijgen met kubeadm. In deze handleiding worden twee servers geïmplementeerd
In dit artikel wordt uitgelegd hoe u docker-compose installeert op CoreOS. In CoreOS is de map / usr / onveranderlijk, dus het standaard / usr / local / bin-pad is niet beschikbaar voor
Inleiding Docker is een applicatie waarmee we programmas kunnen implementeren die als containers worden uitgevoerd. Het is geschreven in de populaire programmeertaal Go
Gebruikt u een ander systeem? Docker is een applicatie waarmee software kan worden geïmplementeerd in virtuele containers. Het is geschreven in het Go-programma
Kubernetes is een open-sourceplatform dat is ontwikkeld door Google voor het beheren van container-apps op een cluster van servers. Het bouwt voort op een decennium en
Gebruikt u een ander systeem? Introductie Sentry is een open source-oplossing voor het volgen van fouten. Sentry houdt uitzonderingen en andere nuttige berichten bij
Gebruikt u een ander systeem? Inleiding Docker Swarm verandert uw individuele servers in een cluster van computers; het vergemakkelijken van schaalvergroting, hoge beschikbaarheid en
Deze tutorial legt de basisprincipes van het starten met Docker uit. Ik neem aan dat Docker al is geïnstalleerd. Stappen in deze tutorial werken op een
Wanneer u een webtoepassing uitvoert, wilt u normaal gesproken het meeste uit uw bronnen halen zonder dat u uw software hoeft te converteren om multithreading o te gebruiken
Dankzij Docker-containertechnologie kunt u applicaties uitvoeren in een specifieke en geïsoleerde omgeving. Docker Community Edition (CE) is de nieuwe naam voor de fre
Inleiding In deze handleiding wordt uitgelegd hoe u een Docker-zwerm maakt en configureert met behulp van meerdere Alpine Linux 3.9.0-servers en Portainer. Houd er rekening mee dat
We kennen en houden allemaal van Docker, een platform voor het maken, beheren en distribueren van applicatiecontainers over meerdere machines. Docker Inc. biedt een service t
Vereisten Docker-engine 1.8+. Minimaal 4 GB schijfruimte. Minimaal 4 GB RAM. Stap 1. Docker installeren Om SQL-Server te installeren, Docker mus
Gebruikt u een ander systeem? Inleiding Docker is een applicatie waarmee software kan worden geïmplementeerd in virtuele containers. Het stond in de G
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.