วันศุกร์ที่ 3 ตุลาคม พ.ศ. 2557

แจ้งเตือนช่องโหว่ BASH (CVE-2014-6271)

BASH หรือ Bourne Again Shell เป็นเชลล์ในระบบปฏิบัติการยูนิกซ์ (UNIX) เป็นที่นิยมใช้อย่างมากใน
ระบบปฏิบัติการลินุกซ์หลากหลายค่ายอีกด้วย ซึ่งในระบบปฏิบัติการลินุกซ์เองยังไม่โปรแกรมจำนวนมากที่อาศัย Bash รันอยู่เบื้องหลัง ใ ห้บริการเชลล์ผ่านการเข้าถึงจากระยะไกล (เช่น ssh แ ละ telnet เป็นต้น) ให้บริการ parser สำหรับสคริปส์ CGI (Apache ห รื อ อื่ นๆ ) หรือแม้กระทั่งการสนับสนุนการเอ็กซิคิวต์คำสั่งอย่างจำกัด (เช่น git หรือ อื่นๆ)  จากรายงานช่องโหว่ CVE-2014-6271 หรือ Shellshock ซึ่งเป็นช่องโหว่ของเชลล์ BASH (โปรแกรมในการรันคำสั่งบนระบบปฏิบัติการลินุกซ์) ส่งผลทำให้ผู้โจมตีสามารถรันโค้ดจากระยะไกลได้ ผ่านสคริปส์ C G I ที่รันอยู่ในApache ที่ติดตั้ง mod_cgi ด้วย ดังนั้นช่องโหว่นี้จึงมีผลกระทบต่อระบบปฏิบัติการลินุกซ์หรือยูนิกซ์ที่ติดตั้งเชลล์ดังกล่าว

วิธีการตรวจสอบ
รันคำสั่ง env x='() { :;}; echo vulnerable' bash -c "echo this is a test" ถ้าหากเซิร์ฟเวอร์มีช่องโหว่
จะแสดงผลดังรูปที่ 1



แต่ถ้าหากไม่พบช่องโหว่ จะแสดงข้อความดังรูปที่ 2


วิธีการแก้ไข

1. สำหรับระบบปฏิบัติการ Ubuntu ให้ใช้คำสั่ง # apt-get install bash ดังรูปที่ 3 ซึ่งทดสอบบนระบบปฏิบัติ
การ Ubuntu 14.04.1 LTS

2. สำหรับระบบปฏิบัติการ CentOS ให้ใช้คำสั่ง # yum install bash -y ดังรูปที่ 4 ซึ่งทดสอบบนระบบปฏิบัติการ CentOS 7.0


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

วันพฤหัสบดีที่ 2 ตุลาคม พ.ศ. 2557

ให้ server linux ส่งเมล ผ่าน php ได้

ใช้คำสั่ง

setsebool -P httpd_can_sendmail=1

เข้าเว็บ ไม่ได้ ติด Forbidden You don't have permission to access

ใช้ คำสั่ง เพื่อดู
ls -laZ /var/www/html/


คำสั่งเปลี่ยน
chcon -R --reference=/var/www/html /var/www/html/Joomla

วันพุธที่ 1 ตุลาคม พ.ศ. 2557

Linux Server (CentOS) : คำสั่งตรวจสอบฮาร์ดแวร์ของเครื่อง !!!

    หลังการติดตั้งลีนุกซ์เสร็จทุกครั้่ง ก่อนจะคอนฟิกแล้วนำไปใช้งาน แนะนำให้ใช้คำสั่งลีนุกซ์ ดูฮาร์ดแวร์ของเครื่อง เพื่อตรวจสอบความถูกต้องว่าเราลงถูกต้อง ครบถ้วนไหม
    ในที่นี้จะแนะนำคำสั่งเพื่อตรวจสอบฮาร์ดแวร์หลัก 3 ส่วนคือ CPU, Memory และ Disk

    CPU

    ใช้คำสั่ง lscpu เพื่อดูข้อมูลโดยรวมของ CPU เครื่องได้
    ตัวอย่างผลลัพธ์ที่ได้
    [root@cent6 ~]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    CPU(s):                4
    Thread(s) per core:    1
    Core(s) per socket:    4
    CPU socket(s):         1
    NUMA node(s):          1
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 15
    Stepping:              11
    CPU MHz:               2659.626
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              4096K

    หรือหากต้องการดูรายละเอียดของ CPU ในแต่ละ core เลย สามารถทำได้โดยใช้คำสั่ง cat อ่านไฟล์ /proc/cpuinfo
    ผลลัพธ์จะแสดงรายละเอียดขึ้นมาทั้งหมด (ในตัวอย่างนี้ตัดมาเฉพาะ 2 core แรก)
    [root@cent6 ~]# cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 15
    model name      : Intel(R) Xeon(R) CPU X5355 @ 2.66GHz
    stepping        : 11
    cpu MHz         : 2659.626
    cache size      : 4096 KB
    physical id     : 0
    siblings        : 4
    core id         : 0
    cpu cores       : 4
    apicid          : 0
    initial apicid  : 0
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 10
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi
    bogomips        : 5319.25
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 38 bits physical, 48 bits virtual
    power management:
    processor       : 1
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 15
    model name      : Intel(R) Xeon(R) CPU X5355  @ 2.66GHz
    stepping        : 11
    cpu MHz         : 2659.626
    cache size      : 4096 KB
    physical id     : 0
    siblings        : 4
    core id         : 1
    cpu cores       : 4
    apicid          : 1
    initial apicid  : 1
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 10
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi
    bogomips        : 5320.01
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 38 bits physical, 48 bits virtual
    power management:
    ...

    Memory

    สำหรับหน่วยความจำ หากต้องการดูแค่ขนาดรวม memory ที่ลีนุกซ์เห็นและใช้งานได้ ให้ใช้คำสั่ง free แล้วดูส่วน total จะเป็นขนาดของหน่วยความจำรวมของเครื่อง ผลลัพธ์ที่แสดงโดยดีฟอลต์จะเป็นหน่วย kB (kilo bytes)
    [root@cent6 ~]# free
                 total       used       free     shared    buffers     cached
    Mem:       1020756     258060     762696          0      20140     106752
    -/+ buffers/cache:     131168     889588
    Swap:      2097144          0    2097144
    เช่น เครื่องนี้มีขนาดหน่วยความจำ (memory) 1020756 kB หรือประมาณ 1 GB
    แต่หากต้องการดูรายละเอียดถึงฮาร์ดแวร์เลยว่า มี memory กี่แผง กี่สล๊อต ต้องใช้คำสั่ง dmidecode ซึ่งค่อนข้างดูยากพอสมควร และแตกต่างกันตามชนิดของฮาร์ดแวร์
    แนะนำให้ดูจาก BIOS หรือพอร์ต Management (out-of-band) ของเครื่องจะง่ายกว่า แล้วใช้คำสั่ง free เพื่อดูผลรวมของ memory ที่ลีนุกซ์เห็น

    Disk

    ใช้คำสั่ง fdisk -l เพื่อดูดิสก์ทั้งหมดที่ต่ออยู่ ผลลัพธ์ที่ได้ จะแสดงชื่อดิสก์ที่ลีนุกซ์ใช้ เช่น /dev/sda ขนาดฮาร์ดดิสก์ (500 GB) และข้อมูลการแบ่งพาร์ทิชั่น
    [root@cent6 ~]# fdisk -l
    Disk /dev/sda: 500 GB, 500007860016 bytes
     255 heads, 63 sectors/track, 60800 cylinders
     Units = cylinders of 16065 * 512 = 8225180 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
    Device Boot      Start         End      Blocks   Id  System
     /dev/sda1   *           1          25      204800   83  Linux
     /dev/sda2              26       12773   102400000   83  Linux
     /dev/sda3           12774       14804    16380000   82  Linux swap / Solaris

    หากต้องการดูรายละเอียดของฮาร์ดดิสก์ เช่นยี่ห้อ รุ่น serial number ต้องใช้คำสั่ง hdparm ออปชั่น ‘-I’ แล้วตามด้วยชื่อดิสก์ที่ต้องการดู
    [root@cent6 ~]# hdparm -I /dev/sda
    /dev/sda:
    ATA device, with non-removable media
     Model Number:       ST3500640A
     Serial Number:      123456789
     Firmware Revision:  3.0
    เช่นเดียวกับการตรวจสอบหน่วยความจำ (memory) ผลลัพธ์ที่ได้ อาจแตกต่างกันไป บางเครื่องหรือดิสก์บางรุ่นก็ดูไม่ได้  ขึ้นอยู่กับชนิดของฮาร์ดแวร์ เพื่อความง่ายแนะนำให้ใช้ BIOS ของเครื่องตรวจสอบรายละเอียด

วันจันทร์ที่ 15 กันยายน พ.ศ. 2557

map driver ไม่ได้

