Kan AI vechten met toenemend aantal ransomware-aanvallen?
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
Continuous Integration is een DevOps-softwareontwikkelingspraktijk waarmee de ontwikkelaars de gewijzigde code vaak meerdere keren per dag in de gedeelde repository kunnen samenvoegen. Na elke samenvoeging worden automatische builds en tests uitgevoerd om problemen in de code te detecteren. Het stelt de ontwikkelaars in staat de fouten snel te vinden en op te lossen om de softwarekwaliteit te verbeteren en een continue levering van de software te bieden. Overschakelen van Concourse is heel eenvoudig omdat het al zijn configuratie in declaratieve bestanden bewaart die kunnen worden gecontroleerd in versiebeheer. Het biedt ook een webgebruikersinterface die de build-informatie interactief weergeeft.
Zorg ervoor dat u alle exemplaren van 192.0.2.1
en ci.example.com
met uw daadwerkelijke openbare IP-adres van Vultr en uw daadwerkelijke domeinnaam vervangt.
Update uw basissysteem met behulp van de handleiding Ubuntu 16.04 bijwerken . Zodra uw systeem is bijgewerkt, gaat u verder met het installeren van PostgreSQL.
PostgreSQL is een relationeel databasesysteem voor objecten. Concourse slaat zijn pijplijngegevens op in een PostgreSQL-database. Voeg de PostgreSQL-repository toe.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Installeer de PostgreSQL-databaseserver.
sudo apt -y install postgresql
Start de PostgreSQL-server en schakel deze in om automatisch te starten tijdens het opstarten.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Wijzig het wachtwoord voor de standaard PostgreSQL-gebruiker.
sudo passwd postgres
Log in als de PostgreSQL-gebruiker:
sudo su - postgres
Maak een nieuwe PostgreSQL-gebruiker voor Concourse CI.
createuser concourse
Opmerking : de standaard PostgreSQL-gebruiker kan worden gebruikt voor authenticatie van de database, maar het wordt aanbevolen om een toegewijde gebruiker te gebruiken voor authenticatie van Concourse-database in een productie-setup.
PostgreSQL biedt een shell om query's op de database uit te voeren. Schakel over naar de PostgreSQL-shell.
psql
Stel een wachtwoord in voor de zojuist aangemaakte gebruiker van de Concourse-database.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Belangrijk : vervang DBPassword
door een sterk wachtwoord. Noteer het wachtwoord, dat later in de tutorial nodig is.
Maak een nieuwe database voor Concourse.
CREATE DATABASE concourse OWNER concourse;
Verlaat de psql
schelp.
\q
Schakel over naar de sudo-gebruiker van de huidige postgres
gebruiker.
exit
Download de nieuwste versie van het Concourse-uitvoerbare bestand en sla het op /usr/bin
zodat het direct kan worden uitgevoerd. De laatste versie van de Concourse en Fly binaries is te vinden op de Concourse downloadpagina . Nieuwe releases zijn zeer frequent. Vervang de onderstaande link door de nieuwe link voor de meest recente versie.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Download op dezelfde manier de nieuwste versie van het fly-uitvoerbare bestand en sla het op /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly is de opdrachtregelinterface die wordt gebruikt om verbinding te maken met de ATC API van Concourse CI. Fly is beschikbaar voor meerdere platforms zoals Linux, Windows en MacOS.
Wijs uitvoeringsrechten toe aan de gedownloade concourse
en fly
binaire bestanden .
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Controleer of Concourse en Fly correct werken door hun versie te controleren.
concourse -version
fly -version
RSA-sleutelparen bieden een manier om de communicatie tussen de componenten van de Concourse te versleutelen.
Om Concourse te laten werken, moeten er minimaal drie paar sleutels worden gegenereerd. Voor het versleutelen van de sessiegegevens, genereer een session_signing_key
. Deze sleutel zal ook door TSA worden gebruikt om de verzoeken die het doet aan de ATC te ondertekenen. Om de TSA SSH-server te beveiligen, genereert u een tsa_host_key
. Genereer ten slotte een worker_key
voor elke werknemer.
Maak een nieuwe map om de sleutels en configuratie met betrekking tot Concourse CI op te slaan.
sudo mkdir /opt/concourse
Genereer de vereiste sleutels.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Autoriseer de openbare sleutel van de arbeiders door de inhoud ervan naar het authorized_worker_keys
bestand te kopiëren .
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse biedt twee afzonderlijke componenten die moeten worden gestart: het web en de werker. Start het Concourse-web.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
Wijzig basic-auth
desgewenst de gebruikersnaam en het wachtwoord van de . Zorg ervoor dat het pad naar de sleutelbestanden correct is en zorg ervoor dat de juiste waarde voor gebruikersnaam en wachtwoord in de PostgreSQL-databaseconfiguratie wordt opgegeven.
Opmerking : ATC luistert naar de standaardpoort 8080
en TSA luistert naar de poort 2222
. Als authenticatie niet gewenst is, geeft u de --no-really-i-dont-want-any-auth
optie door na het verwijderen van de basisauth-opties.
Zodra de webserver is gestart, wordt de volgende uitvoer weergegeven.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Stop de server voorlopig, want er moeten nog een paar dingen worden ingesteld.
Start de Concourse CI Worker.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
Het bovenstaande commando gaat ervan uit dat de TSA op localhost draait en luistert naar de standaardpoort 2222
.
Hoewel het Concourse-web en de werker gemakkelijk kunnen worden gestart met behulp van de bovenstaande opdrachten, wordt het aanbevolen om Systemd te gebruiken om de server te beheren.
Het gebruik van de Systemd-service voor het beheren van de applicatie zorgt ervoor dat de applicatie automatisch wordt gestart bij storingen en tijdens het opstarten. De Concourse-server neemt geen gegevens van enig configuratiebestand, maar heeft toegang tot de gegevens van omgevingsvariabelen. In plaats van globale omgevingsvariabelen in te stellen, maakt u een nieuw bestand om de omgevingsvariabelen op te slaan en geeft u de variabelen vervolgens door aan de Concourse CI met behulp van de Systemd-service.
Maak een nieuw omgevingsbestand voor Concourse web.
sudo nano /opt/concourse/web.env
Vul het bestand in.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
Wijzig BASIC_AUTH
desgewenst de gebruikersnaam en het wachtwoord van de . Zorg ervoor dat het pad naar de sleutelbestanden correct is en zorg ervoor dat de juiste waarde voor gebruikersnaam en wachtwoord in de PostgreSQL-databaseconfiguratie wordt opgegeven.
Maak op dezelfde manier een omgevingsbestand voor de werknemer.
sudo nano /opt/concourse/worker.env
Vul het bestand in.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
Aangezien de omgevingsbestanden gebruikersnamen en wachtwoorden bevatten, moet u de rechten wijzigen zodat ze niet toegankelijk zijn voor andere gebruikers.
sudo chmod 600 /opt/concourse/*.env
Maak nu een nieuwe gebruiker voor Concourse om de webomgeving te gebruiken. Dit zorgt ervoor dat de webserver in een geïsoleerde omgeving draait.
sudo useradd concourse
Geef de concourse-gebruiker het eigendom over de directory van het Concourse CI-bestand.
sudo chown -R concourse:concourse /opt/concourse
Maak een nieuw systemd-servicebestand voor de Concourse-webservice.
sudo nano /etc/systemd/system/concourse-web.service
Vul het bestand in.
[Unit]
Description=Concourse CI web server
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Sla het bestand op en sluit het. Maak een nieuw servicebestand voor de Concourse-werkerservice.
sudo nano /etc/systemd/system/concourse-worker.service
Vul het bestand in.
[Unit]
Description=Concourse CI worker process
[Service]
Type=simple
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
De web- en werkerservice kan nu direct worden gestart.
sudo systemctl start concourse-web concourse-worker
Voer het volgende uit om ervoor te zorgen dat het werker- en webproces automatisch begint tijdens het opstarten.
sudo systemctl enable concourse-worker concourse-web
Voer het volgende uit om de status van services te controleren.
sudo systemctl status concourse-worker concourse-web
Als de service niet is gestart of zich in de FAILED
staat bevindt, verwijdert u de cache uit de /tmp
directory.
sudo rm -rf /tmp/*
Start de services opnieuw op.
sudo systemctl restart concourse-worker concourse-web
Merk op dat deze keer de services correct zijn gestart. De output bij het verifiëren van de status van de services is vergelijkbaar met de volgende.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
Zodra de server is opgestart, is de webinterface van de Concourse CI toegankelijk door naar http://192.0.2.1:8080
in elke browser te gaan. Log in met de gebruikersnaam en het wachtwoord in het omgevingsbestand.
Voer de volgende stappen uit om verbinding te maken met de server via Fly.
fly -t my-ci login -c http://192.0.2.1:8080
De bovenstaande opdracht wordt gebruikt voor de eerste aanmelding bij de server. -t
wordt gebruikt om een doelnaam op te geven. vervang my-ci
door een gewenste doelnaam. De bovenstaande opdracht logt in bij het standaardteam main
. Het vraagt om de gebruikersnaam en het wachtwoord die in het omgevingsbestand zijn opgegeven.
De uitvoer ziet er als volgt uit.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
De doelaanmelding wordt een dag bewaard. Daarna vervalt het.
Om direct uit te loggen.
fly -t my-ci logout
Fly kan worden gebruikt om in te loggen op de server buiten het netwerk, maar alleen als de server een openbaar IP-adres heeft en toegankelijk is van buiten het netwerk. Het Windows- of MacOS-binaire bestand kan worden gedownload van de downloadsite of van de web-UI van de server.
Aanmeldingen en andere informatie die via de web-UI naar de Concourse-server wordt verzonden, zijn niet beveiligd. De verbinding is niet versleuteld. Een reverse proxy van Nginx kan worden opgezet met een Let's Encrypt gratis SSL.
Installeer Nginx.
sudo apt -y install nginx
Start Nginx en schakel het automatisch in tijdens het opstarten.
sudo systemctl start nginx
sudo systemctl enable nginx
Voeg de Certbot-repository toe.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Installeer Certbot, de clienttoepassing voor Let's Encrypt CA.
sudo apt -y install certbot
Opmerking : om certificaten van Let's Encrypt CA te verkrijgen, moet het domein waarvoor de certificaten moeten worden gegenereerd, naar de server worden gericht. Zo niet, breng dan de nodige wijzigingen aan in de DNS-records van het domein en wacht tot de DNS is gepropageerd voordat u opnieuw een certificaataanvraag indient. Certbot controleert de domeinautoriteit voordat de certificaten worden verstrekt.
Genereer de SSL-certificaten.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
De gegenereerde certificaten worden waarschijnlijk in de /etc/letsencrypt/live/ci.example.com/
directory opgeslagen . Het SSL-certificaat wordt opgeslagen als fullchain.pem
en de privésleutel wordt opgeslagen als privkey.pem
.
Let's Encrypt-certificaten verlopen over 90 dagen, dus het wordt aanbevolen om automatische verlenging van de certificaten te gebruiken met cronjobs. Cron is een systeemservice die wordt gebruikt om periodieke taken uit te voeren.
Open het cron-taakbestand.
sudo crontab -e
Voeg de volgende regel toe aan het einde van het bestand.
30 5 * * * /usr/bin/certbot renew --quiet
De bovenstaande cron-taak wordt elke dag om 05.30 uur uitgevoerd. Als het certificaat vervalt, wordt het automatisch verlengd.
Maak een nieuwe virtuele host.
sudo nano /etc/nginx/sites-available/concourse
Vul het bestand in.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/concourse.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Opmerking : vervang ci.example.com
door het daadwerkelijke domein.
Activeer het configuratiebestand.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Bewerk het omgevingsbestand dat is gemaakt voor Concourse Web.
sudo nano /opt/concourse/web.env
Wijzig de waarde van CONCOURSE_EXTERNAL_URL
en voeg ook nog twee regels toe aan het einde van het bestand.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Sla het bestand op en start Concourse Web, Worker en Nginx opnieuw op.
sudo systemctl restart concourse-worker concourse-web nginx
Alle gegevens die van en naar de browser worden verzonden, zijn nu beveiligd met SSL-coderingen.
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.