วันศุกร์ที่ 17 กันยายน พ.ศ. 2553

รวมคำสั่ง MySQL ที่ใช้งานบ่อยๆสำหรับ PHP ( 02 กรกฎาคม 2553 )

http://www.neoxteen.com/knowledge/PHP/%E0%B8%A3%E0%B8%A7%E0%B8%A1%E0%B8%84%E0%B8%B3%E0%B8%AA%E0%B8%B1%E0%B9%88%E0%B8%87-MySQL-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B8%9A%E0%B9%88%E0%B8%AD%E0%B8%A2%E0%B9%86%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A-PHP/

วันอังคารที่ 7 กันยายน พ.ศ. 2553

ปัญหาเรื่อง เวลา ของ PHP บน Windows

เจอปัญหาว่า เขียน PHP ใช้ function date เพื่อแสดงเวลาดังนี้


echo date("H:i:s");

?>

ซึ่งเวลาของ Server เป็น 10:15:20
แต่เวลาที่ระบบแสดงออกมา เป็น

11:15:20

ซึ่งเวลา จะแตกต่างออกไป 1 ชั่วโมง ปัญหาอยู่ที่ว่า ทำไมเดือนก่อนหน้านี้ไม่เป็น แต่พอเป็นเดือนนี้ (มิถุนายน) เวลาเกิดเร็วไป 1 ชั่วโมงซะงัี้น ทั้งๆที่ไม่เปลี่ยนแปลง Code ใดๆเลย ?!?!?!?!?!

ผมลองใช้ คำสั่ง

echo gmdate("H:i:s");

เพื่อแสดงเวลามาตราฐาน Greenwich Mean Time ปรากฏว่า ได้เวลาออกมาเป็น

03:15:20

ซึ่งก็ถูกต้อง แต่ทำไมคำสั่ง date() ให้เวลาไม่ตรงในเดือนนี้ ????
จากการตรวจสอบ พบว่า ใน
C:\Windows\php.ini
มีตัวแปรชื่อว่า date.timezone ไม่ได้ตั้งค่าเอาไว้
ผมเลยลองบังคับให้เป็น

date.timezone="Asia/Bangkok"

แล้ว restart IIS

ปรากฏว่า เวลากลับมาถูกต้องแล้วครับ
ลองเอาไปทำดูนะครับ
ที่มา http://share.psu.ac.th/blog/kx-note/7040

วิธีติดต่อ MySQL บน Ubuntu จากเครื่องอื่น

ติดตั้ง MySQL Server บน Ubuntu แล้ว สามารถเรียกใช้งานผ่านคำสั่ง mysql บนเครื่องนั้นได้ ไม่มีปัญหาอะไร ใช้ GUI Tools บนเครื่อง หรือจะใช้ phpMyAdmin ก็ไม่มีปัญหา ใช้งานได้ดีเยี่ยม

แต่ พอจะใช้ GUI Tools ที่อยู่บนเครื่องอื่นๆนอกเครื่องเซิร์ฟเวอร์ เช่นจะใช้ MySQL Query Browser, MySQL Front, MySQL Yog หรือแม้แต่ phpmyadmin ก็ไม่สามารถติดต่อได้

ตรวจสอบข้อมูล:

ตรวจสอบการ grant privilges ก็แล้ว ถูกต้องแน่นอน ใช้คำสั่งเดียวกันบนเครื่องอื่นๆ ก็ยังทำได้ แต่ไม่ใช่ Ubuntu

ตรวจสอบว่าติดที่ firewall หรือไม่ ก็ไม่ใช่ปัญหาอีก ตรวจสอบด้วยเครื่องมือดังกล่าวติดต่อไปยัง MySQL บน CentOS หรือ บน Windows ก็ไม่พบปัญหา เหมือน Ubuntu ทำไงดี ?

สมมุติฐาน:

Ubuntu พยายามจะรักษาความปลอดภัยให้เป็นอย่างมาก โดยกำหนดที่ไฟล์ my.cnf โดยตรง

จากการค้นคว้า พบว่ามี Server Option ชื่อ bind_address ทำหน้าที่เจาะจงว่า จะยอมรับการติดต่อจาก IP Address ใด ซึ่งจะกำหนดได้เพียงหนึ่งเดียวเท่านั้น โดย Default จะกำหนดเป็น 127.0.0.1 (บน Ubuntu) ซึ่งหมายความว่า รับฟังจากเครื่อง localhost เท่านั้น

แนวทางการแก้ไข:

ให้แก้ไขไฟล์ my.cnf ด้วยคำสั่ง

sudo vi /etc/mysql/my.cnf

แก้ไข

bind-address = 127.0.0.1

เป็น

#bind-address = 127.0.0.1

แล้ว restart mysql

sudo /etc/init.d/mysql restart

เพิ่มเติม:

เมื่อเปิด server option นี้ จะยอมรับการเชื่อมต่อจากทุกที่ หากต้องการความปลอดภัย ให้ติดตั้ง firewall เพิ่มเติม และใช้คำสั่ง grant privileges เพื่อกำหนด Access Control เพิ่มเติมด้วย
ที่มา http://share.psu.ac.th/blog/kx-note/15713

หลักการทำ Web Server ที่ดี เอาไปใช้ประยุกต์กับ Server แบบอื่นๆได้

1.ซึ่งโดยทั่วไปก็คือ บริหาร IO ดีๆ ใส่ RAM เยอะๆ
2.CPU แรงๆ ไม่มีค่อยมีผลต่างกันมากมายเท่ากับ Resouce ที่มีให้ใช้ครับ นอกจากว่าเป็นการทำงานในลักษณะประมวลผลทางด้าน CGI มากๆ ควรให้ความสำคัญด้านนี้ด้วย แต่ไม่มากเท่า RAM และ CPU ในความเร็วใกล้เคียงกัน แทบจะไม่มีผลแตกต่างกันมาก (ช่วยได้ไม่ถึง 10%) เพราะงานหลักของ httpd เน้นการบริหาร resouce ไม่ได้เน้นการคำนวณคณิตศาสตร์ CPU จึงหนักไปทางบริหาร process ของ OS มากกว่า และถ้า CPU ยัง มี usage ไม่ถึง 100% (หรือใกล้เคียง) ก็แปลว่า มันยังทำงานไหวครับ เพราะการที่ CPU ทำงานมาก แสดงว่า ต้องคำนวณมาก แต่มีผลน้อยกว่า IO ทำงานหนักครับ
3.RAM ควรมีอย่างต่ำ 512 MBขึ้นไป แต่ว่าผมแนะนำ ที่ 1 GB อยากให้ยอมลด CPU เพื่อแรม ว่างั้นเถอะ เพราะเราทำให้ขั้นตอนประมวลผลทำงานได้เร็วขึ้นข้อมูลไม่คับคั้งมากจนเกินไป พร้อมที่จะดึงข้อมูลที่ใช้บ่อยๆ ก็เก็บใน RAM มาใช้ได้เร็วกว่า HD มาก ทำให้ระบบโดยรวมเสถียร์มากขึ้น การทำระบบ SWAP ต่างๆ ไม่ควรเกิน กว่า 60% จาก ความจุแรมเพราะไม่เสถียรและเปลี่ยงพื้นที่ HD โดยไม่จำเป็น
4.HD ควรเป็น Ultrawide SCSI 10000 rpm ขึ้นไป ควรใช้ SCSI ครับ คนทำงานเป็น admin ชอบ SCSI เพราะมันไม่ค่อยเกเร และไม่ค่อยมีปัญหา + ทนทาน + ตอบสนองเร็ว + เหมาะกับระบบ multi user ถ้ามีงบน้อย จะใช้ HD IDE ผมก็แนะนำให้ใช้ HD IDE 2 ตัวขึ้นไป สำหรับ กระจายงาน + backup กันเอง โดยทั่วไป ระบบที่เน้นความสเถียรภาพสูงๆ มักจะต้องทำ raid ด้วย เพราะข้อมูลสำคัญมากๆ พังไม่ได้เด็ดขาด
5.Network Card ก็ควรใช้ของดีๆ โดยทั่วไป นิยมของดังๆ เช่น Intel, 3COM เอาแบบ 100 MBit ไปเลยครับ
6.Apache ก็ลง mod เท่าที่จำเป็น เพราะจะได้ไม่อ้วนมาก เวลาแตก process เยอะๆ
7.Optimized WebserServer เท่าที่จะทำได้เช่น ลง Zend Optimizer/Accerator , mod_gzip, phpa (Cache), etc
8.หมั่น Upgrade Apache บ่อยๆ เพราะรุ่นใหม่ๆ มักจะทำงานและมี security ดีกว่ารุ่นก่าๆ
9.อย่าลืมว่า mysql (database server) ก็กินแรงเครื่องค่อนข้างเยอะเหมือนกัน ถ้ามีงบพอ อาจจะแยกเป็น database server ต่างหาก ลงแต่ mysql อย่างเดียวไปเลย (spec เครื่องปานกลาง)
10.mysql บางรุ่น มีปัญหา+bug เช่น connection เต็มบ่อย และไม่คืนให้ ต้อง reboot เครื่องบ่อย ดังนั้น ต้องหมั่น upgrade อีก
11.บริหาร logs ไฟล์ ให้ดี โดยแยกให้เขียนลงคนละ mount volume หรือคนละ HD กัน เพราะลดการทำงานของ IO และ หมั่นลบ หรือ rotate log ไฟล์ เพราะถ้า logไฟล์โตมากๆ จะทำให้การอ่านเขียนช้าลงไปเยอะ ส่งผลต่อความเร็วโดยรวม ซึ่งส่งผลให้การทำงานหลักๆ ล่มได้ง่าย
12.โดยหน้าที่ของ web admin/system admin คือ หมั่นศึกษา สังเกตุ และหาความรู้ในเรื่องที่เกี่ยวข้องอยู่เสมอ เพื่อให้ระบบทำงานได้เต็มประสิทธิภาพ และ มีปัญหาน้อยๆ
13.ควร ติดตามข่าวสาร และ upgrade ระบบบ่อยๆ โดยเฉพาะปัญหา security
14.email server ให้ระวังการโดนแอบใช้เป็น spam gateway และพยายามหลีกเลี่ยงการให้บริการ smtp แก่บุคคลภายนอก ซึ่งอาจทำได้ โดยการ lock ip หรือ ใช้การทำการตรวจสอบ password ก่อนส่ง
15.กำหนด Firewalls ป้องกันการกระหน่ำ ping icmp /DDOS ซึ่งทำให้ระบบล่มได้
สาเหตุที่ webserver ทั่วไปๆ จะทำงานช้า อืด ไม่ได้ดังใจเจ้าของเวปทั้งหลาย ก็มีสาเหตุหลักๆ ไม่กี่อย่าง คือ

1.webserver ตอบสนองไม่ทัน request process และ มี process ค้างในระบบมากมาย ทำให้ process ใหม่ๆ ที่ร้องขอเข้ามา ต้องรอเข้าคิว (ทำให้รู้สึกช้า) เพราะ server ระบายงานไม่ทัน
◦ถ้าพูดถึง load หนักๆ แน่นอนว่า อุปกรณ์ที่ใช้ ก็ต้องทนทานอย่างหนาตราช้าง ไม่งั้น ไม่กี่ยกก็จอดครับ โดยเฉพาะ harddisk และไฟล์ขนาดใหญ่ ควรจะหนัก harddisk มากกว่านะครับ เพราะ cpu ทำหน้าที่คำนวณ ไม่ได้ทำหน้าที่เขียนอ่านไฟล์
◦หน่วยความจำที่ต้องเผื่อไว้สำหรับ process httpd จำนวนมากๆ นั้น ต้องมีให้เพียงพอ ผมไม่เคยเห็น webserver ที่รองรับงานหนักๆ ตัวไหน มีแรมน้อยกว่า 512 MB นอกจากว่า เวปนั้น จะมี "hello" คำเดียว แบบนั้นเอาแรม แค่ 64 MB ก็พอไหวครับ เร็วสุดยอด ไม่เชื่อลองดู 555
◦การที่มี process ล้นระบบ พวก script ไม่ทำการย่อ code เลย
◦การใช้ process จนหน่วยความจำไม่พอ (ต้องรอ process เก่าๆ เสร็จงานก่อน)
◦แต่ละ process กินเวลานาน อาจเป็นเพราะ scritp ทำงานเยอะ+ช้า และ ไม่ optimized code ทางออกคือ ปรับเปลียน script ให้ทำงานได้เร็วขึ้น เช่น เปลี่ยน compiler เป็น php, servlet , etc (perl ไม่เหมาะกับงานหนักๆ เยอะๆ ยกเว้น mod_perl อันนี้เร็วสุดยอด แต่เขียนยาก) ควบคู่ไปกับการบริหารหน่วยความจำในข้อ1เพราะ cgi script ทั้งหลาย ที่คือ ตัวดี ที่ทำให้ CPU ทำงานมาก และเมื่อมีการ execute script มากๆ ระบบก็ทำงานหนักมากขึ้น ทั้ง cpu, ram , harddisk , io และ script สองสามบรรทัด ที่เขียนผิดพลาดหรือจงใจก็แล้วแต่ ก็ทำให้ server อืดได้นะครับ อย่าประมาท มีตัวอย่างให้เห็นมาบ่อยๆ ใครยังจำได้ว่า สมัยที่มีคนแกะ script 152 และดันเขียน loop พลาด ทำเอา server ตัวเองล่มกันมาเยอะแล้ว
◦optimized การใช้งานฐานข้อมูล งานบางอย่าง ถ้า insert ฐานข้อมูลหนักๆ ถี่ๆ ก็ทำให้ระบบช้าลงมากก และระบบรวนไปเลยก็มี ดังนั้น ถ้านำ text ไฟล์มาช่วยเบาภาระได้บ้าง ก็จะดีขึ้นมาก
◦เร่งความเร็วของ script โดยใช้ engine ช่วย เช่น mod_perl, Zend Engine, Cache Engine, etc
2.internet link ความเร็วต่ำ ระบาย bandwidth ได้น้อย จึงทำให้เกิดความคับคั่งของจราจรข้อมูล (รถติดนั่นแหละ) อันนี้เป็นปัญหาโลกแตก แก้ยาก และเปลืองเงินมาก นอกจากจะย้ายไปอยู่กับ data center ที่มี bandwidth มากๆ แทน
◦แก้ปัญหาเบื้องต้นในระบบเดิม ด้วยตนเอง โดยการบีบอัดข้อมูล เช่น ติดตั้ง mod_gzip เพื่อบับอีด text/html ได้ถึง 80% เพื่อให้กิน bandwidth น้อยลง และจะทำให้ client รู้สึกว่าเร็วขึ้นมาก เนื่องจากความคับคั่งของจราจรลดลง
◦เพิ่ม link bandwidth หรือ ย้าย ISP หรือ data center อันนี้ งบใครงบมันครับ แต่จะบอกว่า ต่อให้ server แรงสุดยอดแค่ไหน ถ้า link ช้า ทำยังไง ก็ไม่เร็วครับ เพราะมันคอขวดอยู่ตรงนั้น เหมือนเอา รถ F1 ไปติดแหงก อยู่บนถนน นะแหละครับ
3.เวปเพจมีขนาดใหญ่ เนื่องจากภาพกราฟิกเยอะ ทำให้ต้องส่งข้อมูลจำนวนมหาศาลเมื่อมี process ร้องขอมากๆ จึงเป็นสาเหตุหนึ่งที่ทำให้ระบบตอบสนองได้ช้าา ทางแก้คือ ต้องลดๆ + บีบอัด กราฟิกกันหน่อย และการเขียนอ่าน IO มากๆ มีผลทำให้ harddisk ตอบสนองได้ช้า โดยเฉพาะการ write ดังนั้น ถ้า IO ไม่ตอบสนอง ได้ดีพอ ก็มีผลต่อความเร็วโดยรวม และ อายุการใช้งานก็สั้นลงด้วยครับ
อ้างอิงมาจาก : http://www.cgitop.com/phpBB2/viewtopic.php?t=602

วันพุธที่ 4 สิงหาคม พ.ศ. 2553

แก้ ??? mysql

กำหนดในส่วนของ Connection

- กรณีที่กำหนด Collation เป็น tis620_thai_ci ให้ใช้
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
mysql_query("SET NAMES TIS620");

- กรณีที่กำหนด Collation อื่น ๆ ให้ใช้
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client=tis620");
mysql_query("SET character_set_connection=tis620");

วันนี้เพิ่มคำสั่งนี้คำสั่งเดียวหลัง connect แล้วใช้ได้
@mysql_query('SET CHARACTER SET tis620');

วันอังคารที่ 20 กรกฎาคม พ.ศ. 2553

yum install clamd clamav

OS CentOS 5.3

ขั้นตอนที่ 01 : wget -O /etc/yum.repos.d/CentOS-Base.repo http://thzhost.com/files/thai.repo

ขั้นตอนที่ 02 : yum install clamd clamav

ขั้นตอนที่ 03 : clamscan -r -i

LibClamAV Warning: **************************************************
LibClamAV Warning: *** The virus database is older than 7 days! ***
LibClamAV Warning: *** Please update it as soon as possible. ***
LibClamAV Warning: **************************************************

----------- SCAN SUMMARY -----------
Known viruses: 572031
Engine version: 0.95.2
Scanned directories: 1
Scanned files: 2
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 2.329 sec (0 m 2 s)


( ถ้าขึ้น LibClamAV Warning ให้อัพเดรตก่อน ขั้นตอนถัดไป )


ขั้นตอนที่ 04 : freshclam

ขั้นตอนที่ 05 : clamscan -r -i ( สั่ง scan อีกรอบ )

ขั้นตอนที่ 06 : ต้องการ scan แบบไหน ตำแหน่งใด พิมพ์ man clamscan ครับ
from h ttp://www.thaihosttalk.com/index.php?topic=21288.0

font thai centos

ดาวน์โหลดฟอนด์
# wget ftp://linux.thai.net/pub/ThaiLinux/software/thai-ttf/thai-ttf-0.4.6.tar.gz

แตกไฟล์
# tar xvfz thai-ttf-0.4.6.tar.gz

เข้าห้อง
# cd thai-ttf-0.4.6

สร้างห้องไว้ที่
# mkdir /usr/share/fonts/thai-ttf

ก็อปปี้ไฟล์
# cp *.* /usr/share/fonts/thai-ttf/

เพิ่มรายการฟอนท์ไทย เข้าไปในรายการ
# chkfontpath -a /usr/share/fonts/thai-ttf

ตรวจสอบด้วยคำสั่ง จะพบรายการ ฟอนท์ไทยของเรา
#chkfontpath -l

จากนั้นก็ทำการ restart เครื่อง

from http://www.sourcecode.in.th/9M/?p=43

php on centos

# wget -O /etc/yum.repos.d/thai.repo www.icez.net/files/thai.repo
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ORG
# yum clean all
# yum list
# yum -y install httpd
# yum -y install php php-mysql
# /etc/init.d/httpd restart
# chkconfig httpd on
# echo "" > /var/www/html/phpinfo.php

from http://www.linuxthai.org/forum/index.php?topic=13447.0

วันพฤหัสบดีที่ 8 กรกฎาคม พ.ศ. 2553

http://www.fiatinfo.com/link.php?fiat=php_conf

http://www.fiatinfo.com/link.php?fiat=php_conf

grant

grant all on radius.* to radius@localhostidentified by 'thaiadmin';

การทำ Hardening server (ปิดช่องโหว่),กำจัด script perl,virus flashy.exe

http://golfreeze.212cafe.com/archive/2006-09-06/hardening-server-script-perlvirus-flashy-exe/

ค่า TTL เมื่อ ใช้คำสั่ง ping คืออะไร

Pinging 61.7.152.115 with 32 bytes of data:

Reply from 61.7.152.115: bytes=32 time=17ms TTL=53
Reply from 61.7.152.115: bytes=32 time=21ms TTL=53
Reply from 61.7.152.115: bytes=32 time=23ms TTL=53
Reply from 61.7.152.115: bytes=32 time=62ms TTL=53
Reply from 61.7.152.115: bytes=32 time=21ms TTL=53
Reply from 61.7.152.115: bytes=32 time=54ms TTL=53
Reply from 61.7.152.115: bytes=32 time=48ms TTL=53
Reply from 61.7.152.115: bytes=32 time=50ms TTL=53
Reply from 61.7.152.115: bytes=32 time=34ms TTL=53
Reply from 61.7.152.115: bytes=32 time=23ms TTL=53
Reply from 61.7.152.115: bytes=32 time=37ms TTL=53
Reply from 61.7.152.115: bytes=32 time=101ms TTL=53
Reply from 61.7.152.115: bytes=32 time=32ms TTL=53
Reply from 61.7.152.115: bytes=32 time=52ms TTL=53

Ping statistics for 61.7.152.115:
Packets: Sent = 14, Received = 14, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 17ms, Maximum = 101ms, Average = 41ms


TTL ใช้บอกจำนวน Router หรือ Network ซึ่ง Traffic ทำการกระโดดข้าม ซึ่งจะต่างกันตามนี้ครับ

TTL 64 จะเป็น ระบบ Linux หรือ Router ขนาดเล็กๆ
TTL 128 เป็น OS พวก X86 เช่น Windows ต่างๆ
TTL 254 เป็น Router ขนาดกลาง และ ใหญ่ ครับ

ค่า TTL จะลดลงตามจำนวน Router ที่มันผ่านครับ

เช่น คุณปิงจากบ้านไปยังจุดหมายปลายทาง ดูตัวอย่างข้างล่างนะครับ

1. คุณปิงจากเครื่องคุณไปยัง เครื่องในวงแลนเดียวกัน ไม่มีการกระโดดผ่าน Router เนื่องจากเครื่องของคุณ และ ปลายทางเป็น OS X86 คุณจะได้ ค่า TTL = 128-0 = 128

