Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
Das Ziel dieses Tutorials ist es, die öffentlichen SSH- und öffentlichen RDP-Verbindungen zu beseitigen. Indem wir dies alles hinter einem sehr praktischen HTML5-Client platzieren, können wir eine Sicherheitsebene für den Zugriff auf unsere Cloud hinzufügen.
Guacamole protokolliert auch jeden Fernzugriff, sodass nicht autorisierter Zugriff viel besser nachvollziehbar wird.
Hinweis: Für die Verschlüsselung (Option B) benötigen wir einen Domainnamen. Wenn Sie noch keinen haben, können Sie diesen Schritt überspringen und einfach Option A ausführen .
Beginnen Sie mit dem Hochfahren eines VPS in der gewünschten Vultr-Zone. Ein 1024 MB
VPS wird ausreichen, da Guacamole nicht so anspruchsvoll ist.
Aktivieren Sie zunächst das private Netzwerk auf dem VPS. Dies ist gut dokumentiert hier
Lassen Sie uns zuerst das Bild ein wenig härten. Überprüfen wir, ob das bereitgestellte Image ufw
aktiviert wurde.
root@vultr:~# ufw status
Status: inactive
Standardmäßig ist es deaktiviert, daher müssen wir einige Regeln hinzufügen.
Beginnen wir mit der Konfiguration dieser Ports.
ufw allow 22/tcp
ufw allow 8080/tcp
Aktivieren Sie als Nächstes die Firewall.
ufw enable
Machen Sie sich keine Sorgen, wenn Sie eine Warnung erhalten. Wenn Sie einen Port hinzugefügt haben, 22
treten keine Probleme auf.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Nach der Aktivierung fordern Sie den Status der Firewall an und wir sehen unsere Portkonfiguration.
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)
Bevor wir mit der Installation beginnen, müssen wir das Repo aktualisieren und aktualisieren. Bei Paketen wie Tomcat
Java, die auf Java basieren, werden ständig Fehler und die damit verbundenen Fehlerbehebungen erkannt. Es ist normalerweise eine gute Idee, dies zuerst zu tun, anstatt direkt in unsere Installation zu eilen.
apt-get update
apt-get -y upgrade
Als nächstes sind alle Abhängigkeiten. Guacamole hat einige davon. (Eine vollständige Liste der Abhängigkeiten und ihrer Funktion finden Sie hier ). Fahren wir fort, indem wir alle installieren.
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
Wenn das Installationsprogramm nach einem MySQL-Root-Passwort fragt, geben Sie eines ein und notieren Sie es. Wir werden dieses Passwort später verwenden, um die Guacamole-Datenbank zu erstellen.
Nachdem wir alle Abhängigkeiten haben, können wir mit dem Herunterladen von Guacamole fortfahren. Guacamole selbst kommt meist in einer Quellform und nicht in einer Binärform vor. Zuerst werden wir in den /tmp
Ordner wechseln, um zu vermeiden, dass andere Teile der Festplatte überladen werden. Laden Sie dann den gesamten Quellcode herunter.
Es stehen vier Quell- / Binärdateien zum Herunterladen zur Verfügung:
guacamole-0.9.13-incubating.war
: Dies ist die Webanwendung. Eine WAR
Datei ist ein komprimiertes Webpaket, das eine einzelne Website enthält, die auf einer Tomcat-Website gehostet wirdguacamole-server-0.9.13-incubating.tar.gz
: Diese Datei enthält die Backend- guacd
Anwendung. Dadurch werden die Streams über RDP und SSH erstellt.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Wir werden eine lokale MySQL-Datenbank verwenden, daher benötigen wir den zugehörigen JDBC
Connector.mysql-connector-java-5.1.43.tar.gz
: Ohne Datenbanktreiber macht der JDBC-Connector nichts. Diese Datei wird vom MySQL-Team selbst bereitgestellt.Hinweis: Downloads wurden auf den nächstgelegenen Server aufgelöst .
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
Nachdem wir alle diese Dateien heruntergeladen haben, extrahieren Sie die tar.gz
.
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
Nachdem wir den gesamten Quellcode extrahiert haben, erstellen wir einige guacamole
Ordner, die von der Guacamole-Anwendung und ihren Abhängigkeiten verwendet werden.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Alles ist bereit für unsere neuen Guacamole-Binärdateien. Wir können jetzt den Kompilierungs- und Installationsprozess starten. Wechseln Sie in den extrahierten Guacamole Server-Ordner.
cd /tmp/guacamole-server-0.9.13-incubating
Konfigurieren Sie die Anwendung so, dass sie auch eine init.d
Datei erstellt, um sie später als Dienst auszuführen.
./configure --with-init-dir=/etc/init.d
Der Befehl sollte in allen Bibliotheken und Protokollen mit einem "Ja" enden. Wenn nicht, gehen Sie zurück und überprüfen Sie den Befehl apt-get, um sicherzustellen, dass Sie kein Paket verpasst haben.
------------------------------------------------
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.
Als nächstes kompilieren und installieren Sie den Gucamole-Server.
make && make install
Führen Sie anschließend alle Schritte aus, ldconfig
um den Suchpfad für hinzugefügte Bibliotheken neu zu erstellen.
ldconfig
Fahren Sie mit systemctl
Setup guacd
(Guacamole Daemon) fort, um den Startvorgang zu starten.
systemctl enable guacd
Guacamole-Binärdateien sind jetzt installiert. Jetzt bereiten wir die Webanwendung für Tomcat vor.
Verschieben Sie die war
Datei zunächst in den guacamole
Ordner, den wir gerade erstellt haben. Erstellen Sie anschließend einen logischen Link im Tomcat-Verzeichnis, um auf unsere war
Datei zu verweisen .
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Dann brauchen wir den MySQL-Connector und JDBC. Der JDBC-Treiber wird im extensions
Ordner benötigt , der Connector im lib
Ordner.
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/
Sobald der Connector und JDBC vorhanden sind, müssen wir die tocamt8
Datei bearbeiten . Diese Datei enthält viele tomcat8
Einstellungen, und in unserem Fall müssen wir die GUACAMOLE_HOME
Variable am Ende der Datei hinzufügen .
nano /etc/default/tomcat8
Fügen Sie Folgendes hinzu.
GUACAMOLE_HOME=/etc/guacamole
Als nächstes wird die Datenbank erstellt. Guacamole speichert seine Verbindungskonfiguration in einer Datenbank, nicht in einer Datei.
Melden Sie sich mit dem an, den root password
Sie während der Installation verwendet haben.
mysql -u root -p
Der erste Schritt besteht darin, eine Datenbank mit dem Namen 'guacamole_db' zu erstellen.
create database guacamole_db;
Führen Sie dann den create user
Befehl aus. Dadurch wird ein Benutzer mit einem Kennwort erstellt mysupersecretpassword
, von dem aus dieser nur eine Verbindung herstellen kann localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Gewähren Sie CRUD
diesem Benutzer Operationen für die Datenbank guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Berechtigungen spülen und die Shell verlassen.
flush privileges;
exit
Fügen Sie zum Abschluss das Guacamole-Schema zu unserer neu erstellten Datenbank hinzu.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Sobald dies erledigt ist, müssen wir die guacamole.properties
Datei bearbeiten . Diese Datei enthält unsere kürzlich erstellte MySQL-Serverkonfiguration.
nano /etc/guacamole/guacamole.properties
Fügen Sie die MySQL-Verbindungsdetails und Anmeldeinformationen hinzu.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Erstellen Sie zum Abschluss einen symbolischen Link zum Tomcat-Freigabeordner, da hier die WAR
Datei diese Eigenschaften durchsucht.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
tomcat8
Starten Sie zum Schluss den Server neu und starten Sie den guacd
Server-Daemon.
service tomcat8 restart
service guacd start
Sie können dies mit dem Statusbefehl überprüfen.
service tomcat8 status
service guacd status
Jetzt können Sie zu Ihrem VPS am Port navigieren 8080
http://<yourpublicip>:8080/guacamole/
Verwenden Sie den Benutzernamen guacadmin
und das gleiche Passwort guacadmin
. Dadurch erhalten Sie Zugriff auf einen leeren Guacamole-Server.
Klicken Sie in der oberen rechten Ecke auf Ihren Benutzernamen guacadmin
und wählen Sie Settings
. Sobald Sie auf der Einstellungsseite sind, gehen Sie zur Users
Registerkarte und wählen Sie den Benutzer aus guacadmin
.
Ändern Sie nun Ihr Passwort in etwas anderes oder erstellen Sie einen neuen Administrator und löschen Sie den Standard guacadmin
.
Dies sind die letzten Schritte: Aufräumen, nachdem Sie fertig sind.
Löschen Sie den heruntergeladenen Quellcode und die Binärdateien aus dem /tmp
Ordner.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Machen Sie außerdem die Guacamole-Webanwendung zur Standardanwendung. Im Tomcat-Ökosystem ist die Anwendung, die den ROOT
Ordner erhält, diejenige, die standardmäßig gestartet wird, wenn Sie auf die Website zugreifen.
Löschen Sie den alten ROOT
Platzhalter.
rm -rf /var/lib/tomcat8/webapps/ROOT
Und stellen Sie eine symbolische Verbindung her, damit der Guacamole-Server ROOT
derjenige ist.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Dies erfordert einen Tomcat-Neustart.
service tomcat8 restart
Bearbeiten Sie die tomcat8/server.xml
Datei und ändern Sie den Anschluss.
nano /etc/tomcat8/server.xml
Suche nach dem Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
Und ersetzen 8080
durch 80
.
Standardmäßig erlaubt Tomcat die Bindung der unten aufgeführten Ports nicht 1024
. Um dies zu ermöglichen, müssen wir tomcat8 anweisen, authentifizierte Bindungen zu erstellen.
Bearbeiten Sie die default
Datei von tomcat8, kommentieren Sie die AUTHBIND
Zeile aus und verwenden Sie die Optionyes
nano /etc/default/tomcat8
AUTHBIND=yes
Sobald dies erledigt ist, intall authbind
.
apt-get install authbind
Konfigurieren Sie es so, dass der Port 80
von tomcat8 beansprucht werden kann.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Lassen Sie den Port 80
durch die Firewall und löschen Sie die Regel für 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Tomcat neu starten.
service tomcat8 restart
Das war's, jetzt sollte Guacamole im Hafen laufen 80
.
Tomcat ist wirklich keine der besten und robustesten Anwendungen certbot
. Zum Glück ist Nginx. Wir werden nur Tomcat an Nginx weitergeben. Es nutzt die sofort einsatzbereite Funktionalität von certbot auf Kosten eines geringen Arbeitsspeichers.
apt-get install nginx
Bearbeiten Sie nach der Installation die Standardkonfiguration.
nano /etc/nginx/sites-available/default
Löschen Sie alle Beispielkonfigurationen und fügen Sie die folgende Konfiguration hinzu.
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;
}
}
Dadurch wird ein Proxy für die Website erstellt, auf der ausgeführt wird 8080
. Starten Sie Nginx neu und aktivieren Sie es beim Booten.
systemctl restart nginx
systemctl enable nginx
Überprüfen Sie, ob alles funktioniert.
systemctl status nginx
Deaktivieren Sie den Testport 8080
und lassen Sie den Datenverkehr auf dem Port zu 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Bevor wir verwenden können certbot
, müssen wir ppa
dem System, das unsere certbot-Pakete enthält , das richtige hinzufügen .
add-apt-repository ppa:certbot/certbot
Drücken Sie " ENTER
", um die Konfigurationsänderung zu akzeptieren.
Update apt
, um die neuen Pakete zu sammeln.
apt-get update
Installieren Sie abschließend das Nginx-Modul zum Zuweisen der Zertifikate.
apt-get -y install python-certbot-nginx
Konfigurieren Sie die Firewall so, dass sie zugelassen wird HTTPS
.
ufw allow 443/tcp
Bevor wir neue Zertifikate anfordern können, benötigen wir einen DNS-Namen.
nano /etc/nginx/sites-available/default
Fügen Sie die folgende server_name
Einstellung hinzu.
server_name rdp.example.com;
Ändern Sie die Konfiguration, um diese neue Einstellung widerzuspiegeln.
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;
}
}
Überprüfen Sie, ob alles funktioniert, und starten Sie Nginx neu.
nginx -t
service nginx restart
Fordern Sie jetzt ein Zertifikat mit certbot an.
certbot --nginx -d rdp.example.com
Geben Sie Ihre E-Mail-Adresse an und stimmen Sie den vom Installationsprogramm gestellten Fragen zu. (Sie können sicher " No
" wählen, um Ihre E-Mail zu teilen.) Certbot fragt automatisch, was damit zu tun ist HTTPS
. Wir werden Option 2 verwenden : 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
Als letztes werden wir die DH
Parameter aktualisieren . Diese sind für 2017-Standards standardmäßig etwas schwach.
Erstellen Sie einige neue.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Fügen Sie sie anschließend der Standardwebsite in Nginx hinzu.
nano /etc/nginx/sites-available/default
Fügen Sie sie der Serverkonfiguration hinzu.
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;
}
}
Auf Fehler prüfen.
nginx -t
Übernehmen Sie die Änderungen, indem Sie den Server neu starten.
service nginx restart
Bereinigen Sie die alte 8080
Regel
ufw delete allow 8080/tcp
Hinweis: Wenn Sie ein "502 Bad Gateway" erhalten sollten, müssen Sie tomcat8 neu starten .
service tomcat8 restart
Verschlüsseln Zertifikate müssen erneuert werden. Wir können dafür einen Cron-Job schaffen. Beginnen Sie mit der Bearbeitung der crontab
.
crontab -e
Fügen Sie die folgende Zeile hinzu.
00 2 * * * /usr/bin/certbot renew --quiet
Dies prüft um 2:00 Uhr morgens, ob Zertifikate erneuert werden müssen, und erneuert sie gegebenenfalls.
Gehen Sie zu Ihrem Guacamole-Server (entweder http://<ip>/
oder https://rdp.example.com)
).
Für diesen Test benötigen Sie zwei weitere Instanzen: eine Linux-VM und eine andere Windows Server 2012 R2 mit einer auf beiden aktivierten privaten IP.
Klicken Sie username
oben rechts auf " Settings
" und gehen Sie zu " ". Gehen Sie dann zu " Connections
" und wählen Sie " New Connection
".
Füllen Sie die folgenden Einstellungen aus (Sie können die anderen Standardeinstellungen beibehalten).
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>
Drücken Sie " save
" und kehren Sie zum Startbildschirm zurück. Jetzt können Sie auf die Windows Server 2012 R2
Verbindung " " klicken und es wird RDP zu diesem Computer.
Drücken Sie " Ctrl+Shift+Alt
". Dadurch wird das Menü auf der Seite angezeigt. Hier können Sie die Verbindung trennen oder andere Verwaltungsaufgaben für Guacamole ausführen.
Klicken Sie username
oben im Menü auf und gehen Sie zu " Settings
". Gehen Sie dann zur Connections
Registerkarte " " und wählen Sie " New Connection
".
Füllen Sie die folgenden Einstellungen aus (Sie können die anderen Standardeinstellungen beibehalten).
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)
Drücken Sie " save
" und kehren Sie zum Startbildschirm zurück. Jetzt können Sie auf diese neu erstellte Verbindung klicken und über SSH mit Ihrem Linux-Server verbunden werden.
Sie haben jetzt ein Web-RDP / SSH-HTML5-Gateway. Jetzt können Sie den öffentlichen RDP- und SSH-Zugriff Ihrer Plattform Firewall und von jedem modernen Browser aus auf Ihre Umgebung zugreifen. Weitere Informationen zu den Angeboten von Guacamole finden Sie in einem großartigen Video, das alle Möglichkeiten der Plattform hier zeigt .
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.