สร้างส่วนหน้า HTML 5 RDP / SSH โดยใช้ Guacamole บน Ubuntu 16.04 LTS

บทนำ

เป้าหมายของบทช่วยสอนนี้คือกำจัด SSH สาธารณะและการเชื่อมต่อ RDP สาธารณะ ด้วยการวางสิ่งนี้ไว้ข้างหลังไคลเอนต์ HTML5 ที่แสนสะดวกสบายเราสามารถเพิ่มระดับความปลอดภัยสำหรับการเข้าถึงคลาวด์

Guacamole ยังบันทึกการเข้าถึงระยะไกลด้วยดังนั้นการเข้าถึงที่ไม่ได้รับอนุญาตจะสามารถติดตามได้มากขึ้น

หมายเหตุ: สำหรับการเข้ารหัสของ Let's (ตัวเลือก B) เราจำเป็นต้องมีชื่อโดเมน ถ้าคุณไม่ได้หนึ่งคุณสามารถข้ามขั้นตอนนี้และเพียงแค่ดำเนินการตัวเลือก

ขั้นตอนที่ 1 - การเตรียมระบบ

เริ่มต้นด้วยการหมุน VPS ในโซน Vultr ที่คุณต้องการ 1024 MBVPS จะเพียงพอเช่น Guacamole ไม่ได้เรียกร้องว่า

เปิดใช้งาน IP ส่วนตัว

เริ่มต้นด้วยการเปิดใช้งานเครือข่ายส่วนตัวบน VPS นี่เป็นเอกสารที่ดี

กำลังเตรียมไฟร์วอลล์

เริ่มแรกให้ภาพดูแข็งขึ้นเล็กน้อย และลองตรวจสอบว่าภาพที่เตรียมไว้ufwเปิดใช้งานหรือไม่

root@vultr:~# ufw status
Status: inactive

โดยค่าเริ่มต้นจะปิดใช้งานดังนั้นเราจะต้องเพิ่มกฎเล็กน้อย

  • กฎ 1: ssh: พอร์ต TCP 22
  • กฎที่ 2: http: พอร์ต TCP 8080 (กฎการทดสอบชั่วคราวสำหรับ Guacamole)

เริ่มด้วยการกำหนดค่าพอร์ตเหล่านี้

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)

ขั้นตอนที่ 2 - การติดตั้ง Guacamole

การติดตั้งการอ้างอิงทั้งหมด

ก่อนที่เราจะเริ่มการติดตั้งเราจำเป็นต้องอัพเดตและอัพเกรด repo ด้วยแพ็กเกจเช่นTomcatซึ่งใช้จาวาทำให้มีข้อผิดพลาดที่พบได้ตลอดเวลาและการแก้ไขข้อบกพร่องที่เกี่ยวข้อง โดยทั่วไปเราควรทำสิ่งนี้ก่อนแทนที่จะรีบเข้าไปติดตั้งโดยตรง

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 ต่อได้ Guacamole นั้นส่วนใหญ่มาในรูปแบบของแหล่งที่มาไม่ใช่ไบนารี ก่อนอื่นเราจะย้ายไปที่/tmpโฟลเดอร์เพื่อหลีกเลี่ยงความยุ่งเหยิงในส่วนอื่น ๆ ของดิสก์ จากนั้นดาวน์โหลดซอร์สโค้ดทั้งหมด

ดาวน์โหลดไฟล์ต้นฉบับ / ไบนารีสี่ไฟล์:

  • guacamole-0.9.13-incubating.war: นี่คือเว็บแอปพลิเคชัน WARไฟล์เป็นแพคเกจเว็บซิปให้เว็บไซต์เดียวโฮสต์บนเว็บไซต์ Tomcat
  • 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โฟลเดอร์กันขึ้นมาสองสามไฟล์ซึ่งโปรแกรมเหล่านี้จะถูกใช้โดยแอปพลิเคชั่น 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โฟลเดอร์ที่เราเพิ่งสร้างขึ้นเมื่อสิ่งนี้เสร็จสิ้นให้สร้างลิงก์โลจิคัลในไดเร็กทอรี 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/

การกำหนดค่า Guacamole และ Tomcat

เมื่อเชื่อมต่อและ 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";

ให้สิทธิ์การดำเนินงานให้กับผู้ใช้นี้สำหรับฐานข้อมูลCRUDguacamole_db

GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';

ล้างสิทธิ์และออกจากเชลล์

flush privileges;
exit

เสร็จสิ้นโดยเพิ่ม Guacamole schema ไปยังฐานข้อมูลที่สร้างขึ้นใหม่ของเรา

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เซิร์ฟเวอร์และเริ่มguacddaemon เซิร์ฟเวอร์

service tomcat8 restart
service guacd start

คุณสามารถตรวจสอบโดยใช้คำสั่งสถานะ

service tomcat8 status
service guacd status

ตอนนี้คุณสามารถเรียกดู VPS ของคุณบนพอร์ต 8080

http://<yourpublicip>:8080/guacamole/

ใช้ชื่อผู้ใช้และรหัสผ่านเดียวกันguacadmin guacadminวิธีนี้จะทำให้คุณสามารถเข้าถึงเซิร์ฟเวอร์ Guacamole ที่ว่างเปล่า

คลิกที่มุมขวาบนชื่อผู้ใช้ของคุณและเลือกguacadmin Settingsเมื่อคุณอยู่ในหน้าการตั้งค่าไปที่แท็บและเลือกผู้ใช้Usersguacadmin

ตอนนี้เปลี่ยนรหัสผ่านของคุณไปเป็นอย่างอื่นหรือสร้างผู้ดูแลระบบใหม่และลบเริ่มต้นguacadminหนึ่ง

ขั้นตอนที่ 3 - การปรับแต่งและล้างข้อมูลอย่างละเอียด

เหล่านี้คือขั้นตอนสุดท้าย: ทำความสะอาดหลังจากคุณเสร็จสิ้น

ลบซอร์สโค้ดและไบนารีที่ดาวน์โหลดมาจาก/tmpโฟลเดอร์

rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*

นอกจากนี้ทำให้แอปพลิเคชันเว็บ Guacamole เป็นค่าเริ่มต้น ในระบบนิเวศ Tomcat แอปพลิเคชันที่ได้รับROOTโฟลเดอร์เป็นแอปที่เริ่มต้นโดยค่าเริ่มต้นเมื่อคุณเข้าถึงเว็บไซต์

ลบROOTตัวยึดตำแหน่งเก่า

rm -rf /var/lib/tomcat8/webapps/ROOT

และสร้างลิงก์สัญลักษณ์สำหรับเซิร์ฟเวอร์ guacamole ให้เป็นลิงค์ROOTเดียว

ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT

สิ่งนี้ต้องการการรีสตาร์ท Tomcat

service tomcat8 restart

ขั้นตอนที่ 4 (ตัวเลือก A) - ทำงานบน HTTP เท่านั้น

  • หากคุณจะไม่ใช้ใบรับรอง Let's Encrypt และไม่ใช้ DNS ให้ดำเนินการตามขั้นตอนนี้แล้วไปที่ขั้นตอนที่ 6 โดยตรง - ตัวเลือก A
  • หากคุณต้องการสร้างเว็บไซต์ที่ปลอดภัยยิ่งขึ้นและคุณมี DNS พร้อมแล้วคุณสามารถข้ามไปได้และไปที่ตัวเลือก B (ขั้นตอนที่ 5)

แก้ไขtomcat8/server.xmlไฟล์และเปลี่ยนพอร์ตตัวเชื่อมต่อ

nano /etc/tomcat8/server.xml

Connector portค้นหาสำหรับ

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

และแทนที่ด้วย808080

1024โดยค่าเริ่มต้นคราวไม่อนุญาตให้มีผลผูกพันของพอร์ตด้านล่าง ในการเปิดใช้งานสิ่งนี้เราต้องบอก tomcat8 เพื่อสร้างการเชื่อมโยงที่ผ่านการตรวจสอบสิทธิ์

แก้ไขdefaultไฟล์ของ tomcat8 และยกเลิกหมายเหตุAUTHBINDบรรทัดและใช้ตัวเลือกyes

nano /etc/default/tomcat8

AUTHBIND=yes

ครั้งนี้จะทำ, authbindintall

apt-get install authbind

กำหนดค่าเพื่อให้80Tomcat8 อ้างสิทธิ์ในพอร์ต

touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80

อนุญาตให้พอร์ตผ่านไฟร์วอลล์และลบกฎสำหรับ808080

ufw allow 80/tcp
ufw delete allow 8080/tcp

รีสตาร์ท Tomcat

service tomcat8 restart

นั่นแหล่ะตอนนี้ Guacamole 80ควรจะทำงานบนพอร์ต

ขั้นตอนที่ 5 (ตัวเลือก B) - การตั้งค่า Nginx

การติดตั้งและกำหนดค่าของ Nginx

