ระบบสอบออนไลน์เคลื่อนที่ 3.0 จาก มทส.
SUT-Mobile Online Test System 3.0
(Based on SUTinsServer 5112)

New in version 3.0
สิ่งที่เพิ่มเติมและใหม่ ในเวอร์ชั่น 3.0
5 December 2008

Readme for SUT-MOTS 2.2(15 September 2008)
Readme for SUT-MOTS 2.1(1 May 2008)

Computer to install as an online test server must have RAM at least 512 MB.
คอมพิวเตอร์ที่จะติดตั้งสำหรับการสอบออนไลน์ต้องมี RAM ไม่ต่ำกว่า 512 MB.

New features in this version
ความสามารถใหม่ในเวอร์ชั่นนี้
  1. This version can be installed as a directory on NTFS, FAT32 or Ext3 and does not require to have Windows installed. It also can be installed on a full ext3 partition. If swap partition does not exist, swap file will be created with size of 0.5 GB for directory method and 1GB for full partition method. This work is for anyone who wants to study and lean how to use and setup server and anyone who wants to learn how to use Ubuntu Server as well. It is based on Ubuntu Server 8.10

    เวอร์ชั่นนี้สามารถติดตั้งแบบไดเร็กทรอรี่บนไดรว์ที่เป็น NTFS, FAT32 หรือ Ext3 โดยไม่จำเป็นที่ต้องลงวินโดวส์ก่อน นอกจากนี้ยังสามารถติดตั้งลงบนทั้งไดรว์ โดยไดรว์ที่ถูกเลือกจะถูกฟอร์แมทให้เป็น Ext3 ถ้าไม่มีพาร์ทิชั่น swap จะทำการสร้างไฟล์ swap ขึ้นที่มีขนาด 0.5 GB. สำหรับการลงแบบไดเร็กทรอรี่ และขนาด 1 GB. สำหรับการลงแบบเต็มไดรว์ ผลงานชิ้นนี้เหมาะสำหรับนักเรียน-นักศึกษาที่ศึกษาการใช้งานเซิร์ฟเวอร์ นอกจากนี้ยังเหมาะสำหรับผู้ที่สนใจการใช้งานลินุกซ์เซิร์ฟเวอร์ Ubuntu เพราะเวอร์ชั่นนี้เป็นการพัฒนาต่อยอดมาจาก Ubuntu Server 8.10

  2. Boot loader is grub version 2 and when install will produce two menus to boot to the system.  One is to boot GUI mode and the second to text mode. Booting text mode will use RAM about 200MB less than GUI mode. Please note that due to most of the users have Windows installed and have asked developer to make boot Windows as a defualt, Windows will be a default and will appear as first menu. User may change this by editting boot/grub/grub.cfg.

    บูตโหลดเดอร์ที่ใช้บูตระบบคือ grub เวอร์ชั่น 2 เมื่อติดตั้งเสร็จจะสร้างเมนูบูตระบบใหม่ขึ้นสองเมนูคือ เมนูแรกจะบูตเข้า GUI โหมด ส่วนเมนูที่สองจะบูตเข้าสู่ text โหมด ถ้าเข้า text โหมดจะใช้ RAM น้อยกว่าโหมด GUI ประมาณ 200 MB. เนื่องจากผู้ใช้เกือบทั้งหมด ได้ติดตั้งวินโดวส์อยู่ก่อนแล้ว จึงขอให้ทางทีมงาน กำหนดการบูตเข้าสู่วินโดวส์เป็นค่าโดยปริยาย ดังนั้นในเมนูแรกของการบูต จึงชี้ไปที่วินโดวส์ ท่านสามารถเปลี่ยนการบูตโดยปริยายนี้ได้โดยการเปลี่ยนค่าในไฟล์ boot/grub/grub.cfg

  3. Adding AJAX on the startup page to refresh the list of subjects that are on the test. This will eliminate the page blinking.

    ใช้ AJAX ในหน้าเริ่มต้น เพื่อรีเฟรชรายชื่อวิชาที่เปิดสอบ เป็นผลให้หน้าจอนี้นิ่งไม่ปรากฏการกระพริบอีกต่อไป

  4. Menu [Allow to submit name] and [Allow to display name] on the top of the startup page are provided for trainning purpose to obtain names of the examinees. Now all menus on this section will use AJAX. Eliminate all blinking for refresh.

    เมนู [ให้ป้อนชื่อ] และ [ให้แสดงรายชื่อ] ที่อยู่ด้านบนองหน้าเริ่มต้น มีไว้สำหรับการฝึกอบรม เพื่อการป้อนรายชื่อผู้เข้าสอบ ทุกเมนูในส่วนนี้ได้เปลี่ยนไปใช้ AJAX จึงทำให้ทุกหน้าต่างไม่ปรากฏหน้าจอกระพริบอีกต่อไป

  5. To serve more users on the test, during the installation, You have to choose size of swap file. It can be either 2 or 4 GB. 

    เพื่อรองรับผู้เข้าสอบได้มากขึ้น ในระหว่างการติดตั้ง ผู้ใช้สามารถเลือกขนาดของไฟล์ swap ว่าจะให้มีขนาด 2 หรือ 4 GB.

  6. When an examinee try to do the test for other examinee, a botton to list the names will appear as in the below figure.

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


    detec_cheat.png

