Archive for the ‘Operating System’ Category

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

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

วิธีตรวจสอบ 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

OpenVPN on Debian

Posted by อัทศักดิ์ วงศ์กิตตะ on Thursday, January 15th, 2009

สวัสดีอีกครั้งครับหลังจากหายหน้าหายตาไปนาน จริงๆก็ไม่ได้ไปไหนแค่หลังๆมางานที่ office ค่อนข้างมากแล้วผมเองก็ไปเที่ยวสะบ่อยๆ เลยไม่ค่อยได้มาเขียนบทความให้อ่านกัน   วันนี้เป็นเรื่องการทำ VPN  โดยใช้ OpenVPN    ทำไมต้องเป็น OpenVPN  สาเหตุของผมคือ ผมเองต้องติดตั้งระบบ Auth System (Radius + Chillispot + Syslog-ng)    แต่ละที่ดันเป็น Dynamic IP หมด  เวลาจะแก้ไขอะไรก็ต้องไป set router    ซึ่งมันไม่ใช่ทางเลือกที่ดีเลย    ทางแก้ผมเลย set up ที่ Center แล้วให้ Site แต่ละที่ทำการสร้าง VPN Connection ไปยัง Center

Server# apt-get install openvpn
Server# vi /etc/openvpn/server.conf

# ไฟล์ /etc/openvpn/server.conf

dev tap0
proto tcp-server
ping 1
ping-restart 5
port 10000
ifconfig 10.10.10.1 255.255.255.0
Client# apt-get install openvpn
Client# vi /etc/openvpn/client.conf

# ไฟล์ /etc/openvpn/server.conf

dev tap0
proto tcp-client
ping 1
ping-restart 5
port 10003
ifconfig 10.10.10.2 255.255.255.0
remote 203.1.1.1
Server# /etc/init.d/openvpn start
Client# /etc/init.d/openvpn start

Check Transparent Proxy

Posted by อัทศักดิ์ วงศ์กิตตะ on Monday, September 1st, 2008

คือมี case ที่ต้องทำ transparent proxy ครับ  แต่ว่าเวลา proxy มีปัญหา ผมอยากให้ทำการ ปลด proxy ออกเอง  ผมเลยเขียน shell script  มาเพื่อทำการ ตรวจสอบว่า proxy ทำได้หรือเปล่า ถ้าทำงานได้ ก็จะเพิ่ม iptables  ทำการสร้าง DNAT  ไปยังเครื่อง Proxy ครับ

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

พรบ. การกระทำความผิดเกี่ยวกับคอมพิวเตอร์ – Revert Proxy Log Rotate

Posted by อัทศักดิ์ วงศ์กิตตะ on Sunday, August 24th, 2008

ตามที่ พรบ  ได้กำหนดให้ “ผู้ให้บริการ” เก็บ log การใช้บริการ   โชคดีที่ผมมี Revert Proxy วางไว้หน้า Web Server  ทำให้สามารถเก็บ Log ได้ง่ายหน่อย   ตัว script ที่ผมเขียนนี้ จะทำการ rotate log และ compress log ไว้    ใน version ต่อไป จะทำการ ftp ไปไว้ยัง Log Server  อื่น แทนครับ :)
คลิกที่นี่เพื่อดูส่วนที่เหลือ »

Apache 2.0 – Name Base VHost

Posted by อัทศักดิ์ วงศ์กิตตะ on Tuesday, July 22nd, 2008

พอไปอ่านกระทู้ใน thaibsd.com เลยกะต่อยอดเล็กน้อย หลังจากที่ติดตั้ง “Apache2.0 + PHP5 on FreeBSD” ก็ถึงครามาทำ Name Base Vhost ในรูปแบบของผม พูดถึงเรื่อง Vhosts มันทำได้หลายแบบ แต่ที่เราทำกันบ่อยๆก็ Name Base Host และ IP Base VHost

อะไรคือ “Name Base Vhost” ขอกล่าวถึง HTTP Protocol ละกันครับ เวลาที่ IE, Firefox ในเครื่องเ้้ราซึ่งเค้าเรียกรวมกันว่า Browser เข้าไปเว็บๆหนึ่ง เช่น เข้าไปที่ http://howtoconfig.com/index.php Browser ของเราก็จะสร้าง tcp connect ไปยัง IP ปลายทาง port 80 และส่ง
คลิกที่นี่เพื่อดูส่วนที่เหลือ »

วิธีติดตั้ง Reverse Proxy ด้วย Squid

Posted by กวิน ชัยเลิศ on Friday, July 11th, 2008

ในเบื่องต้นผมขอแนะนำให้รู้จัก Squid กันก่อนครับ

Squid เป็น Open Source Software ที่ให้บริการ Proxy caches ซึ่ง Squid สามารถติดตั้งให้ทำงานใน 3 รูปแบบหลักดังนี้

1. Standard Proxy Cache
ใช้สำหรับเก็บ cache ของ static web pages จำพวก html และรูปภาพ โดยทั่วไปมักจะถูกใช้งานใน network ภายในองค์กร โดยที่ web pages ต่างๆ ที่ถูกเรียกผ่าน local network เป็นครั้งที่สอง web browser จะแสดงผล web pages นั้นผ่าน proxy cache แทนที่ไปดึงข้อมูลจาก web server มาแสดงผล (ประหยัด bandwidth และเพิ่มความเร็วในการแสดงผล)

2. Transparent Cache
ความสามารถหลักๆ เหมือนกับการติดตั้งแบบ standard proxy cache จะแตกต่างกันที่การติดตั้งแบบ transparent cache ไม่จำเป็นต้องปรับแต่ง web browser ให้สามารถใช้งาน proxy cache โดยที่ transparent cache จะทำหน้าที่คอยกรอง HTTP traffic (on port 80) แล้วตรวจสอบว่า request นั้นมีอยู่ใน cahce หรือไม่ ถ้าไม่มีก็จะทำการส่งต่อไปยัง web server ของ web pages นั้น (สำหรับ Linux การใช้งาน transparent cache จะใช้ควบคู่ไปกับ iptables ในการกรอง HTTP traffic)

3. Reverse Proxy Cache
สำหรับ reverse proxy cache จะทำหน้าที่แตกต่างกับ standard และ transparent caches โดยที่ reverse proxy cache จะทำหน้าที่ลดภาระของ web server แทนที่การลด network bandwidth ของฝั่ง client กล่าวคือ reverse proxy cache ถูกติดตั้งอยู่หน้า web server (ระหว่าง internet และ web server) คอยจัดการ traffic ที่เกิดขึ้นทั้งหมดก่อนจะถึง web server ป้องกัน traffic ที่เพิ่มขึ้นโดยไม่พีงประสงค์ (ซึ่งอาจจะโดนโจมตีจาก hacker เป็นต้น) อีกทั้งยังลดภาระของ web server อีกทางนึง

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

แก้ปัญหาลืมรหัสผ่านของ FreeBSD

Posted by กวิน ชัยเลิศ on Tuesday, July 8th, 2008

แก้ปัญหาลืมรหัสผ่านของ root บน FreeBSD ง่ายๆ ตามนี้ครับ

1. Restart FreeBSD (Ctrl+Alt+Delete หรือ กดปุ่ม Reset T_T)
2. พิมพ์ boot -s ที่ Boot: prompt (เพื่อเข้า Single User Mode)
3. Enter (ตอนมีคำถามให้เลือก Shell)
4. ใช้คำสั่ง mount -urw / เพื่อให้สามารถอ่าน/เขียน ไฟล์ได้

mount -urw /

5. ใช้คำสั่ง mount -a (remount ระบบไฟล์ทั้งหมด)

mount -a

6. ใช้คำสั่ง passwd root เพื่อเปลี่ยนรหัสผ่านของ root

passwd root

เพียงเท่านี้ก็สามารถกลับมาใช้ root ได้ตามปกติครับ

ยกเลิก Blank Screen บน Linux Console

Posted by กวิน ชัยเลิศ on Thursday, July 3rd, 2008

ไม่ยากใช่ไหมครับหากต้องการยกเลิก screen saver บน X window แต่สำหรับ text mode (linux console) ผมคิดว่าหลายๆ คนยังไม่เคยยกเลิก blank screen หรือกำลังหาทางยกเลิกมันอยู่ สำหรับผมแล้วการยกเลิก blank screen บน linux console นั้นมีประโยชน์มากครับ ยกตัวอย่างเช่น เราสามารถทำงานไปพร้อมๆ กันกับการ monitor ดู error หรือ log จากอีกจอนึง (กรณีมีจอ monitor มากกว่าหนึ่งจอ) โดยที่ไม่ต้องคอยกดคีย์บอร์ดหรือเลื่อนเมาส์เพื่อให้ linux console แสดงผลอยู่ตลอดเวลา

สำหรับวิธีการนั้นก็ไม่ได้ยุ่งยากเลยครับ แค่ใช้คำสั่ง setterm เท่านั้น

setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1

หากต้องการยกเลิก blank screen ทุกครั้งหลังจาก start linux ให้ทำการเพิ่มคำสั่งดังกล่าวในไฟล์ /etc/rc.local เพียงเท่านี้ก็ไม่ต้องคอยกดคีย์บอร์ดหรือเลื่อนเมาส์ทุกๆ 5 นาทีแล้วครับ