21 มี.ค. 2553

ติดตั้ง SNMP บน Ubuntu 9.04

ติดตั้ง SNMP deamon อันเดียวจบ

1. ติดตั้ง SNMP deamon

sudo apt-get install snmpd

2. แก้ไข /etc/default/snmpd เล็กน้อย

SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

ลบ 127.0.0.1 ถ้าอยากส่งค่าไปที่ Server อื่น หรือระบุ IP ที่ต้องการส่งค่า MIB ไปให้ ส่วนผมลบออก แล้วไปป้องกันที่ iptables

3. แก้ไข /etc/snmp/snmpd.conf ค้นหาบรรทัดนี้

# sec.name source community
com2sec paranoid default public
#com2sec readonly default public
#com2sec readwrite default private

แล้วแก้ไขเป็น

# sec.name source community
#com2sec paranoid default public
com2sec readonly 192.168.0.0/24 public
#com2sec readwrite default private

4.ทดสอบที่เครื่องอื่น หรือที่เครื่อง NMS ด้วยคำสั่ง

snmpwalk -c public -v 1 127.0.0.1 #$ipของเครื่องsnmp system

ถ้าออกมาแบบนี้ ต้องไปดูที่ /etc/snmp/snmpd.conf (ตรงข้อที่ 3 ด้านบน)หรือที่ Firewall
Timeout: No Response from localhost

หรือแบบนี้แปลได้ว่า สำเร็จ!

sysDescr.0 = STRING: Linux Authen 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17
02:48:10 UTC 2009 i686
sysObjectID.0 = OID: netSnmpAgentOIDs.10
sysUpTimeInstance = Timeticks: (3155401) 8:45:54.01
sysContact.0 =
STRING: Root (configure /etc/snmp/snmpd.local.conf)
sysName.0 = STRING: Authen
sysLocation.0 = STRING: Unknown (configure
/etc/snmp/snmpd.local.conf)
sysORLastChange.0 = Timeticks: (0) 0:00:00.00
sysORID.1 = OID: snmpFrameworkMIBCompliance
sysORID.2 = OID:
snmpMPDCompliance
sysORID.3 = OID: usmMIBCompliance
sysORID.4 = OID:
snmpMIB
sysORID.5 = OID: tcpMIB
sysORID.6 = OID: ip
sysORID.7 = OID:
udpMIB
sysORID.8 = OID: vacmBasicGroup
sysORDescr.1 = STRING: The SNMP
Management Architecture MIB.
sysORDescr.2 = STRING: The MIB for Message
Processing and Dispatching.
sysORDescr.3 = STRING: The management
information definitions for the SNMP User-based Security Model.
sysORDescr.4
= STRING: The MIB module for SNMPv2 entities
sysORDescr.5 = STRING: The MIB
module for managing TCP implementations
sysORDescr.6 = STRING: The MIB
module for managing IP and ICMP implementations
sysORDescr.7 = STRING: The
MIB module for managing UDP implementations
sysORDescr.8 = STRING:
View-based Access Control Model for SNMP.
sysORUpTime.1 = Timeticks: (0)
0:00:00.00
sysORUpTime.2 = Timeticks: (0) 0:00:00.00
sysORUpTime.3 =
Timeticks: (0) 0:00:00.00
sysORUpTime.4 = Timeticks: (0) 0:00:00.00
sysORUpTime.5 = Timeticks: (0) 0:00:00.00
sysORUpTime.6 = Timeticks: (0)
0:00:00.00
sysORUpTime.7 = Timeticks: (0) 0:00:00.00
sysORUpTime.8 =
Timeticks: (0) 0:00:00.00

อ้างอิง http://www.debuntu.org/how-to-monitor-your-servers-with-snmp-and-cacti

20 มี.ค. 2553

ขั้นตอนการทำงาน SNMP (SNMP protocal operations)

SNMP ย่อมาจาก Simple Network Management Protocol ซึ่งเป็นโปรโตคอลที่อยู่ระดับ Application Layer และเป็นส่วนหนึ่งของชุดโปรโตคอล TCP/IP

