ข้ามไปที่เนื้อหาหลัก

Shell In a Box - Shell on Web Interface

shellinabox เป็นโปรแกรมที่ทำให้เราสามารถใช้ shell หรือ terminal ผ่านเว็บได้ ซึ่งจะคล้ายๆ กับ WebShell (WebShell นั้นพัฒนาต่อยอดมาจาก Ajaxterm) แต่ shellinabox เป็นตัวที่อยู่ใน wiki ของ Ubuntu วันนี้เลยขอสอนการติดตั้งตัวนี้ครับ และเขียนไว้เป็นบันทึกกันลืมไปในตัว

ขั้นแรกให้ดาวน์โหลดตัว 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
หรือ

sudo invoke-rc.d shellinabox start
ซึ่งเมื่อรันแล้ว shell in a box นี่จะรันอยู่บน port 4200 ด้วย protocol HTTPS ครับ
ให้เราเปิด 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>
    ProxyPass https://localhost:4200/
    Order deny,all
    allow from 127.0.0.1 #หรือใครต้องการให้เข้าได้ทุก ip ให้เปลี่ยน 127.0.0.1 เป็น all แทน
</Location>
หากใครต้องการให้มีการทำ Basic Authentication ด้วยให้เพิ่มบรรทัดที่เป็นตัวอักษรหนาลงไป
<Location /shell>
    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>
สร้าง user สำหรับ Basic Authen ด้วยคำสั่ง
sudo htpasswd /etc/apache2/.htpasswd admin
แล้วใส่ password ที่ต้องการลงไป
หลังจากนั้นให้เปิด Proxy module ของ apache2 ด้วยคำสั่ง
sudo a2enmod proxy proxy_http

Restart Apache2
sudo /etc/init.d/apache2 restart
หลังจาก login เข้าไปเราสามารถทำงานทุกอย่างได้ปกติ

เพียงเท่านี้เราก็สามารถ shell เข้าไปได้ทุกที่ๆ ต้องการได้แล้ว โดยไม่จำเป็นต้องมี SSH client เลย

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

หมดหวังกับรายการทีวีในประเทศไทย

ไม่ได้เขียน Blog มานานสกิลด้านเขียนไม่รู้จะยังดีเหมือนเดิมมั้ยนะครับ (หัวข้อก็จะ clickbait  ตามแนว Content ยุคใหม่) จริงๆ แล้ว คิดจะเขียนมาตั้งนานแล้วแต่ไม่รู้จะเขียนอะไร พอดีวันนี้อ่านเจอโพสต์ของเพื่อนในเฟสบุ๊คที่แชร์มา หัวข้อประมาณว่า ประเทศไทยมีความพยายามทำให้คนโง่ลง คือผมก็ติดตามข่าวมาเรื่อยๆ ช่วงไปอยู่จีนก็ยังติดตามอยู่ แต่มีความรู้สึกว่าข่าวของประเทศเรากับประเทศจีนนี่คือคนละขั้วเลย ที่จีนข่าวส่วนใหญ่จะเป็นข่าวที่ค่อนข้างมีสาระ และไม่มีข่าวงมงาย น่าจะเนื่องมาจากกฎหมายของประเทศไทยที่ค่อนข้างคุมเข้มกับสื่อ ย้อนกลับมาที่ไทย ประเทศเราไม่มีกฎหมายคุมเข้มสื่อเหมือนประเทศจีนขนาดนั้น สื่อประเทศเราค่อนข้างมีอิสระในการนำเสนอ แต่หลังๆ มานี่ผมเห็นแต่ข่าวอาชญากรรม หรือข่าวให้หวยซะส่วนใหญ่ ก็เข้าใจว่าต้องการยอดผู้ชม แต่การที่สื่อนำเสนอแบบนั้นนี่ไม่แน่ใจว่าจะดีต่ออนาคตประเทศชาติหรือไม่นะครับ คนดูข่าวเพื่อจะรอเลขเอาไปซื้อหวย ไม่แน่ใจว่าสนใจอะไรมากกว่าระหว่างหวยกับข่าว ตอนจะมีกฎหมายหวยออนไลน์ก็เห็นออกมาต่อต้านบอกมอมเมาประชาชน แต่สิ่งที่สื่อกำลังนำเสนออยู่นั้นมันย้อนแย้งในตัวเองชอบกล...

