ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

Topic List

16 items|« First « Prev 1 (2/2)
โดย Little Bear on 17 พ.ย. 54 01:43

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

ขั้นแรกให้ลง iptables ก่อนด้วยคำสั่ง

apt-get install iptables

จากนั้นเราจะสร้างสคริปต์ blockip.sh ไว้ที่ /usr/local/directadmin/scripts/custom/blockip.sh โดยมีเนื้อหาตามนี้ครับ

#666666; font-style: italic;">#!/bin/sh

curriptables#7a0874; font-weight: bold;">(#7a0874; font-weight: bold;">) #7a0874; font-weight: bold;">{         #7a0874; font-weight: bold;">echo #ff0000;">"<br><br><textarea cols=160 rows=60>";         #000000; font-weight: bold;">/sbin#000000; font-weight: bold;">/iptables #660033;">-nL

        #7a0874; font-weight: bold;">echo #ff0000;">"</textarea>"; #7a0874; font-weight: bold;">}
#666666; font-style: italic;">### Make sure it's not already blocked #007800;">COUNT=#000000; font-weight: bold;"></span><span style="color: <a class="hashtag" href="/tags/c20cb9">#c20cb9</a>; font-weight: bold;">grep</span> <span style="color: <a class="hashtag" href="/tags/660033">#660033</a>;">-c</span> <span style="color: <a class="hashtag" href="/tags/007800">#007800</a>;">$ip</span> <span style="color: <a class="hashtag" href="/tags/000000">#000000</a>; font-weight: bold;">/</span>etc<span style="color: <a class="hashtag" href="/tags/000000">#000000</a>; font-weight: bold;">/</span>network<span style="color: <a class="hashtag" href="/tags/000000">#000000</a>; font-weight: bold;">/</span>iptables.save<span style="color: <a class="hashtag" href="/tags/000000">#000000</a>; font-weight: bold;">;

#000000; font-weight: bold;">if #7a0874; font-weight: bold;">[ #ff0000;">"#007800;">$COUNT" #660033;">-ne #000000;">0 #7a0874; font-weight: bold;">]; #000000; font-weight: bold;">then         #7a0874; font-weight: bold;">echo #ff0000;">"#007800;">$ip already exists in iptables (#007800;">$COUNT). Not blocking.";         curriptables         #7a0874; font-weight: bold;">exit #000000;">2;

#000000; font-weight: bold;">fi
#7a0874; font-weight: bold;">echo #ff0000;">"Adding #007800;">$ip to iptables...<br>"; #000000; font-weight: bold;">/sbin#000000; font-weight: bold;">/iptables #660033;">-I INPUT #660033;">-s #007800;">$ip #660033;">-j DROP

#000000; font-weight: bold;">/sbin#000000; font-weight: bold;">/iptables-save #000000; font-weight: bold;">> #000000; font-weight: bold;">/etc#000000; font-weight: bold;">/network#000000; font-weight: bold;">/iptables.save
#7a0874; font-weight: bold;">echo #ff0000;">"<br><br>Result:"; curriptables

#7a0874; font-weight: bold;">exit #000000;">0;




เสร็จแล้วรันคำสั่ง

chmod 700 /usr/local/directadmin/scripts/custom/block_ip.sh

ซึ่งสคริปต์นี้จะทำให้เราสามารถสั่ง block ip ผ่านหน้าจัดการใน DirectAdmin ได้ โดยให้ไปที่เมนู Brute Force Monitor แล้วกดลิงก์ IP Info ของไอพีที่เราต้องการบล็อก หลังจากนั้นให้กดปุ่ม Block This IP ที่ด้านล่างสุด

ถ้าต้องการให้ iptables ถูก restore ข้อมูลใหม่ทุกครั้งที่ reboot เครื่อง ให้ใส่

post-up iptables-restore /etc/network/iptables.save

ลงไปที่ด้านท้ายของไฟล์ /etc/network/interfaces

ถ้าต้องการให้ DirectAdmin ทำการ block ip อัตโนมัติ โดยไม่ต้องมากดปุ่ม Block This IP เอง ให้สร้างไฟล์ /usr/local/directadmin/scripts/custom/bruteforcenotice_ip.sh และใส่เนื้อหาตามนี้

#!/bin/sh
SCRIPT=/usr/local/directadmin/scripts/custom/block_ip.sh
ip=$value $SCRIPT
exit $?;

เสร็จแล้วรันคำสั่ง

chmod 700 /usr/local/directadmin/scripts/custom/brute_force_notice_ip.sh

โดยจำนวนการ Brute Force ก่อนที่จะโดน block ip นั้น สามารถตั้งได้ที่เมนู Administrator Settings > Notify Admins after an IP has และใส่จำนวนที่ต้องการลงไปครับ

ถ้าต้องการยกเลิก block ip อาจจะต้องเข้ามาพิมพ์คำสั่งยกเลิกด้วยตัวเองไปก่อนครับ ด้วยคำสั่งนี้

iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
iptables-save > /etc/network/iptables.save

เปลี่ยน xxx.xxx.xxx.xxx เป็น ip ที่เราต้องการยกเลิก block

ที่มา: วิธีการตั้งค่าให้ DirectAdmin Block IP อัตโนมัติเมื่อตรวจพบการ Brute Force บน Debian 6 64-bit , I wish to have a block_ip.sh so I can block IPs through DirectAdmin , How to block an IP in Linux

โดย Little Bear on 7 พ.ย. 54 00:17

ไม่มีอะไรมาก แค่อยากบันทึกว่า เวลาเขียน script ภาษา php แล้วต้องการ run ด้วย crontab ซึ่งจะต้องระบุ path ของ php ให้ถูกต้อง ไม่อย่างนั้นมันก็จะ run ไม่ได้

ซึ่ง path ของ php ของ Directadmin ก็คือ /usr/local/bin/php และก็แค่นั้นเอง

โดย Little Bear on 4 ส.ค. 54 14:13

suPHP และ PHP cgi ไม่สามารถเปลี่ยนค่า config โดย .htaccess ได้ จึงต้องใช้วิธีการเพิ่ม config โดยให้ php ไปอ่านจากไฟล์เพิ่มเติม

เริ่มด้วยการสร้างไฟล์ php.ini ไว้ใน /usr/local/directadmin/data/users/(username)/php/php.ini

แล้วเพิ่มใน Apache ว่า

SetEnv PHP_INI_SCAN_DIR /usr/local/directadmin/data/users/|USER|/php/

ที่มา DirectAdmin

โดย Little Bear on 25 ส.ค. 52 13:55

พรบ.คอมพิวเตอร์บังคับให้เก็บ log ไว้อย่างน้อย 90 วัน

ขอเก็บรายละเอียดการทำไว้ก่อน ได้มาจาก แนะนำเก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน แบบง่าย ๆ

โดย Little Bear on 3 ส.ค. 52 18:32

Step 1: Securing /tmp

Step 1.1: Backup your fstab file

cp /etc/fstab /etc/fstab.bak

Step 1.2: Creating tmpmnt partition file (Around 1Gb in size)

cd /var
dd if=/dev/zero of=tmpMnt bs=1024 count=1048576

Step 1.3: Format the new partition

mkfs.ext3 -j /var/tmpMnt

Press Y when asked

Step 1.4: Making backup of old /tmp

cp -Rp /tmp /tmp_backup

Step 1.5: Mount the tmp filesystem

mount -o loop,noexec,nosuid,rw /var/tmpMnt /tmp

Step 1.6: Set the right permissions

chmod 0777 /tmp

Step 1.7: Copy the files back to new tmp folder

cp -Rp /tmp_backup/* /tmp/

Step 1.8: Adding new /tmp filesystem to fstab

echo "/var/tmpMnt /tmp ext3 loop,rw,noexec,nosuid,nodev 0 0" >> /etc/fstab

Step 2: No need for 2 tmp filesystems, so we symlink /var/tmp to /tmp

rm -rf /var/tmp/
ln -s /tmp/ /var/tmp

ปล.ลองทำแล้ว แต่ติดอยู่ที่ step 1.5 มีแจ้งว่า "mount: no permission to look at /dev/loop#" พอทำต่อ เหมือนกับไม่สำเร็จ

โดย Little Bear on 10 มิ.ย. 52 08:55

เพิ่งติดตั้ง DirectAdmin บน CentOS5.3 เป็นครั้งแรกในชีวิต หลังจากที่ติดตั้งเสร็จก็มีสิ่งที่ต้องทำต่อ ตามนี้

ก่อนลง ลองเช็คเวลาและ timezone ต้องกำหนด timezone ให้เรียบร้อย บน CentOS สามารถใช้ system-config-date เพื่อกำหนด timezone ได้

Sync เวลากับ time server

หากไม่มี ntpdate ก็ติดตั้งด้วย

yum install ntp

หรือ

apt-get install ntpdate

กำหนดให้มีการ sync time จาก clock.nectec.or.th ด้วยการตั้งเวลาใน crontab

crontab -e

แล้วเพิ่มโค๊ดไว้ด้านล่างสุด

0 */4 * * * root ntpdate clock.nectec.or.th

Howto: Sync เวลากับใครและบ่อยแค่ไหนดี

หลังจากนั้นก็ดำเนินการติดตั้งและ config security ตามรายการ

  1. DirectAdmin Installation Guide

  2. Setting up DA with an SSL certificate

  3. DirectAdmin has been Installed on your Server!

  4. Basic system security

  5. HOW-TO: Mount /tmp with noexec or Secure Tmp Directadmin

  6. DirectAdmin Site Helper

  7. Step Security Unix/Linux - ฉบับ DirectAdmin และ บทความน่าอ่านจาก ThaiHostTalk

  8. Installing RPMforge

  9. Compile PHP 5.3 via CustomBuild in Direct Admin

  10. iptables - ติดตั้งไฟร์วอลเสีย และ DirectAdmin iptables , Shoutcast - not test

  11. Securing a Debian Box - เพิ่มความปลอดภัยให้

  12. Intrustion detection and prevention for Apache with mod-security - พยายามทำแล้ว แต่ยังไม่ได้ผล

ปิด allow _ url _ fopen โดยแก้ไข php.ini เปลี่ยนจาก on เป็น off

; Disable allow_url_fopen for security reasons
allow_url_fopen = Off

แก้ไขค่า default mysql เป็น MYISAM , utf8unicodeci โดยแก้ไขในไฟล์ /etc/my.cnf

# Add by softganz<br />
# Set default engin to MYISAM
# Set default collation to utf8_unicode_ci

default-storage-engine=MYISAM
collation-server = utf8_unicode_ci
character-set-server = utf8

บทความดี ๆ เกี่ยวกับ DirectAdmin

16 items|« First « Prev 1 (2/2)