Tomcat certbotจริงๆไม่ได้เป็นหนึ่งของการใช้งานที่ดีที่สุดและมีประสิทธิภาพมากที่สุดที่จะใช้กับ โชคดีที่ Nginx คือ เราจะทำ proxy Tomcat ให้กับ 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

ปิดการใช้งานพอร์ตการทดสอบและให้การจราจรบนพอร์ต808080

ufw allow 80/tcp
ufw delete allow 8080/tcp

การติดตั้ง Let's Encrypt

ก่อนที่เราจะสามารถใช้งานcertbotได้เราต้องเพิ่มความถูกต้องppaในระบบที่มีแพ็คเกจ certbot ของเรา

add-apt-repository ppa:certbot/certbot

กด " ENTER" เพื่อยอมรับการเปลี่ยนแปลงการกำหนดค่า

อัปเดตaptเพื่อรวบรวมแพ็คเกจใหม่

apt-get update

สุดท้ายให้ติดตั้งโมดูล Nginx เพื่อกำหนดใบรับรอง

apt-get -y install python-certbot-nginx

กำหนดค่า 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โดยอัตโนมัติจะขอให้สิ่งที่จะต้องทำอย่างไรกับ เราจะใช้ตัวเลือกที่ redirect to HTTPS2:

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 เกตเวย์" คุณจะต้องเริ่มต้นใหม่ tomcat8

service tomcat8 restart

ต่ออายุใบรับรองอัตโนมัติ

มาเข้ารหัสใบรับรองต้องการต่ออายุ เราสามารถสร้างงาน cron สำหรับสิ่งนี้ crontabเริ่มต้นโดยการแก้ไข

crontab -e

เพิ่มบรรทัดต่อไปนี้

00 2 * * * /usr/bin/certbot renew --quiet

วิธีนี้จะตรวจสอบเวลา 2:00 น. หากใบรับรองใด ๆ ต้องการการต่ออายุและจะต่ออายุหากพวกเขาทำ

ขั้นตอนที่ 6 - ทดสอบทุกอย่าง

