Funkcjonalności warstw architektury referencyjnej Big Data
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Celem tego samouczka jest pozbycie się publicznych połączeń SSH i publicznych połączeń RDP. Umieszczając to wszystko za bardzo wygodnym klientem HTML5, możemy dodać warstwę bezpieczeństwa dostępu do naszej chmury.
Guacamole rejestruje również każdy dostęp zdalny, więc nieautoryzowany dostęp staje się znacznie bardziej identyfikowalny.
Uwaga: do szyfrowania Let's (opcja B) potrzebujemy nazwy domeny. Jeśli nie masz, możesz pominąć ten krok i po prostu wykonać opcja A .
Zacznij od podkręcenia VPS w wybranej strefie Vultr. Wystarczy 1024 MB
VPS, ponieważ Guacamole nie jest tak wymagający.
Zacznij od włączenia sieci prywatnej na VPS. Jest to dobrze udokumentowane tutaj
Najpierw trochę zahartujmy obraz. Sprawdźmy, czy obraz, który został udostępniony, został ufw
włączony.
root@vultr:~# ufw status
Status: inactive
Domyślnie jest wyłączony, więc będziemy musieli dodać kilka reguł.
Zacznijmy od skonfigurowania tych portów.
ufw allow 22/tcp
ufw allow 8080/tcp
Następnie włącz zaporę.
ufw enable
Nie martw się, jeśli otrzymasz ostrzeżenie. Jeśli dodasz port 22
, nie napotkasz żadnych problemów.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Po włączeniu poproś o status zapory, a my zobaczymy konfigurację naszego portu.
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)
Przed rozpoczęciem instalacji musimy zaktualizować i uaktualnić repozytorium. W przypadku takich pakietów Tomcat
, które są oparte na Javie, istnieje ciągły strumień wykrytych błędów i powiązanych z nimi poprawek. Zazwyczaj dobrym pomysłem jest zrobienie tego jako pierwszego zamiast pośpiechu bezpośrednio do naszej instalacji.
apt-get update
apt-get -y upgrade
Dalej są wszystkie zależności. Guacamole ma ich sporo. (Pełna lista zależności i ich funkcji można znaleźć tutaj ). Kontynuujmy instalację wszystkich.
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
Gdy instalator poprosi o hasło root MySQL, podaj je i pamiętaj o tym. Będziemy używać tego hasła później, aby utworzyć bazę danych Guacamole.
Teraz, gdy mamy już wszystkie nasze zależności, możemy kontynuować pobieranie Guacamole. Sam Guacamole występuje głównie w formie źródłowej, a nie binarnej. Najpierw przejdziemy do /tmp
folderu, aby uniknąć zaśmiecania innych części dysku. Następnie pobierz cały kod źródłowy.
Do pobrania są cztery pliki źródłowe / binarne:
guacamole-0.9.13-incubating.war
: To jest aplikacja internetowa. WAR
Plik jest spakowany pakiet internetowy umożliwiający jednej witryny hostowane na stronie Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Ten plik zapewni guacd
aplikację zaplecza . To tworzy strumienie przez RDP i SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Będziemy używać lokalnej bazy danych MySQL, więc potrzebujemy powiązanego JDBC
konektora.mysql-connector-java-5.1.43.tar.gz
: Bez sterownika bazy danych złącze JDBC nic nie robi. Ten plik jest dostarczany przez sam zespół MySQL.Uwaga: pobieranie zostało rozwiązane na najbliższym serwerze .
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
Po pobraniu wszystkich tych plików rozpakuj je 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
Po wyodrębnieniu całego kodu źródłowego, zróbmy kilka guacamole
folderów, które będą używane przez aplikację guacamole i jej zależności.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Wszystko jest gotowe na nasze nowe pliki binarne Guacamole. Możemy teraz rozpocząć proces kompilacji i instalacji. Przejdź do wyodrębnionego folderu Guacamole Server.
cd /tmp/guacamole-server-0.9.13-incubating
Skonfiguruj aplikację, aby utworzyć init.d
plik do późniejszego uruchomienia jako usługa.
./configure --with-init-dir=/etc/init.d
Polecenie powinno kończyć się „tak” we wszystkich bibliotekach i protokołach. Jeśli nie, wróć i sprawdź komendę apt-get, aby upewnić się, że nie przegapiłeś żadnej paczki.
------------------------------------------------
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.
Następnie skompiluj i zainstaluj serwer Gucamole.
make && make install
Po wykonaniu wszystkich czynności uruchom, ldconfig
aby odbudować ścieżkę wyszukiwania dla dodanych bibliotek.
ldconfig
Kontynuuj, używając programu systemctl
setup guacd
(Guacamole Daemon), aby rozpocząć przy rozruchu.
systemctl enable guacd
Pliki binarne Guacamole są teraz zainstalowane. Teraz przygotujemy aplikację internetową dla Tomcat.
Zacznij od przeniesienia war
pliku do guacamole
folderu, który właśnie utworzyliśmy. Po wykonaniu tej czynności utwórz łącze logiczne w katalogu tomcat, aby wskazać nasz war
plik.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Następnie potrzebujemy konektora mysql i JDBC. Sterownik JDBC jest potrzebny w extensions
folderze, złącze w lib
folderze.
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/
Gdy łącznik i JDBC są na miejscu, musimy edytować tocamt8
plik. Ten plik zawiera wiele tomcat8
ustawień, w naszym przypadku musimy dodać GUACAMOLE_HOME
zmienną na końcu pliku.
nano /etc/default/tomcat8
Dołącz z następującymi.
GUACAMOLE_HOME=/etc/guacamole
Następnym krokiem jest utworzenie bazy danych. Guacamole przechowuje konfigurację połączenia w bazie danych, a nie w pliku.
Zaloguj się przy użyciu tego, root password
którego użyłeś podczas instalacji.
mysql -u root -p
Pierwszym krokiem jest utworzenie bazy danych o nazwie „guacamole_db”.
create database guacamole_db;
Następnie uruchom create user
polecenie. Spowoduje to utworzenie użytkownika z hasłem mysupersecretpassword
, z którego będzie mógł się połączyć localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Przyznaj CRUD
operacje temu użytkownikowi dla bazy danych guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Opróżnij uprawnienia i wyjdź z powłoki.
flush privileges;
exit
Na koniec dodaj schemat Guacamole do naszej nowo utworzonej bazy danych.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Po wykonaniu tej czynności musimy edytować guacamole.properties
plik. Ten plik zawiera naszą niedawno utworzoną konfigurację serwera MySQL.
nano /etc/guacamole/guacamole.properties
Dołącz szczegóły połączenia MySQL i poświadczenia.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Zakończ, tworząc symboliczne łącze do folderu udostępniania tomcat, ponieważ w tym miejscu WAR
plik przeszuka te właściwości.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Zakończ przez zrestartowanie tomcat8
serwera i uruchom guacd
demona serwera.
service tomcat8 restart
service guacd start
Możesz to sprawdzić za pomocą polecenia status.
service tomcat8 status
service guacd status
Teraz możesz przejść do swojego VPS na porcie 8080
http://<yourpublicip>:8080/guacamole/
Użyj nazwy użytkownika guacadmin
i tego samego hasła guacadmin
. Umożliwi to dostęp do pustego serwera Guacamole.
Kliknij w prawym górnym rogu swoją nazwę użytkownika guacadmin
i wybierz Settings
. Po przejściu na stronę ustawień przejdź do Users
karty i wybierz użytkownika guacadmin
.
Teraz zmień hasło na coś innego lub utwórz nowego administratora i usuń domyślne guacadmin
.
Oto ostatnie kroki: sprzątanie po zakończeniu.
Usuń pobrany kod źródłowy i pliki binarne z /tmp
folderu.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Ustaw także domyślną aplikację internetową Guacamole. W ekosystemie tomcat aplikacja, która pobiera ROOT
folder, jest domyślnie uruchamiana podczas uzyskiwania dostępu do strony internetowej.
Usuń stary ROOT
symbol zastępczy.
rm -rf /var/lib/tomcat8/webapps/ROOT
I stwórz symboliczne łącze dla serwera guacamole ROOT
.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Wymaga to ponownego uruchomienia tomcat.
service tomcat8 restart
Edytuj tomcat8/server.xml
plik i zmień port konektora.
nano /etc/tomcat8/server.xml
Wyszukaj Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
I wymienić 8080
z 80
.
Domyślnie tomcat nie pozwala na wiązanie portów poniżej 1024
. Aby to włączyć, musimy powiedzieć tomcat8, aby utworzył uwierzytelnione powiązania.
Edytuj default
plik tomcat8 i odkomentuj AUTHBIND
linię i użyj opcjiyes
nano /etc/default/tomcat8
AUTHBIND=yes
Po wykonaniu tej czynności zainstaluj authbind
.
apt-get install authbind
Skonfiguruj go, aby 80
tomcat8 mógł przejąć port.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Zezwól na port 80
przez zaporę i usuń regułę dla 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Uruchom ponownie tomcat.
service tomcat8 restart
To wszystko, teraz Guacamole powinien działać na porcie 80
.
Tomcat naprawdę nie jest jedną z najlepszych i najbardziej niezawodnych aplikacji do użycia certbot
. Na szczęście Nginx jest. Będziemy po prostu proxy tomcat do Nginx. Wykorzystuje gotową funkcjonalność certbota kosztem poświęcenia odrobiny pamięci RAM.
apt-get install nginx
Po zainstalowaniu edytuj domyślną konfigurację.
nano /etc/nginx/sites-available/default
Usuń wszystkie przykładowe konfiguracje i dodaj następującą konfigurację.
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;
}
}
Spowoduje to utworzenie serwera proxy dla witryny działającej pod adresem 8080
. Uruchom ponownie Nginx i włącz go przy rozruchu.
systemctl restart nginx
systemctl enable nginx
Sprawdź, czy wszystko działa.
systemctl status nginx
Wyłącz port testowy 8080
i zezwól na ruch na porcie 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Zanim zaczniemy korzystać certbot
, musimy dodać ppa
poprawkę do systemu zawierającego nasze pakiety certbot.
add-apt-repository ppa:certbot/certbot
Naciśnij „ ENTER
”, aby zaakceptować zmianę konfiguracji.
Zaktualizuj, apt
aby zebrać nowe pakiety.
apt-get update
Na koniec zainstaluj moduł Nginx do przypisywania certyfikatów.
apt-get -y install python-certbot-nginx
Skonfiguruj zaporę ogniową, aby zezwalała HTTPS
.
ufw allow 443/tcp
Zanim będziemy mogli poprosić o nowe certyfikaty, potrzebujemy nazwy DNS.
nano /etc/nginx/sites-available/default
Dodaj następujące server_name
ustawienie.
server_name rdp.example.com;
Zmień konfigurację, aby odzwierciedlić to nowe ustawienie.
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;
}
}
Sprawdź, czy wszystko działa i zrestartuj Nginx.
nginx -t
service nginx restart
Poproś o certyfikat za pomocą certbota.
certbot --nginx -d rdp.example.com
Podaj swój adres e-mail i zaakceptuj pytania zadane przez instalatora. (Możesz bezpiecznie wybrać „ No
”, aby udostępnić swój e-mail.) Certbot automatycznie zapyta, co musi zrobić HTTPS
. Będziemy używać opcji 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
Ostatnią rzeczą, którą będziemy robić, jest aktualizacja DH
parametrów. Są one domyślnie nieco słabe jak na standardy 2017 roku.
Utwórz nowe.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Następnie dodaj je do domyślnej witryny w Nginx.
nano /etc/nginx/sites-available/default
Dodaj je do konfiguracji serwera.
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;
}
}
Sprawdź błędy.
nginx -t
Zastosuj zmiany, ponownie uruchamiając serwer.
service nginx restart
Oczyść starą 8080
zasadę
ufw delete allow 8080/tcp
Uwaga: jeśli otrzymasz „502 Bad Gateway”, musisz ponownie uruchomić tomcat8 .
service tomcat8 restart
Certyfikaty Let's Encrypt wymagają odnowienia. Możemy w tym celu utworzyć zadanie CRON. Zacznij od edycji crontab
.
crontab -e
Dodaj następujący wiersz.
00 2 * * * /usr/bin/certbot renew --quiet
Sprawdzi to o 2:00 rano, czy jakieś certyfikaty wymagają odnowienia i odnowi je, jeśli tak jest.
Przejdź do swojego serwera Guacamole (albo http://<ip>/
albo https://rdp.example.com)
).
Do tego testu potrzebne będą dwa kolejne wystąpienia: jedna maszyna wirtualna z systemem Linux i inna Windows Server 2012 R2 z włączonym prywatnym adresem IP na obu.
Kliknij „ username
” w prawym górnym rogu i przejdź do „ Settings
”. Następnie przejdź do „ Connections
” i wybierz „ New Connection
”.
Podaj następujące ustawienia (możesz pozostawić pozostałe domyślne).
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>
Naciśnij „ save
” i wróć do ekranu głównego. Teraz możesz kliknąć Windows Server 2012 R2
połączenie „ ”, aby uzyskać RDP dla tego komputera.
Naciśnij „ Ctrl+Shift+Alt
”. To wyskoczy menu z boku. Tutaj możesz rozłączyć lub wykonać inne zadania administracyjne dla Guacamole.
Kliknij username
na górze w menu i przejdź do „ Settings
”. Następnie przejdź do Connections
zakładki „ ” i wybierz „ New Connection
”.
Podaj następujące ustawienia (możesz pozostawić pozostałe domyślne).
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)
Naciśnij „ save
” i wróć do ekranu głównego. Teraz możesz kliknąć to nowo utworzone połączenie i połączyć się z serwerem Linux za pośrednictwem SSH.
Masz teraz bramę internetową RDP / SSH HTML5. Teraz możesz zaporować publiczny dostęp do RDP i SSH na swojej platformie i dostęp do środowiska z dowolnej nowoczesnej przeglądarki. Aby uzyskać więcej informacji na temat tego, co może zaoferować guacamole, jest świetny film pokazujący wszystkie mozliwosci platformy tutaj .
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.