ในการบริหารและจัดการเครือข่ายต้องใช้อุปกรณ์ต่าง ๆ มีส่วนของการทำงานร่วมกับระบบจัดการเครือข่าย ซึ่งเราเรียกว่า เอเจนต์ (Agent) เอเจนต์เป็นส่วนของซอฟต์แวร์ที่อยู่ในอุปกรณ์ต่าง ๆ ที่เชื่อมอยู่ในเครือข่ายโดยมีคอมพิวเตอร์หลักในระบบหนึ่งเครื่องเป็นตัวจัดการและบริหารเครือข่ายหรือเรียกว่า NMS-Network Management System

การที่ระบบบริหารและจัดการเครือข่ายจะประสบผลสำเร็จ จึงขึ้นกับระบบซอฟต์แวร์ที่ต้องมีอยู่ในตัวอุปกรณ์เครือข่าย (เอเจนต์) ส่วนของเอเจนต์ยังมีการเก็บข้อมูลไว้ภายใน ข้อมูลที่เก็บไว้นี้เรียกว่า MIB - Management Information Base การทำงานของอุปกรณ์ต่าง ๆ บนเครือข่ายจะมีส่วนข้อมูลของตัวเองเก็บไว้ที่ MIB ดังนั้น NMS จึงส่งคำถามมายังเอเจนต์ การส่งคำถามและเอเจนต์ส่งข้อมูลคำตอบนี้ย่อมเป็นไปตามมาตรฐานโปรโตคอลที่กำหนด เช่น ลักษณะคำถามคำตอบของ SNMP ที่สอบถามกันเป็นระบบ และเป็นมาตรฐานสากล



ขั้นตอนการทำงานของ การส่งข้อมูล SNMP

1. NMS (Network Management System)จะสร้างคำร้องขอ ประกอบด้วย ชื่อ MIB ซึ่งเวลาตอบกลับจะส่งค่า ของ MIB นี้กลับมา
2. NMS ส่งคำร้องขอข้อมูล
3. Agent รับคำร้องขอ และนำชื่อ MIB มาตรวจสอบ ถ้าถูกต้อง จะค้นหาข้อมูลของ MIB นั้น
4. Agent สร้างข้อมลการตอบกลับ ทั้งจะส่งข้อมูลที่ NMS ต้องการ หรือแม้แต่เกิด error ก็จะส่งกลับไป เช่น ไม่มีชื่อ MIB นี้ในฐานข้อมูลของ Agent
5. Agent ส่งการตอบรับ ไปที่ NMS
6. NMS รับข้อมูลไปประมวลผลต่อไป



อ้างอิง
http://www.tcpipguide.com/free/t_SNMPProtocolBasicRequestResponseInformationPollUsi.htm
http://web.ku.ac.th/schoolnet/snet1/network/nms.html

18 มี.ค. 2553

Hotkey สำหรับ Microsoft Windows

Windows system key combinations

  • F1: Help
  • CTRL+ESC: Open Start menu
  • ALT+TAB: Switch between open programs
  • ALT+F4: Quit program
  • SHIFT+DELETE: Delete item permanently
  • Windows Logo+L: Lock the computer (without using CTRL+ALT+DELETE)

Windows program key combinations

  • CTRL+C: Copy
  • CTRL+X: Cut
  • CTRL+V: Paste
  • CTRL+Z: Undo
  • CTRL+B: Bold
  • CTRL+U: Underline
  • CTRL+I: Italic

Mouse click/keyboard modifier combinations for shell objects

  • SHIFT+right click: Displays a shortcut menu containing alternative commands
  • SHIFT+double click: Runs the alternate default command (the second item on the menu)
  • ALT+double click: Displays properties
  • SHIFT+DELETE: Deletes an item immediately without placing it in the Recycle Bin

Microsoft Natural Keyboard keys

  • Windows Logo: Start menu
  • Windows Logo+R: Run dialog box
  • Windows Logo+M:Minimize all
  • SHIFT+Windows Logo+M: Undo minimize all Windows
  • Logo+F1:Help
  • Windows Logo+E: Windows Explorer
  • Windows Logo+F: Find files or folders
  • Windows Logo+D: Minimizes all open windows and displays the desktop
  • CTRL+Windows Logo+F: Find computer
  • CTRL+Windows Logo+TAB: Moves focus from Start, to the Quick Launch toolbar, to the system tray (use RIGHT ARROW or LEFT ARROW to move focus to items on the Quick Launch toolbar and the system tray)
  • Windows Logo+TAB: Cycle through taskbar buttons
  • Windows Logo+Break: System Properties dialog box


Microsoft Natural Keyboard with IntelliType software installed

  • Windows Logo+L: Log off Windows
  • Windows Logo+P: Starts Print Manager
  • Windows Logo+C: Opens Control Panel
  • Windows Logo+V: Starts Clipboard
  • Windows Logo+K: Opens Keyboard Properties dialog box
  • Windows Logo+I: Opens Mouse Properties dialog box
  • Windows Logo+A: Starts Accessibility Options (if installed)
  • Windows Logo+SPACEBAR: Displays the list of Microsoft IntelliType shortcut keys
  • Windows Logo+S: Toggles CAPS LOCK on and off

    APPLIES TO
    Windows Server 2008 Datacenter
    Windows Server 2008 Enterprise
    Windows Server 2008 Standard
    Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    Microsoft Windows Server 2003, Enterprise x64 Edition
    Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
    Microsoft Windows Server 2003, Standard x64 Edition
    Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    Microsoft Windows 2000 Server
    Microsoft Windows Millennium Edition
    Microsoft Windows 98 Second Edition
    Microsoft Windows 98 Standard Edition
    Microsoft Windows 95
    Windows Vista Business
    Windows Vista Enterprise
    Windows Vista Home Basic
    Windows Vista Home Premium
    Windows Vista Starter
    Windows Vista Ultimate
    Microsoft Windows XP Home Edition
    Microsoft Windows XP Professional
    Microsoft Windows XP Starter Edition
    Microsoft Windows XP Tablet PC Edition

5 มี.ค. 2553

Hardening your Apache and PHP on Ubuntu

ผมเขียนบันทึกนี้ หลังจาก server ผมมีคนพยายามเข้ามา hack จนเครื่องผมค้างไปเลย เป็นสิ่งที่ดีคับ ทำให้ผมมีความรู้ และเข้าใจมากขึ้น ผมหาอ่านบทความ และก็ได้แปลมา ขอนอกเรื่องครับ ผมเขียน blog ที่อุณหภูมิ 31 องศาเซลเซียส อ้าวได้ใจมากคับ

หลังจากติดตั้ง LAMP แล้ว สิ่งที่อย่างแรกคือ การป้องกันการโจมตี
Step 1: ป้องกันการแสดงผลแบบ list view

sudo nano /etc/apache2/sites-available/default


เพิ่มเครื่องหมายลบ - หน้า Index ตามแบบข้างล่าง

<Directory /var/www/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Step 2 :

สำหรับ Apache ตั้งแต่ version 1.3.34 และ 2.0.55 ขึ้นไปนะครับ ทำได้โดยเพิ่ม

TraceEnable Off

ใน config ของ apache ซึ่งจะทำให้ปิดการใช้งาน Trace ได้

ถ้าเป็นรุ่นเก่ากว่านี้หน่อยต้องเปิดใช้ rewrite module ของ Apache.

sudo a2enmod rewrite


เพื่อหลีกเลี่ยงการโจมตีแบบ Cross-Site-Tracing ให้เพิ่ม 3 บรรทัดนี้ ใน " <VirtualHost *:80>" :

    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^(TRACETRACK)
    RewriteRule .* - [F]

Step 3 :

เพื่อป้องการทำ HTTP DoS, DDoS หรือ Brute Force attack, ต้องติดตั้ง Moduleนี้

sudo apt-get install libapache2-mod-evasive


Step 4 :

To screen out bad URL requests, such as /etc/shadow or MySQL injection and etc. You should install mod_security module. If you installed a amd64 (64-bit) version of Ubuntu Server, please replaced i386 with amd64 for the following commands.


wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb

wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb

sudo dpkg -i libapache-mod-security_2.5.9-1_i386.deb mod-security-common_2.5.9-1_all.deb


Step 5 :

ไม่อนุญาตให้ print the error pages

sudo nano /etc/apache2/conf.d/security


แก้ไขตามนี้

ServerToken Prod
ServerSignature Off

Step 6 :

มาถึงคิวของ PHP

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


แก้ไขให้เป็นแบบข้างล่างนี้

display_errors = Off
log_errors = On
allow_url_fopen = Off
expose_php = Off
enable_dl = Off
disable_functions = system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, escapeshellarg, escapeshellcmd

Step 7 :

ขั้นตอนสุดท้าย

sudo /etc/init.d/apache2 restart


Step 8 :

sudo nano /etc/sysctl.conf


เอา # ออก

#Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1

สั่งให้ทำงานเลย

sudo /sbin/sysctl -p


ที่มา :
http://secure-ubuntu-server.blogspot.com/2009/07/howto-hardening-your-apache-and-php-on_07.html
http://www.mr-san.com/cross-site-tracing-attack-via-http-track-trace-method/

3 มี.ค. 2553

Hardening the Linux server

Server ไม่ว่าจะสร้างมาเพื่อทดสอบ หรือว่าใช้งานจริงก็ล้วนแต่เป็นเป้าหมายของการถูกโจมตีทั้งนั้น ดังนั้นเพื่อเป็นการอุดช่องโหว่ เราจึงต้องเรียนรู้การใช้ SSH, ปรับแต่ง Firewall, และติดตั้ง Intrusion detecttion เพื่อแจ้งเตือนเวลาที่มีใครมาบุกรุกกล่องดวงใจ(Linux box)ของเรา

วัตถุประสงค์:
เรียนรู้ระบบความปลอดภัยเบื้องต้นสำหรับผู้ดูแลระบบ รวมไปถึง การใช้ SSH login, การใช้ Firewall และวิธีการวิเคราะห์ Log เพื่อตรวจหาการโจมตี
1. ป้องกันการโจมตี ทาง ssh
- Remove root access การใช้ username root ทำสิ่งต่างถือเป็นสิ่งที่ไม่เหมาะสม แต่ถ้าใช้ root login ผ่าน ssh ยิ่งเป็นการกระทำที่เสี่ยงต่อการถูก hack อย่างมาก ดังนั้นไม่ควรอนุญาตให้ root login ผ่านทาง ssh
เพื่อป้องกันการใช้ user root login ผ่านทาง ssh
sudo nano /etc/ssh/sshd_config

ค้นหาบรรทัด
PermitRootLogin yes

แก้ให้เป็นตามนี้
PermitRootLogin no

ปรับเวลาการรอรับ password ให้เร็วขึ้น แนะนำ 30 วินาทีกำลังดี (ค้นหาบรรทัดนี้แล้วเปลี่ยน เป็น 30วิ)
LoginGraceTime 120

จำกัดการเข้าใช้ ssh โดยระบุ username ที่สามารถ login ผ่าน sshได้ เพิ่มบรรทัดนี้เข้าไป (คั่นระหว่าง user โดยใช้ช่องว่าง)
AllowUsers someGuy someOtherGuy

เปลี่ยน port เอาตามใจ ขอให้มากกว่า 1024 แต่ไม่เกิน 65535
port 65222

save แล้วก้ restart ssh service
sudo /etc/init.d/ssh restart

ติดตั้งโปรแกรม Fail2ban
ติดตั้ง fail2ban
sudo apt-get install fail2ban

เปิดไฟล์ configure ขึ้นมาแก้ไข
sudo nano /etc/fail2ban/jail.conf
  • maxfailures = 5 ---> ในส่วนนี้หมายถึง connect แล้ว fail ครบ 5 ครั้งแล้วให้แบน ip
  • bantime = 600 ---> หมายถึงให้แบนเป็นเวลา 600 วินาที
  • ignoreip = 192.168.0.0/24 ---> หมายถึง ip ในวงนี้ไม่ต้องไปสนใจแบนเพราะว่าอยู่ใน lan วงเดียวกัน
  • รายละเอียดอ่านต่อ http://www.ubuntuclub.com/node/11