Start Using
การเริ่มต้นใช้งาน
  1. To install, harddisk space about 6 GB. are needed. However, it also depends whether swap partition is already available or how much swap file you want to create(2 or 4 GB).

    การติดตั้ง ต้องการเนื้อที่ประมาณ  6 GB ทั้งนี้ขึ้นกับโหมดการติดตั้งและมี swap พาร์ทิชันอยู่ก่อนแล้วหรือไม่ ถ้ายังไม่มี ท่านเลือกให้มีการสร้าง swap ไฟล์โตเท่าใด (2 หรือ 4 GB)

  2. Boot the system with SUT-MOTS 3.0 DVD and then you will come to installation program.

    บูตเครื่องด้วย แผ่น SUT-MOTS 3.0 แล้วเข้าสู่โปรแกรมติดตั้ง

  3. Firstly, you should use menu Check Disk to test data integrity on the disc.

    ก่อนที่จะติดตั้งระบบ ควรใช้เมนู ตรวจสอบแผ่น ก่อน

  4. Now use menu Install SUTinsLinux.

    ใช้เมนู ติตตั้งระบบ

  5. Later, if you do not want to use it any more, you may use menu Delete SUTinsLinux by booting the system again with this disc and harddisk space will be return by deleting SUT-MOTS 3.0 from the harddisk and manage boot loader accordingly.  In case you install as on a full drive, this drive will be formated to ntfs and you will be able to use it again on Windows.

    เมื่อต้องการเลิกใช้งาน สามารถใช้เมนู ถอนระบบ โดยการบูตแผ่นติดตั้งนี้ แล้วโปรแกรมจะทำการลบ SUT-MOTS 3.0 ออกจากฮาร์ดดิสก์ให้พร้อมทั้งจัดการกับตัวบูตโหลดเดอร์ และในกรณีที่ท่านติดตั้งลงบนทั้งไดรว์ โปรแกรมจะ format ไดรว์นั้นกลับคืนให้เป็น ntfs  เพื่อให้สามารถใช้ในวินโดวส์ได้ต่อไป
