DirectAdmin เปิดระบบ One-Click เข้าสู่ระบบ phpMyAdmin

xvlnw   22 กุมภาพันธ์ 2020   ปิดความเห็น บน DirectAdmin เปิดระบบ One-Click เข้าสู่ระบบ phpMyAdmin

เปิดใช้งาน One-Click เพื่อเข้าสู่ระบบจัดการฐานข้อมูล MySQL ด้วย phpMyAdmin โดยไม่ต้องกรอกรหัสผ่านฐานข้อมูล โดยสามารถเข้าใช้งานได้ผ่านทาง DirectAdmin

cd /usr/local/directadmin/
./directadmin set one_click_pma_login 1
service directadmin restart
cd custombuild
./build update
./build phpmyadmin

หากต้องการปิดการเข้าใช้งาน phpMyAdmin โดยการกรอกรหัสผ่าน สามารถปิดได้ด้วย Build นี้

cd /usr/local/directadmin/custombuild
./build update
./build set phpmyadmin_public no
./build phpmyadmin

DirectAdmin เปิดระบบ One-Click Login Webmail

xvlnw   22 กุมภาพันธ์ 2020   ปิดความเห็น บน DirectAdmin เปิดระบบ One-Click Login Webmail

เปิดใช้งานระบบ One-Click เพื่อ Auto login เข้าสู่ Webmail ผ่านทาง DirectAdmin โดยไม่ต้องกรอกรหัสผ่านที่หน้า Webmail เช่น Roundcube เป็นต้น

cd /usr/local/directadmin/
./directadmin set one_click_webmail_login 1
service directadmin restart
cd custombuild
./build update
./build dovecot_conf
./build exim_conf
./build roundcube

หลังจาก Build แล้ว สามารถเข้าสู่ระบบได้จากเมนู Email Accounts

ปิด Windows .NET Optimize ทำให้ CPU Load สูง

xvlnw   17 ตุลาคม 2019   ปิดความเห็น บน ปิด Windows .NET Optimize ทำให้ CPU Load สูง

คำสั่ง Powershell ปิด Windows .NET Optimize ทำให้ CPU Load สูง

Get-ScheduledTask *ngen* | Disable-ScheduledTask

** อย่าลืมรันด้วยสิทธิ์ Administrator

ESXI Loading ipmi_si_drv โหลดค้าง

xvlnw   15 ตุลาคม 2019   ปิดความเห็น บน ESXI Loading ipmi_si_drv โหลดค้าง

แก้ไขปัญหา โหลดหน้า Esxi Boot ค้างที่ Loading ipmi_si_drv ไม่ยอมเข้าหน้า Console

  1. reboot server
  2. เมื่อเข้าหน้า Esxi boot จะมีเวลานับถอยหลัง ให้กด Shift + O (โอ)
  3. พิมคำสั่งต่อท้ายคำสั่ง boot ด้วย noipmiEnabled และ Enter

วิธีการแก้ไขเมื่อ Boot ครั้งต่อไป ไม่ให้โหลด ipmi_si_drv และเป็นการปิดแบบถาวร

Remote ไปที่ Esxi host ผ่านทาง SSH และใช้คำสั่งด้านล่างนี้

esxcli software vib remove --dry-run --vibname ipmi-ipmi-si-drv
esxcli software vib remove --vibname ipmi-ipmi-si-drv

วิธีแก้ LOADING Redis is loading the dataset in memory

xvlnw   26 พฤศจิกายน 2018   ปิดความเห็น บน วิธีแก้ LOADING Redis is loading the dataset in memory

สำหรับผู้ที่ใช้งาน Redis Server แล้วใช้คำสั่ง redis-cli monitor แล้วขึ้นโชว์ “LOADING Redis is loading the dataset in memory” ให้ทำการแก้ไขดังนี้

redis-cli

127.0.0.1:6379> FLUSHALL

127.0.0.1:6379> exit

PHP เปลี่ยน DB Engine

xvlnw   15 พฤศจิกายน 2018   ปิดความเห็น บน PHP เปลี่ยน DB Engine

