Tag: ubuntu

  • วิธีการตั้งค่า NRPE เพื่อใช้งานกับ NagiosQL บน Ubuntu 14.04 LTS

    สำหรับการใช้งาน NRPE ต้องทำการติดตั้ง Nagios และ NagiosQL มาก่อนดังนี้
    Nagios : http://sysadmin.psu.ac.th/2014/07/23/nagios-ubuntu1404/
    NagiosQL : http://sysadmin.psu.ac.th/2014/07/23/nagiosql-ubuntu/
    Setup NagiosQL : http://sysadmin.psu.ac.th/2014/07/23/setup-nagiosql-ubuntu/

    วิธีการติดตั้ง Nrpe และการตั้งค่าบน NagiosQL

    1) ทำการติดตั้งโปรแกรม nrpe ดังนี้

    sudo apt-get install -y nagios-nrpe-plugin

    2) ทำการ Login เข้า Web NagiosQL โดยจะยกตัวอย่างการเพิ่ม nrpe เกี่ยวกับการ Check Load Linux

    3) ทำการเพิ่ม command ใหม่ดังนี้

    Commands -> Definitions

    2014-07-24_045128

    Command : check_linux_load
    Command line : $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_load
    Command type : check command

    2014-07-24_052707

    4) ทำการเพิ่มข้อมูล Service ให้กับ Host ชื่อ Linux-Server

    Supervision -> Services

    2014-07-23_230036

    5) ทำการตั้งค่า Service โดยคราวนี้จะเลือก Add Service เพิ่มเข้าไปใน Host groups linux-server แทน เมื่อเพิ่มเครื่องเข้าไปใน Host groups จะได้ service นี้ติดไปด้วยเสมอ (เป็นการบังคับว่าต้องลง nrpe agent ไม่งั้นจะฟ้องว่า service down)

    2014-07-24_053553

    6) ทำการเพิ่ม เครื่อง Linux-Server ใน Host Groups -> linux servers โดยให้เอา localhost ออกจาก Host Groups ด้วย (กันความสับสน)

    2014-07-24_055017

    7) จากนั้นทำ Save และทดสอบ เข้าไป Restart Nagios

    Tools -> Nagios control -> Check Written configuration files

    8) หลังจากนั้นทดสอบเข้า web nagios ดูจะพบว่า Service CPU Load เพิ่มขึ้นมาเรียบร้อยแล้ว

    ตอนนี้ยังไม่สามารถใช้งานได้ต้องทำการลง Agent ที่เครื่อง Linux ปลายทางก่อนซึ่งจะอยู่ในหัวข้อต่อไป ในส่วนของ Windows วิธีการจะคล้าย ๆ กัน ต่างกันที่ Command ซึ่งจะเป็นการเรียกเพื่อรันโปรแกรมที่อยู่ปลายทาง ซึ่งแต่ละ Command อาจต้องใส่ argument ซึ่งบาง command สามารถแก้ที่ตัวปลายทางได้เลย ทำให้ command เดียวกันแต่ตั้งค่า warning critical ที่แตกต่างได้ แล้วแต่ปลายทางจะตั้ง

  • การติดตั้งและการตั้งค่าเบื้องต้น NagiosGraph บน Ubuntu 14.04 LTS

    สำหรับการติดตั้ง NagiosGraph ต้องทำการติดตั้ง Nagios และ NagiosQL มาก่อนดังนี้
    Nagios : http://sysadmin.psu.ac.th/2014/07/23/nagios-ubuntu1404/
    NagiosQL : http://sysadmin.psu.ac.th/2014/07/23/nagiosql-ubuntu/
    Setup NagiosQL : http://sysadmin.psu.ac.th/2014/07/23/setup-nagiosql-ubuntu/

    วิธีการติดตั้ง Nagios Graph

    1) ทำการติดตั้งโปรแกรม Perl-GD Perl-RRDs และ Perl-Nagios รวมถึงโปรแกรม rrdtool ดังนี้

    sudo apt-get install -y rrdtool libgd-perl librrds-perl libnagios-object-perl

    2) ทำการ Download  โปรแกรม NagiosGraph ดังนี้

    cd /usr/src
    sudo wget http://downloads.sourceforge.net/project/nagiosgraph/nagiosgraph/1.5.1/nagiosgraph-1.5.1.tar.gz

    3) จากนั้นทำการแตกไฟล์ออกมาด้วยคำสั่ง

    sudo tar -xvzf nagiosgraph-1.5.1.tar.gz

    4) จากนั้นทำการตรวจสอบความพร้อมก่อนติดตั้งด้วยคำสั่ง

    cd nagiosgraph-1.5.1
    sudo ./install.pl --check-prereq

    5) ถ้าไม่มี Error อะไรให้ทำการติดตั้งโดยใช้คำสั่ง

    sudo ./install.pl --install

    6) Enter ไปเรื่อย ๆ ก็จะเสร็จสิ้นกระบวนการติดตั้ง (แต่ยังต้องมีการตั้งค่า nagios ต่อไป)

    วิธีการตั้งค่า Config nagios เพื่อเปิดใช้งานตัวเก็บ Log

    1) ทำการเปิด NagiosQL ขึ้นมา หรือทำการแก้ไขไฟล์ /etc/nagios3/nagios.cfg

    2) ทำการแก้ไขไฟล์ของ nagios ให้มาเรียก configuration ของ nagiosql ดังนี้

    Tools -> Nagios config -> Nagios main configuration file

    3) เพิ่มข้อความบรรทัดสุดท้ายดังนี้

    # process nagios performance data using nagiosgraph
    process_performance_data=1
    service_perfdata_file=/tmp/perfdata.log
    service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$
    service_perfdata_file_mode=a
    service_perfdata_file_processing_interval=30
    service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph

    4) จากนั้นทำการ Save ข้อมูลและสั่ง Restart nagios ดังรูป

    Tools -> Nagios control -> Check Written configuration files

    2014-07-23_214921

    5) เราสามารถตรวจสอบการทำงานได้ดังนี้ (กด Ctrl-C เพื่อยกเลิกการทำงาน)

    sudo tail -f /tmp/perfdata.log

    6) ถ้ามีการเคลื่อนไหวของข้อมูลถือว่าใช้งานได้

    วิธีการตั้งค่า services ผ่าน NagiosQL

    1) ทำการแก้ไขข้อมูล Service Template ดังนี้

    Supervision -> Service templates

    2014-07-24_040615

    2) ทำการแก้ไข Action URL เพื่อให้สามารถคลิกดูกราฟได้จากหน้า Nagios ดังนี้

    Action URL : /nagiosgraph/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$

    2014-07-24_041023

    3) ทำการเพิ่ม command ใหม่ดังนี้

    Commands -> Definitions

    2014-07-24_045128

    Command : process-service-perfdata-for-nagiosgraph
    Command line : /usr/local/nagiosgraph/bin/insert.pl

    2014-07-24_045234

    4) จากนั้นทำการ Save ข้อมูลและสั่ง Restart nagios เหมือนเดิม

    Tools -> Nagios control -> Check Written configuration files

    วิธีการตั้งค่า Apache Site

    1) ทำการ copy site config ดังนี้

    sudo cp /usr/local/nagiosgraph/etc/nagiosgraph-apache.conf /etc/apache2/sites-available/

    2) ทำการ enable site ขึ้นมาดังนี้

    sudo a2ensite nagiosgraph-apache

    3) เนื่องจากเป็น Apache ใหม่จำเป็นต้องเพิ่ม Require all granted ใน Site config ดังนี้

    sudo nano /etc/apache2/sites-available/nagiosgraph-apache.conf
    # enable nagiosgraph CGI scripts
    ScriptAlias /nagiosgraph/cgi-bin "/usr/local/nagiosgraph/cgi"
    <Directory "/usr/local/nagiosgraph/cgi">
     Options ExecCGI
     AllowOverride None
     Order allow,deny
     Allow from all
     Require all granted
    # AuthName "Nagios Access"
    # AuthType Basic
    # AuthUserFile NAGIOS_ETC_DIR/htpasswd.users
    # Require valid-user
    </Directory>
    # enable nagiosgraph CSS and JavaScript
    Alias /nagiosgraph "/usr/local/nagiosgraph/share"
    <Directory "/usr/local/nagiosgraph/share">
     Options None
     AllowOverride None
     Order allow,deny
     Allow from all
      Require all granted
    </Directory>

    3) จากนั้นให้สั่ง Restart Apache ตามปกติ

    sudo service apache2 restart

    4) หลังจากนั้นทดสอบเข้า web nagios ดูจะพบว่ามี icon เพิ่มขึ้นมาดังนี้ (อาจต้องรอสักพัก เพราะการสร้าง graph ใหม่จะมีรอบการสร้าง)

    2014-07-24_050329

    – หน้าตาโปรแกรม

    2014-07-24_050346

    จบแล้วครับสำหรับการติดตั้ง NagiosGraph ดีเลยมีทั้ง Monitor มีทั้ง Graph ในตัว เอาไว้ดูยามฉุกเฉินครับ

  • การติดตั้ง NagiosQL บน Ubuntu 14.04 LTS

    สำหรับการติดตั้ง NagiosQL ต้องการทำการติดตั้ง PHP5 และ Mysql-Server ก่อนครับ

    วิธีการติดตั้ง PHP5, MySQL 5.5

    1) ทำการติดตั้ง Apache ผ่าน apt-get ดังนี้ครับ

    sudo apt-get install -y php5 mysql-server php5-mysql 
    

    2) จะปรากฎข้อความถามว่าจะให้ตั้งรหัสผ่าน root ให้ใส่รหัสผ่านที่ต้องการ

    3) จากนั้นให้สั่ง Restart Apache ตามปกติ

    sudo service apache2 restart

    4) ทำการแก้ไขไฟล์ /etc/php5/apache2/php.ini เพื่อแก้ไข timezone ดังนี้

    sudo nano /etc/php5/apache2/php.ini

    5) ทำการเพิ่มข้อความในส่วนของ [Date] ดังนี้ (ประมาณบรรทัดที่  879)

    [Date]
    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    ;date.timezone =
    date.timezone = Asia/Bangkok

    6) จากนั้นให้สั่ง Restart Apache อีกครั้ง

    sudo service apache2 restart

    ขั้นตอนการเตรียมการติดตั้ง NagiosQL

    1) ทำการ Download โปรแกรม 3 File ดังนี้

    cd /usr/src

    Download Nagios 3.2.0 Main File

    sudo wget http://downloads.sourceforge.net/project/nagiosql/nagiosql/NagiosQL%203.2.0/nagiosql_320.tar.gz

    Nagios 3.2.0 Service Pack 1

    sudo wget http://downloads.sourceforge.net/project/nagiosql/nagiosql/NagiosQL%203.2.0/nagiosql_320_service_pack_1_additional_fixes_only.zip

    Nagios 3.2.0 Service Pack 2

    sudo wget http://downloads.sourceforge.net/project/nagiosql/nagiosql/NagiosQL%203.2.0/nagiosql_320_service_pack_2_additional_fixes_only.zip

    2) ทำการแตกไฟล์ทั้ง 3 ไฟล์ ดังนี้

    sudo tar -xvzf nagiosql_320.tar.gz
    sudo unzip nagiosql_320_service_pack_1_additional_fixes_only.zip
    sudo unzip nagiosql_320_service_pack_2_additional_fixes_only.zip

    3) ทำการสร้าง folder nagiosql และ copy ไฟล์ทั้งหมดไปใส่ดังนี้

    sudo mkdir /var/www/html/nagiosql
    sudo cp -R /usr/src/nagiosql32/* /var/www/html/nagiosql/
    sudo cp -R /usr/src/NagiosQL_3.2.0_SP1/* /var/www/html/nagiosql/
    sudo cp -R /usr/src/NagiosQL_3.2.0_SP2/* /var/www/html/nagiosql/

    4) ทำการสร้าง directory สำหรับ เก็บ config ไฟล์ดังนี้

    sudo mkdir /etc/nagiosql
    sudo mkdir /etc/nagiosql/hosts
    sudo mkdir /etc/nagiosql/services
    sudo mkdir /etc/nagiosql/backup
    sudo mkdir /etc/nagiosql/backup/hosts
    sudo mkdir /etc/nagiosql/backup/services

    5) ทำการแก้ Permission และ Owner ในแต่ละ Folder ดังนี

    Nagios configuration

    sudo chgrp www-data /etc/nagios3
    sudo chgrp -R www-data /var/lib/nagios3
    sudo chgrp -R www-data /var/run/nagios3
    sudo chgrp www-data /etc/nagios3/nagios.cfg 
    sudo chgrp www-data /etc/nagios3/cgi.cfg
    sudo chgrp www-data /etc/nagios3/resource.cfg
    sudo chmod 775 /etc/nagios3
    sudo chmod -R 775 /var/lib/nagios3
    sudo chmod g+s /var/lib/nagios3/rw
    sudo chmod 664 /etc/nagios3/nagios.cfg
    sudo chmod 664 /etc/nagios3/cgi.cfg
    sudo chmod 664 /etc/nagios3/resource.cfg
    sudo usermod -G nagios www-data

    NagiosQL configuration

    sudo chmod 6755 /etc/nagiosql
    sudo chown www-data.nagios /etc/nagiosql
    sudo chmod 6755 /etc/nagiosql/hosts
    sudo chown www-data.nagios /etc/nagiosql/hosts
    sudo chmod 6755 /etc/nagiosql/services
    sudo chown www-data.nagios /etc/nagiosql/services
    

    NagiosQL backup configuration

    sudo chmod 6755 /etc/nagiosql/backup
    sudo chown www-data.nagios /etc/nagiosql/backup
    sudo chmod 6755 /etc/nagiosql/backup/hosts
    sudo chown www-data.nagios /etc/nagiosql/backup/hosts
    sudo chmod 6755 /etc/nagiosql/backup/services
    sudo chown www-data.nagios /etc/nagiosql/backup/services
    

    Nagios Permission

    sudo chgrp www-data /etc/nagios3
    sudo chgrp www-data /etc/nagios3/nagios.cfg
    sudo chgrp www-data /etc/nagios3/cgi.cfg
    sudo chmod 775 /etc/nagios3
    sudo chmod 664 /etc/nagios3/nagios.cfg
    sudo chmod 664 /etc/nagios3/cgi.cfg
    
    

    NagiosQL for setup config

    sudo chown -R www-data:www-data /var/www/html/nagiosql

    6) ทำการติดตั้ง php extension เพิ่มเติมดังนี้

    sudo apt-get install libssh2-1-dev libssh2-php

    การติดตั้ง NagiosQL ผ่าน Web Browser

    1) เริ่มขั้นตอนการติดตั้งผ่าน Web ทำการเปิด URL ดังนี้

    https://localhost/nagiosql

    – กดปุ่ม Start Installation

    2014-07-23_111928

    2) หลังจากนั้นระบบจะตรวจสอบความพร้อม ถ้าระบบพร้อมแล้วจะปรากฎดังภาพ

    2014-07-23_135438

    3) จากนั้นกด Next จะปรากฎหน้าต่างตั้งค่าเกี่ยวกับฐานข้อมูล ให้ใส่ข้อมูลดังภาพ

    2014-07-23_142113

    4) จากนั้นจะปรากฎหน้าจอแสดงผลการติดตั้ง ดังนี้

    2014-07-23_142256

    5) ทำการลบ installation folder ดังนี้

    sudo rm -rf /var/www/html/nagiosql/installation

    6) ทำการกด Finish หรือเข้า URL ใหม่ดังนี้

    https://localhost/nagiosql

    7) ทำการ Login โดยใช้ Username Password ที่ตั้งไว้ดังรูป

    2014-07-23_142756

    สามารถอ่านต่อไปในส่วนของการตั้งค่าให้สามารถควบคุม Nagios ได้ที่นี่
    http://sysadmin.psu.ac.th/2014/07/23/setup-nagiosql-ubuntu

  • การติดตั้งและการตั้งค่าเบื้องต้น Nagios บน Ubuntu 14.04 LTS

    มาเริ่มขั้นตอนการติดตั้งกันเลยครับ โดยก่อนจะติดตั้ง Nagios
    ต้องทำการติดตั้ง Apache2 ก่อนนะครับ

    วิธีการติดตั้ง Apache2 Web Server

    1) ทำการติดตั้ง Apache ผ่าน apt-get ดังนี้ครับ

    sudo apt-get install -y apache2 
    

    2) ติดตั้ง SSL ให้พิมพ์คำสั่งเพื่อเปิด site ดังนี้

    sudo a2enmod ssl
    sudo a2ensite default-ssl

    3) จากนั้นให้สั่ง Restart Apache ตามปกติ

    sudo service apache2 restart

    วิธีการติดตั้ง Nagios

    1) ติดตั้ง Nagios ดังนี้

    sudo apt-get -y install nagios3

    2) จะปรากฎหน้าต่างถามเกี่ยวกับการตั้งค่าส่งเมล์ให้เลือกใช้เป็น Internet with smarthost เพื่อส่งเมล์ผ่าน mail relay ดังรูป
    2014-07-23_054238

    3) จะปรากฎหน้าต่างถามว่าจะใส่ email ผู้ส่งว่าอะไรก็ให้ใส่ไปครับ ไม่ต้องมีอยู่จริงก็ได้ครับ

    2014-07-23_054257

    4) ในหน้าต่างต่อไปจะให้ใส่ว่าจะให้ Relay ไปยัง Mail Server ใดให้ใส่ mail server ที่ต้องการ relay
    2014-07-23_054357

    5) จากนั้นจะให้ตั้งรหัสผ่าน ทำการตั้งรหัสผ่านตามที่ต้องการ (User ตั้งต้นชื่อ nagiosadmin)

    2014-07-23_054430

    6) ทำการตั้งรหัสผ่านเพิ่มเติมได้ที่ไฟล์ /etc/nagios3/htpasswd.users ยกตัวอย่างการเพิ่ม  User ชื่อ workshop (ไม่เกี่ยวข้องกับ user ของระบบใช้เข้า web nagios เท่านั้น) ดังนี้

    sudo htpasswd /etc/nagios3/htpasswd.users workshop

    จะปรากฎข้อความให้ใส่รหัสผ่านดังนี้

    New password: 
    Re-type new password: 
    Adding password for user workshop

    7) สามารถตรวจสอบไฟล์ได้โดยคำสั่ง

    sudo cat /etc/nagios3/htpasswd.users

    8) ทดสอบเปิด Website ดูดังนี้

    http://localhost/nagios3

    9) จะปรากฎหน้าต่างให้กรอก username และ password ให้กรอกไปตามที่ตั้งไว้
    วิธีการ Logout คือปิด browser เท่านั้น

    2014-07-23_060534

    10) จะปรากฎหน้าแรกของ Nagios

    2014-07-23_060555

    วิธีการให้ Redirect ไปยัง SSL อัตโนมัติเพื่อความปลอดภัยของรหัสผ่าน

    1) ทำเปลี่ยนชื่อไฟล์ หน้า default เก่าของ apache จาก index.html เป็น index.html.ori ดังนี้

    sudo mv /var/www/html/index.html /var/www/html/index.html.ori

    2) สร้างไฟล์ /var/www/html/index.html ใหม่ ดังนี้

    sudo nano /var/www/html/index.html
    

    3) เพิ่มข้อความในไฟล์ดังนี้ (วิธีการ save ให้กด Ctrl-X แล้วกด y แล้ว enter) โดยการใช้งานจริงให้แทนที่ localhost ด้วยชื่อเครื่องจริง

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>Auto Redirect to nagios</title>
    <meta http-equiv="REFRESH" content="0;url=https://localhost/nagios3"></HEAD>
    <BODY>
    Please Wait.....
    </BODY>
    </HTML>

    4) ทดสอบเปิด Website อีกรอบดังนี้ จะเห็นได้ว่าระบบจะ redirect ไปยังหน้า nagios3 ที่เป็น ssl อย่างที่ต้องการ

    http://localhost

    วิธีการเพิ่มสิทธิ์ให้กับ User ที่เพิ่มมาใหม่

    1) ทดสอบเข้าเครื่องโดยใช้ User ที่สร้างขึ้นมาใหม่ ลองเข้าดูหน้าต่าง ๆ จะเห็นว่าจะขึ้นบอกว่าไม่สิทธิ์ในการใช้งาน

    2) ทำการแก้ไขไฟล์ /etc/nagios3/cgi.cfg ดังนี้

    sudo nano /etc/nagios3/cgi.cfg

    3) ทำการแก้ไขไฟล์ /etc/nagios3/cgi.cfg ในหัวข้อที่ต้องการจะเปิดสิทธิ์ให้ user นั้น ๆ ยกตัวอย่างกำหนดสิทธิ์ให้ username ชื่อ workshop การเข้าถึงได้ทุกหัวข้อ

    authorized_for_system_information=nagiosadmin,workshop
    authorized_for_configuration_information=nagiosadmin,workshop
    authorized_for_all_services=nagiosadmin,workshop
    authorized_for_all_hosts=nagiosadmin,workshop
    authorized_for_all_service_commands=nagiosadmin,workshop
    authorized_for_all_host_commands=nagiosadmin,workshop
    

    4) จากนั้นให้สั่ง Restart Nagios ดังนี้

    sudo service nagios3 restart

    วิธีการตั้งค่าเสียงเตือน

    1) ทำการแก้ไขไฟล์ /etc/nagios3/cgi.cfg ดังนี้

    sudo nano /etc/nagios3/cgi.cfg

    2) ทำการเปิด comment ดังนี้ (ลบ # ออก) และแก้จาก .wav เป็น .mp3 ดังนี้

    host_unreachable_sound=hostdown.mp3
    host_down_sound=hostdown.mp3
    service_critical_sound=critical.mp3
    service_warning_sound=warning.mp3
    #service_unknown_sound=warning.mp3
    #normal_sound=noproblem.mp3

    3) ทำการโหลดไฟล์เสียงมาเก็บไว้ที่ /usr/share/nagios/htdocs/media ดังนี้

    cd /usr/share/nagios3/htdocs/media
    sudo wget http://ftp.psu.ac.th/pub/psu-monitor/sound.tar.gz
    sudo tar -xvzf sound.tar.gz

    *สามารถโหลดเสียงเพิ่มเติมได้ที่
    http://www.4shared.com/archive/Cr5UBS_W/Nagios-Sound-Pack1.html
    http://www.4shared.com/archive/pJsbVw0v/Nagios-Sound-Pack2.html

    4) จากนั้นให้สั่ง Restart Nagios ดังนี้

    sudo service nagios3 restart
  • WorkShop : Server Monitoring

    “อาว Server ตายตอนไหนไม่เห็นจะรู้เลย โหลดเยอะละม้าง หรือไม่ก็แรมหมด เสถียรไหมไม่รู้สิ อาวเมื่อคืน disk หมดหรอกเหรอ สงสัย Backup อยู่ม้าง”

    ถ้าเรามีระบบ Monitor ที่ดีพบคงสามารถตอบคำถามเหล่านี้ได้ง่ายขึ้น
    และไม่ต้องเจอเหตุการณ์เดิม ๆ ซ้ำ ๆ อีกต่อไป

    มาถึงอีก 1 workshop เคยเขียนไปแล้วรอบหนึ่ง แต่ตอนนั้นสอนแค่ครึ่งวัน ได้แค่ลง Nagiosql ยังไม่ได้ทำอะไรเป็นชิ้นเป็นอันสักเท่าไหร่ รอบนี้เลยจัดเต็ม 2 วัน ถ้ามีเนื้อหาผิดพลาดประการใดแจ้งได้เลยครับ เดี๋ยวจะแก้ไขให้ครับ (งานร้อน ^.^)

    Workshop Outline
    ftp://ftp.psu.ac.th/pub/psu-monitor/workshop-outline.pdf

    VirtualBox Installation

    เครื่องที่ใช้ในการทดสอบ (Oracle VM VirtualBox)
    *แนะนำให้เปิดกับโปรแกรม version ล่าสุด
    Monitor
    ** User : workshop , Password : 123456
    Linux-Server
    ** User : monitor , Password : 123456
    MS-Server
    ** User : administrator, Password : 123456

    รายละเอียด URL
    Monitor
    Linux-Server
    MS-Server
    http://ftp.psu.ac.th/pub/psu-monitor/workshop.ova

    โดยจะแบ่งเป็น 11 ตอนโดยแยกเป็น 11 Blog ดังนี้

    ตอนที่ ชื่อตอน
    ตอนที่ 1 การติดตั้งและการตั้งค่าเบื้องต้น Nagios บน Ubuntu 14.04 LTS
    ตอนที่ 2 การติดตั้ง NagiosQL บน Ubuntu 14.04 LTS
    ตอนที่ 3 วิธีการตั้งค่าและการใช้งาน NagiosQL บน Ubuntu 14.04 LTS
    ตอนที่ 4 การติดตั้งและการตั้งค่าเบื้องต้น NagiosGraph บน Ubuntu 14.04 LTS
    ตอนที่ 5 วิธีการตั้งค่า NRPE เพื่อใช้งานกับ NagiosQL บน Ubuntu 14.04 LTS
    ตอนที่ 6 การติดตั้ง NRPE บน Ubuntu 14.04
    ตอนที่ 7 การติดตั้ง NRPE บน Windows 2012 R2
    ตอนที่ 8 การติดตั้งโปรแกรมและการตั้งค่าเบื้องต้น Cacti บน Ubuntu 14.04 LTS
    ตอนที่ 9 การติดตั้ง snmpd และการตั้งค่า shorewall บน Ubuntu 14.04 LTS
    ตอนที่ 10 การติดตั้ง snmp service และการตั้งค่า firewall บน Windows 2012 R2
    ตอนที่ 11 เรียนรู้วิธีการใช้งาน Cacti เพื่อ Monitor Server
    บทความเพิ่มเติม
    ยังไม่มี

     

  • การติดตั้ง Apache2 + PHP5 บนเครื่อง Ubuntu 14.04 LTS

    มาเริ่มขั้นตอนการติดตั้งกันเลยครับ

    วิธีการติดตั้ง Apache2 Web Server

    1. ทำการติดตั้ง Apache ผ่าน apt-get ดังนี้ครับ

    # sudo apt-get install -y apache2 
    

    2. ให้ทำการ Restart Apache ด้วยคำสั่ง

    # sudo service apache2 restart
    

    จะเห็นได้ว่าจะมี Warning เกี่ยวกับ Domain Name ไม่ต้องตกใจครับ สามารถใช้งานได้ แต่เพราะยังไม่ได้จด Domain ให้กับ IP เครื่องที่ติดตั้ง ทุกครั้งที่ Restart ก็จะมีการฟ้องจนกว่าจะจดครับ

    ถ้าไม่ต้องการให้ขึ้น Warning ดังกล่าว ให้ทำการแก้ไขไฟล์ /etc/apache2/apache2.conf ดังนี้

    – เปิดไฟล์ /etc/apache2/apache2.conf

    sudo nano /etc/apache2/apache2.conf
    

    – เพิ่มข้อความท้ายไฟล์ดังนี้ (วิธีการ save ให้กด Ctrl-X แล้วกด y แล้ว enter)

    ServerName localhost

    3. จากนั้นทำการ Restart Apache อีกครั้งจะไม่พบข้อความ Warning อีกแล้ว

    # sudo service apache2 restart

    4. ทำการทดสอบเข้าใช้งาน HTTP โดยพิมพ์คำสั่ง http://หมายเลขไอพีของเซิร์ฟเวอร์ เช่น

    http://192.168.99.1
    

    5. ในกรณีที่ต้องการติดตั้ง SSL ให้พิมพ์คำสั่งเพื่อเปิด site ดังนี้

    sudo a2enmod ssl
    sudo a2ensite default-ssl

    6. จากนั้นให้สั่ง Restart Apache ตามปกติ

    # sudo service apache2 restart
    

    7. ทำการทดสอบเข้าใช้งาน HTTPS โดยพิมพ์คำสั่ง https://หมายเลขไอพีของเซิร์ฟเวอร์ เช่น

    https://192.168.99.1
    

    8. ในกรณีที่ต้องการยกเลิกการติดตั้ง SSL ให้พิมพ์คำสั่งเพื่อปิด site ดังนี้

    sudo a2dismod ssl
    sudo a2dissite default-ssl

    9. จากนั้นให้สั่ง Restart Apache ตามปกติ

    # sudo service apache2 restart
    

    *หมายเหตุ วิธีการดู IP ให้พิมพ์ดังนี้

    ifconfig

    ให้วิธีการดูให้สังเกตุตามรูปตัวอย่าง

    2014-05-22_102420

    – eth0 เป็น ip จาก nat interface
    – eth1 เป็น ip จาก bridge interface
    – lo เป็น ip จาก loopback interface

    วิธีการเปลี่ยน Apache Server Default Port

    *ยกตัวอย่างการเปลี่ยนจาก port 80->8080

    1. เปิดไฟล์ /etc/apache2/sites-enabled/000-default.conf

    sudo nano /etc/apache2/sites-enabled/000-default.conf
    

    2. แก้ไขข้อความในไฟล์ดังนี้ (วิธีการ save ให้กด Ctrl-X แล้วกด y แล้ว enter)

    <VirtualHost *:8080>

    3. เปิดไฟล์ /etc/apache2/ports.conf

    sudo nano /etc/apache2/ports.conf
    

    2. แก้ไขข้อความในไฟล์ดังนี้ (วิธีการ save ให้กด Ctrl-X แล้วกด y แล้ว enter)

    Listen 8080

    3. จากนั้นให้สั่ง Restart Apache ตามปกติ

    # sudo service apache2 restart
    

    4. ทำการทดสอบเข้าใช้งาน โดยพิมพ์คำสั่ง http://หมายเลขไอพีของเซิร์ฟเวอร์:8080 เช่น

    http://192.168.99.1:8080

    ตั้ง PHP5 เพื่อใช้งานกับ Apache2 Web Server
    1. ทำการติดตั้ง PHP5 ดังนี้

    sudo apt-get install -y php5 libapache2-mod-php5
    

    2. วิธีการสร้างไฟล์ตรวจสอบสามารถทำได้ดังนี้

    – เปิดไฟล์ /var/www/html/info.php

    sudo sh -c 'echo "<?php echo phpinfo(); ?>" > /var/www/html/info.php'
    

    – จากนั้นทำการเปิด web http://หมายเลขไอพีของเซิร์ฟเวอร์/info.php ตัวอย่าง

    http://192.168.99.1/info.php
  • วิธีแก้ไขปัญหาเครื่อง Laptop ไม่สามารถปรับควบคุมแสงสว่าง Brightness Control ใน Ubuntu 14.04

    วิธีแก้ไขปัญหาเครื่อง Laptop ไม่สามารถปรับควบคุมแสงสว่าง Brightness Control ใน Ubuntu 14.04

    ปัญหานี้เกิดกับ Laptop ที่มีการ์ดแสดงผลของยี่ห้อ [Intel Graphics] ซึ่งจะไม่สามารถปรับควบคุมความเข้มความสว่างของจอภาพเพื่อปรับลด/เพิ่ม แสงได้ตามปกติ
    Desktop_Ubuntu

    – ให้ลองใช้คำสั่งตรวจสอบ video/graphic card ของท่านดูก่อนว่าเป็นผลิตภัณฑ์ยี่ห้อใด
    ls /sys/class/back light/
    list graphic card

    ถ้าปรากฎว่าแฟ้มข้อมูลที่แสดงออกมามีแฟ้มชื่อ intel_backlight อาจจะเกิดปัญหากับการปรับลด/เพิ่ม แสงของหน้าจอ ให้แก้ไขดังนี้

    touch /usr/share/X11/xorg.conf.d/20-intel.conf
    touch 20-intel.conf

    sudo vi /usr/share/X11/xorg.conf.d/20-intel.conf
    Selection_005
    จากนั้นพิมพ์ข้อมูลดังนี้

    Section "Device"
            Identifier  "card0"
            Driver      "intel"
            Option      "Backlight"  "intel_backlight"
            BusID       "PCI:0:2:0"
    
    EndSection

    หลังจากพิมพ์ข้อความเสร็จให้ทำการบันทึกแฟ้มดังกล่าว จากนั้นให้ลองล็อกเอาท์ logout หรือทำการ restart เครื่องใหม่ และลองใช้ฟังค์ชั่นคียร์ปรับลด/เพิ่ม แสงของจอภาพ
    เป็นอันเสร็จเรียบร้อย… ^_^

  • เรียนรู้ด้วยตนเอง Linux System Administration I และ II

    linux-tutorial

    ขอแนะนำแหล่งความรู้สำหรับทุกท่านที่ต้องการเรียนรู้ Linux ซึ่งผมและอาจารย์ฉัตรชัย จันทร์พริ้ม ได้รวบรวมเขียนไว้และจัดอบรมไปแล้ว 1 รุ่น ใน Workshop I สอนด้วย Ubuntu 12.04 และใน Workshop II Ubuntu 14.04 ออกมาพอทันให้ได้ใช้กันครับ

    Workshop Linux System Administration I
    (http://opensource.cc.psu.ac.th/WS-LSA1)
    เนื้อหา
    เป็นการให้ความรู้ในการทำหน้าที่ system administrator เพื่อดูแลระบบปฏิบัติการ Linux โดยจะใช้ Ubuntu ซึ่งปัจจุบันมีผู้ใช้งานกันมาก โดยจัดเนื้อหาเป็น 2 ตอน ในตอนแรกนี้จะเป็นความรู้จำเป็นที่จะเป็นพื้นฐานไปสู่การเป็นมืออาชีพที่สามารถดูแล server ด้วยตนเองต่อไปได้อย่างมั่นใจ โดยใช้เวลา 2 วัน

    LSA-I

    Workshop Linux System Administration II
    (http://opensource.cc.psu.ac.th/WS-LSA2)
    เนื้อหา
    เป็นการให้ความรู้ในการทำหน้าที่ system administrator เพื่อดูแลระบบปฏิบัติการ Linux โดยจะใช้ Ubuntu ในตอนที่ 2 นี้จะเป็นความรู้ในการติดตั้ง server การดูแล server การป้องกันและตรวจสอบความปลอดภัย server และ web application ที่ติดตั้งในเครื่อง โดยใช้เวลา 2 วัน

    LSA-II

    วิธีการเรียนใน workshop ผู้เรียนจะได้ฝึกปฏิบัติด้วย Ubuntu server ที่ติดตั้งใน Oracle VM Virtualbox ซึ่งเป็นโปรแกรมในการจำลองเครื่องเสมือนจริง

    สำหรับเพื่อนๆที่ไม่ได้เข้า workshop ลองเข้าไปอ่านกันได้นะครับ และเพื่อนๆที่เข้า workshop ก็ทบทวนได้เมื่อต้องการเรียนรู้ด้วยตนเองเกี่ยวกับ Linux System Administration I และ II

  • วิธีตรวจสอบเว็บไซต์ที่โดน Hack #12

    บทความนี้ จะกล่าวถึง วิธีการปิดช่องโหว่ของ Apache ที่ให้บริการ Web Hosting เลย เผื่อมีผู้ใช้ ติดตั้ง Joomla และมี JCE รุ่นที่มีช่องโหว่ จะได้ไม่สร้างปัญหา และ แนะนำวิธีสำหรับผู้พัฒนาเวปไซต์เองด้วย ที่เปิดให้มีการ Upload ไฟล์โดยผู้ใช้ผ่านทาง Web ด้วย … เพราะหน้าที่นี้ ควรเป็นของ Web Server Administrator ไม่ใช่ของ Web Master หรือ Web Author ครับ

    จากปัญหาช่องโหว่ของ JCE Exploited ของ Joomla ที่อธิบายไว้ใน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #3 ที่อธิบายขั้นตอนการเจาะช่องโหว่, วิธีตรวจสอบเว็บไซต์ที่โดน Hack #4 ซึ่งเป็นวิธีการตรวจสอบค้นหา และทำลาย Backdoor และ วิธีตรวจสอบเว็บไซต์ที่โดน Hack #11  วิธีการ Incremental Backup ซึ่งสามารถช่วยกู้ไฟล์ได้และรู้ว่า มีไฟล์แปลกปลอมอะไรเกิดบ้าง ซึ่งเป็นการแก้ปัญหาปลายเหตุทั้งสิ้น

    ส่วน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #5 กล่าวถึงการตรวจสอบว่า Software ที่ใช้งานอยู่มีช่องโหว่อะไรบ้าง ด้วยการตรวจสอบ CVE เป็นต้น

    สำหรับ JCE Exploited จะพบว่า การวางไฟล์ Backdoor จะเริ่มวางไว้ที่ไดเรคทอรี่ images/stories ที่ แกล้งเป็นไฟล์ .gif แล้วเอาโค๊ด PHP เข้ามาใส่ แล้วเปลี่ยนนามสกุลเป็น .php ภายหลัง ดังนั้น หาก Apache Web Server สามารถ ปิดกั้นตั้งแต่จุดนี้ได้ กล่าวคือ ต่อให้เอาไฟล์มาวางได้ แต่สั่งให้ทำงานไม่ได้ ก็น่าจะปลอดภัย และ หากพัฒนาเวปไซต์เอง หรือ ผู้ใช้ของระบบต้องการให้ Upload ไฟล์ไว้ในไดเรคทอรี่ใดได้ ก็ต้องแจ้งให้ Web Server Administrator รับทราบ และเพิ่มเติมให้ น่าจะทำให้ปลอดภัยมากขึ้นได้

    สมมุติฐานคือ

    1. ติดตั้ง OS และ Apache Web Server ใหม่

    2. ติดตั้ง Joomla ใหม่ หรือ เอา Web Application ที่ปลอดช่องโหว่อื่นๆ/Backdoor มาลง
      โดย Joomla ที่มีที่วางไฟล์ภาพไว้ที่ images/stories ส่วน Web Application อื่นๆ ขอสมมุติว่าตั้งชื่อไดเรคทอรี่ว่า uploads

    สำหรับ Apache2 บน Ubuntu Apache 2.2 นั้น มีโครงสร้างไดเรคทอรี่ดังนี้

    /etc/apache2/
    |-- apache2.conf
    |       `--  ports.conf
    |-- mods-enabled
    |       |-- *.load
    |       `-- *.conf
    |-- conf.d
    |       `-- *
    |-- sites-enabled
            `-- *

    เมื่อ Apache เริ่ม (Start) ก็จะไปอ่าน /etc/apache2/apache2.conf ในนั้น จะกำหนดภาพรวมของระบบ ได้แก่ ใครเป็นคน Start (APACHE_RUN_USER/APACHE_RUN_GROUP), การกำหนดชื่อไฟล์ .htaccess ที่เปิดให้ผู้ใช้ปรับแต่ง Apache ที่แต่ละไดเรคทอรี่ของตนได้, กำหนดว่า จะเรียกใช้ Module อะไรบ้าง โดยการ Include *.load, *.conf  จาก mods-enabled, กำหนดว่า จะเปิดให้มี Virtual Host อะไรบ้างโดยการ Include ไฟล์จาก sites-enabled และ ที่สำคัญ ผู้ดูแลระบบสามารถแยกไฟล์ config ออกเป็นส่วนย่อยๆเป็นไฟล์ โดยการ Include จาก conf.d

    ต่อไป สร้างไฟล์ /etc/apache2/conf.d/jce มีเนื้อหาดังนี้

    <DirectoryMatch ".*/images/stories/.*">
    <FilesMatch "\.php$">
           Order Deny,Allow
           Deny from All
     </FilesMatch>
    </DirectoryMatch>

     และในทำนองเดียวกัน สร้างไฟล์ /etc/apache2/conf.d/uploads มีเนื้อหาดังนี้

    <DirectoryMatch ".*/uploads/.*">
    <FilesMatch "\.php$">
           Order Deny,Allow
           Deny from All
     </FilesMatch>
    </DirectoryMatch>

    ก่อนจะ Restart/Reload Apache ทดสอบสร้างไฟล์ใน

    /var/www/joomla15/images/stories/0day.php
    /var/www/mywebapp/uploads/hack.php

    เมื่อเรียก URL
    http://localhost/joomla15/images/stories/0day.php

    http://localhost/mywebapp/uploads/hack.php

     ผลที่ได้คือ Backdoor หน้าตาประมาณนี้

    แต่พอใช้ Reload Apache ด้วยคำสั่ง

     sudo /etc/init.d/apache2 reload

     แล้วเรียก URL

     http://localhost/joomla15/images/stories/0day.php

     จะได้ผลดังนี้

    เป็นอันว่า แม้ Hacker จะสามารถเอาไฟล์ 0day.php ไปวางใน images/stories ได้ แต่ก็จะไม่สามารถทำงานได้ (อย่างน้อย ก็เรียกใช้ไม่ได้ แต่ผู้ดูแลต้องค้นหาและทำลายเป็นประจำ)

     อธิบายเพิ่มเติมเกี่ยวกับ Apache Configuration เล็กน้อย, การเขียนนั้น ประกอบด้วยสิ่งที่เรียกว่า Directive โดยแบ่งออกเป็น Container และ Directive ทั่วไป

    1. Container Directive: เป็นตัวบอกขอบเขต แบ่งออกเป็น

    1.1 FileSystem: ได้แก่

    1.1.1 <Directory directory-path> … </Directory>
    ตั้งค่ากับเฉพาะ ขอบเขตของ Directory ซึ่ง directory-path จะต้องเขียนตามให้เต็ม Path เช่น
    <Direcotory /var/www>
    ….
    </Directory>

    1.1.2 <DirectoryMatch regexp> … </DirectoryMatch>
    ตั้งค่ากับเฉพาะ ขอบเขตของ Directory ซึ่งสอดคล้องกับ regexp ที่กำหนด เช่น
    <DirecotoryMatch “.*/images/stories/.*”>
    ….
    </DirectoryMatch>

    1.1.3 <Files filename> … </Files>
    ตั้งค่ากับเฉพาะ ชื่อไฟล์ที่ตรงกับ filename ที่กำหนด เช่่น
    <Files “somefile.html”>

    </Files>

    1.1.4 <FilesMatch regexp> … </FilesMatch>
    ตั้งค่ากับเฉพาะ ชื่อไฟล์ที่สอดคล้องกับ regexp ที่กำหนด เช่่น
    <FilesMatch “.*\.php$”>

    </FilesMatch>

    1.2 WebSpace: ได้แก่

    1.2.1 <Location URL-Path> … </Location>
    ตั้งค่ากับเฉพาะ URL ที่ตรงกับ URL-Path เช่น
    <Location /private>

    </Location>
    1.2.2 <LocationMatch regexp> … </LocalMatch>
    ตั้งค่ากับเฉพาะ URL ที่สอดคล้องกับ regexp เช่น
    <LocationMatch “/(extra|special)/data”>

    </LocationMatch>

    2. Other Directive
    ซึ่งมีอยู่มากมาย กรุณาอ่านเพิ่มเติมจาก http://httpd.apache.org/docs/2.2/mod/core.html แต่ในที่นี้ จะขอยกตัวอย่างที่สำคัญ และจำเป็นต้องใช้ ตามตัวอย่างข้างต้น คือ

    Order ordering : อยู่ใน Module mod_access_compat, ค่า ordering ที่สามารถกำหนดได้คือ

    Allow, Deny ซึ่งจะพิจารณาการอนุญาตก่อนปฏิเสธ และ Deny, Allow จะปฏิเสะก่อนแล้วพิจารณาอนุญาต ให้เข้าถึงไฟล์ หรือ ไดเรคทอรี่ต่างๆ

    Deny all|host : อยู่ใน Module mod_access_compat, ค่า all หมายถึง ปฏิเสธทุกการเชื่อมต่อจากทุกๆที่, host สามารถเป็น IP Address หรือ URL ก็ได้

    Allow all|host : อยู่ใน Module mod_access_compat, ค่า all หมายถึง ยอมรับทุกการเชื่อมต่อจากทุกๆที่, host สามารถเป็น IP Address หรือ URL ก็ได้

    ดังนั้น ไฟล์ /etc/apache2/conf.d/jce ซึ่งมีเนื้อหาว่า

    <DirectoryMatch ".*/images/stories/.*>
     <FilesMatch "\.php$">
           Order Deny,Allow
           Deny from All
     </FilesMatch>
    </DirectoryMatch>

    หมายถึง ถ้ามีการเรียก ไฟล์ที่อยู่ใน directory อะไรก็ตามที่มีส่วนหนึ่งของ Path เป็น images/stories ก็จะ ไปดูว่า ชื่อไฟล์ที่เรียกนั้น มีนามสกุลเป็น .php หรือไม่ (.* แปลว่า ตัวอักษรอะไรก็ได้, \. หมายถึงจุด “.” ที่ใช้เชื่อม filename และ extenstion และ $ หมายถึง สิ้นสุดข้อความ) ถ้าเป็นการเรียกไฟล์ .php ใน images/stories ก็จะ ปฏิเสธเสมอ (Deny from ALL)

    แล้ว ทำไมไม่ใช่ .htaccess ?

    จาก Apache Security Tips ไม่แนะนำให้ใช้ .htaccess เพราะปัญหาด้าน Performance เพราะทุกครั้งที่จะเข้าถึงไฟล์ จะต้องพิจารณา .htaccess ทุกครั้ง ในเวปไซต์ที่มีการใช้งานมาก อาจจะทำให้ความเร็วช้าลงได้ อีกประการหนึ่ง .htaccess นั้นอยู่ในไดเรคทอรี่ที่ผู้ใช้สามารถกำหนดสิทธิ์ (Permission) เองได้ หากพลาดกำหนดให้ Web User สามารถเขียนได้ อาจจะทำให้ Hacker เลี่ยงข้อกำหนดต่างๆได้ หาก ที่ Apache Main Configuration ประกาศ AllowOverride เป็น ALL

    ขอให้โชคดี

    Reference

    [1] “Apache HTTP Server Version 2.2 Documentation – Apache HTTP …” 2005. 7 Jan. 2014 <http://httpd.apache.org/docs/2.2/> .

    [2] “Security Tips – Apache HTTP Server.” 2005. 7 Jan. 2014 <http://httpd.apache.org/docs/2.2/misc/security_tips.html>