วิธีเซ็ต วัน เวลา ใน linux

สวัดดีครับ วันนี้เราขอนำเสนอวิธีการเปลี่ยนวันเวลาให้เป็นเมืองไทยครับ

 

ก๊อป วางได้เลยครับ

 

yum install ntpdate -y

ntpdate th.pool.ntp.org

hwclock –systohc

echo “date.timezone = \”Asia/Bangkok\”” >> /usr/local/lib/php.ini   <<< ตรงจุดนี้ผมใช้ directadmin นะครับ หากท่านใช้ path อื่นๆก็ให้แก้เป็นอย่างอื่นครับ

service httpd restart

วิธีบลอค UDP เปิดใช้งานเฉพาะ ไอพี dns server เท่านั้น

สวัดดีครับ หลังจากหลายเดือนที่ผ่านมา ผมเจอปัญหา โจมตีออกจาก server ของผมเพราะว่าลูกค้าถูกฝังสคิป ซึ่งผ่านไปหลายวันมากกว่าจะหาสาเหตุเจอ วิธีแก้ปัญหาเบื้องต้น เพื่อป้องกันการโจมตีออก  หลักการคือ อนุญาติให้ใช้งาน port 53 เท่านั้น เพื่อให้มีการ resolv ไปที่ dns ที่ใช้งาน
รวมไปถึง เปิดให้ใช้งาน udp ได้เฉพาะบางไอพีเท่านั้น

 

iptables -F   <<< ลบ rule เดิมทั้งหมด หากต้องการใช้งาน rule เดิมให้ข้ามขั้นตอนนี้ไปครับ
iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp –sport 53 -j ACCEPT  << อนุญาติให้ port 53 เท่านั้นที่ใช้งาน udpได้ หากต้องการเปิดพอร์ตไหนบ้าง ก็เพิ่มบรรทัดไปนะครับ

ใส่ dns ของ IDC ที่ใช้งาน อย่างของผมนั้นใช้ csloxinfo idc ผมจึงใช้ไอพีดังกล่าว
iptables -A OUTPUT -d 203.146.237.237 -j ACCEPT
iptables -A OUTPUT -d 203.146.237.222 -j ACCEPT

บลอค udp ทั้งหมดไม่ให้ออกจากเครื่อง นอกจาก port 53
iptables -A OUTPUT -p udp -j DROP

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

Security Rule For Nginx

## Block SQL injections
set $block_sql_injections 0;
if ($query_string ~ "union.*select.*\(") {
set $block_sql_injections 1;
}
if ($query_string ~ "union.*all.*select.*") {
set $block_sql_injections 1;
}
if ($query_string ~ "concat.*\(") {
set $block_sql_injections 1;
}
if ($block_sql_injections = 1) {
return 500;
}

## Block file injections
set $block_file_injections 0;
if ($query_string ~ "[a-zA-Z0-9_]=http://") {
set $block_file_injections 1;
}
if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") {
set $block_file_injections 1;
}
if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") {
set $block_file_injections 1;
}
if ($block_file_injections = 1) {
return 500;
}

## Block common exploits
set $block_common_exploits 0;
if ($query_string ~ "(<|%3C).*script.*(>|%3E)") {
set $block_common_exploits 1;
}
if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {
set $block_common_exploits 1;
}
if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {
set $block_common_exploits 1;
}
if ($query_string ~ "proc/self/environ") {
set $block_common_exploits 1;
}
if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") {
set $block_common_exploits 1;
}
if ($query_string ~ "base64_(en|de)code\(.*\)") {
set $block_common_exploits 1;
}
if ($block_common_exploits = 1) {
return 500;
}

## Block spam
set $block_spam 0;
if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") {
set $block_spam 1;
}
if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") {
set $block_spam 1;
}
if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") {
set $block_spam 1;
}
if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") {
set $block_spam 1;
}
if ($block_spam = 1) {
return 500;
}

## Block user agents
set $block_user_agents 0;

# Don't disable wget if you need it to run cron jobs!
#if ($http_user_agent ~ "Wget") {
# set $block_user_agents 1;
#}

# Disable Akeeba Remote Control 2.5 and earlier
if ($http_user_agent ~ "Indy Library") {
set $block_user_agents 1;
}

# Common bandwidth hoggers and hacking tools.
if ($http_user_agent ~ "libwww-perl") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "GetRight") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "GetWeb!") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "Go!Zilla") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "Download Demon") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "Go-Ahead-Got-It") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "TurnitinBot") {
set $block_user_agents 1;
}
if ($http_user_agent ~ "GrabNet") {
set $block_user_agents 1;
}

if ($block_user_agents = 1) {
return 500;
}

#some bot does not send user-agent, just block them
if ($http_user_agent = "") {
set $proxyflag "forbidden";
return 500;
}
#security for timthumb remote code execution exploit
if ($request_uri ~* "\.php.*src=.*(flickr\.com|picasa\.com|blogger\.com|wordpress\.com|img\.youtube\.com|upload\.wikimedia\.org|photobucket\.com|imgur\.com|imageshack\.us|tinypic\.com)") {
set $proxyflag "forbidden";
return 500;
}

#cached and upload folder should not have any php file
if ($request_uri ~* "/cache/.*\.php") {
set $proxyflag "forbidden";
return 500;
}
if ($request_uri ~* "/uploads?/.*\.php") {
set $proxyflag "forbidden";
return 500;
}

if ($request_uri ~* "/images?/.*\.php") {
set $proxyflag "forbidden";
return 500;
}

#bad behavior url (known botnet/trojan)
if ($request_uri ~* "\?.*eval\(") {
set $proxyflag "forbidden";
return 500;
}
if ($request_body ~* "\?.*eval\(") {
set $proxyflag "forbidden";
return 500;
}
if ($request_body ~* "

Repair Database บนระบบ Directadmin ง่ายๆ แค่ 1 บรรทัด

สวัดดีครับ หลายๆท่านคงเจอปัญหาต้องมานั่งไล่ Repair Database ทีละอันๆ สุดแสนจะน่าเบื่อ

ยิ่งเจอเข้าไปหลายๆ User ยิ่งหน้าเบื่อ  วันนี้ผมจะมาสอนวิธีการ Repair ทีเดียว ยกเครื่องเลยครับ

 

mysqlcheck -uda_admin -p`grep “^passwd=” /usr/local/directadmin/conf/mysql.conf | cut -d= -f2` –auto-repair –all-databases

ง่ายๆแค่นี้เองครับ  ก่อนนำคำสั่งไม่ใช้ ให้ copy ใส่ Notepad ก่อนนะครับ ให้มันอยู่ในบรรทัดเดียวกัน

** คำเตือน การ Repair มีความเสี่ยง  ดังนั้น ต้องมั่นใจว่าจะไม่มีอะไรมาสะดุด  เช่น Server ดับ Net ดับ ระหว่างทำนะครับ