What you may want to know
สิ่งที่ท่านควรทราบ
  1. Web document is at /var/www/html

    เว็บอยู่ที่ /var/www/html

  2. For export, you may start/stop and any program run with the system startup by in the terminal using command sudo sysv-rc-conf

    สำหรับผู้ชำนาญ การกำหนดให้ start/stop โปรแกรมที่รันอัตโนมัติพร้อมกับการบูตระบบ สามารถกำหนดโดยใช้คำสั่ง sudo sysv-rc-conf ในเทอร์มินัล

  3. When you create the web and want to be accessible, in the terminal use command sudo chmod 777 -R dirname

    เมื่อต้องการเปลี่ยนสิทธิ์ให้โปรแกรมบนเว็บอ่านและเขียนไฟล์ได้ ให้ใช้คำสั่ง sudo chmod 777 -R dirname ในเทอร์มินัล

  4. Configure files for Apache server are /etc/apache2/apahe2.conf and /etc/apache2/sites-available/default

    ไฟล์ config ของ Apache อยู่ที่  /etc/apache2/apahe2.conf และ /etc/apache2/sites-available/default

  5. Configure files for PHP is  /etc/php5/apache2/php.ini

    ไฟล์ config ของ PHP อยู่ที่  /etc/php5/apache2/php.ini

  6. When you want to start/stop/restart any program, just put /etc/init.d/ in front of that command. For example to restart web server, you will use command: sudo /etc/init.d/apache2 restart  However, you may also use command: sudo service apache2 restart

    เมื่อต้องการ start/stop/restart โปรแกรมในขณะนั้นๆ ให้ใส่ /etc/init.d/ เข้าไปข้างหน้าชื่อโปรแกรม เช่นถ้าต้องการ restart โปรแกรมเว็บเซิร์ฟเวอร์ apache ให้ใช้คำสั่ง sudo /etc/init.d/apache2 restart หรืออาจใช้คำสั่ง sudo service apache2 restart ได้เช่นกัน

  7. To start/stop/restart SSH server, use command: sudo service ssh start/stop/restart

    ถ้าต้องการจัดการกับ SSH server ใช้คำสั่ง sudo service ssh start/stop/restart

  8. To start/stop/restart DHCP server, use command: sudo service dhcp3-server start/stop/restart

    เมื่อต้องการ start/stop/restart โปรแกรม DHCP server ให้ใช้คำสั่ง sudo service dhcp3-server start/stop/restart

  9. To start/stop/restart FTP server, use command: sudo service vsftpd start/stop/restart

    ถ้าต้องการจัดการกับ FTP server ใช้คำสั่ง sudo service vsftpd start/stop/restart

  10. To see IP address, use command: ifconfig

    ถ้าต้องการดู IP ของเครื่องใช้คำสั่ง ifconfig

  11. Normal and default user is login user: sut   password: a
    To change password for user sut, follow these steps
    - Open the terminal
    - Run command: sudo su -
    - Give present password for user sut
    - Run command: passwd sut
    - Give new password for user sut 2 times

    ผู้ใช้ที่เป็นค่าปริยายคือ ผู้ใช้ sut ที่มีรหัสผ่านเป็น a
    ถ้าต้องการเปลี่ยนรหัสผ่านของผู้ใช้ sut ให้ทำดังนี้
    - เปิดเทอร์มินัล
    - รันคำสั่ง sudo su -
    - ป้อนรหัสผ่านเดิมของผู้ใช้ sut
    - รันคำสั่ง passwd sut
    - ป้อนรหัสผ่านใหม่ของผู้ใช้ sut สองครั้ง
  12. Also exists user: root  password: meroot
    To change password for user root, follow these steps
    - Open the terminal
    - Run command: sudo su -
    - Give password for user sut
    - Run command: passwd root
    - Give new password for user root 2 times

    ทั้งนี้ ในบางกรณีถ้าต้องการเป็น admin ของระบบอาจใช้ผู้ใช้ root ที่มีรหัสผ่านเป็น meroot
    ถ้าต้องการเปลี่ยนรหัสผ่านของผู้ใช้ root ให้ทำดังนี้
    - เปิดเทอร์มินัล
    - รันคำสั่ง sudo su -
    - ป้อนรหัสผ่านของผู้ใช้ sut
    - รันคำสั่ง passwd root
    - ป้อนรหัสผ่านใหม่ของผู้ใช้ root สองครั้ง

  13. To change keyboard language use Alt+Shift

    การเปลี่ยนภาษาของคีย์บอร์ดใช้ Alt+Shift

  14. Webalizer may be used to display web user statistic. First in the terminal run command: sudo webalizer and then use browser come to http://localhost/webalizer/  Configure file for webalizer is /etc/webalizer/webalizer.conf
    Accessibility is controlled by data in /etc/apache2/sites-available/default

    ใช้ webalizer เพื่อดูสถิติการเข้าชมเว็บ โดยรันคำสั่ง sudo webalizer  ในเทอร์มินัล จากนั้น ใช้ Browser ต่อเข้ามาที่ http://localhost/webalizer/
    ไฟล์ config ของ webalizer คือ /etc/webalizer/webalizer.conf
    ถ้าต้องการเปลี่ยนการเข้าถึง ให้แก้ไขไฟล์ /etc/apache2/sites-available/default

  15. You may access phpmyadmin by using menu on Firefox at Utilities --> phpMyAdmin 2.11.8.1deb1
    Then login as user root with password meroot
    Source program of PhpMyadmin is at /usr/share/phpmyadmin
    Default setup is to allow only from localhost or 127.0.0.1 to access.  If you want to change, edit /etc/apache2/conf.d/phpmyadmin.conf at part similar to  
           ## added by sompan
            Order deny,allow
            Deny from all
            Allow from localhost 127.0.0.0/255.0.0.0 ::1/128
           ## added by sompan
    After editting the configure file, you must restart web server by run command: sudo /etc/init.d/apache2 restart
    To re-setup phpmyadmin via web
    1. set password using command on the terminal
       htpasswd -c /etc/phpmyadmin/htpasswd.setup root
    2. Direct browser to localhost/scripts/setup.php 
       When finished, download config file and put it to /etc/phpmyadmin/config.inc.php

    โปรแกรม phpmyadmin เข้าใช้ได้ทางเมนูของ Firefox ที่ Utilities --> phpMyAdmin 2.11.8.1deb1
    แล้วล็อกอินผู้ใช้ root รหัสผ่าน meroot
    ตัวโปรแกรม PhpMyadmin อยู่ที่ /usr/share/phpmyadmin
    ที่ตั้งไว้คือให้ต่อเข้าใช้งานผ่านทาง localhost หรือ 127.0.0.1 เท่านั้น แต่ถ้าต้องการเปลี่ยนเป็นอย่างอื่นให้ แก้ไขไฟล์ /etc/apache2/conf.d/phpmyadmin.conf ในส่วนดังด้านล่าง
           ## added by sompan
            Order deny,allow
            Deny from all
            Allow from localhost 127.0.0.0/255.0.0.0 ::1/128
           ## added by sompan
    จากนั้นต้องรันโปรแกรมใหม่ด้วยคำสั่ง sudo /etc/init.d/apache2 restart
    ถ้าต้องการ Setup phpmyadmin ผ่านทางหน้าเว็บใหม่อีกให้ทำดังนี้
    1. สามารถเปลี่ยนรหัสผ่านใหม่ โดยรันคำสั่งใน terminal ดังนี้
       htpasswd -c /etc/phpmyadmin/htpasswd.setup root
    2. ใช้ Firefox เปิดไปที่ localhost/scripts/setup.php เมื่อเสร็จให้ ดาวน์โหลดไฟล์ config แล้วนำไปไว้ที่ /etc/phpmyadmin/config.inc.php

  16. Performance Note
    Let understand configure data for the web server in file /etc/apache2/apache2.conf
    In the box is important data. Please read comment lines.

    <IfModule mpm_prefork_module>
        StartServers           5
        MinSpareServers       2
        MaxSpareServers      5
        MaxClients           100
        MaxRequestsPerChild   4000
    </IfModule>

    ### Note by sompan
    #The above setting: MaxClients            100
    #will let 100 users connect to the server at the same time in the duration of 1 sec.
    #It can handle more than 100 users but not at that second.
    #This is under the assumption that your system has swap 2 GB.

    #For swap 4GB, you may increase MaxClients to 200

    #How fast or how is the responsiveness of the server
    #will depend on how much RAM on the system.
    #Normally, with RAM  512, it will good for 40 users at the same time.
    #while RAM 1GB good for 80 users and
    #RAM 2GB is good for 160 user.
    #################


    If you have change data in /etc/apache2/apache2.conf, restart web server by running in the terminal with command:: sudo service apache2 restart
    If you do not know how to do that just reboot the computer.

    ข้อควรทราบเกี่ยวกับประสิทธิภาพการทำงานของเครื่องเซิร์ฟเวอร์
    ค่าคอนฟิกอยู่ในไฟล์ /etc/apache2/apache2.conf
    ซึ่งมีส่วนของข้อมูล ที่เกี่ยวข้องดังในตาราง

    <IfModule mpm_prefork_module>
        StartServers           5
        MinSpareServers       2
        MaxSpareServers      5
        MaxClients           100
        MaxRequestsPerChild   4000
    </IfModule>

    ### Note by sompan
    #The above setting: MaxClients            100
    #will let 100 users connect to the server at the same time in the duration of 1 sec.
    #It can handle more than 100 users but not at the same second.
    #This is under the assumption that your system has swap 2 GB.
    #For swap 4GB, you may increase MaxClients to 200

    #How fast or how is the responsiveness of the server
    #will depend on how much RAM on the system.
    #Normally, with RAM  512, it will good for 40 users at the same time.
    #while RAM 1GB good for 80 users and
    #RAM 2GB is good for 160 user.
    #################


    ใจความสำคัญดังเขียนไว้ในส่วนที่เป็นคอมเม้นท์ในบรรทัด ที่มีเครื่องหมาย # นำหน้าดังนี้
    ในไฟล์คอนฟิก /etc/apache2/apache2.conf ที่ได้กำหนด MaxClients ให้มีค่าเป็น 100 นั้น อยู่บนพื้นฐานที่ว่า มีการสร้าง swap ไฟล์ขนาด 2 GB. ถ้าท่านกำหนดให้สร้าง swap ไฟล์ให้มีขนาด 4 GB. ท่านสามารถเปลี่ยนค่านี้ให้เป็น 200 สมมุติมีการกำหนด MaxClients ให้มีค่าเป็น 100 ผลคือ เครื่องเซิร์ฟเวอร์จะสามารถรองรับผู้ใช้ต่อเข้ายังเครื่องเซิร์ฟเวอร์พร้อมๆ กัน ในวินาทีหนึ่งๆ ได้สูงสุด 100 คน ส่วนการตอบสนองจะเร็วหรือช้านั้น ขึ้นอยู่กับขนาดของ RAM ถ้า RAM ขนาด 512 MB. การตอบสนองจะเร็วสุดสำหรับผู้ใช้ 40 คนแรก, ถ้า RAM ขนาด 1 GB. การตอบสนองจะเร็วสุดสำหรับผู้ใช้ 80 คนแรกและถ้า RAM ขนาด 2 GB. การตอบสนองจะเร็วสุดสำหรับผู้ใช้ 160 คนแรกเป็นต้น อาจจะมีคนสงสัยว่า ถ้ากำหนด MaxClients ให้มีค่าเป็น 100 แล้ว จะใช้สอบ สำหรับการสอบที่มีผู้เข้าสอบ 250 คนหรือมากกว่าได้หรือไม่ คำตอบคือสามารถสอบได้ เพียงแต่ว่าถ้าในวินาทีใด มีจำนวนผู้เข้าสอบต่อเข้ามายังเครื่องเซิร์ฟเวอร์มากกว่า 100 คนพร้อมกัน เช่นสมมุติว่าเป็น 140 คน จะมีเฉพาะ 100 คนเท่านั้นที่ต่อได้ อีก 40 คนต้องรอจนกว่าใน 100 คนแรกนั้น เสร็จไปอย่างน้อย 40 คน

        ถ้ามีการเปลี่ยนแปลงค่าในไฟล์ คอนฟิก /etc/apache2/apache2.conf แล้วให้รันใน terminal ด้วยคำสั่ง: sudo service apache2 restart
        แต่ถ้าใช้คำสั่งไม่เป็น ให้บูตเครื่องใหม่


  17. Importance security concern
    Before using as a online test server, you should check firewall.
    If you want to see whether firewall is working, in terminal run command:
           sudo iptables -nL
    If the result displayed as below, it means firewall is working
    root@localhost:/home/sut# iptables -nL
    Chain INPUT (policy DROP)
    target     prot opt source               destination        
    ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain FORWARD (policy DROP)
    target     prot opt source               destination        
    ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
    ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-forward (1 references)
    target     prot opt source               destination        
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK FORWARD]: '
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-input (1 references)
    target     prot opt source               destination        
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:137
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:138
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:139
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:445
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:67
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:68
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK INPUT]: '
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-forward (1 references)
    target     prot opt source               destination        
    ufw-user-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-input (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
    DROP       all  --  0.0.0.0/0            0.0.0.0/0           ctstate INVALID
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 3
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 4
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 11
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 12
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp spt:67 dpt:68
    ufw-not-local  all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  224.0.0.0/4          0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            224.0.0.0/4        
    ufw-user-input  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-output (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ufw-user-output  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-not-local (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type LOCAL
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type MULTICAST
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK NOT-TO-ME]: '
    DROP       all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-forward (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-input (1 references)
    target     prot opt source               destination        
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-limit (0 references)
    target     prot opt source               destination        
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 0 level 4 prefix `[UFW LIMIT]: '
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

    Chain ufw-user-limit-accept (0 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          


       If firewall is not working, after you setup the server network card or have obtained IP for the server network card, in the terminal
       run command: sudo iptables-restore /etc/rc.local.fw


       ข้อควรทราบเกี่ยวกับการรักษาความปลอดภัย
       ก่อนการใช้งานเครื่องเซิร์ฟเวอร์สำหรับการสอบออนไลน์ ท่านควรตรวจสอบการทำงานของไฟร์วอลล์ก่อน
       ถ้าต้องการทราบว่าไฟร์วอลล์ทำงานแล้วหรือยัง ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล
           sudo iptables -nL
       จากนั้น ถ้าผลที่ได้ในหน้าจอเป็นดังตารางด้านล่าง แสดงว่าไฟร์วอลล์ทำงานแล้ว
    root@localhost:/home/sut# iptables -nL
    Chain INPUT (policy DROP)
    target     prot opt source               destination        
    ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain FORWARD (policy DROP)
    target     prot opt source               destination        
    ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
    ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-forward (1 references)
    target     prot opt source               destination        
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK FORWARD]: '
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-input (1 references)
    target     prot opt source               destination        
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:137
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:138
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:139
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:445
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:67
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:68
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK INPUT]: '
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-forward (1 references)
    target     prot opt source               destination        
    ufw-user-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-input (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
    DROP       all  --  0.0.0.0/0            0.0.0.0/0           ctstate INVALID
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 3
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 4
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 11
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 12
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp spt:67 dpt:68
    ufw-not-local  all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  224.0.0.0/4          0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            224.0.0.0/4        
    ufw-user-input  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-output (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ufw-user-output  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-not-local (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type LOCAL
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type MULTICAST
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK NOT-TO-ME]: '
    DROP       all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-forward (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-input (1 references)
    target     prot opt source               destination        
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-limit (0 references)
    target     prot opt source               destination        
    LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 0 level 4 prefix `[UFW LIMIT]: '
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

    Chain ufw-user-limit-accept (0 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          


    แต่ถ้าพบว่าไฟร์วอลล์ไม่ทำงาน หลังจากการกำหนดไอพีให้กับเครื่องแล้ว หรือหลังจากเครื่องได้ไอพีแล้ว ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล
    sudo iptables-restore /etc/rc.local.fw

  18. Firewall program
    Enable firewall at system boot
    sut@localhost:~$ sudo ufw enable
    Disable firewall at system boot
    sut@localhost:~$ sudo ufw disable
    Adding rules:
    sut@localhost:~$ sudo ufw allow from any to any proto tcp port 53
    sut@localhost:~$ sudo ufw allow from any to any proto udp port 53
    sut@localhost:~$ sudo ufw allow http
    Please read /etc/sudoers

    โปรแกรมไฟร์วอลล์
    กำหนดให้ไฟร์วอลล์ทำงานทุกครั้งพร้อมกับการบูตระบบ ใช้คำสั่ง
    sut@localhost:~$ sudo ufw enable
    กำหนดให้ไฟร์วอลล์ยุติการทำงานทุกครั้งพร้อมกับการบูตระบบ ใช้คำสั่ง
    sut@localhost:~$ sudo ufw disable
    การเพิ่มกฏ
    sut@localhost:~$ sudo ufw allow from any to any proto tcp port 53
    sut@localhost:~$ sudo ufw allow from any to any proto udp port 53
    sut@localhost:~$ sudo ufw allow http
    อ่านไฟล์ /etc/sudoers

ลิขสิทธิ์
เป็นโอเพนซอร์ส พัฒนาต่อยอดและใช้ได้ฟรี ด้วยลิขสิทธิ์ General Public License

ขอขอบคุณ
ติดตามผลงานใหม่ๆ ของเราได้ที่ http://linux.sut.ac.th/ ทางทีมงานขอขอบคุณทุกท่านที่ใช้งาน