shellinabox เป็นโปรแกรมที่ทำให้เราสามารถใช้ shell หรือ terminal ผ่านเว็บได้ ซึ่งจะคล้ายๆ กับ WebShell (WebShell นั้นพัฒนาต่อยอดมาจาก Ajaxterm) แต่ shellinabox เป็นตัวที่อยู่ใน wiki ของ Ubuntu วันนี้เลยขอสอนการติดตั้งตัวนี้ครับ และเขียนไว้เป็นบันทึกกันลืมไปในตัว
ขั้นแรกให้ดาวน์โหลดตัว shellinabox ของ platform ที่เราใช้อยู่ ในหน้า Download นำไปไว้ใน home folder หรือตำแหน่งที่ต้องการ หลังจากนั้นให้พิมพ์
หลังจากนั้นให้เรา start server shellinabox ขึ้นมา ด้วยคำสั่ง
ให้เราเปิด Browser ขึ้นมาแล้วเข้าไปที่ https://<ip เครื่องที่เราติดตั้ง>:4200 ก็จะขึ้นหน้าตาดังรูปครับ
หากใครไม่ได้เซ็ท iptable ไว้อาจจะอันตรายได้ ให้เราแก้ไขไฟล์ /etc/init.d/shellinabox เพิ่มบรรทัดตัวหน้าเข้าไป
หลังจากนั้นเราจะให้ Apache Proxy มายังเจ้า shellinabox
หากใครยังไม่ติดตั้ง apache2 ให้พิมพ์
Restart Apache2
เพียงเท่านี้เราก็สามารถ shell เข้าไปได้ทุกที่ๆ ต้องการได้แล้ว โดยไม่จำเป็นต้องมี SSH client เลย
ขั้นแรกให้ดาวน์โหลดตัว shellinabox ของ platform ที่เราใช้อยู่ ในหน้า Download นำไปไว้ใน home folder หรือตำแหน่งที่ต้องการ หลังจากนั้นให้พิมพ์
sudo dpkg -i shellinabox_2.10-1_i386.debเนื่องจากผมใช้ Ubuntu หารใครใช้ Redhat base ก็ทำตาม RPM เอานะครับ
หลังจากนั้นให้เรา start server shellinabox ขึ้นมา ด้วยคำสั่ง
sudo /etc/init.d/shellinabox startซึ่งเมื่อรันแล้ว shell in a box นี่จะรันอยู่บน port 4200 ด้วย protocol HTTPS ครับ
หรือ
sudo invoke-rc.d shellinabox start
ให้เราเปิด Browser ขึ้นมาแล้วเข้าไปที่ https://<ip เครื่องที่เราติดตั้ง>:4200 ก็จะขึ้นหน้าตาดังรูปครับ
![]() |
หน้า login ที่เข้าจาก Shell In a Box |
หากใครไม่ได้เซ็ท iptable ไว้อาจจะอันตรายได้ ให้เราแก้ไขไฟล์ /etc/init.d/shellinabox เพิ่มบรรทัดตัวหน้าเข้าไป
SHELLINABOX_DATADIR="${SHELLINABOX_DATADIR:-/var/lib/shellinabox}"
SHELLINABOX_PORT="${SHELLINABOX_PORT:-4200}"
SHELLINABOX_USER="${SHELLINABOX_USER:-shellinabox}"
SHELLINABOX_GROUP="${SHELLINABOX_GROUP:-shellinabox}"
SHELLINABOX_ARGS="--localhost-only"
หลังจากนั้นเราจะให้ Apache Proxy มายังเจ้า shellinabox
หากใครยังไม่ติดตั้ง apache2 ให้พิมพ์
sudo apt-get install apache2และให้ทำการเปิด module ssl โดย default ไฟล์ public และ private kety จะถูกสร้างมาให้อยู่แล้ว แต่หากใครยังไม่มีให้พิมพ์
sudo apt-get install ssl-certหลังจากนั้นให้เปิด module ssl ด้วยคำสั่ง
sudo a2enmod sslแล้วทำการ config ไฟล์ /etc/apache2/site-available/default-ssl
sudo vim /etc/apache2/site-available/default-sslเพิ่มบรรทัดด้านล่างนี้ลงไป
<Location /shell>หากใครต้องการให้มีการทำ Basic Authentication ด้วยให้เพิ่มบรรทัดที่เป็นตัวอักษรหนาลงไป
ProxyPass https://localhost:4200/
Order deny,all
allow from 127.0.0.1 #หรือใครต้องการให้เข้าได้ทุก ip ให้เปลี่ยน 127.0.0.1 เป็น all แทน
</Location>
<Location /shell>สร้าง user สำหรับ Basic Authen ด้วยคำสั่ง
ProxyPass https://localhost:4200/
Order deny,all
allow from 127.0.0.1 #เปลี่ยน ip ที่อนุญาตได้ตามต้องการ
AuthUserFile /etc/apache2/.htpasswd
AuthName "Members Only"
AuthType Basic
Require valid-user #หากต้องการให้เข้าได้เฉพาะ user ที่ต้องการให้ใส่ชื่อ user <ชื่อ user> แทนที่ valid-user
</Location>
หลังจากนั้นให้เปิด Proxy module ของ apache2 ด้วยคำสั่งsudo htpasswd /etc/apache2/.htpasswd adminแล้วใส่ password ที่ต้องการลงไป
sudo a2enmod proxy proxy_http
Restart Apache2
sudo /etc/init.d/apache2 restart
![]() |
หลังจาก login เข้าไปเราสามารถทำงานทุกอย่างได้ปกติ |
เพียงเท่านี้เราก็สามารถ shell เข้าไปได้ทุกที่ๆ ต้องการได้แล้ว โดยไม่จำเป็นต้องมี SSH client เลย
ความคิดเห็น
แสดงความคิดเห็น