Category: Server

Shell Script สำหรับเช็ค Status ของ Symantec Security Information Manager

บันทึกกันลืม เรื่องมันมีอยู่ว่า ssim ที่ใช้อยู่ mount nas storage มาใช้แล้วมันเกิด error อยู่บ่อยๆ ผมเลยจำเป็นต้องเขียน shell script เพื่อตรวจสอบว่ามี service ไหนตายบ้างหรือเปล่า ถ้าตายก็ให้มัน restart service ของ ssim ทั้งหมด

ตัวอย่างคำสั่ง status เมื่อมี error นันคือมี column STATUS มี service ที่สถานะเป็น OFF หรือ column EXIT มีบรรทัดที่ไม่เป็น 0 ส่วนใหญ่จะเป็น code 143

[root@logserv ~]# status NAME PID PORT UPTIME MAXUPTIME #START STATUS EXIT sesmanager 23583 0 0d00:24 0d00:24 1 UP 0 sesevents 24705 0 0d00:23 0d00:23 1 UP 0 rxregistry 22933 55550 0d00:25 0d00:25 1 UP 0 simdbmu 29543 10030 0d00:21 0d00:21 1 UP 0 dimserver 24514 55560 0d00:24 0d00:24 1 UP 0 simserver 26829 10010 0d00:22 0d00:22 1 UP 0 icesvc 26956 55562 0d00:22 0d00:22 1 UP 0 assetsvc 24362 55557 0d00:24 0d00:24 1 UP 0 kbsvc 28853 55566 0d00:21 0d00:21 1 UP 0 querysvc 25970 55569 0d00:23 0d00:23 1 UP 0 rulesvc 25224 55559 0d00:23 0d00:23 1 UP 0 configurationsvc 23687 55571 0d00:24 0d00:24 1 UP 0 notificationsvc 25382 55558 0d00:23 0d00:23 1 UP 0 schedulersvc 28272 55561 0d00:21 0d00:21 1 UP 0 ticketsvc 26202 55567 0d00:23 0d00:23 1 UP 0 eventfindersvc 28114 55568 0d00:22 0d00:22 1 UP 0 statsvc 27757 55570 0d00:22 0d00:22 1 UP 0 wsrf 28932 0 0d00:21 0d00:21 1 UP 143 ------------------------------- IBM DB2 (PID 21815 21814 21813 21600 21599 21598) is running. ------------------------------- IBM LDAP (PID 22100) is running. ------------------------------- IBM HTTP Server (PID 22706 22705 22702 22689) is running. ------------------------------- The SSIM Agent (pid 23453) is running. -------------------------------

ตัวอย่าง script

#!/bin/bash STATUSCMD=/usr/sbin/status STATUSFILE=/tmp/ssim-status.tmp $STATUSCMD > $STATUSFILE STATUS0=$(grep 'UP\|OFF' $STATUSFILE | awk '{print $7}' | grep -v 'STATUS\|UP' | uniq) STATUS1=$(grep 'UP\|OFF' $STATUSFILE | awk '{print $8}' | grep -v '0\|EXIT' | uniq) if [ "$STATUS0" == "$STATUS1" ]; then echo "Service Health Normal" else echo "Service not normal will restart all service" /opt/Symantec/simserver/bin/stopservices.sh --all && /opt/Symantec/simserver/bin/startservices.sh --all fi

save script เป็น .sh แล้วเอาไปยัดใส่ crontab ผมตั้งไว้ให้เช็คทุก 30 เป็นอันเสร็จพิธี
หลักการทำงานคือ script จะทำการตรวจสอบว่ามี service ไหนมี status เป็น OFF หรือมี EXIT code ไม่เป็น 0 ถ้า script ตรวจพบ มันก็จะ restart service ใหม่ทั้งหมด

Share/Save

Leave a Comment December 19, 2012

ให้การติดตั้ง Dependency Library เป็นเรื่องง่ายๆ ด้วย yum whatprovides

