Archive for the ‘Operating System’ Category

การ Mount HDD ด้วย Label

Posted by อัทศักดิ์ วงศ์กิตตะ on Friday, April 29th, 2011

สวัสดีครับหลังจากห่างหายไปนาน คิดว่าช่วงนี้จะพยายามเข้ามา Update บ่อยๆนะครับ   ช่วงนี้มีงานต้องติดตั้งเว็บ Download ไฟล์ให้ลูกค้าโดยมีเครื่องหลายๆเครื่อง และแต่ละเครื่องมี Card SATA  เพิ่มขึ้น ทำให้แต่ละเครื่องมี HDD ไม่ต่ำกว่า 10 ก้อน

ก่อนนี้ผมใช้การ Mount ผ่าน /etc/fstab    โดยการกำหนด device ไปตรงๆ แต่เมื่อ HDD มีปัญหาจำเป็นต้องถอดออกไปเปลี่ยน  จะเกิดปัญหา Device เปลี่ยนตำแหน่ง ทำให้ไม่สามารถ Mount HDD ได้      ด้วยเหตุนี้ผมจึงได้ใช้วิธีการ Mount HDD ผ่าน “Disk Label”

Disk Label  คือการใส่ป้ายชื่อกำกับให้แต่ละ Partition โดยสามารถกำหนดความยาวได้สูงสุดถึง 160 ตัวอักษร    และหากเมื่อเราเอา HDD ก้อนดังกล่าวไปใช้งานเครื่องอื่น ก็สามารถเห็น Label เดียวกันทั้งหมด

วิธีการตั้งชื่อ Label

สำหรับการตั้งชื่อจะใช้คำสั่ง  tune2fs  สำหรับ Partition ที่ใช้ Filesystem  ที่เป็น ext2, ext3     และใช้คำสั่ง  tune4fs สำหรับ ext4  โดยมีคำสั่งดังนี้

Ext4 Partition

tune4fs -L dl2-01 /dev/sda1

ส่วนของไฟล์  /etc/fstab

LABEL=/                 /                               ext3            defaults        1 1
tmpfs                   /dev/shm                        tmpfs   defaults        0 0
devpts                  /dev/pts                        devpts  gid=5,mode=620  0 0
sysfs                           /sys                            sysfs           defaults        0 0
proc                            /proc                           proc            defaults        0 0
 
LABEL=dl2-00            /home/dl2-00            ext4            defaults        0 0
LABEL=dl2-01            /home/dl2-01            ext4            defaults        0 0

แค่นี้เครื่อง Server ก็จะเมาท์ HDD โดยใช้ Disk Label แล้วครับ หาเราทำการถอดหรือเพิ่ม HDD เข้าไปก็จะไม่มีปัญหากับ HDD ที่มีอยู่ครับผม

OpenVPN on UDP 53 – ไปที่ไหนก็เล่น Net ได้!!!

Posted by อัทศักดิ์ วงศ์กิตตะ on Monday, October 25th, 2010

สมัยนี้ไปไหนก็มีก็มี Wifi ให้เราใช้งาน ไม่ว่าจะเป็นแบบฟรี หรือ เสียเงิน    วันนี้ผมเอาจุดอ่อน ที่ผู้ให้บริการ Hotspot  มองข้ามคือ การเปิด Any DNS  หรือ การเปิดให้ Client สามารถ Query DNS ข้างน้อกได้ โดยไม่ได้ทำการ Auth      ซึ่ง Wifi หลายๆที่เปิดไว้เพื่อความสะดวก   แต่ตรงนี้แหละเป็นจุดอ่อน  ที่จะทำให้เราสามารถใช้งาน Internet ได้โดยไม่โดนจำกัด Bandwidth

สิ่งที่ต้องเตรียม

  1. ต้องมี Server ที่เป็น Fix IP ไว้ข้างนอก
  2. ติดตั้ง OpenVPN

ติดตั้ง Server

apt-get install openvpn
openvpn --genkey --secret /etc/openvpn/mysecret.key
 
vi /etc/openvpn/server-udp-53.conf
# File /etc/openvpn/server-udp-53.conf
dev tap
mode p2p
proto udp
#ping 1
port 53
ifconfig 10.10.10.1 255.255.255.252
secret /etc/openvpn/mysecret.key
tun-mtu 1500
tun-mtu-extra 32
mssfix 1400

push "route 192.168.10.0 255.255.255.0"

ติดตั้ง Client

Download Client จาก   http://openvpn.net/index.php/openvpn-client.html  และทำการติดตั้ง

Copy file  mysecret.key   มาไว้ในเครื่อง  และสร้างไฟล์ config   โดยใช้ชื่อ     client.ovpn

#file client.ovpn
dev tap
mode p2p
proto udp
remote <IP Server>
#ping 1
port 53
ifconfig 10.10.30.2 255.255.255.252
secret mysecret.key

tun-mtu 1500
tun-mtu-extra 32
mssfix 1400
ping 5

แค่นี้ก็สามารถ  Connect VPN ผ่าน  UDP/53 ได้แล้วครับ

Citrix – Missing gpg key

Posted by อัทศักดิ์ วงศ์กิตตะ on Thursday, October 21st, 2010

วันนี้ติดตั้ง Xen Server  และลง Debian ในเครื่อง  Xen จะทำการ Add  source ของ citrix ให้เองอัตโนมัตติ   แต่เมื่อเราทำการ update  package   จะฟ้อง Error  ว่าไม่พบ GPG key ของ Citrix     เราสามารถติดตั้งได้  ดั่งนี้

server:~# wget -q http://updates.vmd.citrix.com/XenServer/5.5.0/GPG-KEY -O- | apt-key add -

แค่นี้เวลาเราสั่ง apt-get ก็จะไม่ฟ้อง error gpg key อีกแล้วครับ

Speedup Dynamic and Static Content with Nginx

Posted by อัทศักดิ์ วงศ์กิตตะ on Sunday, May 9th, 2010

พูดถึงปัญหาของเว็บใหญ่ๆทั่วไป ก็คงไม่เว็บเรื่องระบบ File System เพราะปัจจุบันมีแค่ NFS เท่านั้นที่ทำการ Share ไฟล์ได้ใน Unix หากจะหันไปให้ SAN หรือ iSCSI ราคาก็แสนแพง เพราะฉนั้นระบบใหญ่แค่ไหนก็มีปัญหาที่ระบบไฟล์ทุกที เราจึงต้องลบ Traffic ที่จะวิ่งไปดึงจาก NFS ให้น้อยที่สุด วันนี้ผมมีอีกทางออกให้คือการแยก Static และ Dynamic Content ออกจากกัน เพราะหากเราแยกได้แล้ว เราสามารถที่จะ Sync Dynamic Content ให้ไปอยู่ใน Local disk ได้หรือ จะทำการเลือกใช้ Web Server ให้เหมาะสมกับระบบที่เราดูแลได้ง่ายขึ้น


Continue reading “Speedup Dynamic and Static Content with Nginx” »

FreeBSD tip: SUDO Email alert

Posted by อัทศักดิ์ วงศ์กิตตะ on Sunday, May 9th, 2010

แนวคิดคือ Server ที่เราดูแลมี System Admin หลายคนที่สามารถ Access เป็น Root ได้ แล้วเราจะรู้ได้ไงว่า ใคร Login เข้าไปยัง Server ทางออกของผมคือ Allow User ที่ sshd ให้มีแค่ admin เท่านั้นที่เข้าได้ และให้ sudo เป็น root และจะมีอีเมล์แจ้งเตือนมายัง ผู้ดูแล เพื่อทราบว่าเข้าไปทำอะไร

1. sshd ให้แก้ไขไฟล์ /etc/ssh/sshd_config เพิ่ม AllowUsers เช่น
AllowUsers auttasak

2. แก้ไข /usr/local/etc/sudoers ดั่งนี้

Defaults mailto=admin@domain.com,mail_always
root ALL=(ALL) ALL
auttasak ALL=(ALL) NOPASSWD: ALL

หลังจากนั้นให้ทำการ Restart SSH ครับ เมื่อใดที่มีคน sudo จะมีอีเมล์แจ้งไปยัง admin@domain.com แบบนี้ทำให้เราทราบได้ว่ามีคน sudo เป็น root เมื่อใดบ้าง

Use wget on FreeBSD Ports with proxy

Posted by อัทศักดิ์ วงศ์กิตตะ on Wednesday, April 28th, 2010

เพื่อนๆคงเจอปัญหาเมื่อต้องการติดตั้งโปรแกรมผ่าน Ports ของ FreeBSD ซึ้งจะต้องโหลด Source จากต่างประเทษปต่ปัญหาคือ ISP บางเจ้าในไทย Link Inter ช้าเหลือเกิน ทางออกคือใช้ proxy แทน มาดูวิธีเลยครับ

echo "FETCH_CMD=wget" >> /etc/make.conf
echo "FETCH_BEFORE_ARGS=-nc --progress=bar --read-timeout=60" >> /etc/make.conf
 
HTTP_PROXY=http://user:pass@proxy.domain.com:3128/
FTP_PROXY=http://user:pass@proxy.domain.com:3128/
export HTTP_PROXY FTP_PROXY

แค่นี้เพื่อนๆก็สามารถลงโปรแกรมผ่าน wget โดยใช้ Proxy ได้แล้วครับ

IPTables statefull firewall for Linux

Posted by อัทศักดิ์ วงศ์กิตตะ on Tuesday, March 23rd, 2010

หายไปนานครับ วันี้เอาเรื่องเก่าๆมาหากินใหม่ IPTables ที่ทำๆอยู่ทุกวันนี้แหละครับ พอดีทำ Shell Script ทิ้งไว้เลยเอามาแจกจ่ายให้เพื่อนๆเอาไปใช้งาน หลายๆคนถามว่าทำไมต้องเขียนเอง ก็เหตุผลง่ายๆครับ เราเขียนเองเรารู้ทุกๆ rules ที่มันทำงานอย่างไร เวลาเกิดปัญหา เราสามารถแก้ไขปัญหาได้ รวดเร็ว มาดูความสามารถของ script firewall ตัวนี้ครับ

ความสามารถ:
– State full firewall
– สามารถกำหนด Interface ที่ทำงานได้
– สามารถกำหนด VIP IP ได้
– สามารถกำหนด Band IP ได้
– มีการเก็บ Log ลง syslog
– ป้องกันการ Scan port ได้
– ป้องกัน IP Spoofig
– ป้องกัน SSH Attatch
Continue reading “IPTables statefull firewall for Linux” »

Reset MySQL Password for FreeBSD

Posted by อัทศักดิ์ วงศ์กิตตะ on Saturday, February 7th, 2009

วันนี้กำลังลง Apps ให้ลูกค้าครับ พอดีเค้าลง MySQL 4.0 ไว้พอถามไปเค้าบอกว่า ลืม Password MySQL สะงั้น ผมเลยต้อง Reset Password MySQL ใหม่ วิธีก็มีหลายหลากครับ แต่ผมเลือกทางง่ายๆ (สำหรับผม) ลองทำตามกันดูนะครับ :)

1. ทำการดูว่า mysql เรา start process ยังไง
ps auxww | grep mysql

mysql 23572 0.0 0.3 1724 1372 p2 S 1:52AM 0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql –pid-file=/var/db/mysql/mail.domain.com.pid
mysql 23591 0.0 4.8 57084 24936 p2 S 1:52AM 0:00.31 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysql –user=mysql –pid-file=/var/db/mysql/mail.domain.com.pid

2. เรารู้แล้วว่า MySQL Start process ยังไงเราก็stop db + start mysql ผ่าน command

/usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql –pid-file=/var/db/mysql/mail.domain.com.pid –skip-grant-tables

เราใส่ –skip-grant-tables MySQL จะไม่ตรวจสอบ table mysql ทำให้เราสามารถ Login โดยไม่ต้องใส่ Password ได้

shell# mysql
mysq> use mysql
mysql> UPDATE user SET password=password(‘secret’) WHERE user=’root’;
mysql> exit;

shell#mysqladmin -p shutdown
ใส่ password ใหม่ที่เราตั้งใหม่ คือ secret

3. start mysql ผ่าน rc.d ปกติและใช้ password ใหม่ได้แล้วครับ : )

SSH โดยไม่ต้องใส่รหัสผ่าน

Posted by กวิน ชัยเลิศ on Friday, January 16th, 2009

สำหรับผู้ดูแลระบบที่มีความจำเป็นต้องใช้งาน Remote Login ผ่าน OpenSSH Client อยู่เป็นประจำไม่ว่าจะใช้งานบน Linux, *BSD, Mac OS X คงจะเกิดอาการเบื่อไม่น้อยที่ต้องพิมพ์ Password ทุกๆ ครั้งที่ต้องการจะ Login (ไม่นับ Password จำพวก 123456 นะครับ) ทางออกสำหรับผู้ที่ต้องการ Login โดยไม่ต้องพิมพ์ Password แถมยังคงความปลอดภัยตามแบบฉบับของ OpenSSH สามารถทำได้ตามวิธีดังต่อไปนี้ครับ

ระบบที่ทำการทดสอบ
- OpenSSH Client บน Mac OS X 10.5.6
- OpenSSH Server บน Ubuntu 8.04

ขั้นตอนแรก ทำการสร้าง keys สำหรับยืนยันตัวตนระหว่าง Client และ Server (ทำบนเครื่อง Client ในที่นี้คือ Mac OS X)

MacClient:~ UserA$ ssh-keygen -t rsa
MacClient:~ UserA$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/UserA/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/UserA/.ssh/id_rsa.
Your public key has been saved in /Users/UserA/.ssh/id_rsa.pub.
The key fingerprint is:
a4:74:0b:bc:2f:d1:f5:c7:4e:90:51:7f:f4:45:84:a0 UserA@MacClient

Continue reading “SSH โดยไม่ต้องใส่รหัสผ่าน” »

วิธีตรวจสอบ Linux / Unix distribution version

Posted by กวิน ชัยเลิศ on Friday, January 16th, 2009

กรณีที่ผู้ดูแลระบบได้รับมอบหมายให้ดูแล server ที่ตนเองไม่ได้ติดตั้ง คงจะอยากรู้ว่า Linux / Unix server ที่ใช้อยู่เป็น version อะไร …
สามารถตรวจสอบได้จากคำสั่งต่อไปนี้ครับ

cat /proc/version

ได้ Output ประมาณนี้ครับ

Linux version 2.6.27-9-generic (buildd@rothera) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Thu Nov 20 21:57:00 UTC 200

หรือดู version ในไฟล์ /etc/issue
(issue – pre-login message and identification file)

cat /etc/issue

ได้ Output ประมาณนี้ครับ

Ubuntu 8.10 \n \l

* ทดสอบบน Ubuntu 8.10