Alfresco กับการ Search ภาษาไทย

เนื่องด้วยการ Search ถือเป็นหัวใจสำคัญของงาน ECM เลยก็ว่าได้ แต่ Alfresco ณ ปัจจุบันยังไม่รองรับการ Search ด้วยภาษาไทย แต่อย่างว่า Opensource เมื่อเรารู้ว่ามันใช้ Lucene เป็น engine ในการค้นหาเอกสาร เราก็เลยแงะไปยังตัว lucene เองพบว่ามีคนส่ง Patch ในการตัดคำไทย ไปให้กับ lucene เรียบร้อยแล้ว โดยคุณสัมพันธ์นั่นเอง วิธีการ Config ให้ Alfresco ตัดคำไทยได้ผมสรุปออกมาเป็นขั้นตอนได้ดังนี้ครับ ไปเพิ่ม Locale ให้ Alfresco รู้จัก ใน tomcat/shared/classes/alfresco/extension/web-client-config-custom.xml ตรง tag <languages> เพิ่ม <language locale="th_TH">Thai</language> เข้าไป directory: tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model แล้วทำการ copy file dataTypeAnalyzers_fr.properties หรือไฟล์อื่นก็ได้ เปลี่ยนชื่อเป็น dataTypeAnalyzers_th.properties แล้วเปิดไฟล์ขึ้นมาแก้ไขให้เป็น d_dictionary.datatype.d_text.analyzer=org.apache.lucene.analysis.th.ThaiAnalyzer d_dictionary.datatype.d_content.analyzer=org.apache.lucene.analysis.th.ThaiAnalyzer หลังจากนั้นเมื่อทำการ...

Alfresco ECM

ความแตกต่างของ ECM(Enterprise Content Management) กับ CMS(Content Management System) อาจดูแล้วคล้ายๆ กัน แต่มันแตกต่างกันอย่างไร ตัว CMS นั้นมีไว้สำหรับจัดการ Content ที่เหมาะกับการแสดงให้เห็นแบบ Public ส่วน ECM นั้นจะเน้นการใช้งานเกี่ยวกับการจัดการเอกสารภายในองค์กร โดยที่เราก็สามารถแสดงให้บุคคลนอกเห็นได้ด้วยเช่นกัน Alfresco เป็น ECM ตัวนึงที่ผมกำลังศึกษาอยู่ โดยตัวผู้บริหารนั้นเป็นคนเดียวกับที่เป็นผู้บริหารของ Documentum เพราะฉะนั้นการันตีได้ว่า Alfresco นั้นสามารถใช้งานในองค์กรได้อย่างดี และข้อดีอีกอย่างของ Alfresco คือเป็น Opensource ครับ เนื่องจากเปิด Source ทำให้เราสามารถแก้ไขฟังก์ชั่นการทำงานต่างๆ ได้ดี ตัวระบบของ Alfresco นั้นพัฒนามาจาก Spring และ JSF เป็นหลัง โดยสนับสนุน RESTful หรือ Web Service เป็นส่วนใหญ่ นอกจากนี้เรายังสามารถเขียน JavaScript เพื่อทำงานแบบ RESTful ได้อีกตัว โดยตัว JavaScript นั้นรันอยู่บน Rhino Runtime ซึ่งเป็น Engine ของ JavaScript บนฝั่ง Server การ Config ส่วนใหญ่จะอยู่ในรูปของ XML เพราะเป็นส่วนการประกาศ Bean ของ Spring นั่นเอง ทำให้เราสามารถทำการ Override...