ไปที่เซิร์ฟเวอร์ Guacamole ของคุณ (อย่างใดอย่างหนึ่งhttp://<ip>/หรือhttps://rdp.example.com))

สำหรับการทดสอบนี้คุณจะต้องการอินสแตนซ์อีกสองตัว: Linux VM หนึ่งตัวและ Windows Server 2012 R2 อีกเครื่องหนึ่งที่เปิดใช้งาน IP ส่วนตัวทั้งสองแบบ

การเพิ่มการเชื่อมต่อ Windows RDP

คลิก " 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 ไปยังเครื่องนี้

การเพิ่มการเชื่อมต่อ Linux SSH

กด " 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 สามารถนำเสนอมีวิดีโอที่ยอดเยี่ยมการแสดงทั้งหมดของ possiblities ของแพลตฟอร์มที่นี่



Leave a Comment

ตั้งค่า NFS Share บน Debian

ตั้งค่า NFS Share บน Debian

NFS เป็นระบบไฟล์บนเครือข่ายที่อนุญาตให้คอมพิวเตอร์เข้าถึงไฟล์ผ่านเครือข่ายคอมพิวเตอร์ คู่มือนี้จะอธิบายวิธีการเปิดเผยโฟลเดอร์ผ่าน NF

วิธีการติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Directus 6.4 CMS เป็นระบบการจัดการเนื้อหาแบบไม่มีหัว (Headless Content Management: CMS) ที่ทรงพลังและยืดหยุ่นซึ่งให้ผู้พัฒนา

ติดตั้งเซิร์ฟเวอร์ TeamTalk บน Linux

ติดตั้งเซิร์ฟเวอร์ TeamTalk บน Linux

TeamTalk เป็นระบบการประชุมที่ช่วยให้ผู้ใช้สามารถสนทนาด้วยเสียง / วิดีโอคุณภาพสูงสนทนาผ่านข้อความถ่ายโอนไฟล์และแชร์หน้าจอ มันฉัน

การติดตั้ง Pagekit CMS บน CentOS 7

การติดตั้ง Pagekit CMS บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง Sphinx Search Engine บน CentOS 7

วิธีการติดตั้ง Sphinx Search Engine บน CentOS 7

สฟิงซ์เป็นเครื่องมือค้นหาข้อความแบบโอเพนซอร์ซฟรีและโอเพนซอร์สซึ่งสามารถรวมเข้ากับเว็บแอปพลิเคชั่นต่าง ๆ เพื่อให้ได้คุณภาพที���รวดเร็วและสูง

การใช้คีย์ SSH ของคุณเพื่อเข้าสู่ผู้ใช้ที่ไม่ใช่รูท

การใช้คีย์ SSH ของคุณเพื่อเข้าสู่ผู้ใช้ที่ไม่ใช่รูท

Vultr มีคุณสมบัติที่อนุญาตให้คุณติดตั้งคีย์ SSH ล่วงหน้าเมื่อสร้างอินสแตนซ์ใหม่ สิ่งนี้อนุญาตให้คุณเข้าถึงผู้ใช้รูทเซิร์ฟเวอร์อย่างไรก็ตาม

สร้างเครือข่ายสังคมด้วย Diaspora บน Debian 9

สร้างเครือข่ายสังคมด้วย Diaspora บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Diaspora เป็นเครือข่ายโซเชียลที่ตระหนักถึงความเป็นส่วนตัวและเป็นโอเพ่นซอร์ส ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีการตั้งค่าและกำหนดค่า po Diaspora

การติดตั้ง Fuel CMS บน Debian 9

การติดตั้ง Fuel CMS บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Fuel CMS เป็นระบบจัดการเนื้อหาที่ใช้ CodeIgniter ซอร์สโค้ดของมันถูกโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง Snipe-IT บน Ubuntu 16.10

วิธีการติดตั้ง Snipe-IT บน Ubuntu 16.10

ใช้ระบบที่แตกต่างกันอย่างไร Snipe-IT เป็นเว็บแอปพลิเคชั่นฟรีและโอเพนซอร์สสำหรับการจัดการสินทรัพย์ด้านไอที มันถูกเขียนบนกรอบงาน Laravel 5.2 และการใช้งาน

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร ไทกะเป็นแอปพลิเคชั่นฟรีและโอเพ่นซอร์สสำหรับการจัดการโครงการ ซึ่งแตกต่างจากเครื่องมือการจัดการโครงการอื่น ๆ ไทก้าใช้ส่วนเพิ่ม

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ

วิธีการติดตั้ง GCC บน CentOS 6

วิธีการติดตั้ง GCC บน CentOS 6

CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม

วิธีการติดตั้ง Ranger Terminal File Manager บน Linux

วิธีการติดตั้ง Ranger Terminal File Manager บน Linux

Ranger เป็นตัวจัดการไฟล์แบบบรรทัดคำสั่งที่มีการเชื่อมโยงคีย์ VI มันจัดเตรียมอินเตอร์เฟส curses ที่เรียบง่ายและดีพร้อมมุมมองบนลำดับชั้นไดเร็กทอรี

วิธีการสร้าง Brotli จากซอร์สบน Ubuntu 18.04 LTS

วิธีการสร้าง Brotli จากซอร์สบน Ubuntu 18.04 LTS

ใช้ระบบที่แตกต่างกันอย่างไร Brotli เป็นวิธีการบีบอัดแบบใหม่ที่มีอัตราการบีบอัดที่ดีกว่า GZIP ซอร์สโค้ดของมันถูกโฮสต์แบบสาธารณะบน Githu นี้

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น

วิธีการติดตั้ง Omeka Classic 2.4 CMS บน Ubuntu 16.04 LAMP VPS

วิธีการติดตั้ง Omeka Classic 2.4 CMS บน Ubuntu 16.04 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Omeka Classic 2.4 CMS เป็นแพลตฟอร์มเผยแพร่ดิจิตอลฟรีและโอเพ่นซอร์สและระบบการจัดการเนื้อหา (CMS) สำหรับการแบ่งปันดิจิต้า

ปิดใช้งานหรือ จำกัด การล็อกอินรูทผ่าน SSH บน Linux

ปิดใช้งานหรือ จำกัด การล็อกอินรูทผ่าน SSH บน Linux

การอนุญาตให้ล็อกอินรูทผ่าน SSH นั้นถือว่าเป็นการปฏิบัติด้านความปลอดภัยที่ไม่ดีทั่วทั้งอุตสาหกรรมเทคโนโลยี คุณสามารถดำเนินการที่ละเอียดอ่อนแทน

วิธีการติดตั้ง Moodle บน CentOS 7

วิธีการติดตั้ง Moodle บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย

วิธีการติดตั้ง RabbitMQ บน Ubuntu 16.04

วิธีการติดตั้ง RabbitMQ บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร RabbitMQ เป็นนายหน้าข้อความโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายเขียนในภาษาการเขียนโปรแกรม Erlang เป็นมิดเดิลแวร์ที่มุ่งเน้นข้อความ

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true