نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
الهدف من هذا البرنامج التعليمي هو التخلص من اتصالات SSH العامة واتصالات RDP العامة. من خلال وضع كل هذا خلف عميل HTML5 مناسب جدًا ، يمكننا إضافة طبقة من الأمان للوصول إلى السحابة الخاصة بنا.
يسجل Guacamole أيضًا أي وصول عن بُعد ، لذلك يصبح الوصول غير المصرح به أكثر قابلية للتتبع.
ملاحظة: بالنسبة لـ Let's encrypt (الخيار B) ، نحتاج إلى اسم مجال. إذا لم يكن لديك واحد ، يمكنك تخطي هذه الخطوة وتنفيذ الخيار أ .
ابدأ بتدوير VPS في منطقة Vultr المطلوبة. و 1024 MB
سوف VPS يكون كافيا، وأطعمة نباتية ليست مطالبة.
ابدأ بتمكين الشبكة الخاصة على VPS. هذا موثق جيدًا هنا
دعنا أولاً نصلب الصورة قليلاً. ولنتحقق مما إذا كانت الصورة التي تم توفيرها قد تم ufw
تمكينها.
root@vultr:~# ufw status
Status: inactive
يتم تعطيله افتراضيًا ، لذلك سنحتاج إلى إضافة بعض القواعد.
لنبدأ بتكوين هذه المنافذ.
ufw allow 22/tcp
ufw allow 8080/tcp
بعد ذلك قم بتمكين جدار الحماية.
ufw enable
لا تقلق إذا تلقيت تحذيرًا. إذا قمت بإضافة منفذ 22
، فلن تواجه أي مشاكل.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
بمجرد التمكين ، اطلب حالة جدار الحماية وسنرى تكوين منفذنا.
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)
قبل أن نبدأ التثبيت ، نحتاج إلى تحديث الريبو وترقيته. مع حزم مثل Tomcat
، التي تستند إلى Java ، هناك دفق مستمر من الأخطاء المكتشفة وإصلاحات الأخطاء المرتبطة بها. عادة ما يكون من الأفضل القيام بذلك أولاً بدلاً من التسرع مباشرة في التثبيت.
apt-get update
apt-get -y upgrade
التالي هو كل التبعيات. يحتوي Guacamole على عدد قليل منهم. (يمكن العثور على قائمة كاملة بالتبعيات ووظيفتها هنا ). دعنا نكمل بتثبيت كل منهم.
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
عندما يطلب المثبت كلمة مرور جذر MySQL ، قدم واحدة وتأكد من تدوينها. سنستخدم كلمة المرور هذه لاحقًا لإنشاء قاعدة بيانات Guacamole.
الآن بعد أن أصبح لدينا كل تبعياتنا ، يمكننا الاستمرار في تنزيل Guacamole. يأتي Guacamole نفسه في الغالب في شكل مصدر ، وليس ثنائي. سننتقل أولاً إلى /tmp
المجلد لتجنب ازدحام أجزاء أخرى من القرص. ثم قم بتنزيل كافة التعليمات البرمجية المصدر.
هناك أربعة ملفات مصدر / ثنائية للتحميل:
guacamole-0.9.13-incubating.war
: هذا هو تطبيق الويب. A WAR
الملف هو حزمة ويب مضغوط توفير موقع واحد استضافتها على موقع على شبكة الانترنت القطguacamole-server-0.9.13-incubating.tar.gz
: سيوفر هذا الملف guacd
تطبيق الواجهة الخلفية . هذا يخلق تيارات من خلال RDP و SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: سنستخدم قاعدة بيانات MySQL محلية ، لذا نحتاج إلى JDBC
الموصل المرتبط بها .mysql-connector-java-5.1.43.tar.gz
: بدون مشغل قاعدة بيانات ، موصل JDBC لا يفعل شيئًا. يتم توفير هذا الملف من قبل فريق MySQL أنفسهم.ملاحظة: تم حل التنزيلات إلى أقرب خادم .
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
بمجرد تنزيل كل هذه الملفات ، قم باستخراج الملف 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
الآن بعد أن استخرجنا جميع التعليمات البرمجية المصدر ، لنقم بإنشاء بعض guacamole
المجلدات ، سيتم استخدامها من قبل تطبيق guacamole وتبعياته.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
كل شيء جاهز لثنائيات Guacamole الجديدة. يمكننا الآن بدء عملية التجميع والتثبيت. انتقل إلى مجلد خادم Guacamole المستخرج.
cd /tmp/guacamole-server-0.9.13-incubating
قم بتكوين التطبيق أيضًا لإنشاء init.d
ملف لتشغيله كخدمة لاحقًا.
./configure --with-init-dir=/etc/init.d
يجب أن ينتهي الأمر بـ "نعم" على كافة المكتبات والبروتوكولات. إذا لم يكن الأمر كذلك ، فارجع وتحقق من الأمر apt-get للتأكد من عدم تفويت أي حزمة.
------------------------------------------------
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.
بعد ذلك قم بتجميع خادم Gucamole وتثبيته.
make && make install
بمجرد الانتهاء من كل هذا ، قم بتشغيل ldconfig
لإعادة بناء مسار البحث للمكتبات التي تمت إضافتها.
ldconfig
تابع باستخدام systemctl
الإعداد guacd
(Guacamole Daemon) لبدء التشغيل.
systemctl enable guacd
الثنائيات Guacamole مثبتة الآن. الآن سنقوم بتجهيز تطبيق الويب لـ Tomcat.
ابدأ بنقل war
الملف إلى guacamole
المجلد الذي أنشأناه للتو ، بمجرد القيام بذلك ، قم بإنشاء ارتباط منطقي في دليل catcat للإشارة إلى ملفنا war
.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
ثم نحتاج إلى موصل mysql و JDBC. برنامج تشغيل JDBC مطلوب في extensions
المجلد ، الموصل في 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/
بمجرد وجود الموصل و JDBC في مكانه ، نحتاج إلى تحرير tocamt8
الملف. يحتوي هذا الملف على الكثير من tomcat8
الإعدادات ، وفي حالتنا نحتاج إلى إضافة GUACAMOLE_HOME
المتغير في نهاية الملف.
nano /etc/default/tomcat8
ألحق بما يلي.
GUACAMOLE_HOME=/etc/guacamole
التالي هو إنشاء قاعدة البيانات. يخزن Guacamole تكوين اتصاله في قاعدة بيانات ، وليس داخل ملف.
قم بتسجيل الدخول باستخدامه root password
أثناء التثبيت.
mysql -u root -p
الخطوة الأولى هي إنشاء قاعدة بيانات تسمى guacamole_db.
create database guacamole_db;
ثم قم بتشغيل create user
الأمر. سيؤدي هذا إلى إنشاء مستخدم بكلمة مرور mysupersecretpassword
، لن يتمكن هذا المستخدم من الاتصال منه إلا localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
منح CRUD
عمليات لهذا المستخدم لقاعدة البيانات guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
امتيازات الشطف والخروج من الصدفة.
flush privileges;
exit
انتهي بإضافة مخطط Guacamole إلى قاعدة البيانات التي تم إنشاؤها حديثًا.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
بمجرد القيام بذلك ، نحتاج إلى تحرير guacamole.properties
الملف. يحتوي هذا الملف على تكوين خادم MySQL الذي أنشأناه مؤخرًا.
nano /etc/guacamole/guacamole.properties
إلحاق تفاصيل اتصال MySQL وبيانات الاعتماد.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
انتهي بإنشاء رابط رمزي لمجلد مشاركة catcat ، حيث WAR
سيبحث الملف في هذه الخصائص.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
إنهاء بإعادة تشغيل tomcat8
الخادم وبدء البرنامج guacd
الخفي.
service tomcat8 restart
service guacd start
يمكنك التحقق باستخدام الأمر status.
service tomcat8 status
service guacd status
الآن يمكنك التصفح إلى VPS الخاص بك على المنفذ 8080
http://<yourpublicip>:8080/guacamole/
استخدم اسم المستخدم guacadmin
ونفس كلمة المرور guacadmin
. سيمنحك هذا الوصول إلى خادم Guacamole فارغ.
انقر في الزاوية اليمنى العليا من اسم المستخدم الخاص بك guacadmin
وحدد Settings
. بمجرد أن تكون في صفحة الإعدادات ، انتقل إلى Users
علامة التبويب وحدد المستخدم guacadmin
.
الآن قم بتغيير كلمة المرور الخاصة بك إلى شيء آخر أو قم بإنشاء مستخدم مسؤول جديد واحذف كلمة المرور الافتراضية guacadmin
.
هذه هي الخطوات النهائية: التنظيف بعد الانتهاء.
حذف التعليمات البرمجية المصدر والثنائيات التي تم تنزيلها من /tmp
المجلد.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
أيضًا ، اجعل تطبيق الويب Guacamole هو التطبيق الافتراضي. في النظام البيئي لـ catcat ، يكون التطبيق الذي يحصل على ROOT
المجلد هو التطبيق الذي يتم تشغيله افتراضيًا عند الوصول إلى موقع الويب.
حذف ROOT
العنصر النائب القديم .
rm -rf /var/lib/tomcat8/webapps/ROOT
وقم بعمل رابط رمزي لخادم guacamole ليكون هو ROOT
الوحيد.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
هذا يتطلب إعادة تشغيل القط.
service tomcat8 restart
قم بتحرير tomcat8/server.xml
الملف وتغيير منفذ الموصل.
nano /etc/tomcat8/server.xml
ابحث عن Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
واستبدالها 8080
بـ 80
.
بشكل افتراضي ، لا يسمح catcat بربط المنافذ أدناه 1024
. لتمكين هذا نحتاج إلى إخبار tomcat8 لإنشاء روابط مصادقة.
قم بتحرير default
ملف tomcat8 وألغ تعليق AUTHBIND
الخط واستخدم الخيارyes
nano /etc/default/tomcat8
AUTHBIND=yes
بمجرد أن يتم ذلك ، intall authbind
.
apt-get install authbind
قم 80
بتكوينه بحيث يمكن المطالبة بالمنفذ عن طريق tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
اسمح بالمنفذ من 80
خلال جدار الحماية وحذف قاعدة 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
إعادة تشغيل القط.
service tomcat8 restart
هذا كل شيء ، الآن يجب أن يعمل Guacamole على المنفذ 80
.
Tomcat ليس من أفضل وأقوى التطبيقات للاستخدام certbot
. لحسن الحظ Nginx. سنقوم فقط بتوكيل catcat إلى Nginx. تستخدم وظيفة certbot من خارج الصندوق على حساب التضحية بقليل من ذاكرة الوصول العشوائي.
apt-get install nginx
بمجرد التثبيت ، قم بتحرير التكوين الافتراضي.
nano /etc/nginx/sites-available/default
احذف جميع تكوينات الأمثلة وأضف التكوين التالي.
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;
}
}
سيؤدي هذا إلى إنشاء وكيل للموقع الذي يعمل على 8080
. أعد تشغيل Nginx ، وقم بتمكينه عند التمهيد.
systemctl restart nginx
systemctl enable nginx
تحقق مما إذا كان كل شيء يعمل.
systemctl status nginx
قم بتعطيل منفذ الاختبار 8080
والسماح بحركة المرور على المنفذ 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
قبل أن نتمكن من استخدام certbot
، نحتاج إلى إضافة الصحيح ppa
إلى النظام الذي يحتوي على حزم سيرتبوت لدينا.
add-apt-repository ppa:certbot/certbot
اضغط على " ENTER
" لقبول تغيير التكوين.
تحديث apt
لتجميع الحزم الجديدة.
apt-get update
أخيرًا ، قم بتثبيت وحدة Nginx لتعيين الشهادات.
apt-get -y install python-certbot-nginx
تكوين جدار الحماية للسماح HTTPS
.
ufw allow 443/tcp
قبل أن نتمكن من طلب شهادات جديدة ، نحتاج إلى اسم DNS.
nano /etc/nginx/sites-available/default
أضف server_name
الإعداد التالي .
server_name rdp.example.com;
قم بتغيير التكوين ليعكس هذا الإعداد الجديد.
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;
}
}
تحقق مما إذا كان كل شيء يعمل وإعادة Nginx.
nginx -t
service nginx restart
الآن طلب شهادة مع سيرتبوت.
certbot --nginx -d rdp.example.com
قدم بريدك الإلكتروني ووافق على الأسئلة التي طرحها المثبت. (يمكنك اختيار " No
" مشاركة البريد الإلكتروني الخاص بك بأمان .) سيسألك Certbot تلقائيًا عما يجب أن يفعله HTTPS
. سنقوم باستخدام الخيار 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
آخر شيء سنقوم به هو تحديث DH
المعلمات. هذه ، بشكل افتراضي ، ضعيفة قليلاً لمعايير 2017.
إنشاء بعض جديدة.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
بعد ذلك ، قم بإضافتهم إلى الموقع الافتراضي في Nginx.
nano /etc/nginx/sites-available/default
قم بإضافتها إلى تكوين الخادم.
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;
}
}
تحقق من وجود أخطاء.
nginx -t
قم بتطبيق التغييرات بإعادة تشغيل الخادم.
service nginx restart
تنظيف 8080
القاعدة القديمة
ufw delete allow 8080/tcp
ملاحظة: إذا كان يجب أن تتلقى "502 Bad Gateway" ، فستحتاج إلى إعادة تشغيل tomcat8 .
service tomcat8 restart
دعونا تشفير الشهادات تتطلب التجديد. يمكننا إنشاء وظيفة كرون لهذا. ابدأ بتحرير ملف crontab
.
crontab -e
أضف السطر التالي.
00 2 * * * /usr/bin/certbot renew --quiet
سيتحقق هذا في الساعة 2:00 صباحًا إذا كانت هناك أي شهادات تتطلب التجديد وسيتم تجديدها إذا تطلبت ذلك.
انتقل إلى خادم Guacamole (إما http://<ip>/
أو https://rdp.example.com)
).
لهذا الاختبار ، ستحتاج إلى حالتين إضافيتين: أحدهما Linux VM وآخر Windows Server 2012 R2 مع تمكين IP خاص على كليهما.
انقر على " username
" في الزاوية اليمنى العليا وانتقل إلى " Settings
". ثم انتقل إلى " Connections
" وحدد " New Connection
".
املأ الإعدادات التالية (يمكنك ترك الإعدادات الافتراضية الأخرى).
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
" وارجع إلى الشاشة الرئيسية. الآن يمكنك النقر على Windows Server 2012 R2
اتصال " " وسيصل هذا الجهاز إلى RDP.
اضغط على " Ctrl+Shift+Alt
". سيؤدي ذلك إلى ظهور القائمة على الجانب. هنا يمكنك فصل أو تنفيذ مهام إدارية أخرى لـ Guacamole.
انقر username
على الجزء العلوي في القائمة وانتقل إلى " Settings
". ثم انتقل إلى Connections
علامة التبويب " New Connection
" وحدد " ".
املأ الإعدادات التالية (يمكنك ترك الإعدادات الافتراضية الأخرى).
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
" وارجع إلى الشاشة الرئيسية. الآن يمكنك النقر فوق هذا الاتصال الذي تم إنشاؤه حديثًا والاتصال بخادم Linux عبر SSH.
لديك الآن بوابة الويب RDP / SSH HTML5. يمكنك الآن حماية جدار الحماية من وصول RDP و SSH العام لمنصتك والوصول إلى بيئتك من أي متصفح حديث. لمزيد من المعلومات حول ما يمكن أن تقدمه Guacamole ، هناك مقطع فيديو رائع يعرض جميع إمكانيات النظام الأساسي هنا .
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد