In dit artikel zullen we u begeleiden bij het installeren van Code-Server op Ubuntu 20.04.
Code-server is een open-source servertoepassing die VS-code op elke machine waar dan ook bedient en deze in de browser opent. Het maakt het gebruik van krachtige cloudservers mogelijk om compilaties en tests te versnellen en om onderweg batterij te besparen.
Vereisten
- Een Ubuntu 20.04 geïnstalleerde VPS met min. aanbevolen: 4 GB RAM, 2 vCPU's.
- Een geldige domeinnaam die verwijst naar de VPS.
- Een root-gebruikerstoegang of een normale gebruiker met beheerdersrechten.
Installeer Code-Server op Ubuntu 20.04
1. Werk de server bij
Houd de server up-to-date.
# apt update -y
# apt upgrade -y
2. Installeer de codeserver
Download code-server van de officiële repository met behulp van de volgende opdracht:
# cd /home
# wget https://github.com/cdr/code-server/releases/download/v3.11.0/code-server-3.11.0-linux-amd64.tar.gz
Pak het tar- bestand uit en hernoem met de code-server met behulp van de volgende opdracht:
# tar xzf code-server-3.11.0-linux-amd64.tar.gz && rm code-server-3.11.0-linux-amd64.tar.gz
# mv code-server-3.11.0-linux-amd64 code-server
Maak de code-server binair uitvoerbaar.
# cd code-server
Voer codeserver uit.
./code-server --port 8000
Open uw computerbrowser en ga naar http://YOUR_IP_ADDRESS:8000. U wordt gevraagd om een wachtwoord. Gebruik het wachtwoord dat wordt weergegeven in de SSH-terminal. De Visual Studio Code-interface wordt geopend. Om de server te stoppen, drukt u op CTRL + C in de SSH-terminal.
3. Maak een opstartservice voor het systeem
We kunnen een service maken met Linux's systemd service manager. Volg deze stappen:
Maak een nieuw bestand met de naam code-server.service met behulp van de volgende opdracht:
# vi /lib/systemd/system/code-server.service
Kopieer en plak de volgende inhoud en vervang deze door het wachtwoord dat u wilt instellen. Dit is het wachtwoord dat u gaat gebruiken om in te loggen op de codeserver.
[Unit]
Description=Code Server Service
After=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=10
WorkingDirectory=/home/code-server
Environment='PASSWORD='
ExecStart=/home/code-server/code-server --port 8000
StandardOutput=file:/var/log/code-server-output.log
StandardError=file:/var/log/code-server-error.log
[Install]
WantedBy=multi-user.target
Sla het bestand op en sluit het.
Start en schakel nu de code-server.service in met de volgende opdrachten:
# systemctl daemon-reload
# systemctl start code-server
# systemctl enable code-server
Open uw computerbrowser en ga naar http://YOUR_IP_ADDRESS:8000. U wordt gevraagd om een wachtwoord. Gebruik het wachtwoord dat u hebt vermeld in het bestand code-server.service .
4. Installeer en configureer Nginx
Om toegang te krijgen tot de installatie via een domeinnaam en om een SSL-certificaat toe te voegen, is het aan te raden om een reverse proxy in te stellen. Voor dit demonstratiedoel gebruiken we de Nginx-webserver als een reverse proxy.
Gebruik de volgende opdracht om Nginx te installeren:
# apt-get install nginx -y
Schakel het standaard Nginx-siteconfiguratiebestand uit.
# rm /etc/nginx/sites-enabled/default
Maak een nieuw Nginx-siteconfiguratiebestand voor codeserver.
# vi /etc/nginx/sites-available/code-server
Plak het volgende fragment in het bestand en vervang example.com door uw eigen domeinnaam.
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Schakel de configuratie in en start de Nginx-webserver opnieuw.
# ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/
Test het Nginx-configuratiebestand.
# nginx -t
Als er geen fout optreedt, start u de nginx- service opnieuw.
# systemctl restart nginx
Als u UFW als firewall gebruikt, laat dan SSH- en Nginx-verbindingen via de firewall toe en schakel de firewall in. Dit zorgt ervoor dat de code-serverinstallatie alleen toegankelijk is via de Nginx reverse proxy.
# ufw allow ssh
# ufw allow 'Nginx Full'
# ufw enable
Navigeer naar uw domeinnaam om de installatie te testen.
5. Installeer Let's Encrypt SSL
Houd de verbinding tussen server en eindgebruiker veilig, het wordt sterk aanbevolen om een SSL-certificaat te installeren. Let's Encrypt is een gratis SSL-certificaat dat 90 dagen geldig is en elke 90 dagen wordt vernieuwd. We gebruiken certbot om het SSL-certificaat te installeren.
Download en installeer Certbot.
# apt-get install python3-certbot-nginx
Voer de volgende opdracht uit om het opdrachtregelinstallatieprogramma van Certbot te starten, waarbij voorbeeld.com wordt vervangen door uw eigen domeinnaam.
# certbot --nginx -d example.com
Doorloop het interactieve installatieprogramma. Wanneer u wordt gevraagd of u HTTP-verkeer wilt omleiden naar HTTPS, kiest u voor omleiden.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
6. Installeer fail2ban (aanbevolen)
Fail2ban is een applicatie die logboeken parseert om geautomatiseerde aanvallen op een server te detecteren en te beperken. Wanneer een vooraf bepaald aantal mislukte inlogpogingen wordt gedetecteerd, zal fail2ban de iptables van de server wijzigen om de aanvaller voor een vooraf bepaalde tijd te blokkeren.
Installeer setuptools. Dit is vereist om fail2ban te installeren.
# apt-get install python3-setuptools -y
Download en installeer fail2ban.
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python3 setup.py install
cp build/fail2ban.service /lib/systemd/system/fail2ban.service
cd .. && rm -rf fail2ban
Kopieer het standaard configuratiebestand jails.conf naar jails.local en open het gekopieerde bestand in een teksteditor.
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local
Plak het volgende fragment onderaan het bestand. U kunt de parameters maxretry, findtime en bantime wijzigen.
[code-server]
enabled = true
logpath = /var/log/code-server-output.log
# maxretry: The amount of unsuccessful login attempts after which a ban is issued.
maxretry = 5
# findtime: The amount of time within which the login attempts must occur.
findtime = 10m
# bantime: The amount of time for which an IP is banned from accessing the server.
bantime = 10m
Maak een nieuw filterconfiguratiebestand om het filterpatroon te definiëren om mislukte inlogpogingen in het codeserverlogboek te vinden.
# vi /etc/fail2ban/filter.d/code-server.conf
Plak het volgende fragment in het bestand.
[Definition]
failregex = Failed login attempt {\'xForwardedFor\':\'\'.*
ignoreregex =
datepattern = "timestamp':{EPOCH}}$
Start de rsyslog-service opnieuw en schakel de fail2ban-service in en start deze.
# systemctl restart rsyslog.service
# systemctl start fail2ban.service
# systemctl enable fail2ban.service
Dat is het. De installatie is succesvol voltooid.
In dit artikel hebben we u uitgelegd hoe u Code-Server installeert op Ubuntu 20.04