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
Het doel van deze tutorial is om de openbare SSH- en openbare RDP-verbindingen te verwijderen. Door dit allemaal achter een zeer handige HTML5-client te plaatsen, kunnen we een beveiligingslaag toevoegen voor toegang tot onze cloud.
Guacamole registreert ook elke toegang op afstand, zodat ongeautoriseerde toegang veel traceerbaarder wordt.
Opmerking: voor Let's encrypt (optie B) hebben we een domeinnaam nodig. Als je er geen hebt, kun je deze stap overslaan en gewoon optie A uitvoeren .
Begin met het draaien van een VPS in de gewenste Vultr-zone. Een 1024 MB
VPS is voldoende, want Guacamole is niet zo veeleisend.
Begin met het inschakelen van het particuliere netwerk op de VPS. Dit is goed gedocumenteerd hier
Laten we eerst de afbeelding een beetje verharden. En laten we controleren of de afbeelding die is ingericht, is ufw
ingeschakeld.
root@vultr:~# ufw status
Status: inactive
Standaard is het uitgeschakeld, dus we zullen een paar regels moeten toevoegen.
Laten we beginnen met het configureren van deze poorten.
ufw allow 22/tcp
ufw allow 8080/tcp
Schakel vervolgens de firewall in.
ufw enable
Maak je geen zorgen als je een waarschuwing krijgt. Als u poort 22
heeft toegevoegd , zult u geen problemen ondervinden.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Eenmaal ingeschakeld, vraag de status van de firewall aan en we zullen onze poortconfiguratie zien.
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
Voordat we beginnen met installeren, moeten we de repo bijwerken en upgraden. Met pakketten zoals Tomcat
, die op Java is gebaseerd, is er een constante stroom van ontdekte bugs en de bijbehorende bugfixes. Het is meestal een goed idee om dit eerst te doen in plaats van direct naar onze installatie te rennen.
apt-get update
apt-get -y upgrade
Het volgende is alle afhankelijkheden. Guacamole heeft er nogal wat. (Een volledige lijst van afhankelijkheden en hun functie vindt u hier ). Laten we doorgaan door ze allemaal te installeren.
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
Wanneer het installatieprogramma om een MySQL-rootwachtwoord vraagt, geef dit dan op en noteer het. We zullen dit wachtwoord later gebruiken om de Guacamole-database te maken.
Nu we al onze afhankelijkheden hebben, kunnen we doorgaan met het downloaden van Guacamole. Guacamole zelf komt meestal in een bronvorm en niet in een binair. Eerst gaan we naar de /tmp
map om te voorkomen dat andere delen van de schijf vol raken. Download vervolgens alle broncode.
Er zijn vier bron- / binaire bestanden om te downloaden:
guacamole-0.9.13-incubating.war
: Dit is de webapplicatie. Een WAR
bestand is een gecomprimeerd webpakket met één website die wordt gehost op een Tomcat-websiteguacamole-server-0.9.13-incubating.tar.gz
: Dit bestand levert de backend- guacd
applicatie. Dit creëert de streams via RDP en SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: We zullen een lokale MySQL-database gebruiken, dus we hebben de bijbehorende JDBC
connector nodig.mysql-connector-java-5.1.43.tar.gz
: Zonder een databasestuurprogramma doet de JDBC-connector niets. Dit bestand wordt aangeleverd door het MySQL-team zelf.Let op: downloads opgelost naar de dichtstbijzijnde server .
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
Zodra we al deze bestanden hebben gedownload, pak je de tar.gz
's uit.
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
Nu we alle broncode hebben uitgepakt, laten we een paar guacamole
mappen maken, deze zullen worden gebruikt door de guacamole-applicatie en zijn afhankelijkheden.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Alles is klaar voor onze nieuwe Guacamole-binaries. We kunnen nu het compilatie- en installatieproces starten. Ga naar de uitgepakte Guacamole Server-map.
cd /tmp/guacamole-server-0.9.13-incubating
Configureer de applicatie om ook een init.d
bestand te maken om het later als een service uit te voeren.
./configure --with-init-dir=/etc/init.d
De opdracht moet op alle bibliotheken en protocollen met een 'ja' eindigen. Zo niet, ga dan terug en controleer de opdracht apt-get om er zeker van te zijn dat je geen enkel pakket hebt gemist.
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
Compileer en installeer vervolgens de Gucamole-server.
make && make install
Zodra dit allemaal is gebeurd, kunt u ldconfig
het zoekpad voor de toegevoegde bibliotheken opnieuw opbouwen.
ldconfig
Ga met behulp van systemctl
naar setup guacd
(Guacamole Daemon) om te beginnen met het opstarten.
systemctl enable guacd
Guacamole-binaries zijn nu geïnstalleerd. Nu gaan we de webapplicatie klaar maken voor Tomcat.
Begin met het verplaatsen van het war
bestand naar de guacamole
map die we zojuist hebben gemaakt. Zodra dit is gebeurd, maakt u een logische link in de tomcat-map om naar ons war
bestand te verwijzen .
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Dan hebben we de mysql-connector en JDBC nodig. Het JDBC-stuurprogramma is nodig in de extensions
map, de connector in de lib
map.
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
Zodra de connector en JDBC op hun plaats zitten, moeten we het tocamt8
bestand bewerken . Dit bestand bevat veel tomcat8
instellingen en in ons geval moeten we de GUACAMOLE_HOME
variabele aan het einde van het bestand toevoegen.
nano /etc/default/tomcat8
Voeg toe met het volgende.
GUACAMOLE_HOME=/etc/guacamole
De volgende stap is het maken van de database. Guacamole slaat de verbindingsconfiguratie op in een database, niet in een bestand.
Log in met de naam die root password
u tijdens de installatie hebt gebruikt.
mysql -u root -p
De eerste stap is het aanmaken van een database genaamd 'guacamole_db'.
create database guacamole_db;
Voer vervolgens de create user
opdracht uit. Hierdoor wordt een gebruiker met een wachtwoord gemaakt mysupersecretpassword
, deze gebruiker kan alleen verbinding maken vanaf localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Verleen CRUD
bewerkingen aan deze gebruiker voor de database guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Spoel privileges uit en verlaat de shell.
flush privileges;
exit
Rond af door het Guacamole-schema toe te voegen aan onze nieuw gecreëerde database.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Zodra dit is gebeurd, moeten we het guacamole.properties
bestand bewerken . Dit bestand bevat onze recentelijk gemaakte MySQL-serverconfiguratie.
nano /etc/guacamole/guacamole.properties
Voeg de details en referenties van de MySQL-verbinding toe.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Rond het af door een symbolische link te maken naar de tomcat-gedeelde map, aangezien dit is waar het WAR
bestand deze eigenschappen zal doorzoeken.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Sluit af door de tomcat8
server opnieuw op te starten en start de guacd
serverdaemon.
service tomcat8 restart
service guacd start
U kunt dit verifiëren met behulp van de statusopdracht.
service tomcat8 status
service guacd status
Nu kunt u naar uw VPS op poort bladeren 8080
http://<yourpublicip>:8080/guacamole/
Gebruik de gebruikersnaam guacadmin
en hetzelfde wachtwoord guacadmin
. Hiermee krijgt u toegang tot een lege Guacamole-server.
Klik in de rechterbovenhoek op uw gebruikersnaam guacadmin
en selecteer Settings
. Zodra u op de instellingenpagina bent, gaat u naar het Users
tabblad en selecteert u de gebruiker guacadmin
.
Verander nu uw wachtwoord in iets anders of maak een nieuwe admin-gebruiker aan en verwijder de standaard guacadmin
.
Dit zijn de laatste stappen: opruimen nadat je klaar bent.
Verwijder de gedownloade broncode en binaire bestanden uit de /tmp
map.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Maak ook de Guacamole-webapplicatie de standaardapplicatie. In het kater-ecosysteem is de toepassing die de ROOT
map ophaalt, degene die standaard wordt gestart wanneer u de website bezoekt.
Verwijder de oude ROOT
tijdelijke aanduiding.
rm -rf /var/lib/tomcat8/webapps/ROOT
En maak een symbolische link voor de guacamole-server ROOT
.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Dit vereist een herstart van de kater.
service tomcat8 restart
Bewerk het tomcat8/server.xml
bestand en wijzig de connectorpoort.
nano /etc/tomcat8/server.xml
Zoek naar de Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
En vervang 8080
door 80
.
Standaard staat tomcat het binden van onderstaande poorten niet toe 1024
. Om dit mogelijk te maken, moeten we tomcat8 vertellen om geverifieerde bindingen te maken.
Bewerk het default
bestand van tomcat8 en verwijder de commentaar AUTHBIND
en gebruik de optieyes
nano /etc/default/tomcat8
AUTHBIND=yes
Zodra dit is gebeurd, intall authbind
.
apt-get install authbind
Configureer het zodat de poort 80
kan worden geclaimd door tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Laat poort 80
door de firewall en verwijder de regel voor 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Start de kater opnieuw.
service tomcat8 restart
Dat is het, nu zou Guacamole in de haven moeten draaien 80
.
Tomcat is echt niet een van de beste en meest robuuste applicaties om mee te gebruiken certbot
. Gelukkig is Nginx dat wel. We zullen gewoon kater proxy naar Nginx proxy. Het maakt gebruik van de out-of-the-box functionaliteit van certbot ten koste van een beetje RAM.
apt-get install nginx
Na installatie bewerkt u de standaardconfiguratie.
nano /etc/nginx/sites-available/default
Verwijder alle voorbeeldconfiguraties en voeg de volgende configuratie toe.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
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-Host $server_name;
}
}
Dit zal een proxy creëren voor de website die draait op 8080
. Start Nginx opnieuw op en schakel het in bij het opstarten.
systemctl restart nginx
systemctl enable nginx
Controleer of alles werkt.
systemctl status nginx
Schakel de testpoort uit 8080
en sta verkeer op poort toe 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Voordat we kunnen gebruiken certbot
, moeten we het juiste toevoegen ppa
aan het systeem met onze certbot-pakketten.
add-apt-repository ppa:certbot/certbot
Druk op " ENTER
" om de configuratiewijziging te accepteren.
Update apt
om de nieuwe pakketten te verzamelen.
apt-get update
Installeer ten slotte de Nginx-module voor het toewijzen van de certificaten.
apt-get -y install python-certbot-nginx
Configureer de firewall om toe te staan HTTPS
.
ufw allow 443/tcp
Voordat we nieuwe certificaten kunnen aanvragen, hebben we een DNS-naam nodig.
nano /etc/nginx/sites-available/default
Voeg de volgende server_name
instelling toe.
server_name rdp.example.com;
Wijzig de configuratie om deze nieuwe instelling weer te geven.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
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-Host $server_name;
}
}
Controleer of alles werkt en start Nginx opnieuw op.
nginx -t
service nginx restart
Vraag nu een certificaat aan bij certbot.
certbot --nginx -d rdp.example.com
Geef uw e-mailadres op en ga akkoord met de vragen van de installateur. (U kunt " No
" veilig kiezen om uw e-mail te delen.) Certbot zal automatisch vragen wat het ermee moet doen HTTPS
. We zullen gebruik maken van de optie 2: redirect to HTTPS
.
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
Het laatste wat we gaan doen is de DH
parameters updaten . Deze zijn standaard een beetje zwak voor de normen van 2017.
Maak een paar nieuwe.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Voeg ze vervolgens toe aan de standaardsite in Nginx.
nano /etc/nginx/sites-available/default
Voeg ze toe aan de serverconfiguratie.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
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-Host $server_name;
}
}
Controleer op fouten.
nginx -t
Pas de wijzigingen toe door de server opnieuw op te starten.
service nginx restart
Ruim de oude 8080
regel op
ufw delete allow 8080/tcp
Opmerking: als je een "502 Bad Gateway" ontvangt, moet je tomcat8 opnieuw opstarten .
service tomcat8 restart
Let's Encrypt-certificaten moeten worden vernieuwd. We kunnen hiervoor een cron-taak maken. Begin met het bewerken van de crontab
.
crontab -e
Voeg de volgende regel toe.
00 2 * * * /usr/bin/certbot renew --quiet
Dit zal om 2:00 uur controleren of certificaten moeten worden verlengd en zullen ze vernieuwen als dat het geval is.
Ga naar je Guacamole-server (of http://<ip>/
of https://rdp.example.com)
).
Voor deze test heb je nog twee instanties nodig: een Linux VM en een andere Windows Server 2012 R2 met een privé-IP ingeschakeld op beide.
Klik op de " username
" in de rechterbovenhoek en ga naar " Settings
". Ga dan naar " Connections
" en selecteer " New Connection
".
Vul de volgende instellingen in (u kunt de andere standaard laten staan).
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
Druk op " save
" en ga terug naar het startscherm. Nu kunt u op de " Windows Server 2012 R2
" verbinding klikken en het zal naar deze machine RDP.
Druk op " Ctrl+Shift+Alt
". Hierdoor verschijnt het menu aan de zijkant. Hier kunt u de verbinding met Guacamole verbreken of andere administratieve taken uitvoeren.
Klik username
op bovenaan in het menu en ga naar " Settings
". Ga vervolgens naar het Connections
tabblad " " en selecteer " New Connection
".
Vul de volgende instellingen in (u kunt de andere standaard laten staan).
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
Druk op " save
" en ga terug naar het startscherm. Nu kunt u op deze nieuw gemaakte verbinding klikken en via SSH met uw Linux-server worden verbonden.
Je hebt nu een web RDP / SSH HTML5-gateway. Nu kunt u de openbare RDP- en SSH-toegang van uw platform firewallen en vanuit elke moderne browser toegang krijgen tot uw omgeving. Voor meer informatie over wat Guacamole te bieden heeft, is er een geweldige video die alle mogelijkheden van het platform hier laat zien .
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.