วันนี้มีทิปของคำสั่ง yum มาฝากครับ สำหรับใครที่เคยใช้คำสั่ง yum ก็คงรู้ดีว่ามันช่วยให้ชีวิตของเราสะดวกสบายแค่ไหนในเรื่องช่วยติดตั้ง packages ต่างๆ yum ติดตั้งโน้นนี่นั้นแสนสบาย แต่ก็เชื่อเหลือเกินว่าชีวิตเราคงไม่สะดวกราบรื่นสักเท่าไรนัก นานๆ ทีจะมี package third-party มาให้เราลงซึ่งส่วนใหญ่จะมาเป็น .rpm และแน่นอนว่าไอ้ .rpm นี่อาจสร้างปัญหาให้คุณได้หากมันต้องการ dependency library เช่นอาจจะฟ้อง error ว่าหา library นี้ไม่เจอบ้างหละ ต้องติดตั้ง library นี้ก่อนบ้างละ ดังตัวอย่าง

[root@DR-SERVER ~]# rpm -Uvh arcserverha_rhel6_x86_64.rpm libc.so.6 is needed by ARCserveRHA-16.1-2.3124.x86_64 libc.so.6(GLIBC_2.0) is needed by ARCserveRHA-16.1-2.3124.x86_64 libc.so.6(GLIBC_2.1) is needed by ARCserveRHA-16.1-2.3124.x86_64 libc.so.6(GLIBC_2.1.2) is needed by ARCserveRHA-16.1-2.3124.x86_64 libc.so.6(GLIBC_2.1.3) is needed by ARCserveRHA-16.1-2.3124.x86_64 libc.so.6(GLIBC_2.2) is needed by ARCserveRHA-16.1-2.3124.x86_64 libc.so.6(GLIBC_2.3) is needed by ARCserveRHA-16.1-2.3124.x86_64 libdl.so.2 is needed by ARCserveRHA-16.1-2.3124.x86_64 libdl.so.2(GLIBC_2.0) is needed by ARCserveRHA-16.1-2.3124.x86_64 libdl.so.2(GLIBC_2.1) is needed by ARCserveRHA-16.1-2.3124.x86_64 libgcc_s.so.1 is needed by ARCserveRHA-16.1-2.3124.x86_64 libgcc_s.so.1(GCC_3.0) is needed by ARCserveRHA-16.1-2.3124.x86_64 libgcc_s.so.1(GLIBC_2.0) is needed by ARCserveRHA-16.1-2.3124.x86_64 libm.so.6 is needed by ARCserveRHA-16.1-2.3124.x86_64 libpam.so.0 is needed by ARCserveRHA-16.1-2.3124.x86_64 libpam.so.0(LIBPAM_1.0) is needed by ARCserveRHA-16.1-2.3124.x86_64 libpthread.so.0 is needed by ARCserveRHA-16.1-2.3124.x86_64 libpthread.so.0(GLIBC_2.0) is needed by ARCserveRHA-16.1-2.3124.x86_64 libpthread.so.0(GLIBC_2.1) is needed by ARCserveRHA-16.1-2.3124.x86_64 libpthread.so.0(GLIBC_2.2) is needed by ARCserveRHA-16.1-2.3124.x86_64 libpthread.so.0(GLIBC_2.3.2) is needed by ARCserveRHA-16.1-2.3124.x86_64 libresolv.so.2 is needed by ARCserveRHA-16.1-2.3124.x86_64 libresolv.so.2(GLIBC_2.2) is needed by ARCserveRHA-16.1-2.3124.x86_64 libstdc++.so.6 is needed by ARCserveRHA-16.1-2.3124.x86_64 libstdc++.so.6(CXXABI_1.3) is needed by ARCserveRHA-16.1-2.3124.x86_64 libstdc++.so.6(GLIBCXX_3.4) is needed by ARCserveRHA-16.1-2.3124.x86_64

จะลงแค่ package เดียวพี่แกเล่นซะยาวเลย จาก error ฟ้องว่ามันต้องการ libc.so.6 libdl.so.2 และ library อีก 3-4 ตัว จะทำยังไงละทีนี้ ปกติเราก็จะเอาชื่อ library ที่เจอไป search หา .rpm ใน internet มาติดตั้งเพิ่มเติมแต่วันนี้เราจะลองหา library ที่มันต้องการผ่านคำสั่ง yum กันดูครับโดยใช้คำสั่ง

yum whatprovides <ชื่อ library>

ตัวอย่าง

[root@DR-SERVER ~]# yum whatprovides libc.so.6 Loaded plugins: product-id, refresh-packagekit, subscription-manager Updating Red Hat repositories. Repository 'rhel6' is missing name in configuration, using id glibc-2.12-1.25.el6.i686 : The GNU libc libraries Repo : rhel6 Matched from: Other : libc.so.6

สังเกตชื่อ package ที่มี library libc.so.6 ได้จากบรรทัดที่ขีดเส้นใต้ครับ ที่เหลือเราก็แค่สั่ง yum install ชื่อ package นั้นเราก็จะได้ library libc.so.6 มาใช้งานแล้ว เช่น

[root@DR-SERVER ~]# yum install glibc-2.12-1.25.el6.i686

มันต้องการกี่ตัวก็ yum whatprovides ไปจนครับนะครับ
บ๊ายบาย

1 Comment November 1, 2012

วิธีแก้ SuPHP บน Kloxo 6.1.12 ไม่ Work ขึ้น Internal Server Error 500

เรื่องโดยสรุปของปัญหานี้ก็มีอยู่ว่า SuPHP ของ Kloxo มันยังไม่สเถียรนั้นเองครับ วิธีแก้ไขเบื้องต้นตอนนี้ก็ทำได้โดย Downgrade version ของ PHP ลงมา
ขั้นตอน
1. ssh ไปยัง server ของคุณ
2. ใช้คำสั่ง

yum list php

ถ้ามันบอกมาว่าเป็นเวอร์ชัน php.i386(x86_64) 5.2.17-13 แสดงว่าคุณติดตั้ง patch ล่าสุด(แต่ไม่ work)แล้ว และนี่ก็เป็นสาเหตุทำให้เกิด error ดังกล่าวต้อง Downgrade มันลงมาซะ
3. ใช้คำสั่งนี้เพื่อ Downgrade ได้เลยครับ

yum downgrade php* --disablerepo=* --enablerepo=lxcenter-updates

4. ทีนี้ก็ลองกลับไปเลือก mode php ให้เป็น suphp ดูครับ แล้วก็อย่าเผลอสั่ง yum update อีกละ
ถ้าจะ update ระบบให้สั่ง yum upgrade เป็นราย package ไปแทนครับ
จบ

แหล่งข้อมูล : http://www.dewesh.com/server-management/how-to-get-suphp-working-on-kloxo-6-1-12/

2 Comments September 22, 2012

วิธี Set NTP Client บน Brocade SAN Switch

หาการ config เกี่ยวกับเวลาใน admin gui ไม่เจอเลยรู้ว่าต้องทำผ่าน command ครับ
ง่ายสั้นๆ ครับวันนี้วิธีกำหนด NTP บน Brocade SAN Switch
1. ssh ไปยัง san switch
2. รันคำสั่ง

tsClockServer “xxx.xxx.xxx.xxx”

3. กำหนด Time Zone ด้วยคำสั่ง กดเลือก Asia แล้วเลือก Thailand

tstimezone –interactive

4. reboot สักรอบ

Leave a Comment September 20, 2012

Kloxo php.ini trick

วันนี้มี trick kloxo มาฝากครับ

คือปกติแล้ว kloxo จะมีไฟล์ /etc/php.ini เป็นไฟล์ Global

ถ้าหากเราเข้าไปแก้อะไรในไฟล์ /etc/php.ini ก็ตาม เช่น เข้าไปแก้ expose_php = Off

แก้เสร็จแล้วเข้าไปคลิกหน้าแก้ไข admin => Server => localhost > PHP Config ผ่านหน้า Web GUI ของ Kloxo ค่าของ expose_php จะกลับไปเป็น expose_php = On อีกครั้งเพราะเป็นค่า Default ของ Kloxo แก้แล้ว แก้อีก ตามแก้กันไม่หวาดไม่ไหว สุดท้ายต้องหาคำตอบให้ได้ว่าต้องแก้ที่ไหน สุดท้ายไปได้คำตอบจาก comment นี้ครับ

http://forum.lxcenter.org/index.php?t=msg&th=13702&goto=73506&#msg_73506

ใน path /usr/local/lxlabs/kloxo/file/phpini จะมีไฟล์ php.ini.template-x.x อยู่ 4 ไฟล์

[root@webinter phpini]# ls -l
total 128
-rw-r–r– 1 lxlabs lxlabs 1038 Feb 23 2012 htaccesstemp
-rw-r–r– 1 lxlabs lxlabs 1458 Feb 23 2012 php.ini.temp
-rw-r–r– 1 lxlabs lxlabs 38659 Sep 7 13:46 php.ini.template-4.3
-rw-r–r– 1 lxlabs lxlabs 38735 Sep 7 13:45 php.ini.template-5.1
-rw-r–r– 1 lxlabs lxlabs 38873 Sep 7 13:45 php.ini.template-5.2

ผมต้องการให้ค่าของ expose_php = On เป็น expose_php = Off ทั้งหมด
ผมก็เข้าไปแก้ทั้ง 4 ไฟล์หมดเลยครับ
ทดสอบโดยการคลิกตรง admin => Server => localhost > PHP Config จากหน้า Web GUI แล้วเข้าไปดูในไฟล์ /etc/php.ini ว่าค่าของ expose_php เป็น Off หรือเปล่า
จบ

Leave a Comment September 7, 2012

Solved : Kloxo error libwrap refused connection to ftp (libwrap=pure-ftpd) from xxx.xxx.xxx.xxx

หากคุณเป็นคนหนึ่งที่ใช้ Kloxo เป็น Hosting Control Panel แล้วเจอปัญหา Client FTP เข้าไปใช้งานไม่ได้ ดู log /var/log/messages แล้วเจอ error

Aug 26 15:48:38 webinter xinetd[8593]: libwrap refused connection to ftp (libwrap=pure-ftpd) from 10.8.0.6
Aug 26 15:48:38 webinter xinetd[8593]: FAIL: ftp libwrap from=10.8.0.6
Aug 26 15:48:38 webinter xinetd[11217]: START: ftp pid=8593 from=10.8.0.6
Aug 26 15:48:38 webinter xinetd[11217]: EXIT: ftp status=0 pid=8593 duration=0(sec)

ให้คุณ login เข้า kloxo ด้วย user admin หรือแจ้ง admin ให้ไปตรวจสอบที่ admin => Security => Lxguard => Connections
ตรวจสอบที่แท็บ Connections ว่ามี IP ไหนโดน Block อยู่หรือเปล่าถ้ามีคุณก็แค่ Remove IP นั้นออกจาก List ก็สามารถ Login ได้แล้วครับ
สาเหตุเกิดจาก User Login ด้วย Username Password ผิดเกินกว่าจำนวนครั้งที่กำหนดไว้ใน Lxguard ครับ
หวังว่าคงมีประโยชน์กับผู้อ่านนะครับ

Leave a Comment August 29, 2012

Apache Security TIP

เมื่อคืนลองใช้ nikto scan เว็บ Server ที่เพิ่งทำเสร็จ ผลปรากฏว่าเจอช่องโหลดตามนี้
เปิด ServerTokens OS ไว้ทำให้รู้ว่ารันด้วย OS และใช้ Apache เวอร์ชั่นอะไร
เปิด Method TRACE ไว้ซึ่งอาจทำให้โดน XSS ได้
เปิด expose_php On ไว้ทำให้ทราบว่าใช้ PHP เวอร์ชั่นอะไร
และ Scan เจอว่าอนุญาตให้อ่าน ETag header ได้

วิธีแก้ปัญหาของผมมี 3 ขั้นตอนครับ
1. เข้าไปแก้ไฟล์ /etc/httpd/conf/httpd.conf
โดยแก้

ServerTokens On

ให้เป็น

ServerTokens ProductOnly

เพื่อให้ Apache แสดงเฉพาะชื่อโปรดัก Apache อย่างเดียวไม่ให้แสดง OS และเวอร์ชั่นของ Apache

2. ปิด Method TRACE และ Etag โดยสร้างไฟล์ /etc/httpd/conf.d/security_tunning.conf โดยมีเนื้อหาไฟล์ดังนี้

#Diable Method TRACE
TraceEnable Off

#Disable ETag
Header unset ETag
FileETag None

3. ปิด expose_php On เป็น expose_php Off ซะโดยแก้ไขไฟล์ /etc/php.ini ให้เป็น

expose_php Off

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

แหล่งข้อมูล :
http://www.ducea.com/2007/10/22/apache-tips-disable-the-http-trace-method/
http://www.askapache.com/htaccess/apache-speed-etags.html

Leave a Comment August 26, 2012

ว่าด้วยการนับ ด้วยคำสั่ง wc

วันนี้มาเขียนอะไรสั่นๆ เผื่อเป็น trick ให้ผู้ใช้งานมือใหม่ได้เอาไปใช้ประโยชน์ครับ
วันนี้ขอเสนอคำสั่ง wc
คำสั่ง wc เป็นคำสั่งสำหรับเอาไว้นับ ผมชอบใช้เอาไว้นับจำนวนไฟล์ในไดเร็กทอรี่และนับพวกบรรทัดไฟล์ config
ตัวอย่างแรก สมมติว่าเราอยากจะรู้ว่าในไดเร็กทอรี่ที่เราสนใจมีไฟล์ .php อยู่กี่ไฟล์ ก็สามารถใช้คำสั่งประมาณนี้ได้ครับ

mrgill@mrgill-laptop:/media/Data/httpdocs$ find ./ *.php | wc -l 3405 mrgill@mrgill-laptop:/media/Data/httpdocs$ ls *.php | wc -l 103

จะเห็นว่าสองคำสั่งด้านบนให้ผลที่แตกต่างกันโดยคำสั่ง find จะทำการหาไฟล์ .php ทั้งหมดรวมทั้งซับไดเร็กทอรี่มาให้แต่ แต่ ls แสดงเพียงไฟล์ .php ของไดเร็กทอรี่ชั้นแรกเท่านั้น

ลองเอา wc มาใช้ในการนับจำนวนบรรทัดของไฟล์กันบ้าง

mrgill@mrgill-laptop:/media/Data/httpdocs$ wc -l font.php 308 font.php mrgill@mrgill-laptop:/media/Data/httpdocs$ cat font.php | wc -l 308

จะใช้ wc เลยหรือจะ cat มาก่อนก็จะได้จำนวนบรรทัดเท่ากัน

อยากรู้อะไรเพิ่มเติมเกี่ยวกับคำสั่ง wc ก็ man wc เอาได้เลยครับ

ลองเอาไปประยุกต์ใช้กันดูครับ จบละ

Leave a Comment August 22, 2012

แก้ปัญหา Apache เว็บภาษาต่างดาวอย่างถาวร

วันนี้เอาทิปสั่นๆ มาฝากครับ
หากท่านเป็นแอดมินที่ต้องดูแลเว็บ site หลายๆ เว็บบนเครื่องเดียวกัน หรือมีหลาย Virtual Host บนเครื่องเดียวกัน ผู้พัฒนาเว็บของท่านก็มีหลาย Level เกิ๊นทั้ง เทพ ทั้ง เมพ และคนที่เขียนเว็บไม่เก่ง ทำให้โค้ดเว็บที่รันบน Server ของเรามี Character Encoding ที่หลากหลาย ไม่ว่าจะเป็น utf-8, tis-620, windows-874 และอีกต่างๆ นาๆ หากเราคอนฟิก AddDefaultCharset UTF-8 ซึ่งเป็น Character Encoding ที่ดีที่สุดไว้ใน httpd.conf ของเราก็อาจให้ เว็บบางเว็บแสดงภาษาไทยได้สมบูรณ์แบบ แต่อีกหลายๆ เว็บก็อาจแสดงผลภาษาไทยไม่ได้ แน่นอนว่าคุณคงคิดถึง .htaccess ว่ามันช่วยได้ แต่ถ้าคุณมีเว็บที่ต้องแก้ไข .htaccess เป็นร้อยเป็นพัน คงไม่สนุกแน่
วันนี้ผมเอา trick วิธีแก้ไขปัญหานี้มาฝากครับ
ง่ายๆ แค่คุณกำหนดค่า
AddDefaultCharset ใน httpd.conf ของคุณให้มีค่าเป็น Off ซะ ปัญหาข้างต้นก็จะหมดไป

AddDefaultCharset Off

ที่ไม่ว่า Webmaster ของคุณจะเทพขนาดไหน จะใช้ Character Encoding ภาษาอะไรก็ไม่เป็นปัญหาอีกต่อไปแล้วครับ
สำหรับวิธีทดสอบก็ง่ายๆ ครับหากคุณแก้ไข httpd.conf ของคุณ และรีสตาร์ท Apache ของคุณแล้ว
ก่อนคุณจะกด Refresh ดูผลของเว็บนั้นให้คุณกดปุ่ม Shift จากนั้นค่อยไปกดปุ่ม Refresh บน Browser ที่คุณชอบ(สำคัญมาก) เพื่อให้แน่ในว่ามันได้ Refresh หน้านั้นจริงๆ

ขอ Apache จงสถิตอยู่กับท่าน
ขอบคุณแหล่งข้อมูล : http://myy.helia.fi/~karte/multiple_encodings_on_one_server.html

1 Comment August 17, 2012

วิธีแก้ปัญหาเมื่อส่งเมล์ Zimbra เข้า Distribution Lists แล้ว Web Client มองเป็น Spam และเข้า Junkbox

ปัญหานี้เจอหลัง Migrate Mail Server ให้ลูกค้าครับ
เจอตอนทดสอบส่งเมล์เข้า Distribution Lists หรือ Group นั้นเอง
ปัญหานี้เกิดจาก Zimbra มองว่าพฤติกรรมการส่งเมล์จาก mail เดียวไปยัง Distribution Lists นั้นเหมือนการส่งแบบกระจายสุ่มเสี่ยงต่อการเป็น Spam
มันเลย Filter เมล์นั้นเข้าไปไว้ใน Junkbox หรือ อีเมลขยะ
วิธีแก้นั้นไม่ยากครับเพียงแค่เราไปแก้ไขคอนฟิกไฟล์ของ Zimbra เล็กน้อยแค่บรรทัดเดียวโดยแก้ไขไฟล์
/opt/zimbra/conf/amavisd.conf.in ให้ค่าของ $log_level = 2;
สามารถตรวจสอบได้โดย

root@mail2:~ # cat /opt/zimbra/conf/amavisd.conf.in | grep "log_level =" $log_level = 1; # verbosity 0..5 - 1 is the minimum for msg tracing root@mail2:~ #

หาก $log_level = 1; อยู่ให้แก้เป็น 2

root@mail2:~ # cat /opt/zimbra/conf/amavisd.conf.in | grep "log_level =" $log_level = 2; # verbosity 0..5 - 1 is the minimum for msg tracing root@mail2:~ #

แก้ไขแล้วก็สั่ง restart service

root@mail2:~ # su - zimbra zimbra@mail2:~ $ /opt/zimbra/bin/zmamavisdctl restart

เพียงเท่านี้ก็น่าจะไม่มีปัญหาแล้วครับ
อ้างอิง : http://www.zimbra.com/forums/administrators/39769-solved-we-geting-spam-our-distribution-list.html#post183571

Leave a Comment June 5, 2012


Recent Entries

Random Posts

Social Network

Tag Cloud

Calendar

August 2017
S M T W T F S
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Twitter: imrgill

RSS LinuxToday

RSS HowToForge

RSS UbuntuClub

RSS Blognone

RSS PowerWindowsBlog

Tag

Categories

Archives

Blogroll