Category: Security

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

วิธีแก้ 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

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

วิธีแก้ปัญหาเมื่อส่งเมล์ 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

Shell In A Box ลองใช้กันดู

สวัสดีครับ ห่างหายกันไปนานกับการเขียน blog เรื่อง linux วันนี้มาเขียนเรื่อง shell in a box ครับ
พอดีได้รู้จักเจ้า Package ตัวนี้โดยบังเอิญเพราะลองติดตั้ง Zimbra Turnkey Linux แล้วสะดุดใจกับ Web Shell ของมันที่มี Port 12320 ว่ามันคืออะไรก็เลยลองเปิด Browser ไปที่ http://zimbrahost:12320 ดูก็เลยรู้ว่ามันเป็น Web Shell อย่างที่ชื่อมันบอกจริงๆ คือมีหน้าจอให้เรา Login Shell ผ่านหน้า Browser กันเลย แล้วผมก็ลอง netstate ดูใน Terminal ก็พบว่า Port 12320 เป็นของ Service ที่มีชื่อว่า shellinabox

root@zimbra:~# netstat -pant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:12320 0.0.0.0:* LISTEN 11602/shellinaboxd tcp 0 0 0.0.0.0:12321 0.0.0.0:* LISTEN 11631/perl tcp 0 0 0.0.0.0:7780 0.0.0.0:* LISTEN 13272/httpd tcp 0 0 127.0.0.1:389 0.0.0.0:* LISTEN 11752/slapd tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 13153/amavisd (mast tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 13973/master tcp 0 0 127.0.0.1:7306 0.0.0.0:* LISTEN 12440/mysqld tcp 0 0 127.0.0.1:7307 0.0.0.0:* LISTEN 12171/mysqld tcp 0 0 0.0.0.0:3310 0.0.0.0:* LISTEN 13214/clamd tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 13973/master tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 13973/master tcp 0 0 127.0.0.1:7306 127.0.0.1:56248 ESTABLISHED 12440/mysqld

การตามหา Shell In A Box ยังไม่เสร็จสิ้นหลังจากทราบข้อมูลเบื้องต้นมาแล้วก็เลยเข้าไปหาข้อมูลเพิ่มเติมใน Google ก็ได้ทราบว่า Shell In A Box อยู่ใน Google Code : http://code.google.com/p/shellinabox/ รายละเอียดเข้าไปดูกันได้ครับ ผมเลยลองโหลดตัว shell in a box ที่เป็น .deb มาลองติดตั้งบน Ubuntu Desktop ของผมดู

mrgill@mrgill-laptop:~$ dpkg -i shellinabox_2.10-1_amd64.deb

ติดตั้งเสร็จก็สามารถเรียกใช้งานได้เลยครับที่ Port 4200 ผลการทดสอบก็ได้ผลดังนี้ครับ

Shell In A Box

สำหรับใครที่ต้องการเปลี่ยน Port 4200 เป็น Port อื่นก็สามารถเข้าไปแก้ไขได้ที่ /etc/default/shellinabox ครับ

root@mrgill-laptop:/etc/default# cat shellinabox # Should shellinaboxd start automatically SHELLINABOX_DAEMON_START=1 # TCP port that shellinboxd's webserver listens on SHELLINABOX_PORT=4200 # Parameters that are managed by the system and usually should not need # changing: # SHELLINABOX_DATADIR=/var/lib/shellinabox # SHELLINABOX_USER=shellinabox # SHELLINABOX_GROUP=shellinabox # Any optional arguments (e.g. extra service definitions) # We disable beeps, as there have been reports of the VLC plugin crashing # Firefox on Linux/x86_64. SHELLINABOX_ARGS=--no-beep

อยากเปลี่ยนเป็น Port อะไรก็ตามใจชอบกันเลยครับ
สำหรับ Production Server ก็ต้องคิดกันหนักหน่อยนะครับว่าจะอนุญาตในระดับไหน ยิ่งเราเปิดช่องทางให้ Remote เข้าไปถึง Server เยอะเท่าไหร่ความเสี่ยงด้านความปลอดภัยก็ยิ่งเพิ่มมากขึ้นตามไปด้วย

Leave a Comment March 11, 2011

วิธีลบ iptables rules ออกทั้งหมด

สืบเนื่องจากที่ผมเขียนเรื่อง NAT ในวันก่อนวันนี้ก็เลยเอาเรื่องการ Flush rules ของ iptables มาฝากครับ

ตามนี้เลย

iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT

จะรันทีละบรรทัด หรือจะเอาไปทำเป็น Script ก็ได้ครับ

แหล่งข้อมูล : http://www.cyberciti.biz/tips/linux-iptables-how-to-flush-all-rules.html

Leave a Comment January 28, 2011

Factory Reset บน Fortigate 100A ทำไง

ขั้นตอนมีดังนี้ครับ

1. ต่อสาย Console ที่ Fortigate และต่อเข้า PC หรือ Notebook ของเราให้เรียบร้อย แล้วเปิด Hyperterminal รอไว้เลย
2. เสียบปลั๊ก
3. เมื่อ Boot เสร็จมันจะ Prompt ให้เรากรอก Login ก็ให้กรอกไปดังนี้

Login : maintainer
password : bcpbFG100A1111111111

ให้เปลี่ยน 1111111111 เป็น Serial ของเครื่องซึ่งสังเกตุได้จาก Prompt ตอน Login นั้นแหละครับ ไม่ก็หงายดูด้านล้างเครื่องมันก็ได้ (มีเวลาให้คุณ login 30 วิเท่านั้น)

4. เมื่อ login ได้แล้วก็ใช้คำสั่ง

execute factoryreset

5. Fortigate 100A ของเราก็พร้อมใช้งานตามมาตรฐานโรงงานแล้วครับ

คำเตือน : วิธีการข้างต้นเป็นการทำ factory reset ดังนั้น Configuration ของคุณจะหายไปหมด
สำหรับใครที่ต้องการจะเปลี่ยนแค่รหัสผ่าน เมื่อเข้า maintainer mode ได้แล้วก็อาจเปลี่ยนแค่รหัสผ่านของ admin ก็พอ
ดังนั้น ใช้อย่างระมัดระวังนะครับ

Leave a Comment January 26, 2011

วิธีทำ NAT แชร์เน็ตแบบรีบๆ บน Ubuntu

ตามนี้เลยครับ สำหรับใครที่ต้องการแชร์เน็ตแบบทันใจ

โดยให้ eth0 เป็นขาที่ต่อเน็ต และขา eth1 เป็นขา local ที่ต้องการจะแชร์เน็ต มาดูวิธีกัน

กำหนด IP ของ eth1 ของเครื่องแม่ที่ต้องแชร์เน็ตให้เป็น 192.168.1.1/24

กำหนด IP เครื่อง Client ที่ต้องการจะแชร์เน็ตให้เป็น 192.168.1.xxx/24 ในที่นี้ผมกำหนดเป็น 192.168.1.10/24 และชี้ Gateway มาที่เครื่อง 192.168.1.1 ส่วน DNS ก็ชี้ไปที่ไหนก็ได้ครับ ผมขอชี้ไปที่ 8.8.8.8 ของ Google ละกัน

มาถึงส่วน Script กันบ้าง

สร้างไฟล์ nat.sh จากนั้น Copy Script ด้านล้างไปวางแล้ว Save

#!/bin/bash #Express NAT Shell Script echo "1" > /proc/sys/net/ipv4/ip_forward iptables -P FORWARD DROP iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT iptables -A FORWARD -j DROP

จากนั้นกำหนดสิทธิ์ให้สามารถรันได้โดย

sudo chmod +x nat.sh

แล้วก็รันกันได้เลย

sudo ./nat.sh

ทดลองเล่นเน็ตจากเครื่อง Client กันได้เลยจ้า

1 Comment January 24, 2011

Solaris 10 error : Not on system console, root logon rejected

วันนี้มีงานด่วนเข้ามาคือติดตั้งต้อง login Solaris 10 จาก Xmanager ให้ได้ แต่ตอน Login มันดันมี error “Not on system console, root logon rejected” ทำยังไงละทีนี้ ค้นไปค้นมาก็เจอคำตอบใน http://www.computing.net/answers/solaris/solaris-xmanager-root-logon/2163.html

ขั้นตอนเค้ามีอยู่ว่า
1. login เข้าระบบผ่าน console หรือ ssh เข้าไปก็ได้
2. เข้าไปแก้ไขไฟล์ /etc/default/login โดยให้ comment บรรทัด CONSOLE=/dev/console ซะเป็น (หากบันทึกไม่ได้ให้ chmod 644 /etc/default/login ก่อน)

#CONSOLE=/dev/console

3. ลอง login อีกทีสิ อิอิ

Leave a Comment July 17, 2010

  • Page 1 of 2
  • 1
  • 2
  • >

Recent Entries

Random Posts

Social Network

Tag Cloud

Calendar

June 2017
S M T W T F S
« Jun    
 123
45678910
11121314151617
18192021222324
252627282930  

Twitter: imrgill

RSS LinuxToday

RSS HowToForge

RSS UbuntuClub

RSS Blognone

RSS PowerWindowsBlog

Tag

Categories

Archives

Blogroll