ค้นหาเว็บไซต์

ติดตั้ง Guacamole สำหรับการเข้าถึง Linux/Windows ระยะไกลใน Ubuntu


ในฐานะผู้ดูแลระบบ คุณอาจพบว่าตัวเอง (วันนี้หรือในอนาคต) ทำงานในสภาพแวดล้อมที่มี Windows และ Linux อยู่ร่วมกัน

ไม่ใช่ความลับที่บริษัทใหญ่ๆ บางแห่งต้องการ (หรือต้อง) ใช้บริการการผลิตบางอย่างในกล่อง Windows และบริษัทอื่นๆ ในเซิร์ฟเวอร์ Linux

หากเป็นกรณีของคุณ คุณจะยินดีรับคำแนะนำนี้ด้วยความยินดี (ไม่เช่นนั้น โปรดดำเนินการต่อและอย่างน้อยอย่าลืมเพิ่มลงในบุ๊กมาร์กของคุณ)

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

Guacamole จะให้แผงควบคุมบนเว็บที่จะช่วยให้คุณสามารถสลับจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้อย่างรวดเร็ว ทั้งหมดนี้อยู่ในหน้าต่างเว็บเบราว์เซอร์เดียวกัน

สภาพแวดล้อมการทดสอบ

ในบทความนี้ เราได้ใช้เครื่องดังต่อไปนี้ เราจะติดตั้ง Guacamole ในกล่อง Ubuntu และใช้เพื่อเข้าถึงกล่อง Windows 10 บน Remote Desktop Protocol ( RDP) และกล่อง RHEL โดยใช้โปรโตคอลเครือข่าย SSH:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

ที่กล่าวว่ามาเริ่มกันเลย

การติดตั้งเซิร์ฟเวอร์ Guacamole ใน Ubuntu

1. ก่อนที่จะติดตั้ง guacamole คุณจะต้องดูแลการพึ่งพาของมันก่อน

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. ดาวน์โหลดและแตกไฟล์ tarball ตั้งแต่ต้น กุมภาพันธ์ 2021 Guacamole เวอร์ชันล่าสุดคือ 1.3.0 คุณสามารถดูหน้าดาวน์โหลด Guacamole เพื่อค้นหาเวอร์ชันล่าสุดในเวลาที่กำหนด

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. คอมไพล์ซอฟต์แวร์

cd guacamole-server-1.3.0/
./configure

ตามที่คาดไว้ กำหนดค่า จะตรวจสอบระบบของคุณว่ามีการอ้างอิงที่จำเป็นหรือไม่ และสำหรับโปรโตคอลการสื่อสารที่รองรับ (ดังที่เห็นในช่องสี่เหลี่ยมที่ไฮไลต์ Remote Desktop Protocol (RDP) และ SSH ได้รับการสนับสนุนโดยการอ้างอิงที่ติดตั้งก่อนหน้านี้)

หากทุกอย่างเป็นไปตามที่คาดไว้ คุณจะเห็นสิ่งนี้เมื่อเสร็จสิ้น (มิฉะนั้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งการขึ้นต่อกันที่จำเป็นทั้งหมดแล้ว):

ตามที่บรรทัดสุดท้ายในภาพด้านบนแนะนำ ให้รัน make และ make install เพื่อคอมไพล์โปรแกรม:

make 
sudo make install

4. อัปเดตแคชของไลบรารีที่ติดตั้ง

sudo ldconfig 

และกด Enter

การติดตั้งไคลเอนต์ Guacamole ใน Ubuntu

หลังจากทำตามขั้นตอนข้างต้นเสร็จแล้ว เซิร์ฟเวอร์ guacamole จะถูกติดตั้ง คำแนะนำต่อไปนี้จะช่วยคุณในการตั้งค่า guacd (พร็อกซีดีมอนที่รวม Javascript เข้ากับโปรโตคอลการสื่อสาร เช่น RDP หรือ SSH) และ guacamole.war (ไคลเอ็นต์) ส่วนประกอบที่ประกอบเป็นแอปพลิเคชัน HTML5 สุดท้ายที่จะนำเสนอแก่คุณ

โปรดทราบว่าส่วนประกอบทั้งสอง (เซิร์ฟเวอร์ guacamole และ ไคลเอนต์) จำเป็นต้องติดตั้งบนเครื่องเดียวกัน ไม่จำเป็นต้องติดตั้งสิ่งที่เรียกว่าไคลเอนต์บนเครื่องที่คุณต้องการ เชื่อมต่อ)

หากต้องการดาวน์โหลดไคลเอนต์ ให้ทำตามขั้นตอนเหล่านี้:

5. ดาวน์โหลดไฟล์เก็บถาวรแอปพลิเคชันเว็บและเปลี่ยนชื่อเป็น guacamole.war

หมายเหตุ: ขึ้นอยู่กับการแจกจ่ายของคุณ ไดเร็กทอรีไลบรารี Tomcat อาจอยู่ที่ /var/lib/tomcat

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. สร้างไฟล์การกำหนดค่า (/etc/guacamole/guacamole.properties) ไฟล์นี้มีคำแนะนำสำหรับ Guacamole เพื่อเชื่อมต่อกับ guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

