Tag: ubuntu 14.04 LTS

  • วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast สำหรับ Lighttpd Web Server (Ubuntu 14.04 LTS)

    “จะทำอย่างไรทีดีกับช่องโหว่ SSL เยอะซะเหลือเกิน ปิดใช้แต่ TLS ก็ได้นิ นั่นสินะ”

    • อย่างที่ข้างบนกล่าวไว้ครับวิธีการปิดช่องโหว่นี้ทำง่าย ๆ แค่ปิด SSLv2 SSLv3 และปิด Cipher Suite ที่ไม่ปลอดภัยเพิ่มเติม
    • ก่อนที่จะทำการปิดช่องโหว่ลองทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server ก็จะได้ดังรูปตัวอย่างนี้ (จะเห็นได้ว่ามีช่องโหว่หลายตัว)

    2015-11-11_134128

    • วิธีการปิด SSL ทำได้โดยแก้ไขไฟล์ /etc/lighttpd/conf-enabled/10-ssl.conf ดังนี้
      sudo vim /etc/lighttpd/conf-enabled/10-ssl.conf
    • ทำการแก้ไขไฟล์โดยทำการเพิ่มท้าย ๆ ไฟล์ ก่อนปิดวงเล็บดังนี้ (อย่าลืม comment cipher-list เดิมทิ้งก่อนนะครับ)
      ssl.use-compression = "disable"
      ssl.use-sslv2 = "disable"
      ssl.use-sslv3 = "disable"
      ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH"
    • จากนั้นทำการ Restart Lighttpd Server ตามปกติ
      sudo /etc/init.d/lighttpd restart
    • ทำการทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server อีกครั้งก็ได้ดังรูป

    2015-11-11_140552

    • เป็นอันว่าเรียบร้อยครับ (เรื่อง Grade ไม่ต้อง Serious นะครับ ผมถือว่าเขียวหมดก็ถือว่าปลอดภัยแล้วครับ
    • สามารถอ่านวิธีแก้ไขช่องโหว่เพิ่มเติมได้ที่นี่ครับ
      http://sysadmin.psu.ac.th/2015/11/10/serversecuritypatch
  • วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast สำหรับ Apache Web Server (Ubuntu 14.04 LTS)

    “จะทำอย่างไรทีดีกับช่องโหว่ SSL เยอะซะเหลือเกิน ปิดใช้แต่ TLS ก็ได้นิ นั่นสินะ”

    • อย่างที่ข้างบนกล่าวไว้ครับวิธีการปิดช่องโหว่นี้ทำง่าย ๆ แค่ปิด SSLv2 SSLv3 และปิด Cipher Suite ที่ไม่ปลอดภัยเพิ่มเติม
    • ก่อนที่จะทำการปิดช่องโหว่ลองทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server ก็จะได้ดังรูปตัวอย่างนี้ (จะเห็นได้ว่ามีช่องโหว่หลายตัว)

    2015-11-11_131008

    • วิธีการปิด SSL ทำได้โดยแก้ไขไฟล์  /etc/apache2/mods-enabled/ssl.conf ดังนี้
      sudo vim /etc/apache2/mods-enabled/ssl.conf
    • ทำการแก้ไขไฟล์ดังนี้ (จะ Comment SSLCipherSuite กับ SSLProtocol แล้วเพิ่มตรงท้าย ๆ ก่อน tag ปิด </IfModule> ก็ได้ครับ)
      SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
      SSLHonorCipherOrder on
      SSLProtocol all -SSLv3 -SSLv2
      SSLCompression off
    • จากนั้นทำการ Restart Apache Server ตามปกติ
      sudo /etc/init.d/apache2 restart
    • ทำการทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server อีกครั้งก็ได้ดังรูป

    2015-11-11_132628

    • เป็นอันว่าเรียบร้อยครับ
    • ถ้าใครต้องการให้ได้คะแนนถึง A+ ให้ทำเพิ่มตามลิงก์ของคุณเกรียงไกรดังนี้ครับ (อ่านเฉพาะส่วนของการปรับ Header นะครับ)
      https://sysadmin.psu.ac.th/2014/12/18/เปลี่ยน-certificate
  • การแก้ไข Certificate สำหรับ Lighttpd Web Server (Ubuntu 14.04 LTS)

    “อยากแก้ Certificate บน Linux Lighttpd Server ทำอย่างไร”

      • ในกรณีที่มีไฟล์ Certificate อยู่แล้วให้ทำการวางไฟล์ Certificate ใหม่ทับแล้วสั่ง Restart Apache Server เป็นอันเสร็จครับ (สำหรับการเปลี่ยน Certificate มีแค่ขั้นตอนนี้จบเลยครับ)
      • ในกรณีที่ยังไม่ได้ติดตั้ง https รวมถึง Certificate ให้ทำการติดตั้ง https ก่อนดังนี้
        sudo lighttpd-enable-mod ssl
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service lighttpd restart
      • ทำการวางไฟล์ Certificate ไว้ในตำแหน่งที่ Lighttpd สามารถเข้าถึงได้ ในกรณีที่ที่นี้ผมจะวางไว้ที่ /etc/cer
      • ในกรณีที่ได้มาเป็นไฟล์ .cer และไฟล์ .key มาต้องการทำไฟล์ .pem สามารถพิมพ์คำสั่งดังนี้
        sudo cat [file_cer_name].key [file_cer_name].crt > [file_cer_name].pem
      • ทำการแก้ไขไฟล์ 10-ssl.conf ดังนี้
        sudo vim /etc/lighttpd/conf-enabled/10-ssl.conf
      • โดยส่วนที่ทำการเปลี่ยนแปลงจะทำการเปลี่ยน 1 บรรทัดดังนี้
        ssl.pemfile = "/etc/cer/[file_cer_name].pem"
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service lighttpd restart

    เป็นอันเสร็จครับ ง่ายมากจริง ๆ ครับ

  • การแก้ไข Certificate สำหรับ Apache Web Server (Ubuntu 14.04 LTS)

    “อยากแก้ Certificate บน Linux Apache Server ทำอย่างไร”

      • ในกรณีที่มีไฟล์ Certificate อยู่แล้วให้ทำการวางไฟล์ Certificate ใหม่ทับแล้วสั่ง Restart Apache Server เป็นอันเสร็จครับ (สำหรับการเปลี่ยน Certificate มีแค่ขั้นตอนนี้จบเลยครับ)
      • ในกรณีที่ยังไม่ได้ติดตั้ง https รวมถึง Certificate ให้ทำการติดตั้ง https ก่อนดังนี้
        sudo a2enmod ssl
        sudo a2ensite default-ssl
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service apache2 restart
        
      • ทำการวางไฟล์ Certificate ไว้ในตำแหน่งที่ Apache สามารถเข้าถึงได้ ในกรณีที่ที่นี้ผมจะวางไว้ที่ /etc/apache2/cer
      • ทำการแก้ไขไฟล์ default-ssl.conf ดังนี้
        sudo vim /etc/apache2/sites-enabled/default-ssl.conf
      • โดยส่วนที่ทำการเปลี่ยนแปลงจะทำการเปลี่ยน 3 บรรทัดดังนี้
        SSLCertificateFile /etc/apache2/cer/[cer-file-name].crt
        SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key
        SSLCertificateChainFile /etc/apache2/cer/[cer-file-name].ca-bundle
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service apache2 restart
        

    เป็นอันเสร็จครับ ง่ายมากจริง ๆ ครับ

  • ติดตั้ง Pykota บน Ubuntu Server 14.04.1 LTS

    1. ติดตั้งโปรแกรมที่จำเป็นก่อน
    sudo apt-get install cups subversion postgresql postgresql-client postgresql-common libX11-dev libxt-dev libxext-dev python-dev python-jaxml python-reportlab python-reportlab-accel python-pygresql python-osd python-egenix-mxdatetime python-imaging python-pysnmp4 python-chardet python-pam python-pysqlite2 python-mysqldb python-ldap apparmor-utils

    2. แก้ config ของ cups
    #sudo vi /etc/cups/cupsd.conf

    ที่ <Location />
    เพิ่ม  allow all

    ที่ <Location /admin>
    เพิ่ม  allow ip_admin

    ที่ <Policy default>
    comment JobPrivateValues default
    เพิ่ม
    JobPrivateValues job-originating-host-name
    ที่ <Policy authenticated>
    comment JobPrivateValues default
    เพิ่ม
    JobPrivateValues job-originating-host-name

    3. แก้ config ของ PostgreSQL
    #sudo pico /etc/postgresql/9.3/main/pg_hba.conf
    เติมข้อความนี้ต่อไปที่ท้ายสุดของแฟ้ม
    host all all 10.0.5.3/24 trust
    ***ให้เปลี่ยนเลข ip จาก 10.0.5.3 เป็นเลข ip ของ server ที่กำลังใช้

    4. ติดตั้งเครื่องพิมพ์
    เปิด Browser ไปที่ url http://ip_server:631
    cups001

    คลิก tab Administration
    cups002

    คลิก Add Printer
    cups003

    เลือก Printer คลิก Continue

    cups004

    ใส่รายละเอียด ของเครื่องพิมพ์
    ติ๊ก เลือก Share This Printe
    คลิก Continue


    cups005

    เลือก Driver ของเครื่องพิมพ์ คลิก Add Printer
    cups006
    คลิก  Set Default Option

    ทดสอบการพิมพ์โดยเลือก Print Test Page
    cups007

    5. ติดตั้งเครื่องพิมพ์บนเครื่อง Client และทดสอบการพิมพ์

    6. ติดตั้งโปรแกรม Pykota
    #cd /usr/share
    #svn co http://svn.pykota.com/pykota/trunk pykota
    #cd pykota
    #python checkdeps.py
    #python setup.py install

    7. สร้างผู้ใช้ pykota ด้วยคำสั่ง
    #sudo adduser –system –group –home /etc/pykota –gecos Pykota pykota
    #sudo adduser lp pykota

    8. จัดการ postgresql ต่อดังนี้
    #sudo su – postgres -c “psql -f /usr/share/pykota/initscripts/postgresql/pykota-postgresql.sql template1”

    9. ทำให้ cups รู้จัก Pykota
    #cd /usr/lib/cups/backend
    #sudo ln -sf /usr/share/pykota/bin/cupspykota
    #sudo chmod -Rf 755 /usr/share/pykota/bin/*
    #sudo chmod -Rf 755 /usr/lib/cups/backend*
    #sudo /etc/init.d/cups restart

    แก้ไขแฟ้ม /etc/cups/printers.conf
    #sudo vi /etc/cups/printers.conf
    <DefaultPrinter abc>
    DeviceURI parallel:/dev/lp0
    ที่บรรทัด DeviceURI parallel:/dev/lp0
    ให้แทรกเพิ่มคำว่า cupspykota:// เข้าไป กลายเป็นดังตัวอย่าง
    DeviceURI cupspykota://parallel:/dev/lp0
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.

    sudo cp /usr/share/pykota/conf/pykota.conf.sample /etc/pykota/pykota.conf
    sudo cp /usr/share/pykota/conf/pykotadmin.conf.sample /etc/pykota/pykotadmin.conf
    sudo chown -Rf pykota.pykota /etc/pykota/

    10. ทำให้ apparmor รู้จัก Pykota
    aa-complain cupsd

    11. แก้ไขแฟ้ม /etc/pykota/pykota.conf
    ไปที่ประมาณบรรทัด 987 แล้วลบบรรทัดข้อความว่า policy: deny ทิ้ง
    แล้วไปที่บรรทัดล่างสุดของแฟ้ม เติมต่อท้ายว่า
    [abc]
    enforcement : strict
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.

    12. เพิ่มเครื่องพิมพ์ให้ Pykota
    #pkprinters –add –charge 1.0 –description “Printer for ITZONE 3nd” abc
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.
    ***charge 1.0 คือคิดค่าพิมพ์หน้าละ 1 บาท

    13. เพิ่ม User ให้ Pykota
    /usr/local/bin/pkusers –add –limitby balance –balance 20 patt.e
    /usr/local/bin/edpykota –add –printer abc patt.e
    ***abc คือชื่อเครื่องพิมพ์ที่ add ไว้ตามข้อ 4.
    ***–add คือเพิ่ม, User
    ***–limitby balance คือ limit การพิมพ์ด้วย balance
    ***–balance 20 คือ กำหนด โควต้าไว้ 20
    ถ้า +20 คือ เพิ่มจากของเดิม 20
    ถ้า -20 คือ ลดจากของเดิม 20
    ถ้า 20 กำหนดให้เป็น 20
    ***patt.e คือ user
    ถ้าไม่กำหนด user คือทำกับทุก user ที่อยู่ใน Pykota

    14. ทดสอบพิมพ์จากเครื่อง Client