2. คุณปิงจากเครื่องคุณไปยัง เครื่องต่างวงแลนกัน มีการกระโดดผ่าน Router 2 ตัว เนื่องจากเครื่องของคุณ และ ปลายทางเป็น OS X86 คุณจะได้ ค่า TTL = 128-2 = 126

3. คุณปิงจากเครื่องคุณไปยัง เครื่องในวงแลนเดียวกัน ไม่มีการกระโดดผ่าน Router เครื่องปลายทางเป็น Linux คุณจะได้ ค่า TTL = 64-0 = 64

4. คุณปิงจากเครื่องคุณไปยัง เครื่องต่างวงแลนกัน มีการกระโดดผ่าน Router 1 ตัว เครื่องปลายทางเป็น Linux คุณจะได้ ค่า TTL = 64-1 = 63

5. คุณปิงจากเครื่องคุณไปยัง Router ในวงแลนเดียวกัน คุณจะได้ ค่า TTL = 254-0 = 254

6. คุณปิงจากเครื่องคุณไปยัง Router ของเพื่อนคุณซึ่งเป็น Router ขนาดเล็ก (Linux Embeded) มีการกระโดดผ่าน 6 Router จะได้ ค่า TTL = 64-6 = 58

7.คุณปิงจากเครื่องคุณไปยัง Router ของ ISP มีการกระโดดข้าม 4 ครั้ง คุณจะได้ ค่า TTL = 254-4 = 250

แล้ว ก็ ถ้า ค่า TTL ต่ำจนถึง จำนวนหนึ่ง ระบบจะตัดสัญญาณทิ้งทั้งหมด ซึ่งจะทำให้เกิดอาการที่เรียกว่า TTL Error หรือ Request time out ครับ
เมื่อค่า TTL มากหมายถึงดีกว่าเพราะว่าสามารถส่งผ่าน HUP ได้มากกว่าคับ...

ที่มา http://www.sysnetcenter.com/board/index.php?topic=269.0

ping

เคล็ด (ไม่ลับ) สำหรับจัดการเครือข่ายด้วยคำสั่งคอมมานด์ไลน์

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










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





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




ก่อนลงมือ




ก่อนอื่นเราต้องเรียกหน้าต่างโปรแกรมสำหรับรับคำสั่ง (Command) ขึ้นมาเสียก่อนนะครับ โดยคลิ้กที่ปุ่ม Start แล้วเลื่อนแถบแสงมาคลิ้กที่รายการ Run จากนั้นจะได้หน้าต่างเล็กๆ สำหรับรับคำสั่งปรากฏขึ้นมา ให้พิมพ์ cmd ดังรูปที่ 1 แล้วกดแป้น Enter หรือเลื่อนเมาส์ไปคลิ้กที่ปุ่ม OK ก็จะได้หน้าต่างดังรูปที่ 2









รูปที่ 1 หน้าต่างป้อนคำสั่ง









รูปที่ 2 หน้าต่างโปรแกรมสำหรับสั่งงาน





ล็อกอิน




เอาละครับเมื่อเราได้เครื่องมือแล้วต่อมาก็หาคำสั่ง หรือโปรแกรมที่สามารถทำงานตามที่เราต้องการ ในวินโดวส์เอ็กซ์พี นั้นเก็บคำสั่งหรือโปรแกรมอรรถประโยชน์ต่างๆ ทั้งหลายไว้ที่ c:windowssystem32 โดยเฉพาะคำสั่งที่เกี่ยวข้องกับการจัดการทางด้านเครือข่ายดังที่เราจะมาทดลองใช้กันในครั้งนี้




จัดการไอพีแอดเดรส



เครื่องคอมพิวเตอร์ที่ต่อเชื่อมกับระบบอินเตอร์เน็ตนั้นจะต้องมีหมายเลขระบุถึงตัวเองอย่างชัดเจนเป็นเอกเทศ ไม่ซ้ำกับเครื่องอื่น ซึ่งเราเรียกว่า หมายเลข IP ในวินโดวส์เอ็กซ์พีนั้นเราสามารถตรวจสอบหมายเลข IP ประจำเครื่องของเราได้โดยคลิ้กขวาที่ My Network Place แล้วเลือก Properties จากนั้นจะได้หน้าต่าง Network Connection (ในกรณีที่ใช้ระบบแลน) จากนั้นให้คลิ้กขวาที่ Network Connection เลือก Status คลิ้กที่แท็บ Support จะได้ดังรูปที่ 3 และหากต้องการดูรายละเอียดเพิ่มเติมให้คลิ้กที่ปุ่ม Detail










รูปที่ 3 หน้าต่างแสดงหมายเลข IP







และถ้าหากการทำงานของระบบเครือข่ายมีปัญหา ให้คลิ้กที่ปุ่ม Repair เพื่อสั่งให้ วินโดวส์เอ็กซ์พี ซ่อมแซมส่วนที่เสียหาย สำหรับการใช้คำสั่งแบบคอมมานด์ไลน์ในการจัดการเกี่ยวกับหมายเลข IP นั้นท่านสามารถทำได้โดยพิมพ์คำสั่ง IPCONFIG ลงในหน้าต่างโปรแกรมสำหรับสั่งงานตามรูปที่ 2 จากนั้นกดแป้น Enter จะได้ดังรูปที่ 4









รูปที่ 4 ผลของคำสั่ง ipconfig







คำสั่ง ipconfig มีรูปแบบการใช้งานและตัวเลือกต่างๆ ให้ใช้งานได้ดังนี้



ipconfig [/? | /all | /renew [adapter] | /release [adapter] | /flushdns | /displaydns |

/registerdns | /showclassid adapter | /setclassid adapter [classid] ]

Options:

/? แสดง help ของคำสั่งนี้

/all แสดงรายละเอียดทั้งหมด

/release ยกเลิกหมายเลข IP ปัจจุบัน

/renew ขอหมายเลข IP ใหม่ ในกรณีที่เน็ตเวิร์คมีปัญหา เราอาจจะลองตรวจสอบได้โดยการใช้คำสั่งนี้ ซึ่งหากคำสั่งนี้ทำงานได้สำเร็จ แสดงว่าปัญหาไม่ได้มาจากระบบเครือข่าย แต่อาจจะเกิดจากซอฟท์แวร์ของเรา

/flushdns ขจัด DNS Resolver ออกจาก cache.

/registerdns ทำการ Refreshes DHCP ทั้งหมด และ registers DNS names ใหม่

/displaydns แสดง DNS Resolver ทั้งหมดที่มีในอยู่ Cache.

/showclassid แสดง class IDs ทั้งหมดที่ DHCP ยอมให้กับการ์ดแลนใบนี้

/setclassid แก้ไข dhcp class id.




ตรวจสอบปัญหาการส่งถ่ายข้อมูลด้วยคำสั่ง Ping



คำสั่ง Ping เป็นคำสั่งพื้นฐานในการตรวจสอบการสื่อสารข้อมูลระหว่างเครื่องส่งและเครื่องรับ โดยจะส่งข้อมูลหรือแพ็คเกจขนาด 32K ไปยังเครื่องผู้รับและจากนั้นก็คอยฟังสัญญาณตอบรับ ซึ่งถ้าหากเครื่องผู้รับนั้นเปิดเครื่องและต่อสายสัญญาณอยู่ก็น่าจะมีการส่งสัญญาณตอบรับ ดังรูปที่ 5










รูปที่ 5 ผลการ Ping





รูปแบบการใช้งานและตัวเลือกต่างๆของคำสั่งมีดังนี้


Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

[-r count] [-s count] [[-j host-list] | [-k host-list]]

[-w timeout] target_name


Options:


-t Ping ไปยัง Host ตามที่ระบุเรื่อยๆ จนกว่าจะสั่งยกเลิกโดยกดแป้น Ctrl-C.และหากต้องการดูสถิติให้กดแป้น Ctrl-Break

-a เปลี่ยนหมายเลข IP Address ของ Host เป็นชื่อแบบตัวอักษร

-n count Ping แบบระบุจำนวน echo ที่จะส่ง

-l size กำหนดขนาด buffer

-f ตั้งค่าไม่ให้แยก flag ใน packet.

-i TTL Ping แบบกำหนด Time To Live โดยกำหนดค่าตั้งแต่ 1-255

-v TOS กำหนดประเภทของบริการ (Type of service)

-r count Ping แบบให้มีการบันทึกเส้นทางและนับจำนวนครั้งในการ hops จนกว่าจะถึงปลายทาง

-s count Ping แบบนับเวลาในการ hop แต่ละครั้ง

-j host-list Loose source route along host-list.

-k host-list Strict source route along host-list.

-w timeout Ping แบบกำหนดเวลารอคอยการตอบรับ



เนื่องจากคำสั่งนี้ เป็นคำสั่งที่มีการส่งแพ็กเกจจากเครื่องผู้ส่งไปยังเซิร์ฟเวอร์ หรือเครื่องปลายทาง และมีตัวเลือก (–t, -n) ที่อาจจะก่อปัญหาได้ เช่น ถ้าผู้ใช้ สั่งปิง โดยใส่ตัวเลือกให้ส่งแพ็คเกจไปเรื่อยๆ จำนวนหลายๆ ครั้งเครื่องเซิร์ฟเวอร์หรือเครื่องปลายทางก็จะต้องคอยส่งสัญญาณตอบกลับแบบไม่รู้จบ (เลยไม่ต้องทำงานอื่นกัน) อาจจะทำให้ระบบเครือข่ายมีปัญหาได้ ดังนั้น ผู้ดูแลระบบบางแห่งจึงตัด หรือสั่งระงับการส่งสัญญาณตอบรับคำสั่ง Ping ออกจากเซอร์วิสของเครื่องเซิร์ฟเวอร์ ดังนั้น จึงทำให้บางทีผลการตรวจสอบระบบเครือข่ายด้วยคำสั่งนี้อาจจะไม่แน่นอนอีกต่อไป





ตรวจสอบและซ่อมแซมเครือข่ายด้วยคำสั่ง Netsh



NetSh เป็นชุดคำสั่ง (script) ที่มีความสามารถสูงมากตัวหนึ่ง แต่ไม่ค่อยมีคนใช้กัน อาจเป็นเพราะหาไม่เจอ หรือไม่รู้จักคำสั่งตัวนี้ การทำงานภายใต้ Netshell ค่อนข้างสะดวกเพราะมีชุดคำสั่งเกี่ยวกับการจัดการระบบเครือข่ายแบบครบวงจร แยกเป็นหมวดหมู่ไว้ชัดเจน ดังนี้




Netsh commands for AAAA

Netsh commands for DHCP

Netsh diagnostic (diag) commands

Netsh commands for Interface IP

Netsh commands for RAS

Netsh commands for Routing

Netsh commands for WINS



ในแต่ละกลุ่มก็จะมีคำสั่งย่อยอีกจำนวนมาก และคำสั่งต่างๆ เหล่านี้เราสามารถนำมาเขียนเป็นสคริปต์หรือเป็นโปรแกรมย่อยๆ ให้ทำงานแบบอัตโนมัติได้ ในที่นี้ผมจะขอยกตัวอย่างการใช้งานคำสั่ง netsh ในกลุ่มคำสั่งย่อย diag เพื่อใช้ในการตรวจสอบ และซ่อมแซมระบบเครือข่ายที่เสียหาย โดยให้พิมพ์ คำสั่ง netsh แล้วกดแป้น Enter จากนั้นตัว prompt ก็จะเปลี่ยนไป netsh>_ พร้อมที่จะรับคำสั่ง ซึ่งถ้าหากเราอยากรู้ว่ามีกลุ่มคำสั่งใดบ้างที่สามารถใช้งานภายใต้ netsh ได้ให้พิมพ์ ? แล้วกดแป้น Enter จะได้ดังรูปที่ 6










รูปที่ 6 กลุ่มคำสั่งใน netsh







จากรูปที่ 6 เราจะพบว่ามีคำสั่ง หรือกลุ่มคำสั่งปรากฏอยู่ทางด้านซ้ายมือ และมีคำอธิบายทางด้านขวามือ ซึ่งจะพบว่าหากเป็นกลุ่มคำสั่ง ที่คำอธิบายจะมีคำว่า change to… เช่น กลุ่มคำสั่ง Diag ดังนั้นเมื่อเราต้องการตรวจสอบเครือข่ายของเรา เราก็ต้องใช้คำสั่งนี้ครับ พิมพ์คำว่า diag แล้วกดแป้น Enter ตัวพร้อมพ์จะเปลี่ยนเป็น netsh diag>_ คำสั่งในกลุ่มนี้มี dump, gui, help, ping ถ้าหากต้องการเรียกหน้าต่างโปรแกรมตรวจสอบเครือข่ายแบบกราฟิก ให้พิมพ์ gui แล้วกด enter จะได้ดังรูปที่ 7









รูปที่ 7 หน้าจอตรวจหาข้อบกพร่องของเครือข่าย







จากรูปที่ 7 จะพบว่าทางด้านขวามือมีรายการให้เลือกสองรายการให้คลิ้ก scan your system ถ้าต้องการให้โปรแกรมตรวจสอบระบบเครือข่ายให้ หรือคลิ้กที่ set scanning options เมื่อต้องการตั้งค่าตัวเลือกในการตรวจสอบระบบ ซึ่งเมื่อคลิ้กที่ scan จะได้ดังรูปที่ 8










รูปที่ 8 โปรแกรมกำลังทำงาน






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









รูปที่ 9 ผลการทำงาน







นี่เป็นเพียงตัวอย่างส่วนหนึ่งของการทำงานของคำสั่ง netsh เบื้องต้นเท่านั้นนะครับ อันที่จริงยังมีคำสั่งในหมวดอื่นๆ ที่มีความสามารถในด้านการจัดการเครือข่าย การตั้งค่าต่างๆ การสั่งออนไลน์ ออฟไลน์ และอื่นๆอีกเพียบครับ หากจะเขียนให้อ่านในบทความนี้ทั้งหมดเกรงว่าเนื้อที่กระดาษจะไม่พอครับ เอาเป็นว่าหากท่านใดสนใจก็เมล์มาคุยกันนะครับ อ้อ...เกือบลืมบอกไปครับ หากจะออกจากหมวดคำสั่งโปรแกรมให้พิมพ์ จุดสองจุด (..) แล้วกดแป้น Enter ครับ และหากต้องการเลิกงาน netsh ให้พิมพ์คำสั่ง bye, exit หรือ quit แล้วกดแป้น Enter





บริหารจัดการเครือข่ายด้วยคำสั่ง Net



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




NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]





การใช้งานก็เพียงพิมพ์คำสั่งตามตัวตัวเลือก เช่นหากต้องการดูว่าในเครือข่ายของเรามีเครื่องคอมพิวเตอร์กี่เครื่อง แต่ละเครื่องชื่ออะไร (เหมือนกับการใช้ My Network Place) ให้พิมพ์ c:>net view (อย่าลืมเว้นวรรค) จะได้ดังรูปที่ 10









รูปที่ 10 หน้าต่าง net view






ล็อกเอาต์



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





ข้อมูลจาก http://www.arip.co.th

วันพุธที่ 7 กรกฎาคม พ.ศ. 2553

block ping centos

อยาก Ping บ้าง ลองใช้ iptables บล๊อคครับ
ไม่ให้ Ping เลยยกเว้น ip 192.168.0.187 สามารถ Ping ได้

iptables -I INPUT -p icmp -j DROP
iptables -I INPUT -p icmp -s 192.168.0.187 -j ACCEPT

ถ้าอยากให้มี Message ขึ้นก็เปลี่ยนจาก Drop เป็น REJECT แทนครับ

iptables -I INPUT -p icmp -j REJECT
iptables -I INPUT -p icmp -s 192.168.0.187 -j ACCEPT

ลืม password root centos

ขั้นตอน

หลังจากต่อ Keyboard และ monitor แล้วให้ reboot เครื่อง

1. ตอนนี้เข้าหน้า GRUB menu (หน้าที่นับถอยหลัง 5 4 3 2 1 ) ให้กดปุ่มอะไรก็ได้เพื่อให้เลือก GRUฺ menu ได้

2. ที่ menu “Red Hat Enterprise Linux ที่มี kernal version ที่เราต้องการ boot ให้กด a

3. ไปที่สุดบรรทัด กด space bar 1 ทีแล้วพิมพ์ single กด enter เพื่อเข้าสู่ single mode

4. หลังจาก boot เข้าไปเรียบร้อยใช้คำสั่ง #passwd root เพื่อแก้ไข password ใหม่

5. reboot ใหม่อีกครั้งตามปกติ

session_start()

แก้ไขที่เดียว
output_buffering = Off
เป็น
output_buffering = 4096
รีบูตใหม่ เสร็จ

แก้ php.ini ครับ
/tmp/cookie เป็น /
/tmp/session เป็น /tmp

ที่มา http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=11157

contrace uni.net

02-354-5678 # 5003-5012

yum

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

เวอร์ชั่นที่เป็น Single CD Server i386 ดาวน์โหลดที่ลิงค์นี้ครับ

เวอร์ชั่นที่เป็น Single CD Server x86_64 ดาวน์โหลดได้ที่นี่ครับ

แต่ที่น่าเสียดายคือ เวอร์ชั่น 5 ไม่ยอมทำเป็น Single CD เลย ก็ไม่เข้าใจเหมือนกันครับว่าทำไมไม่ทำ
ท่านสามารถใช้คำสั่งเพื่ออัพเกรดให้เป็นเวอร์ชั่นใหม่ได้ดังนี้ครับ

#yum -y update

#yum -y upgrade

** แพ็คเก็จที่ติดตั้งใหม่ประมาณ 300 – 500 MB ครับ แล้วแต่จำนวนแพ็คเก็จในเครื่อง

ตารางการเปรียบเทียบรุ่นของ CentOS กับ RHEL ครับ
ที่มา http://noc.rmutl.ac.th/main/?p=275

วันอังคารที่ 6 กรกฎาคม พ.ศ. 2553

การแก้สระลอยใน Photoshop สำหรับภาษาไทย แบบไม่ต้องลงโปรแกรมเพิ่ม

วิธีที่ 1 ใช้รหัส

ไม้เอก ( ่ ) กด Alt+‹139

ไม้โท ( ้ ) กด Alt+140

ไม้ตรี ( ๊ ) กด Alt+141

จัตวา ( ๋ ) กด Alt+142

การันต์ ( ์ ) กด Alt+143

วิธีที่ 2 เลื่อนทีละตัว

2.1 ให้เลื่อน cursor ไปอยู่หลังตัวที่เราต้องการเลื่อน
2.2 กด shift ค้างไว้
2.3 กด ปุ่มลูกศร ไปทางซ้าย
2.4 กดปุ่ม Alt ค้างไว้ (ยังไม่ปล่อยปุ่ม shift นะครับ) แล้วใช้ลูกศรชี้ลงล่างเลื่อน ตำแหน่งสระได้เลยครับ

ที่มา http://gotoknow.org/blog/notekj/162231

วันศุกร์ที่ 2 กรกฎาคม พ.ศ. 2553

สคริปต์สำหรับสำรองข้อมูล

จากตัวอย่างข้างบน ผมเขียนอธิบายโดยละเอียดโดยใช้เอดิเตอร์ vi แต่เพื่อให้กระชับเข้า จะขอละเลยการใช้เอดิเตอร์ โดยจะเขียนเฉพาะโค๊ดอย่างเดียวครับ

#tar -cvzf /tmp/my-backup.tgz /home/USER/

บรรทัดที่สองให้เปลี่ยนคำว่า USER เป็นชื่อเรา
เป็นการสั่งให้ใช้คำสั่ง tar ทำการสำรองข้อมูลพร้อมบีบอัดข้อมูลในไดเรกทอรีของบ้านเราไปสู่ไฟล์ชื่อ /tmp/my-backup.tgz

วันพุธที่ 23 มิถุนายน พ.ศ. 2553

ส่งค่าตัวแปรจาก asp.net, PHP,txt ไปยัง Flash AS3

function shownum(){
loadVariables("shownum.txt?t=1252468789796",_root.num);
}

setInterval(shownum,1000);
/////////////////////////
สมมุติใน Textfile กำหนดตัวแปรไว้อย่างนี้

&test1=ok test1&
&test2=ok test2&
&test3=ok test3&

ตอนโหลดเข้ามาก็เรียกไปแบบนี้ครับ

myLoad = new LoadVars();
myLoad.load("pic.txt");
myLoad.onLoad = function(ok) {
if (ok) {
trace(myLoad.test1); // ลอง แสดงค่าที่โหลดมา
trace(myLoad.test2); // ลอง แสดงค่าที่โหลดมา
trace(myLoad.test3); // ลอง แสดงค่าที่โหลดมา
}
};

////////////////////////

ส่งค่าตัวแปรจาก asp.net, PHP,txt ไปยัง Flash AS3
การส่งค่าตัวแปรจาก Text file หรือ asp.net หรือ PHP ไปยัง Flash AS3

Code ใน Asp.net :
Response.Write(topic=ข่าวเด่นวันนี้&news=ข่าวครับข่าว)

Code ใน PHP :
echo 'topic=ข่าวเด่นวันนี้&news=ข่าวครับข่าว'

Code ใน Text File :
topic=ข่าวเด่นวันนี้&news=ข่าวครับข่าว

ใน Flash AS3 :
function URLLoaderVar() {
var loader:URLLoader = new URLLoader();
configureListeners(loader);

var request:URLRequest = new URLRequest("http://localhost/TestWeb/testload.aspx?id=")
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}

function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, loadvarComplete);
}

function loadvarComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);

var vars:URLVariables = new URLVariables(loader.data);
//เอาตัวแปรไปใช้
trace("ตัวแปรที่ 1 = " + vars.topic);
trace("ตัวแปรที่ 2 = " + vars.news);
}

วันอังคารที่ 22 มิถุนายน พ.ศ. 2553

CentOS Howto Install ClamAV on DA DirectAdmin

http://tonnanie.spaces.live.com/blog/cns!21A88F697BA9ECDF!825.entry

ใน DirectAdmin ไม่ได้ติดตั้ง ClamAV Anti Virus มาให้…เราก็มาติดตั้ง clamav + exim เข้าด้วยกันดังนี้ครับ

ติดตั้ง repo จาก atomic
#wget -q -O – http://www.atomicorp.com/installers/atomic |sh

เสร็จแล้วก็ Yum
#yum -y install clamd clamav

#service clamd start

#chkconfig clamd on

#freshclam

#vi /etc/exim.conf
ค้นหาบรรทัด primary_hostname พิมพ์ บรรทัดต่อไปด้วย
av_scanner = clamd:127.0.0.1 3310

## Find check_message:
## Make sure it looks like this:

check_message:
deny message = This message contains malformed MIME ($demime_reason)
demime = *
condition = ${if >{$demime_errorlevel}{2}{1}{0}}
deny message = This message contains a virus or other harmful content ($malware_name)
demime = *
malware = *
deny message = This message contains an attachment of a type which we do not accept (.$found_extension)
demime = bat:com:pif:prf:scr:vbs
warn message = X-Antivirus-Scanner: Clean mail though you should still use an Antivirus
accept

## Save and exit

ทำการ restart clamd services
# service clamd restart
# /etc/init.d/exim restart

## Check for updates 24 times a day
# freshclam -d -c 24

แล้วทำการ monitor ดูครับ
tail -f /var/log/exim/mainlog

เสร็จแล้วจะเจอ ข้อความประมาณนี้
rejected after DATA: This message contains a virus or other harmful content (Email.Ecard-51)

————–
หลังจากนั้นให้ ติดตั้ง service monitor ของ DA
HOWTO: Control ClamAV from Service Monitor

Reference:
http://www.directadmin.com/forum/showthread.php?t=10478

——————————————————————————–
ทำตามนี้
http://www.directadmin.com/forum/showthread.php?t=17730

วิธีการอินาเบิล iptables ขึ้นมาใช้งาน

1. วิธีการอินาเบิล iptables ขึ้นมาใช้งาน

เช็คก่อนครับว่าที่เครื่องมีติดตั้ง iptables ไว้หรือยัง ใช้คำสั่ง rpm -qa | grep iptables
[root@opensips ~]# rpm -qa | grep iptables
ถ้าติดตั้งไว้แล้วก็จะมีข้อความประมาณนี้ครับ
iptables-ipv6-1.3.5-4.el5
iptables-1.3.5-4.el5

ถ้าติดตั้งไว้แล้วก็จะแสดงให้เห็นครับ ถ้ายังไม่มีก็ต้องติดตั้งเพิ่มครับ ใช้คำสั่ง yum -y install iptables
ตัว iptables-ipv6 ไม่จำเป็นต้องติดตั้งครับ เพราะเป็น IPv6 แต่เราใช้แค่ IPv4 ใช้ไฟล์ล่าง iptables เฉยๆก็พอ
[root@opensips ~]# yum -y install iptables

2. ไฟล์คอนฟิก iptables
เมื่อติดตั้งแล้วจะมีไฟล์คอนฟิกของ iptables ชื่อ "iptables" อยู่ที่โฟลเดอร์ /etc/sysconfig ครับ เราแก้ไขไฟล์ๆนี้ก่อนที่จะสั่งให้ iptables ทำงาน ตัวอย่างข้อมูลในไฟล์ /etc/sysconfig/iptables เป็นตามนี้ครับ

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ปิดการ access ของ root ผ่าน ssh

ปิดการ access ของ root ผ่าน ssh
Prerequirement CentOS 5.x

Step
1. login ด้วย root เข้าสู่ระบบ (จะได้มั่นใจได้ว่า เราแก้ไขได้ทุกไฟล์)
2. cd /etc/ssh
3. vi sshd_config
4. หาบรรทัดที่มีคำว่า PermitRootLogin โดยพิม /PermitRootLogin
5. ลบ # ออกด้านหน้า แล้วแก้เป็น PermitRootLogin no
6. เซฟไฟล์ แล้ว restart sshd
service sshd restart
7. logout แล้วลอง login ใหม่เป็น root จะเป็นหว่า login ไม่ได้แล้ว

วันศุกร์ที่ 18 มิถุนายน พ.ศ. 2553

การติดตั้ง Network Time Protocol (NTP) CentOS

Sat, 06/12/2010 - 09:06 | admin
เพื่อให้ข้อมูลจราจรมีความถูกต้องและนำมาใช้ประโยชน์ได้จริงผู้ให้บริการต้องตั้งนาฬิกาของอุปกรณ์บริการทุกชนิดให้ตรงกับเวลาอ้างอิงสากล (Stratum 0) โดยผิดพลาดไม่เกิน 10 มิลลิวินาที

ขั้นตอนการติดตั้ง

1.ตรวจสอบ package โดยพิมพ์คำสั่งนี้

# rpm -qa | grep ntp*

หากไม่พบ ก็สามารถติดตั้งได้โดยพิมพ์คำสั่งนี้ใน terminal

# yum install ntp -y

การทำงานของ ntp จะทำงานผ่าน port UDP 123 ดังนั้นต้องให้ firewalls เปิด port 123 ด้วย
การเปิดพอร์ตของ firewall สามารถทำได้โดยการแก้ไขไฟล์คอนฟิกของ redhat firewall
โดยการพิมพ์คำสั่งนี้

# vi /etc/sysconfig/iptables
..................................
..................................
หาบรรทัดที่พิมพ์ว่า
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

แล้วแทรกสองบรรทัดนี้ต่อจากบรรทัดนั้น

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 123 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT

เซฟไฟล์แล้วออกมาที่ terminal แล้วสั่ง restart iptable อีกครั้งด้วยคำสั่งนี้

#service iptables restart

2. ตรวจสอบ remote server ว่าสามารถเข้าใช้บริการได้หรือไม่ โดยการพิมพ์คำสั่งต่อไปนี้
# ntpdate -b time1.nimt.or.th
# ntpdate -b time.navy.mi.th
# ntpdate -b clock.nectec.or.th

3. สำรองไฟล์คอนฟิกเดิมก่อนด้วยคำสั่ง mv
# mv /etc/ntp.conf /etc/ntp.conf.ori

จากนั้นแก้ไขค่าคอนฟิกของ ntp โดยการพิมพ์คำสั่งนี้
# vi /etc/ntp.conf

ให้มีเนื้อหาดังนี้

driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server time1.nimt.or.th
server time.navy.mi.th
server clock.nectec.or.th

restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1

จากนั้นให้เซฟไฟล์แล้วออกมาที่ terminal

4. restart service ntp ให้ทำงานทันที และให้ ntp ทำงานทุกครั้งที่บูตเครื่องด้วยคำสั่ง
# servive ntpd restart
# chkconfig ntpd on

ตรวจสอบการทำงานของ ntp ด้วยคำสั่ง
# ntpq -pn

5. ปกติแล้ว ntpd จะมี log อยู่ที่ไฟล์ /var/log/messages
แต่ถ้าต้องการแยกไฟล์ log ของ ntpd ออกต่างห่างให้แก้ไฟล์ /etc/ntpd.conf เพิ่มเติมดังนี้ที่บรรทัดสุดท้ายของไฟล์ /etc/ntp.conf

logfile /var/log/ntp.log
จากนั้นให้ restart service ntpd ด้วยคำสั่ง

# service ntpd restart

ก็จะได้ไฟล์ /var/log/ntp.log แยกออกมา เพื่อที่จะตรวจสอบได้ง่าย

วันพุธที่ 16 มิถุนายน พ.ศ. 2553

ลบ cache ใน squid centos

ลบ cache ใน squid centos
#rm -Rf /var/spool/squid/*
#/etc/init.d/squid restart

วันอังคารที่ 12 มกราคม พ.ศ. 2553

การสั่งพิมพ์รายชื่อไฟล์ในโฟลเดอร์

น่าเสียดายที่ Windows Explorer ไม่มีฟังก์ชันการสั่งพิมพ์รายชื่อไฟล์ในโฟลเดอร์
มาให้ แต่ไม่ต้องห่วงเพราะเทคนิคต่อไปนี้จะช่วยให้คุณสามารถสั่งพิมพ์รายชื่อไฟล์
ในโฟลเดอร์ใดๆ ก็ได้แบบง่ายดาย

1. ยกตัวอย่างหากต้องการพิมพ์รายชื่อในโฟลเดอร์ Programs File ในไดร์ฟ C:
2. คลิกปุ่ม Start -> Run
3. ที่ไดอะล็อก Run พิมพ์คำสั่ง COMMAND /C DIR C:\Program Files>PRN
4. คลิกปุ่ม OK หรือกด Enter
5. รายชื่อไฟล์ทั้งหมดในโฟลเดอร์ C:\Program Files จะถูกพิมพ์ออกทางเครื่องพิมพ์
ที่ติดตั้งไว้ทันที

เคล็ดลับของปุ่มโลโก้ Windows

ปุ่มโลโก้ Windows บนแป้นพิมพ์ ผมเชื่อว่า คนส่วนใหญ่จะใช้สำหรับเรียก Start Menu เริ่มแรกผมก็ได้แบบนี้เหมือนกัน แต่พอมาทดสอบเพิ่มเติม
จึงได้ทราบเคล็ดลับดี ๆ ของปุ่ม Windows ที่ช่วยเพิ่มความสะดวกในการใช้งานได้ดีมากทีเดียว สำหรับคนใดสนใจจะนำไปใช้ก็ไม่หวงห้ามครับ..
ปุ่ม Windows : แสดง Start Menu
ปุ่ม Windows + D : ลดรูป (Minimize) หรือขยายหน้าต่าง (Restore) ของหน้าต่างที่ใช้งานปัจจุบัน
ปุ่ม Windows + E : เรียกโปรแกรม Windows Explorer อัตโนมัติ
ปุ่ม Windows + F : เรียกโปรแกรมในการค้นหาหรือ Search File
ปุ่ม Windows + L : Lock เครื่องคอมพิวเตอร์ของคุณ
ปุ่ม Windows + R : แสดงหน้าต่าง RUN
ปุ่ม Windows + U : เปิดโปรแกรม Utility Manager
ปุ่ม Windows + F1 : เรียกโปรแกรม Help และ Support Center
ปุ่ม Windows + Ctrl + F : เรียกโปรแกรมในการค้นหาหรือ Search สำหรับ Computer
ปุ่ม Windows + Shift + M : ยกเลิกการ minimize ทั้งหมด
ปุ่ม Windows + break : แสดงหน้าต่าง System Properties

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

ไม่ให้ user แก้ Network

ใช้ OS อะไรอยู่ครับ ถ้า Windows
ใช้ run -->gpedit.msc -->Network ---->Networkwork Connection
จะเลือก Prohibit อะไรก็ได้..แต่ ต้องทำใน User Administrator นะครับ

วิธีการซ่อนเครื่องคอมพิวเตอร์ของคุณให้หายไปจากเครือข่าย Network
สำหรับใครที่ชอบแชร์ไฟล์บนเครือข่าย Network ของ Office ที่ทำงานหรือภายในองค์กรของคุณ ไม่ว่าจะเป็นไฟล์เพลง ไฟล์หนัง ไฟล์คาราโอเกะ หรือ media ใดๆ ที่คุณไม่อยากให้คนอื่นหรือหัวหน้างานของคุณ Browse Network เจอเครื่องของคุณที่กำลังแชร์ไฟล์ให้กับเพื่อนหรือใครที่คุณต้องการให้เห็น ทิปนี้จะช่วยคุณได้ครับ

วิธีการซ่อนเครื่องคอมพิวเตอร์ของคุณ ให้อันตรธานหายไปจากเครือข่ายเน็ตเวิร์คในพริบตา สามารถทำได้ดังนี้

ก่อน อื่นต้องตรวจสอบว่า Server service ของคุณรันทำงานอยู่หรือเปล่า ซึ่งสามารถตรวจสอบได้โดย ไปที่ Start > Run > พิมพ์ว่า services.msc แล้วกดปุ่ม OK หรือ Enter ที่คีย์บอร์ด จากนั้นรอสักครู่ Service Console Management ก็จะปรากฏขึ้นมา ให้เลื่อน scroll bar หา Service Name ที่ชื่อว่า Server แล้วดูที่ Status ว่าเป็น Started อยู่หรือเปล่า

* ถ้าไม่ใช่ให้ทำการ Start โดยคลิกขวาที่ Server service > Start รอสักครู่ จนกว่า Status เป็น Started แล้ว แล้วทำตามขั้นตอนต่อไปที่จะกล่าวถึง
* แต่ถ้า Status เป็น Started แล้ว สามารถดำเนินการตามขั้นตอนต่อไปได้เลย

* เมื่อตรวจสอบ Server service รันทำงานอยู่เรียบร้อยแล้ว ให้ไปที่ Start > Run > แล้วพิมพ์ว่า net config server /hidden:yes แล้วกดปุ่ม OK หรือ Enter ที่คีย์บอร์ด จากนั้นเครื่องคอมพิวเตอร์ของคุณก็จะถูกซ่อนให้หายไปจากเครือข่าย Network แล้วครับ
* หรืออีกวิธีก็คือให้ไปที่ Start > Run > แล้วพิมพ์ว่า cmd จากนั้นในหน้าจอสำดำ(Command-line) ให้พิมพ์ว่า net config server /hidden:yes แล้วกดปุ่ม OK หรือ Enter ที่คีย์บอร์ด ถ้าไม่มีข้อความใดๆ คุณก็จะได้รับข้อความแจ้งว่า The command completed succesfully
* จากนั้นลอง Browse ดูที่ My Network Places ดูนะครับ จะมองไม่เห็นเครื่องของคุณแล้วหล่ะ
* และถ้าต้องการให้กลับเป็นดังเดิม ก็สามารถใช้คำสั่ง net config server /hidden:no เพื่อยกเลิกการซ่อนเครื่องคอมพิวเตอร์ของคุณจากเครือข่าย Network
* แต่ทั้งนี้ทั้งนั้น คุณสามารถบอกให้เพื่อนสามารถเห็นเครื่องของคุณได้ โดยไปที่ Start > Run > แล้วพิมพ์ \\ชื่อเครื่องหรือไอพีเครื่องของคุณ แล้วกดปุ่ม OK หรือ Enter ที่คีย์บอร์ด จากนั้นเพื่อนของคุณก็จะเห็นไฟล์ โฟลเดอร์ที่คุณเปิดแชร์ไฟล์ไว้ได้แล้วหล่ะครับ
http://www.techoops.com/webboard/index.php?topic=3423.0