แทรกเนื้อหาต่อไปนี้ใน /etc/guacamole/guacamole.properties โปรดทราบว่าเรากำลังอ้างอิงไฟล์ที่เราจะสร้างในขั้นตอนถัดไป (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

และสร้างลิงก์สัญลักษณ์เพื่อให้ Tomcat สามารถอ่านไฟล์ได้:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole ใช้ user-mapping.xml สร้างไฟล์นี้เพื่อกำหนดว่าผู้ใช้รายใดได้รับอนุญาตให้ตรวจสอบความถูกต้องของอินเทอร์เฟซเว็บ Guacamole (ระหว่าง <authorize>) และการเชื่อมต่อที่สามารถใช้ได้ (ระหว่างแท็ก <connection>):

sudo nano /etc/guacamole/user-mapping.xml

การแมปผู้ใช้ต่อไปนี้ให้สิทธิ์การเข้าถึงอินเทอร์เฟซเว็บ Guacamole แก่ผู้ใช้ tecmint ด้วยรหัสผ่าน tecmint01 จากนั้นภายในการเชื่อมต่อ SSH เราจำเป็นต้องใส่ชื่อผู้ใช้ที่ถูกต้องเพื่อเข้าสู่ระบบในกล่อง RHEL (คุณจะได้รับแจ้งให้ป้อนรหัสผ่านที่เกี่ยวข้องเมื่อ Guacamole เริ่มการเชื่อมต่อ)

ในกรณีของช่อง Windows 10 ไม่จำเป็นต้องทำเช่นนั้น เนื่องจากเราจะพบหน้าจอเข้าสู่ระบบผ่าน RDP

หากต้องการรับแฮช md5 ของรหัสผ่าน tecmint01 ให้พิมพ์คำสั่งต่อไปนี้:

printf '%s' "tecmint01" | md5sum

จากนั้นแทรกเอาต์พุตของคำสั่งในช่องรหัสผ่านภายในแท็ก <authorize>:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

เนื่องจากเป็นกรณีของไฟล์ทั้งหมดที่มีข้อมูลที่ละเอียดอ่อน จึงเป็นสิ่งสำคัญที่จะต้องจำกัดสิทธิ์และเปลี่ยนความเป็นเจ้าของไฟล์ user-mapping.xml:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

เริ่ม Tomcat และ guacd

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

การเปิดตัวเว็บอินเตอร์เฟส Guacamole

8. หากต้องการเข้าถึงอินเทอร์เฟซเว็บ Guacamole ให้เปิดเบราว์เซอร์แล้วชี้ไปที่ http://server:8080/guacamole โดยที่เซิร์ฟเวอร์คือชื่อโฮสต์หรือที่อยู่ IP ของคุณ เซิร์ฟเวอร์ (ในกรณีของเราคือ http://192.168.0.100:8080/guacamole) และเข้าสู่ระบบด้วยข้อมูลประจำตัวที่ให้ไว้ก่อนหน้านี้ (ชื่อผู้ใช้: tecmint รหัสผ่าน: tecmint01):

9. หลังจากคลิกเข้าสู่ระบบ คุณจะถูกนำไปยังอินเทอร์เฟซผู้ดูแลระบบ ซึ่งคุณจะเห็นรายการการเชื่อมต่อที่ผู้ใช้ tecmint สามารถเข้าถึงได้ ตาม user- mapping.xml:

10. คลิกที่ช่อง RHEL 8 เพื่อเข้าสู่ระบบด้วย gacanepa (ชื่อผู้ใช้ที่ระบุในข้อกำหนดการเชื่อมต่อ)

โปรดทราบว่าแหล่งที่มาของการเชื่อมต่อถูกตั้งค่าเป็น 192.168.0.100 (IP ของเซิร์ฟเวอร์ Guacamole) โดยไม่คำนึงถึงที่อยู่ IP ของเครื่องที่คุณใช้ในการเปิดเว็บอินเทอร์เฟซ:

11. หากคุณต้องการปิดการเชื่อมต่อ ให้พิมพ์ exit และกด Enter คุณจะได้รับแจ้งให้กลับสู่อินเทอร์เฟซหลัก (บ้าน) เชื่อมต่อใหม่ หรือออกจากระบบ Guacamole:

12. ถึงเวลาลองใช้การเชื่อมต่อเดสก์ท็อประยะไกลกับ Windows 10:

ยินดีด้วย! ตอนนี้คุณสามารถเข้าถึงเครื่อง Windows 10 และเซิร์ฟเวอร์ RHEL 8 ได้จากภายในเว็บเบราว์เซอร์

สรุป

ในบทความนี้ เราได้อธิบายวิธีการติดตั้งและกำหนดค่า Guacamole เพื่ออนุญาตการเข้าถึงเครื่องระยะไกลผ่าน RDP และ SSH เว็บไซต์อย่างเป็นทางการมีเอกสารมากมายเพื่อช่วยคุณตั้งค่าการเข้าถึงโดยใช้โปรโตคอลอื่น เช่น VNC และกลไกการตรวจสอบสิทธิ์อื่น ๆ เช่น อิง DB...

เช่นเคย อย่าลังเลที่จะส่งข้อความถึงเราหากคุณมีคำถามหรือข้อเสนอแนะเกี่ยวกับบทความนี้ เรายังหวังเป็นอย่างยิ่งว่าจะได้รับฟังเรื่องราวความสำเร็จของคุณ