- Disable the firewall
- Ensure that the share works on another comptuer
- Run 'secpol.msc' > Local Policies > Security Options > Network Security: LAN Manager authentication level > Send LM & NTLM - use NTLMv2 if negotiated

วันศุกร์ที่ 9 มีนาคม พ.ศ. 2555

Job Description เจ้าหน้าที่ระบบงานคอมพิวเตอร์

Job Description ขอบเขตงาน :

1.   กำหนดนโยบายการใช้เทคโนโลยีสารสนเทศให้เป็นไปในแนวทางเดียวกับนโยบายการดำเนินงานขององค์กร
2.   กำหนดมาตรฐานงานของระบบคอมพิวเตอร์ทั้งหมด อาทิ ฮาร์ดแวร์ ซอฟท์แวร์ และระบบเครือข่าย ฯลฯ ให้เหมาะสมกับการดำเนินงานขององค์กร
3.   ควบคุมดูแลการพัฒนาแอพพลิเคชั่นและซอฟท์แวร์ ทั้งของบริษัทพัฒนาเองหรือของบุคคลภายนอกให้สามารถตอบสนองความต้องการของผู้ใช้งานของแต่ละหน่วยงาน
4.   ศึกษาวิทยาการใหม่ๆ ทางเทคโนโลยีสารสนเทศ เพื่อนำมาปรับปรุงและประยุกต์ใช้กับเทคโนโลยีสารสนเทศขององค์กร
5.   ให้ความรู้ทางด้านเทคโนโลยีสารสนเทศ และการใช้งานต่างๆ แก่ผู้ใช้คอมพิวเตอร์ภายองค์กร
6.   วางแผนการใช้คอมพิวเตอร์และอุปกรณ์ต่อพ่วงต่างๆ ให้เป็นมาตรฐานเดียวกันทั้งองค์กร
7.   ดูแลจัดซื้ออุปกรณ์คอมพิวเตอร์
8.   ควบคุมดูแลการแก้ไขปัญหาและบำรุงรักษาอุปกรณ์คอมพิวเตอร์ รวมทั้งให้คำแนะนำในด้านการใช้เครื่องคอมพิวเตอร์
9.   ติดตามเทคโนโลยีใหม่ๆ ทางด้านฮาร์ดแวร์เพื่อนำมาประยุกต์ใช้งานในองค์กร
10.   วิเคราะห์ข้อมูลเกี่ยวกับระบวนการทำงานและความต้องการพัฒนาโปรแกรมและซอฟท์แวร์ต่างๆ ของผู้ใช้งานคอมพิวเตอร์
11.   ควบคุมดูแลระบบ วิเคราะห์ระบบ การพัฒนาการทดสอบและประเมินผลซอฟท์แวร์ รวมทั้งจัดเตรียมคู่มือการใช้งานเพื่อตอนสนองความต้องการของผู้ใช้งาน
12.   ให้ความรู้เกี่ยวกับการใช้งานโปรแกรมหรือซอฟท์แวร์ต่างๆ แก่ผู้ใช้งาน
13.   ให้คำแนะนำผู้ใช้งานทางด้านซอฟท์แวร์และฮาร์ดแวร์
14.   ร่วมพิจารณาในการจัดซื้ออุปกรณ์คอมพิวเตอร์และซอฟท์แวร์มาตรฐาน
15.   ดูแลระบบเครือข่ายคอมพิวเตอร์ขององค์กร อาทิ ระบบ LAN อีเมล์ อินเตอร์เน็ต อินทราเน็ต
16.   ดูแลระบบบริหารระบบฐานข้อมูลขององค์กร รวมทั้งสำรองข้อมูลในฐานข้อมูลของระบบงานทั้งหมด
17.   ทดสอบ และติดตั้งโปรแกรมคอมพิวเตอร์และซอฟท์แวร์ต่างๆ ให้แก่ผู้ใช้งาน
18.   จัดเตรียมคู่มือการใช้งานคอมพิวเตอร์
19.   อบรมการใช้งานโปรแกรมและซอฟท์แวร์ให้แก่ผู้ใช้งานคอมพิวเตอร์ รวมทั้งช่วยแก้ไขปัญหาที่เกิดขึ้นระหว่างการใช้งาน
20.   เก็บรวบรวมและวิเคราะห์ความต้องการของผู้ใช้งานคอมพิวเตอร์ เพื่อนำไปใช้ในการวิเคราะห์และออกแบบระบบ
21.   ทดสอบการใช้งานของโปรแกรมคอมพิวเตอร์
22.   เตรียมเอกสารต่างๆ เกี่ยวกับระบบคอมพิวเตอร์ และโปรแกรมต่างๆ ที่ได้รับมอบหมาย
23.   งานอื่นๆ ที่รับมอบหมาย
IPTables Firewall พื้นฐานที่ต้องมี

