0059 | มา scan + กำจัดไวรัส iframe กัน
Wednesday, April 29th, 2009 Posted in Linux, PHP Coding, Web Server | 4 Comments »ลูกค้าเกิดติดไวรัส ต้องแก้กระทันหัน เลยเขียน script แบบลวกๆ ขึ้นมาตัวนึงครับ
*** คำเตือน ก่อนการใช้งานขอให้ระวังว่า… สั่งพลาดไม่สามารถย้อนได้ ดังนั้น กรุณา backup ข้อมูลก่อนทำนะครับ
.
เครื่องมือที่ต้องการ:
– rpmforge repository [ สำหรับ redhat/centos โหลดได้ที่นี่ ]
– clam antivirus [ จะลงจาก rpmforge repository ครับ ]
– fixiframe.php (เดี๋ยวมี link ให้โหลดครับ)
สำหรับท่านที่ใช้ DA ไม่ต้องห่วงครับ ทดลองแล้วไม่มีปัญหา ไม่ตีกันแน่นอน
.
หลังจากลง rpmforge repository แล้ว สั่ง
yum -y install clamav freshclam wget -O /root/clamdb.tar.gz http://www.icez.net/files/clamdb.tar.gz wget -O /usr/bin/fixiframe http://www.icez.net/files/fixiframe.txt echo "/usr/bin/clamscan -v --stdout -i -d /var/clamav/ -r .|grep FOUND" > /usr/bin/scaniframe chmod a+x /usr/bin/fixiframe /usr/bin/scaniframe cd /var/clamav/ tar zxf /root/clamdb.tar.gz chown clamav.clamav * |
เตรียมการเรียบร้อยแล้ว ทีนี้… ก็สั่ง cd เข้าไปในเว็บที่มีปัญหาได้เลยครับ
วิธีใช้งาน…
หลังจากสั่ง cd เข้าไปที่ folder ที่เก็บเว็บที่มีปัญหา ให้สั่ง scaniframe
พอเจอแฟ้มที่มีปัญหา ลองเปิดแฟ้มดูว่า มี code อะไรแปลกปลอม
แล้วสั่ง fixiframe
มันจะถามว่าต้องการแก้อะไร (ขึ้นว่า SEARCH FOR:) ให้ก๊อป code ที่ต้องการลบ มาวางแล้วกด enter
เจอ+แก้แฟ้มไหนไปบ้างจะรายงานผลขึ้นมาให้เห็นเลยครับ
0053 | ของแถม reverse proxy ipfix.php
Tuesday, January 13th, 2009 Posted in Linux | 1 Comment »เวลาใช้ reverse proxy จาก entry ที่แล้ว จะมีปัญหานิดหน่อย
คือ เว็บจะจับ ip ผิดพลาด .. ไปเป็นจับ ip server แทนซะงั้น
วิธีแก้ง่ายๆ ครับ เอา script ตัวนี้ไปลง แล้วแก้ option php นิดหน่อย
จะเอาไปลงที่ไหนให้ดู option ชื่อ open_basedir นะครับว่ามันมี folder ร่วมเป็น folder อะไรบ้าง
(อย่าง plesk ก็จะเป็น /tmp, DA ก็ /tmp เหมือนกัน) เพราะงั้น ก๊อปไปลงใน /tmp โลด
ตั้งชื่อว่า ipfix.php นะครับ
แล้วเปิด php.ini หา auto_prepend_file แล้วแก้เป็น
auto_prepend_file = /tmp/ipfix.php
เซฟแล้ว restart apache ครับ จบ
<?php if (!empty($_SERVER["SERVER_ADDR"]) && !empty($_SERVER["REMOTE_ADDR"]) && $_SERVER["SERVER_ADDR"] == $_SERVER["REMOTE_ADDR"] && !empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache"); header("Pragma: no-cache"); $refip = explode(",", $_SERVER["HTTP_X_FORWARDED_FOR"]); $_SERVER["REMOTE_ADDR"] = trim($refip[count($refip) - 1]); putenv("REMOTE_ADDR=".$_SERVER["REMOTE_ADDR"]); if (!empty($HTTP_SERVER_VARS['REMOTE_ADDR'])) $HTTP_SERVER_VARS['REMOTE_ADDR'] = $_SERVER["REMOTE_ADDR"]; if (function_exists('apache_setenv')) @apache_setenv("REMOTE_ADDR", $_SERVER["REMOTE_ADDR"]); $_SERVER["HTTP_X_FORWARDED_FOR"] = ""; for ($i=0; $i<count($refip) - 1; $i++) { $_SERVER["HTTP_X_FORWARDED_FOR"] .= ", ".trim($refip[$i]); } if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) $_SERVER["HTTP_X_FORWARDED_FOR"] = substr($_SERVER["HTTP_X_FORWARDED_FOR"], 2); else unset($_SERVER["HTTP_X_FORWARDED_FOR"]); } ?> |