สำหรับฐานข้อมูลที่มีตารางเยอะๆ และ Engine ของตารางไม่เหมือนกัน หรือต้องการจะเปลี่ยนกลับไปกลับมา ระหว่าง MyISAM และ InnoDB สามารถทำได้ด้วยการใช้ PHP เข้ามาช่วย โดยคำสั่งนี้

<?php
// connect your database here first
//
$db_host = "localhost";
$db_user = "user";
$db_pass = "pass";
$db_name = "dbname";
mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);

// Actual code starts here

$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '{$db_name}'
AND ENGINE = 'InnoDB'";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{
$tbl = $row[0];
$sql = "ALTER TABLE `$tbl` ENGINE=MyISAM;";
echo $sql, '<br>';
mysql_query($sql);
}
?>

จากด้านบน จะเป็นการ Query ตาราง InnoDBแล้วแก้ไขเป็น MyISAM หากต้องการทำกลับกัน ให้สลับตำแหน่งของ InnoDB และ MyISAM นะครับ

Update: เวอร์ชั่นที่ต้องการเปลี่ยน DB Engine ทุก Database ครับ

<?php
// connect your database here first
$skip = array('mysql', 'information_schema', 'performance_schema', 'da_roundcube');
//
$db_host = "localhost";
$db_user = "user";
$db_pass = "pass";
//$db_name = "dbname";
mysql_connect($db_host, $db_user, $db_pass);
$Query_DB = mysql_query("SHOW DATABASES");
while($db_single = mysql_fetch_object($Query_DB)){

// Skip for none user _
if(in_array($db_single->Database, $skip) ) continue;

echo "# " . $db_single->Database . "<br>";
mysql_select_db($db_single->Database);

// Actual code starts here

$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '{$db_single->Database}'
AND ENGINE = 'InnoDB'";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{
$tbl = $row[0];
$sql = "ALTER TABLE `$tbl` ENGINE=MyISAM;";
echo $sql, '<br>';
mysql_query($sql);
}

echo "<br><br>";

}
?>

สำหรับ mysqli

<?php
// connect your database here first
$skip = array('mysql', 'information_schema', 'performance_schema', 'da_roundcube');
//
$db_host = "localhost";
$db_user = "db_user";
$db_pass = "db_pass";
//$db_name = "dbname";
$db = new mysqli($db_host, $db_user, $db_pass);

// Check connection
if ($db -> connect_errno) {
echo "Failed to connect to MySQL: " . $db -> connect_error;
exit();
}

$Query_DB = $db->query("SHOW DATABASES");
while($db_single = $Query_DB->fetch_object()){

// Skip for none user _
if(in_array($db_single->Database, $skip) ) continue;

echo "# " . $db_single->Database . "<br>";
$db->select_db($db_single->Database);

// Actual code starts here

$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '{$db_single->Database}'
AND ENGINE = 'InnoDB'";

$rs = $db->query($sql);

while($row = $rs->fetch_array())
{
$tbl = $row[0];
$sql = "ALTER TABLE `$tbl` ENGINE=MyISAM;";
echo $sql, '<br>';
$db->query($sql);
}

echo "<br><br>";

}
?>

ในส่วนของตัวแปร $skip ก็ใส่ DB ที่ไม่ต้องการเปลี่ยน เช่น DB ของระบบ เป็นต้นครับ

ฟรี iptables สำหรับ DirectAdmin

สำหรับ DA ที่ติดตั้งมาใหม่ๆ จะไม่มี iptables rule มาให้ เช่น block port, block bruteforce เป็นต้น สำหรับใครที่ต้องการ iptables เพื่อเสริมพลังความปลอดภัยให้กับระบบ DA รองรับ CentOS 6, CentOS 7 สามารถดูได้ตามลิงก์ตี้ https://help.directadmin.com/item.php?id=380

Note: ในกรณีที่ลิงก์ใช้งานไม่ได้ ให้ทำตามขั้นตอนนี้

สำหรับ CentOS 6 (init.d) เวอร์ชั่น 2.2

cd /etc/init.d
mv iptables iptables.backup
wget http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/iptables
chmod 755 iptables

/etc/init.d/iptables restart

cd /usr/local/directadmin/scripts/custom
wget -O block_ip.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/block_ip.sh
wget -O show_blocked_ips.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/show_blocked_ips.sh
wget -O unblock_ip.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/unblock_ip.sh
chmod 700 block_ip.sh show_blocked_ips.sh unblock_ip.sh

touch /root/blocked_ips.txt
touch /root/exempt_ips.txt

cd /usr/local/directadmin/scripts/custom
wget -O brute_force_notice_ip.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/brute_force_notice_ip.sh
chmod 700 brute_force_notice_ip.sh

สำหรับ CentOS 7 (systemd) เวอร์ชั่น 2.2

systemctl mask firewalld
systemctl stop firewalld
yum -y install iptables-services
systemctl enable iptables

cd /usr/libexec/iptables
mv iptables.init iptables.init.backup
wget -O iptables.init http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/iptables
chmod 755 iptables.init

systemctl reload iptables

cd /usr/local/directadmin/scripts/custom
wget -O block_ip.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/block_ip.sh
wget -O show_blocked_ips.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/show_blocked_ips.sh
wget -O unblock_ip.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/unblock_ip.sh
chmod 700 block_ip.sh show_blocked_ips.sh unblock_ip.sh

touch /root/blocked_ips.txt
touch /root/exempt_ips.txt

cd /usr/local/directadmin/scripts/custom
wget -O brute_force_notice_ip.sh http://files.directadmin.com/services/all/block_ips/<span class="out1 c">2.2</span>/brute_force_notice_ip.sh
chmod 700 brute_force_notice_ip.sh

DirectAdmin เปิดใช้งาน HTTP2

สำหรับ DirectAdmin เวอร์ชั่น 1.52 เป็นต้นไป จะมีตัวแปรเพิ่มขึ้นมาใน Template และการ Build นั่นคือ SPACE_HTTP2 เราสามารถเปิดใช้งาน http2 ได้ง่ายๆด้วยการตั้งค่าตามนี้

echo "http2=1" >> /usr/local/directadmin/conf/directadmin.conf

service directadmin restart

cd  /usr/local/directadmin/custombuild

./build rewrite_confs

เว็บทดสอบ HTTP2: https://tools.keycdn.com/http2-test

** สำหรับท่านใดที่ใช้งานไม่ได้ หรือไม่ขึ้น ให้ทำการ Build Webserver ที่ท่านใช้งานใหม่นะครับ

รวมคำสั่งและการตั้งค่า ClamAV – CentOS + DirectAdmin [CB2.0]

วิธีการติดตั้ง clamav ใน DA และตั้งค่าให้ scan Email และ FTP

cd /usr/local/directadmin/custombuild
./build set clamav yes
./build set clamav_exim yes
./build set pureftpd_uploadscan yes
./build set proftpd_uploadscan yes
./build clamav

การเปลี่ยน Database Server ให้โหลดฐานข้อมูลไวรัสได้เร็วขึ้น

แก้ไขไฟล์ /etc/freshclam.conf

//ค้นหา
DatabaseMirror database.clamav.net
//แก้ไขเป็น
DatabaseMirror clamav.sran.net

เพิ่มฐานข้อมูลไวรัส ทำให้ตรวจเจอไวรัสได้ดีขึ้น

แก้ไขไฟล์ /etc/freshclam.conf เพิ่มคำสั่งต่อไปนี้

DatabaseCustomURL http://www.rfxn.com/downloads/rfxn.ndb
DatabaseCustomURL http://www.rfxn.com/downloads/rfxn.hdb

จากนั้น รันคำสั่ง freshclam เพื่อให้ฐานข้อมูลไวรัสอัพเดตเป็นล่าสุด

รวมคำสั่ง clamav ทำการ scan ไวรัส

//No Images
clamscan --exclude='\.(jpg|jpeg|png|gif)$'
//To check all files on the computer, displaying the name of each file:
clamscan -r /
//To check all files on the computer, but only display infected files and ring a bell when found:
clamscan -r --bell -i /home
//To check files in the all users home directories:
clamscan -r /home
//To check files in the USER home directory and move infected files to another folder:
clamscan -r --move=/home/USER/VIRUS /home/USER
//To check files in the USER home directory and remove infected files (WARNING: Files are gone.):
clamscan -r --remove /home/USER
//To see more options:
clamscan --help