IPTables Firewall พื้นฐานที่ต้องมี
posted on 26 Jan 2009 22:19 by charin IPTABLES เป็น Firewall พื้นฐานของ Linux เกือบทุก Distro และให้ประสิทธิภาพที่สูงมากในการ Filtering Traffic และ การป้องกันการ Attack ต่างๆ โดยที่จะมีตัวอย่างพอสังเขป ดังนี้
 
เปิดการใช้งาน IP Forward ป้องกัน Syn Flood และ อนุญาติให้มีการใช้งานแบบ Dynamic IP (ต่อเนต DSL ทั่วไป)
[root@localhost]#echo 1 > /proc/sys/net/ipv4/ip_forward 
[root@localhost]#echo 1 > /proc/sys/net/ipv4/tcp_syncookies 
[root@localhost]#echo 1 > /proc/sys/net/ipv4/ip_dynaddr
 
Drop Packet ก่อนหน้านี้ทั้งหมด
[root@localhost]#iptables -F INPUT 
[root@localhost]#iptables -F FORWARD 
[root@localhost]#iptables -F OUTPUT 
[root@localhost]#iptables -P INPUT DROP
[root@localhost]#iptables -P FORWARD DROP 
[root@localhost]#iptables -P OUTPUT ACCEPT 
[root@localhost]#iptables -A INPUT -i lo -j ACCEPT
 
อนุญาติเฉพาะ SSH, SMTP, DNS, Web Services, SSL และ POP3 ให้ผ่านเข้าออก
[root@localhost]#iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp --dport 22 --syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp --dport 25 --syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp --dport 53 --syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p udp --dport 53 --syn -j ACCEPT   
[root@localhost]#iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT 
[root@localhost]#iptables -A INPUT -p tcp --dport 443 --syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp --dport 110 --syn -j ACCEPT
 
ป้องกันการ scan ports
[root@localhost]#iptables -N check-flags
[root@localhost]#iptables -F check-flags
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 5/minute -j LOG --log-level alert --log-prefix "NMAP:"
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL ALL -m limit --limit 5/minute -j LOG --log-level 1 --log-prefix "XMAS:"
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL ALL -j DROP
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit --limit 5/minute -j LOG --log-level 1 --log-prefix "XMAS-PSH:"
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL NONE -m limit --limit 5/minute -j LOG --log-level 1 --log-prefix "NULL_SCAN:"
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags ALL NONE -j DROP
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags SYN,RST SYN,RST -m limit --limit 5/minute -j LOG --log-level 5 --log-prefix "SYN/RST:"
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/minute -j LOG --log-level 5 --log-prefix "SYN/FIN:"
[root@localhost]#iptables -A check-flags -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
 
ป้องกันการ flood SSH (SSH Brute Force)
[root@localhost]#iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
[root@localhost]#iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 600 --hitcount 2 -j DROP
 
ห้าม ping
[root@localhost]#iptables -A INPUT -p ICMP -i eth0 --icmp-type 8 -j DROP
 
ห้าม traceroute
[root@localhost]#iptables -A INPUT -p ICMP -i eth0 --icmp-type 11 -j DROP
 
Protect Syn Flood
[root@localhost]#iptables-N syn-flood
[root@localhost]#iptables -A syn-flood -i ppp0 -m limit --limit 75/s --limit-burst 100 -j RETURN
[root@localhost]#iptables -A syn-flood -j LOG --log-prefix "SYN-FLOOD: "
[root@localhost]#iptables -A syn-flood -j DROP
 
REDIRECT PORT 10080 to 80
[root@localhost]#iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.xxx.xxx:10080
[root@localhost]#iptables -A FORWARD -p tcp -i ppp0 -d 192.168.xxx.xxx --dport 80 -j ACCEPT (192.168.xxx.xxx = ip ของเรา)
[root@localhost]#iptables -A FORWARD -p tcp -i ppp0 -d 192.168.xxx.xxx --sport 80 -j ACCEPT
 
Transparent Proxy
[root@localhost]#iptables -t nat -A PREROUTING -p TCP --dport 80 -j REDIRECT -to-ports 3128 

ที่มา http://www.thaiadmin.org/board/index.php?topic=21468.0;imode 
Tags: firewall, iptables, linux0 CommentsComment