26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Bu eğitimin amacı, halka açık SSH ve halka açık RDP bağlantılarından kurtulmaktır. Tüm bunları çok uygun bir HTML5 istemcisinin arkasına yerleştirerek, bulutumuza erişmek için bir güvenlik katmanı ekleyebiliriz.
Guacamole ayrıca herhangi bir uzaktan erişimi günlüğe kaydeder, böylece yetkisiz erişim çok daha izlenebilir hale gelir.
Not: Şifreleyelim (seçenek B) için bir alan adına ihtiyacımız var. Eğer bir hesabınız yoksa, bu adımı atlayabilir ve sadece A seçeneğini uygulayabilirsiniz .
İstediğiniz Vultr bölgesinde bir VPS döndürerek başlayın. 1024 MB
Guacamole bu kadar talepkar olmadığından bir VPS yeterli olacaktır.
VPS'de özel ağı etkinleştirerek başlayın. Bu iyi belgelenmiştir burada
Önce görüntüyü biraz sertleştirelim. Sağlanan görüntünün ufw
etkin olup olmadığını kontrol edelim .
root@vultr:~# ufw status
Status: inactive
Varsayılan olarak devre dışıdır, bu nedenle birkaç kural eklememiz gerekecek.
Bu bağlantı noktalarını yapılandırmaya başlayalım.
ufw allow 22/tcp
ufw allow 8080/tcp
Ardından güvenlik duvarını etkinleştirin.
ufw enable
Bir uyarı alırsanız endişelenmeyin. Bağlantı noktası eklediyseniz 22
, herhangi bir sorunla karşılaşmazsınız.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Etkinleştirildiğinde, güvenlik duvarının durumunu isteyin; bağlantı noktası yapılandırmamızı göreceğiz.
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)
Yüklemeye başlamadan önce repoyu güncellememiz ve yükseltmemiz gerekiyor. Tomcat
Java tabanlı gibi paketlerle , keşfedilen hataların ve bunların ilgili hata düzeltmelerinin sürekli bir akışı vardır. Doğrudan kurulumumuza koşmak yerine ilk önce bunu yapmak iyi bir fikirdir.
apt-get update
apt-get -y upgrade
Sıradaki tüm bağımlılıklar. Guacamole bunlardan birkaçına sahiptir. (Bağımlılıkların ve işlevlerinin tam bir listesini burada bulabilirsiniz ). Hepsini yükleyerek devam edelim.
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
Yükleyici bir MySQL kök parolası istediğinde, bir tane girin ve not aldığınızdan emin olun. Bu şifreyi daha sonra Guacamole veritabanı oluşturmak için kullanacağız.
Artık tüm bağımlılıklarımıza sahip olduğumuza göre, Guacamole'i indirmeye devam edebiliriz. Guacamole'un kendisi çoğunlukla bir ikili biçimde değil, bir kaynak formunda gelir. Öncelikle /tmp
diskin diğer kısımlarını karıştırmamak için klasöre geçeceğiz . Ardından tüm kaynak kodunu indirin.
İndirilecek dört kaynak / ikili dosya vardır:
guacamole-0.9.13-incubating.war
: Bu web uygulamasıdır. Bir WAR
dosya Tomcat web sitesinde barındırılan tek bir web sitesi sağlayan sıkıştırılmış bir web paketidirguacamole-server-0.9.13-incubating.tar.gz
: Bu dosya arka uç guacd
uygulaması sağlayacaktır . Bu, akışları RDP ve SSH aracılığıyla oluşturur.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Yerel bir MySQL veritabanı kullanacağız, bu yüzden ilgili JDBC
konektöre ihtiyacımız var .mysql-connector-java-5.1.43.tar.gz
: Veritabanı sürücüsü olmadan JDBC bağlayıcısı hiçbir şey yapmaz. Bu dosya MySQL ekibi tarafından sağlanır.Not: indirmeler en yakın sunucuya çözüldü .
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
Tüm bu dosyaları indirdikten sonra, tar.gz
's ayıklayın .
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
Şimdi tüm kaynak kodunu çıkardığımıza göre, birkaç guacamole
klasör oluşturalım, bunlar guacamole uygulaması ve bağımlılıkları tarafından kullanılacak.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Yeni Guacamole ikili dosyalarımız için her şey hazır. Şimdi derleme ve kurulum sürecini başlatabiliriz. Çıkartılan Guacamole Server klasörüne gidin.
cd /tmp/guacamole-server-0.9.13-incubating
Uygulamayı init.d
daha sonra bir hizmet olarak çalıştırmak üzere bir dosya oluşturacak şekilde yapılandırın .
./configure --with-init-dir=/etc/init.d
Komut, tüm kütüphanelerde ve protokollerde 'evet' ile bitmelidir. Değilse, geri dönün ve hiçbir paketi kaçırmadığınızdan emin olmak için apt-get komutunu kontrol edin.
------------------------------------------------
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.
Sonra Gucamole sunucusunu derleyin ve yükleyin.
make && make install
Tüm bunlar yapıldıktan sonra, ldconfig
eklenen kütüphaneler için arama yolunu yeniden oluşturmak için çalıştırın .
ldconfig
Önyüklemeye başlamak systemctl
için setup guacd
(Guacamole Daemon) uygulamasını kullanarak devam edin .
systemctl enable guacd
Guacamole ikili dosyaları yüklendi. Şimdi web uygulamasını Tomcat için hazırlayacağız.
war
Dosyayı guacamole
yeni oluşturduğumuz klasöre taşıyarak başlayın , bu yapıldıktan sonra war
dosyamızı işaret etmek için tomcat dizininde mantıksal bir bağlantı oluşturun .
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Sonra mysql konektörü ve JDBC'ye ihtiyacımız var. extensions
Klasörde JDBC sürücüsü, klasördeki bağlayıcı gerekir lib
.
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/
Bağlayıcı ve JDBC yerleştirildikten sonra tocamt8
dosyayı düzenlememiz gerekir . Bu dosya birçok tomcat8
ayar içeriyor ve bizim durumumuzda GUACAMOLE_HOME
değişkeni dosyanın sonuna eklememiz gerekiyor .
nano /etc/default/tomcat8
Aşağıdakilere ekleyin.
GUACAMOLE_HOME=/etc/guacamole
Bir sonraki adım veritabanını oluşturmaktır. Guacamole bağlantı yapılandırmasını bir dosyanın içinde değil, bir veritabanında saklar.
root password
Kurulum sırasında kullandığınız ile giriş yapın .
mysql -u root -p
İlk adım 'guacamole_db' adlı bir veritabanı oluşturmaktır.
create database guacamole_db;
Ardından create user
komutu çalıştırın . Bu, şifresi olan bir kullanıcı oluşturur mysupersecretpassword
, bu kullanıcı yalnızca bağlantı kurabilir localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Grant CRUD
veritabanı için bu kullanıcıya işlemleri guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Ayrıcalıkları yıkayın ve kabuktan çıkın.
flush privileges;
exit
Yeni oluşturulan veritabanımıza Guacamole şemasını ekleyerek işlemi tamamlayın.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Bu yapıldıktan sonra guacamole.properties
dosyayı düzenlememiz gerekir . Bu dosya yakın zamanda oluşturulan MySQL sunucu yapılandırmamızı içerir.
nano /etc/guacamole/guacamole.properties
MySQL bağlantı ayrıntılarını ve kimlik bilgilerini ekleyin.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
WAR
Dosya bu özellikleri arayacağı yer olduğu için tomcat paylaşım klasörüne sembolik bir bağlantı oluşturarak işlemi tamamlayın .
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
tomcat8
Sunucuyu yeniden başlatarak sonlandırın ve guacd
sunucu arka plan programını başlatın .
service tomcat8 restart
service guacd start
Status komutunu kullanarak doğrulayabilirsiniz.
service tomcat8 status
service guacd status
Artık bağlantı noktasında VPS'nize göz atabilirsiniz 8080
http://<yourpublicip>:8080/guacamole/
Kullanıcı adını guacadmin
ve aynı şifreyi kullanın guacadmin
. Bu size boş bir Guacamole sunucusuna erişim izni verecektir.
Kullanıcı adınızın sağ üst köşesindeki simgesini tıklayın guacadmin
ve öğesini seçin Settings
. Ayarlar sayfasındayken Users
sekmeye gidin ve kullanıcıyı seçin guacadmin
.
Şimdi şifrenizi başka bir şeye değiştirin veya yeni bir yönetici kullanıcı oluşturun ve varsayılanı silin guacadmin
.
Bunlar son adımlar: bitirdikten sonra temizlik.
İndirilen kaynak kodunu ve ikili dosyaları /tmp
klasörden silin .
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Ayrıca, Guacamole web uygulamasını varsayılan uygulama yapın. Tomcat ekosisteminde, ROOT
klasörü alan uygulama , web sitesine eriştiğinizde varsayılan olarak başlatılan uygulamadır.
Eski ROOT
yer tutucuyu silin .
rm -rf /var/lib/tomcat8/webapps/ROOT
Ve guacamole sunucusunun tek olması için sembolik bir bağlantı yapın ROOT
.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Bu bir tomcat yeniden başlatmayı gerektirir.
service tomcat8 restart
Edit tomcat8/server.xml
dosya ve konnektör bağlantı noktasını değiştirmek.
nano /etc/tomcat8/server.xml
İçin arama yapın Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
Ve değiştirin 8080
ile 80
.
Tomcat varsayılan olarak aşağıdaki bağlantı noktalarının bağlanmasına izin vermez 1024
. Bunu etkinleştirmek için tomcat8'e kimliği doğrulanmış bağlar oluşturmasını söylememiz gerekir.
Düzenleme default
tomcat8 dosya ve yorumsuz AUTHBIND
hattı ve seçeneğini kullanınyes
nano /etc/default/tomcat8
AUTHBIND=yes
Bu yapıldıktan sonra, intall authbind
.
apt-get install authbind
Bağlantı noktasını 80
tomcat8 tarafından talep edilebilecek şekilde yapılandırın.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
80
Güvenlik duvarı üzerinden bağlantı noktasına izin verin ve kuralını silin 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Tomcat'i yeniden başlatın.
service tomcat8 restart
İşte bu, şimdi Guacamole limanda çalışıyor olmalı 80
.
Tomcat gerçekten kullanmak için en iyi ve en sağlam uygulamalardan biri değil certbot
. Neyse ki Nginx öyle. Tomcat'i Nginx'e vekalet edeceğiz. Certbot'un kullanıma hazır işlevselliğini, biraz RAM feda etmek pahasına kullanır.
apt-get install nginx
Kurulduktan sonra, varsayılan yapılandırmayı düzenleyin.
nano /etc/nginx/sites-available/default
Tüm örnek yapılandırmaları silin ve aşağıdaki yapılandırmayı ekleyin.
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;
}
}
Bu, adresinde çalışan web sitesi için bir proxy oluşturur 8080
. Nginx'i yeniden başlatın ve önyüklemede etkinleştirin.
systemctl restart nginx
systemctl enable nginx
Her şeyin çalışıp çalışmadığını kontrol edin.
systemctl status nginx
Test bağlantı noktasını devre dışı bırakın ve bağlantı noktasında 8080
trafiğe izin verin 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Kullanmadan önce certbot
, ppa
certbot paketlerimizi içeren sisteme doğru olanı eklememiz gerekir.
add-apt-repository ppa:certbot/certbot
ENTER
Yapılandırma değişikliğini kabul etmek için " " tuşuna basın .
apt
Yeni paketleri toplamak için güncelleyin .
apt-get update
Son olarak, sertifikaları atamak için Nginx modülünü yükleyin.
apt-get -y install python-certbot-nginx
Güvenlik duvarını izin verecek şekilde yapılandırın HTTPS
.
ufw allow 443/tcp
Yeni sertifika talep etmeden önce bir DNS adına ihtiyacımız var.
nano /etc/nginx/sites-available/default
Aşağıdaki server_name
ayarı ekleyin .
server_name rdp.example.com;
Bu yeni ayarı yansıtacak şekilde yapılandırmayı değiştirin.
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;
}
}
Tümünün çalışıp çalışmadığını kontrol edin ve Nginx'i yeniden başlatın.
nginx -t
service nginx restart
Şimdi certbot ile sertifika isteyin.
certbot --nginx -d rdp.example.com
E-postanızı girin ve yükleyici tarafından sorulan soruları kabul edin. ( No
E-postanızı paylaşmak için güvenle " " seçimini yapabilirsiniz .) Certbot otomatik olarak ne yapması gerektiğini soracaktır HTTPS
. Biz seçeneği 2 kullanacağınız: 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
Yapacağımız son şey DH
parametreleri güncellemektir . Bunlar varsayılan olarak 2017 standartları için biraz zayıftır.
Yenilerini oluşturun.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Ardından, bunları Nginx'teki varsayılan siteye ekleyin.
nano /etc/nginx/sites-available/default
Bunları sunucu yapılandırmasına ekleyin.
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;
}
}
Hataları kontrol edin.
nginx -t
Sunucuyu yeniden başlatarak değişiklikleri uygulayın.
service nginx restart
Eski 8080
kuralı temizleme
ufw delete allow 8080/tcp
Not: Bir "502 Bozuk Ağ Geçidi" almanız gerekiyorsa tomcat8'i yeniden başlatmanız gerekir .
service tomcat8 restart
Sertifikaları Şifreleyelim, yenilenmesini gerektiriyor. Bunun için bir cron işi yaratabiliriz. İle düzenleyerek başlayın crontab
.
crontab -e
Aşağıdaki satırı ekleyin.
00 2 * * * /usr/bin/certbot renew --quiet
Bu, herhangi bir sertifikanın yenilenmesi gerekip gerekmediğini öğleden sonra 2: 00'da kontrol eder ve eğer isterse yeniler.
Guacamole sunucunuza gidin (ya http://<ip>/
da https://rdp.example.com)
).
Bu sınama için iki örneğe daha ihtiyacınız olacak: bir Linux VM ve her ikisinde de özel IP etkinleştirilmiş başka bir Windows Server 2012 R2.
username
Sağ üst köşedeki " " simgesini tıklayın ve " " seçeneğine gidin Settings
. Ardından " Connections
" öğesine gidin ve " " seçeneğini seçin New Connection
.
Aşağıdaki ayarları doldurun (diğerlerini varsayılan olarak bırakabilirsiniz).
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>
" save
" Tuşuna basın ve ana ekrana geri dönün. Şimdi " Windows Server 2012 R2
" bağlantısına tıklayabilirsiniz ve bu makineye RDP gönderir.
" Ctrl+Shift+Alt
" Düğmesine basın . Bu, yan taraftaki menüyü gösterecektir. Burada Guacamole için bağlantıyı kesebilir veya diğer idari görevleri gerçekleştirebilirsiniz.
username
Menüde üst tarafa tıklayın ve " Settings
" seçeneğine gidin . Ardından " Connections
" sekmesine gidin ve " New Connection
" öğesini seçin .
Aşağıdaki ayarları doldurun (diğerlerini varsayılan olarak bırakabilirsiniz).
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)
" save
" Tuşuna basın ve ana ekrana geri dönün. Şimdi bu yeni oluşturulan bağlantıya tıklayabilir ve Linux sunucunuza SSH üzerinden bağlanabilirsiniz.
Artık bir web RDP / SSH HTML5 ağ geçidiniz var. Artık platformunuzun genel RDP ve SSH erişimini güvenlik duvarı ve herhangi bir modern tarayıcıdan ortamınıza erişebilirsiniz. Guacamole'un neler sunabileceği hakkında daha fazla bilgi için, burada platformun tüm olanaklarını gösteren harika bir video var .
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun