DirectAdmin
DirectAdmin
DirectAdmin : Delete All Ticket and Message
cd /usr/local/directadmin/data/admin echo -n "" > tickets.list
วิธีการติดตั้ง Let’s Encrypt automated free SSL certificate
เข้าสู่ยุค https จึงจำต้องทำเสียแล้ว
มาลองติดตั้ง Let's Encrypt บน Directadmin กันอีกสักรอบ
1. เริ่มด้วยการแก้ไข config ของ Directadmin ให้สามารถใช้งาน Let's Encrypt ก่อน
nano /usr/local/directadmin/conf/directadmin.conf
สำหรับใครที่ใช้ path : /var/www/html/.well-known (ใช้โดเมนเดียว) ให้เพิ่ม
enable_ssl_sni=1 letsencrypt=1
ส่วนใครที่ใช้ path : /home/user/domains/domain.com/public_html/.well-known (ใช้หลายโดเมน) ให้เพิ่ม
enable_ssl_sni=1 letsencrypt=2
หรือจะสั่งผ่าน Terminal ก็ได้โดย
echo enable_ssl_sni=1 >> /usr/local/directadmin/conf/directadmin.conf echo letsencrypt=2 >> /usr/local/directadmin/conf/directadmin.conf
แล้วสั่ง update config โดย
cd /usr/local/directadmin/custombuild ./build update ./build rewrite_confs
2. แล้วมาเพิ่ม Let's Encrypt ให้กับแต่ละเว็บ
กำหนดให้เว็บสามารถใช้งาน Secure SSL ก่อน
แล้วจึงไปเพิ่ม SSL Certificates ให้กับเว็บ โดยเลือก Free & automatic certificate from Let's Encrypt
(ต้องทำทั้ง www และ ไม่มี www)
ถ้าต้องการให้สามารถใช้งานได้ทั้ง https และ http ให้สร้าง link private _ html ให้ชี้ไปที่ public _ html ด้วยคำสั่ง
ln -s public _ html private _ html
แต่ถ้าต้องการให้ใช้งานเฉพาะ https อย่างเดียว ให้ rename public _ html ไปเป็น private _ html แล้วสร้าง folder public _ html ใหม่ และสร้างไฟล์ .htaccess โดยเพิ่มคำสั่ง
RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Let's Encrypt ก็จะเป็นของเรา
เปลี่ยนค่าใน System Backup
ปรับค่าในการทำ System Backup ใหม่ เป็น
- ยกเลิก Configure Full System Backup : Backup MySQL Databases
- เพิ่ม Directories : /backup/daily/home/mysql
- เปลี่ยนเวลา cronjob เป็น 00:01 น. ทุกวัน
Update : สถานการณ์ของ load ดีขึ้น System backup เสร็จภายใน 1 ชั่วโมง rsync fullbackup เริ่มเวลา 03.00 น. เสร็จประมาณ 07.00 น.
ปิด cronjob บางตัวของ Directadmin
รู้สึกว่า Directadmin จะ run cronjob เพื่อคำนวณสถิติทุกวันตอน 10 นาทีหลังเที่ยงคืน ทำให้ I/O เต็มเกือบ 100% ก็เลยขอลองปิดดูสักพัก แล้วค่อยว่ากันอีกที
root@godserv:# nano /etc/cron.d/directadmin_cron
* * * * * root /usr/local/directadmin/dataskq 2 0-23/6 * * * root echo 'action=vacation&value=all' >> /usr/local/directadmin/data/task.queue; <a class="hashtag" href="/tags/5">#5</a> 5 * * 0 root /sbin/quotaoff -a; /sbin/quotacheck -augm; /sbin/quotaon -a; <a class="hashtag" href="/tags/10">#10</a> 0 * * * root echo 'action=tally&value=all' >> /usr/local/directadmin/data/task.queue 20 4 1 * * root echo 'action=reset&value=all' >> /usr/local/directadmin/data/task.queue 0 4 * * * root echo 'action=check&value=license' >> /usr/local/directadmin/data/task.queue
ได้มาจาก www.thaihosttalk.com
Directadmin เข้า port 2222 ไม่ได้
เข้า DirectAdmin ไม่ได้มาหลายวัน กะว่าจะ restart server แต่ว่า รอก่อน จะทำกลางวัน เผื่อมีปัญหาจะได้วิ่งไป CAT ได้
วันนี้ลองอีกทีด้วยว่า เจอว่า PID file อาจจะไม่ sync ในกรณีนี้ให้บังคับ restart directadmin เลยด้วย
killall -9 directadmin /etc/init.d/directadmin start
ใช้ได้แฮะ ไม่ต้อง reboot server
นี่แหละน๊า "ปัญหาทุุกอย่าง ไม่จำเป็นต้อง restart server ก็ได้" เนาะ
ที่มา help.directadmin.com
How to update Directadmin by SSH
Directadmin มีอัพเดทเวอร์ชั่นใหม่ แต่ผมไม่สามารถเข้า https://www.mydomain.com:2222 ได้ เลยต้อง SSH เข้าไป build เอง
ขั้นตอนคือ
- SSH เข้าไปที่ server
- เปลี่ยน directory ไปที่ /usr/local/directadmin/custombuild
- พิมพ์ : "./build update" เพื่อดึงรายการอัพเดทล่าสุด
- พิมพ์ : "./build versions" เพื่อดูรายการอัพเดทใหม่พร้อมรายละเอียดเวอร์ชั่นของแต่ละ package และเวอร์ชั่นใหม่ที่ยังไม่ปรับปรุง
- พิมพ์ : "./build update_versions" เพื่อทำการอัพเดท
เท่านี้แหละ
ที่มา hostjunkies.com
DirectAdmin system backup
เคยสำรองข้อมูลบน DirectAdmin ด้วยคำสั่ง CMDSYSTEMBACKUP โดยตั้งเวลาไว้ให้ทำงานตอนตี 5 กว่า (กว่าจะสำรองเสร็จปาเข้าไปเกือบ 10 โมงเช้า) DA ทำสำรองข้อมูลของ MySql ด้วยคำสั่ง mysqldump ทำให้ load เยอะมากจนเว็บล่ม ยังหาทางแก้ปัญหาไม่ได้ ตั้งใจว่าจะแก้ปัญหาชั่วคราวโดยการเปลี่ยนเวลาในการ backup ไปเป็นตอนดึก ๆ แทน
แต่ปัญหาคือจำไม่ได้แล้วว่าเข้าไปกำหนดผ่านทางเมนูไหน (นานมาแล้ว)
และเพิ่งหาเจอว่าอยู่ที่
http://YOUR-IP:2222/CMD_SYSTEM_BACKUP http://YOUR-IP:2222/CMD_ADMIN_BACKUP
เปลี่ยนเวลาเรียบร้อยแล้ว แต่ค่อยหาทางลด load อีกที
Directadmin : ย้ายโดเมนจากยูสเซอร์หนึ่งไปยังอีกยูสเซอร์หนึ่ง
Transfer a domain from one user to another
ใช้ script นี้
cd /usr/local/directadmin/scripts ./move_domain.sh domain.com olduser newuser
แต่ว่า หลังจากย้ายแล้ว ฐานข้อมูลจะยังคงเป็นชื่อเดิม ยูสเซอร์เดิม ก็จะต้องทำการย้ายฐานข้อมูลเองนะครับ
Centos 6 minimal + DirectAdmin
การติดตั้ง DirectAdmin บน CentOS 6 minimal ซึ่ง CentOS 6 minimal ไม่มี library พื้นฐานบางตัวมาให้โดยเฉพาะ mysql หลังจากลง CentOS เรียบร้อย ให้สั่ง update และติดตั้ง package เพิ่มเติม
yum update rpm -Uvh http://mirrors.thzhost.com/epel/6/x86_64/epel-release-6-5.noarch.rpm yum install gcc-c++ make patch screen wget quota ncftp bind bind-utils caching-nameserver which bison flex webalizer patch openssl-devel.x86_64 curl-devel.x86_64 e2fsprogs-devel.x86_64 perl-DBI ntp tcpdump iptables telnet traceroute rsync openssh-clients perl-Term-ReadKey autoconf rpm-build vim-enhanced nginx automake libaio libcurl-devel
หลังจากนั้นให้ติดตั้ง DirectAdmin ตามปกติ
คู่มือติดตั้ง CentOS 6
ที่มา www.thaihosttalk.com
วิธีการตั้งค่าให้ DirectAdmin Block IP อัตโนมัติเมื่อตรวจพบการ Brute Force บน Debian 6 64-bit
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;">`#c20cb9; font-weight: bold;">grep #660033;">-c #007800;">$ip #000000; font-weight: bold;">/etc#000000; font-weight: bold;">/network#000000; font-weight: bold;">/iptables.save#000000; 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