Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
Цель этого руководства - избавиться от общедоступных соединений SSH и RDP. Разместив все это за очень удобным клиентом HTML5, мы можем добавить уровень безопасности для доступа к нашему облаку.
Гуакамоле также регистрирует любой удаленный доступ, поэтому несанкционированный доступ становится намного более отслеживаемым.
Примечание. Для шифрования Let's (опция 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
Далее следуют все зависимости. У гуакамоле их немало. (Полный список зависимостей и их функции можно найти здесь ). Давайте продолжим, установив их все.
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
Когда установщик запрашивает пароль root для MySQL, укажите его и обязательно примите к сведению. Позже мы будем использовать этот пароль для создания базы данных гуакамоле.
Теперь, когда у нас есть все наши зависимости, мы можем продолжить скачивание гуакамоле. Сам гуакамоле поставляется в основном в исходной форме, а не в двоичном виде. Сначала мы переместимся в /tmp
папку, чтобы не загромождать другие части диска. Затем загрузите весь исходный код.
Есть четыре исходных / двоичных файла для скачивания:
guacamole-0.9.13-incubating.war
: Это веб-приложение. WAR
Файл является Молнии веб - пакет обеспечения единого веб - сайта , размещенного на веб - сайте Tomcatguacamole-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
папок, которые будут использоваться приложением гуакамоле и его зависимостями.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Все готово для наших новых бинарных файлов гуакамоле. Теперь мы можем начать процесс компиляции и установки. Перейдите к извлеченной папке сервера гуакамоле.
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
Двоичные файлы гуакамоле теперь установлены. Теперь мы подготовим веб-приложение для Tomcat.
Начните с перемещения war
файла в guacamole
папку, которую мы только что создали, как только это будет сделано, создайте логическую ссылку в каталоге tomcat, чтобы указать на наш 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
Далее идет создание базы данных. Гуакамоле сохраняет свою конфигурацию соединения в базе данных, а не внутри файла.
Войдите в систему с тем, который 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
В завершение добавьте схему гуакамоле в нашу вновь созданную базу данных.
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
В завершение создайте символическую ссылку на общую папку tomcat, так как именно здесь WAR
файл будет искать эти свойства.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Завершите, перезапустив tomcat8
сервер и guacd
запустив демон сервера.
service tomcat8 restart
service guacd start
Вы можете проверить, используя команду статуса.
service tomcat8 status
service guacd status
Теперь вы можете перейти к вашему VPS на порт 8080
http://<yourpublicip>:8080/guacamole/
Используйте имя пользователя guacadmin
и тот же пароль guacadmin
. Это предоставит вам доступ к пустому серверу Гуакамоле.
Нажмите в правом верхнем углу на ваше имя пользователя guacadmin
и выберите Settings
. Как только вы находитесь на странице настроек, перейдите на Users
вкладку и выберите пользователя guacadmin
.
Теперь измените свой пароль на другой или создайте нового администратора и удалите пароль по умолчанию guacadmin
.
Это заключительные шаги: очистка после того, как вы закончите.
Удалите загруженный исходный код и двоичные файлы из /tmp
папки.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Кроме того, сделайте веб-приложение Guacamole по умолчанию. В экосистеме tomcat приложение, которое получает ROOT
папку, запускается по умолчанию при доступе к веб-сайту.
Удалить старый ROOT
заполнитель.
rm -rf /var/lib/tomcat8/webapps/ROOT
И сделайте символическую ссылку для сервера гуакамоле, чтобы быть тем 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
.
По умолчанию tomcat не разрешает привязку портов ниже 1024
. Для этого нам нужно указать tomcat8 создать аутентифицированные привязки.
Отредактируйте default
файл tomcat8, раскомментируйте AUTHBIND
строку и используйте опциюyes
nano /etc/default/tomcat8
AUTHBIND=yes
Как только это будет сделано, введите 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
Вот и все, теперь гуакамоле должен работать в порту 80
.
Tomcat действительно не одно из лучших и самых надежных приложений для использования certbot
. К счастью, Nginx есть. Мы будем просто прокси кота на 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
систему, содержащую наши пакеты certbot.
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.
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
Сертификаты Let's Encrypt требуют обновления. Мы можем создать работу cron для этого. Начните с редактирования crontab
.
crontab -e
Добавьте следующую строку.
00 2 * * * /usr/bin/certbot renew --quiet
Это проверит в 2:00 утра, если какие-либо сертификаты требуют обновления и о��новит их, если они делают.
Перейдите на ваш сервер гуакамоле (или http://<ip>/
или https://rdp.example.com)
).
Для этого теста вам понадобятся еще два экземпляра: одна виртуальная машина Linux и другая 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
". Это выскочит меню на стороне. Здесь вы можете отключить или выполнить другие административные задачи для гуакамоле.
Нажмите 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 доступ к вашей платформе и получать доступ к своей среде из любого современного браузера. Для получения дополнительной информации о том, что может предложить гуакамоле, есть отличное видео, показывающее все возможности платформы здесь .
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше