Server

Server

57 items(1/6) 2 3 4 5 Next » Last »|

Install AFP Share Server Protocal on Linux

โดย Little Bear on November,02 2019 12.53
sudo apt-get install netatalk
sudo nano /etc/netatalk/AppleVolumes.default

/shares                "Shares" /media/user/VolumeName  "ShareName"

sudo /etc/init.d/netatalk restart

วิธีการติดตั้ง Let’s Encrypt automated free SSL certificate

โดย Little Bear on January,31 2017 13.55

เข้าสู่ยุค 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 ก็จะเป็นของเรา

Linux Server Tools

โดย Little Bear on October,31 2016 10.52

top :: the Linux Top Command

top

iotop :: I/O Monitor

iotop

iftop :: Bandwidth Monitor

iftop

ดูรายละเอียดเพิ่มเติม

iptstate : IP Tables State

iptstate

ดูรายละเอียด

df :: Display Free Disk Space

df

Make Macbook Pro to be Web Server

โดย Little Bear on July,10 2015 16.43

แก้ config ของ Apache

sudo nano /etc/apache2/httpd.conf
AllowOverride All

เปิดใช้งาน mod_rewrite

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

เปิดใช้งาน php

LoadModule php5_module libexec/apache2/libphp5.so

เปลี่ยน DocumentRoot ของ web

sudo mv /Library/WebServer/Documents /Library/WebServer/Documents.old
sudo ln -s /New/Web/Folder /Library/WebServer/Documents

แก้ php config โดย cp /etc/php.ini.default /etc/php.ini

post_max_size = 16M
upload_max_filesize = 1024M

date.timezone = Asia/Bangkok

Restart Apache

sudo apachectl configtest
sudo apachectl -k restart

ที่มา macOS 10.15 Catalina Apache Setup: SSL


Install MariaDB

brew install mariadb

Start MariaDB

Service start

brew services start mariadb

Start without service

mysql.server start

Link data to new location

sudo ln -s /Users/mysql /usr/local/var/mysql
sudo chown -h user:group /usr/local/var/mysql

แก้ไข config file ~/.my.cnf

sql_mode = NO _ ENGINE _ SUBSTITUTION,STRICT _ TRANS _ TABLES

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

Auto Start

launchd In MacOS, create a file called /Library/LaunchDaemons/com.mariadb.server.plist with the following contents (edit to suit):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
&nbsp; &nbsp; &nbsp; &nbsp; <key>Label</key> <string>com.mariadb.server</string>
&nbsp; &nbsp; &nbsp; &nbsp; <key>KeepAlive</key><true/>
    <key>RunAtLoad</key><true/>
    <key>LaunchOnlyOnce</key><false/>
    <key>ExitTimeOut</key><integer>600</integer>
&nbsp; &nbsp; &nbsp; &nbsp; <key>WorkingDirectory</key><string>/usr/local/var</string>
&nbsp; &nbsp; &nbsp; &nbsp; <key>Program</key><string>/usr/local/bin/mysqld</string>
&nbsp; &nbsp; &nbsp; &nbsp; <key>ProgramArguments</key>
&nbsp; &nbsp; &nbsp; &nbsp; <array>
    &nbsp; &nbsp; <string>/usr/local/bin/mysqld</string>
    &nbsp; &nbsp; <string>--user=_mysql</string>
    &nbsp; &nbsp; <string>--basedir=/usr/local/opt/mariadb</string>
    &nbsp; &nbsp; <string>--plugin-dir=/usr/local/opt/mariadb/lib/plugin</string>
    &nbsp; &nbsp; <string>--datadir=/usr/local/var/mysql</string>
    &nbsp; &nbsp; <string>--log-error=/usr/local/var/mysql/Data-Server.local.err</string>
    &nbsp; &nbsp; <string>--pid-file=/usr/local/var/mysql/Data-Server.local.pid</string>
    &nbsp; &nbsp; <string>--sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</string>
&nbsp; &nbsp; &nbsp; &nbsp; </array>
</dict>
</plist>

Then from a shell, run launchctl load /Library/LaunchDaemons/com.mariadb.server.plist and MariaDB will run immediately, and also upon reboot.


Fix the 2002 socket error first if you haven’t done so from the MySQL section-

sudo mkdir /var/mysql

Location -> /usr/local/Cellar/mariadb/{version}

Data location /usr/local/var/mysql/


sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Start MySQL

sudo /usr/local/mysql/support-files/mysql.server start

Stop MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

Restart MySQL

sudo /usr/local/mysql/support-files/mysql.server restart

พบบั๊ก GHOST ใน glibc ความร้ายแรงระดับสูง กระทบลินุกซ์รุ่นเก่าจำนวนมาก

โดย Little Bear on January,28 2015 09.12

บริษัท Qualys รายงานบั๊กในไลบรารี glibc ให้ชื่อช่องโหว่ว่า GHOST (CVE-2015-0235) มีความร้ายแรงระดับสูงมาก กระทบลินุกซ์ตั้งแต่ปี 2000 และสามารถยิงช่องโหว่นี้ได้จากระยะไกล บั๊กนี้แก้ไขไปแล้วตั้งแต่สองปีก่อน แต่ไม่ได้ระบุว่าเป็นบั๊กความปลอดภัยร้ายแรงเนื่องจากยังไม่มีรายงานว่าสามารถอาศัยบั๊กนี้โจมตีเครื่องเซิร์ฟเวอร์ได้

ช่องโหว่นี้เป็นบั๊กของฟังก์ชั่น gethostbyname และ gethostbyname2 ของ glibc ตั้งแต่เวอร์ชั่น 2.2 ที่ออกมาตั้งแต่ปี 2000 เป็นต้นไป ความร้ายแรงของบั๊กนี้อยู่ที่การรันบั๊กจากระยะไกลได้ง่าย เพราะฟังก์ชั่นทั้งสองฟังก์ชั่นมักใช้งานในเซิร์ฟเวอร์อยู่แล้ว ทีมงานสามารถสร้างอีเมลที่มุ่งร้ายขึ้นมาเพื่อส่งเข้าไปรันโค้ดบนเซิร์ฟเวอร์ได้สำเร็จ เพียงแค่ส่งอีเมลเข้าเมลเซิร์ฟเวอร์

สำหรับคนที่ติดตั้งลินุกซ์ที่ใช้ glibc รุ่นตั้งแต่ 2.18 เป็นต้นไป (ออกเมื่อกลางปี 2013) จะไม่ได้รับผลกระทบจากบั๊กนี้อยู่แล้ว แต่เนื่องจากการแก้บั๊กไม่ได้เป็นการแก้ด้านความปลอดภัย คนที่ใช้ลินุกซ์รุ่นที่ออกก่อนหน้านั้นอาจจะไม่ได้รับแพตช์ โดยรุ่นที่มีบั๊กแต่ยังไม่ได้แพตช์ เช่น Debian 7, RHEL 6 และ 7, CentOS 6 และ 7, และ Ubuntu 12.04 เป็นต้น ผู้ดูแลระบบทุกคนควรรีบตรวจสอบและอัพเดตเมื่อผู้ผลิตปล่อยแพตช์ออกมาครับ

ทาง Qualys รายงานโค้ดทดสอบบั๊กเอาไว้ด้วย สามารถนำไปคอมไพล์ทดสอบบั๊กกันได้

ชื่อบั๊กเป็นการย่อมาจากคำว่า GetHOST

ที่มา - Qualys ผ่าน Blognone.com

Server Setup : การกำหนดสิทธิ์ Root ให้กับ user บน Ubuntu 14.04

โดย Little Bear on December,22 2014 21.45

Pre-Flight Check

  • These instructions are intended specifically for adding a user on Ubuntu 14.04 LTS.
  • I’ll be working from a Liquid Web Core Managed Ubuntu 14.04 LTS server, and I’ll be logged in as root.

Step 1: Add the User

It’s just one simple command to add a user. In this case, we’re adding a user called mynewuser :

adduser mynewuser

First you will be prompted to enter the user’s password (twice); do this step. Next you’ll be prompted to enter in the user’s information. This step is not required, and pressing enter fills the field with the default information:

Adding user `mynewuser’ …
Adding new group `mynewuser’ (1001) …
Adding new user `mynewuser’ (1001) with group `mynewuser’ …
Creating home directory `/home/mynewuser’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mynewuser
Enter the new value, or press ENTER for the default
Full Name []: User
Room Number []:
Work Phone []:
Home Phone []:
Other []:

When prompted with the following question, enter Y then hit enter to continue.

Is the information correct? [Y/n] Y

Step 2: Grant Root Privileges to the User

visudo

Find the following code:

# User privilege specification
root ALL=(ALL:ALL) ALL

In this case, we’re granting root privileges to the user mynewuser . Add the following below that code:

mynewuser ALL=(ALL:ALL) ALL

Then exit and save the file with the key commands Ctrl-x, Y, enter.

If you’ve followed the instruction above correctly, then you should now have a user setup by the name of mynewuser which can use sudo to run commands as root!

ที่มา How to Add a User and Grant Root Privileges on Ubuntu 14.04

Setup FTP Server under Ubuntu/Debian

โดย Little Bear on December,22 2014 21.35

เก็บไว้ก่อน เดี๋ยวค่อยมาแปลและเขียนใหม่นะครับ

This article contains a brief introduction to set up an FTP-Server under Debian Linux. Activation of an FTP server should be done similarly with other distributions of Linux. Debian 5.0 (x86) was used as the test system.

Contents

  1. Installation of the required proftpd Package
  2. Adjusting the Configuration
  3. Anonymous FTP
  4. Re-loading the Configuration and Re-starting the FTP Server
  5. Links

Installation of the required proftpd Package

ProFTPd FTP-Server was used for this introduction because of its simply installation and configuration.

apt-get install proftpd

If the package cannot be found, update the local list of packages using:

apt-get update

If the package still cannot be installed after that, check the /etc/apt/sources.list on the appropriate Debian mirror server. You will find more information about this in the article Debian Mirror.

Indicate in the subsequent inquiry whether the FTP server should act as a standalone server (standalone) or as a service of inetd. In this example, the standalone option has been selected. Adjusting the Configuration

Our configuration assumes that we will login using system users found in the ftpuser group.

In order to adjust the configuration to your needs, edit the /etc/proftpd/proftpd.conf file.

If you are not using IPv6, this feature should be deactivated first:

UseIPv6 off

After that, we will add the following instruction at the end of the file:

<Global>
&nbsp; &nbsp; RequireValidShell off
</Global>

DefaultRoot ~ ftpuser

<Limit LOGIN>
&nbsp; &nbsp; DenyGroup !ftpuser
</Limit>

What do the instructions mean?

As a first step, we told ProFTPd that users wanting to login do not need a shell. Afterwards, we instructed ProFTPd to lock users in their home directory using DefaultRoot. Finally, we specified that only those users who are members of the ftpuser group could login.

We will now restart our FTP server so that our configuration takes effect:

/etc/init.d/proftpd restart

Then, we will create the ftpuser group and a first user that will be able to login.

addgroup ftpuser

Now, we create the user:

adduser ftpbenutzer -shell /bin/false -home /var/www

Finally, we assign the user to the ftpuser group:

adduser ftpbenutzer ftpuser

That’s everything. You should now be able to login with the user via FTP.

You have to run sudo deluser username groupname to delete a user from it's corresponding group. And run this sudo deluser --group groupname command to delete a group.

Anonymous FTP

By adding the following section to the etc/proftpd/proftpd.conf file, you will also give anonymous users (read) access to the FTP area:

.
.
.
<Anonymous ~ftp>
&nbsp; User&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ftp
&nbsp; Group&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  nogroup
&nbsp; # We want clients to be able to login with "anonymous" as well as "ftp"
&nbsp; UserAlias&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  anonymous ftp
&nbsp; # Cosmetic changes, all files belong to ftp user
&nbsp; DirFakeUser&nbsp;  on ftp
&nbsp; DirFakeGroup on ftp

&nbsp; RequireValidShell&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  off

&nbsp; # Limit the maximum number of anonymous logins
&nbsp; MaxClients&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10

&nbsp; # We want 'welcome.msg' displayed at login, and '.message' displayed
&nbsp; # in each newly chdired directory.
&nbsp; DisplayLogin&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; welcome.msg
&nbsp; DisplayFirstChdir&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  .message

&nbsp; # Limit WRITE everywhere in the anonymous chroot
&nbsp; <Directory *>
&nbsp; &nbsp; <Limit WRITE>
&nbsp; &nbsp; &nbsp; DenyAll
&nbsp; &nbsp; </Limit>
&nbsp; </Directory>

#&nbsp;  # Uncomment this if you're brave.
#&nbsp;  # <Directory incoming>
#&nbsp;  #&nbsp;  # Umask 022 is a good standard umask to prevent new files and dirs
#&nbsp;  #&nbsp;  # (second parm) from being group and world writable.
#&nbsp;  #&nbsp;  Umask&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  022&nbsp; 022
#&nbsp;  #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <Limit READ WRITE>
#&nbsp;  #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DenyAll
#&nbsp;  #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </Limit>
#&nbsp;  #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <Limit STOR>
#&nbsp;  #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowAll
#&nbsp;  #&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </Limit>
#&nbsp;  # </Directory>

</Anonymous>
.
.
.

To make sure, that user "ftp" is able to login anonymously to ftp-space, you have to add the user to the group "ftpuser":

adduser ftp ftpuser

Re-loading the Configuration and Re-starting the FTP Server

The configuration will have to be re-loaded after the adjustments to the /etc/proftpd/proftpd.conf file:

/etc/init.d/proftpd reload

Because the FTP server will be stopped when re-loading the configuration, it will also have to be re-started afterwards:

/etc/init.d/proftpd start


Links

ย้ายบ้านให้ MySql

โดย Little Bear on January,03 2014 14.42

วันนี้เกิดเหตุ wintesla2003.com หยุดทำงาน โชคดีที่สั่ง reboot ผ่าน DA แล้วสามารถเข้าใช้ ssh ได้ (หลังจากที่เข้า ssh ไม่ได้มาเป็นปี ก็ยังงงอยู่ว่ามันเข้าได้ยังไง โชคดีก็คือไม่ต้องวิ่งไปที่ IDC)

หลังจาก reboot ก็ยังใช้งานไม่ได้ ขณะกำลังหาสาเหตุ ก็นึกได้ว่า server นี้เคยมีปัญหากับ MySql มาครั้งนึงแล้ว คือ partition ที่เก็บข้อมูลเต็ม พอลอง df ดูก็ปรากฎว่าเต็มอีกแล้วจริง ๆ ด้วย

หลังจากลองย้ายบาง folder ออกไป ก็สามารถใช้งานได้ แต่มีบางตารางเสียหาย เลยสั่ง repair ปรากฎว่าเดี้ยงอีก เต็มอีกเหมือนเดิม

เลยตัดสินใจ "ย้ายบ้าน MySql ไปไว้อีก partition"

คำสั่ง

cd /home
mkdir mysql
chown mysql:mysql mysql
cd mysql

perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
/sbin/service mysqld stop

cp -Rp /var/lib/mysql/* .
cd /var/lib
mv mysql mysql_old
ln -s /home/mysql ./mysql

/sbin/service mysqld start
perl -pi -e 's/mysqld=OFF/mysqld=ON/' /usr/local/directadmin/data/admin/services.status

#once satisfied that mysqld is running and functioning correctly, remove the old data:

rm -rf mysql_old

ประมาณนี้ (แต่ผมไม่ได้ทำตามนี้เป๊ะ ๆ) คือ ย้ายข้อมูลไปไว้ใน /home แล้วทำ link จาก /var/lib/mysql ให้ชี้ไปที่ /home/mysql

ที่มา directadmin.com

Debian : ปิดการตรวจสอบฮาร์ดดิสอัตโนมัติขณะเปิดเครื่อง

โดย Little Bear on November,24 2013 16.50

12.30 น. ผมสั่ง remote reboot server พร้อมความกังวลทุกครั้งที่สั่ง reboot ว่าเครื่องจะเปิดขึ้นหรือเปล่า

12.40 น. นิ่ง ping ไม่เห็น เริ่มเหงื่อตก

12.50 น. เริ่มโทรหา NOC โทรเข้าสำนักงาน ไม่ติด โทรหา จนท.ที่ติดต่อกันอยู่ ได้เบอร์ใหม่ของมือถือ จนท. ดูแลห้อง IDC

13.10 น. จนป่านนี้ จนท. ยังไม่ยอมรับสาย โทรหา จนท. ที่ติดต่อกันอยู่อีกที คาดว่า จนท. ไปกินข้าวกระมัง?

14.00 น. ไม่มีวี่แววว่าใครจะรับสาย

14.30 น. ตัดสินใจบึ่งรถไป IDC (เจอ จนท. บอกว่าไปกินข้าว เพิ่งกลับมา)

14.50 น. เสียบจอ ถอดปลั๊ก (หากุญแจหน้าเครื่องไม่เจอ ไม่รู้ไปเก็บไว้ที่ไหน ลืมแว่นตา เพ่งแล้วเพ่งอีกว่าเครื่องเราเครื่องไหนวะ กลัวถอดสายผิดเครื่อง)

14.55 น. boot แล้ว กำลังตรวจสอบ harddisk /dev/sdb1 0.1% ผ่านไปเกือบนาที 0.2% ตายแน่เลย 10 ชั่วโมงก็ไม่รู้จะเสร็จไหม

14.57 น. CTRL+C , CTRL+D ข้ามไปเลย boot..... complete

15.00 น. web site running

15.05 น. กลับบ้าน

แก้คอนฟิกให้ไม่ต้องเข็ค harddisk ขณะเปิดเครื่องดีกว่า ไม่งั้นแย่แน่ ๆ

แก้ค่าในไฟล์ /etc/fstab

/dev/sdb1 /mntpoint ext3 defaults 1 2

แก้ค่าตัวเลขข้างหลังให้เป็น 0 0

/dev/sdb1 /mntpoint ext3 defaults 0 0

ยังไม่กล้า reboot ไว้ค่อยแวะเข้าไปที่ IDC แล้วค่อยลอง reboot นะ

Update : 2014-07-16

15.30 น. Server down อีกแล้ว

15.50 น. โทรเช็คกับ CAT ทราบว่าเขาเปลี่ยน UPS ทำให้เครื่องดับทั้งหมด OK ให้ช่วยกดเปิดสวิทช์ของ wintesla (เครื่องนี้พอไฟดับ จะไม่ start เอง ต้องมากดปุ่ม power)

15.52 น. Server softganz ยังไม่มา noc บอกว่าไฟ harddisk ติดค้างเลย คาดว่าจะเกิดอาการเดิมคือ เครื่องกำลัง check disk อยู่แน่เลย ให้ noc ช่วยเสียบจอ แต่ server เคสสั้น เสียบจอยาก เลยต้องวิ่งเข้าไปเอง

16.10 น. เอาจอเสียบเข้าไป ปรากฏว่าเป็นอย่างนั้นจริง กำลังเช็คได้ 13% อีกนานกว่าจะเสร็จ

16.20 น. ลองสั่งใหม่ ไม่ให้ check disk ตอนเปิดเครื่อง ด้วยคำสั่ง “tune2fs” ซึ่งเป็นคำสั่งสำหรับเปิดจำนวนการ mout (command to turn off mount count based)

sudo tune2fs -c 0 -i 0 /dev/sdDN

โดย “D” คือ represents the disk และ “N” represents the partition number of the file system

16.22 น. ลอง reboot คราวนี้ไม่เช็คแล้ว ลองปิดเครื่อง แล้วกดสวิทช์เปิดใหม่ ก็ไม่เช็คแล้ว หวังว่าคงหายนะ เพราะอีกไม่นานจะโดนปิดเครื่องเพื่อย้าย server ไปไว้อีกห้อง

16.40 น. กลับบ้านแล้ว

Dabian bandwidth monitoring

โดย Little Bear on November,20 2013 12.32

iftop

iftop

vnstat

vnstat -u -i eth0
vnstat
vnstat -hours
vnstat --days

iptstate

iptstate

57 items(1/6) 2 3 4 5 Next » Last »|