Archive for the ‘FreeBSD’ Category

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 ได้แล้วครับ

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 โดยไม่ต้องใส่รหัสผ่าน” »

Check Transparent Proxy

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

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

Continue reading “Check Transparent Proxy” »

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 และส่ง
Continue reading “Apache 2.0 – Name Base VHost” »

วิธีติดตั้ง 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 อีกทางนึง

Continue reading “วิธีติดตั้ง Reverse Proxy ด้วย Squid” »

แก้ปัญหาลืมรหัสผ่านของ 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 ได้ตามปกติครับ

Apache2.0 + PHP5 on FreeBSD

Posted by อัทศักดิ์ วงศ์กิตตะ on Wednesday, June 4th, 2008

ผ่านไปพักใหญ่ MySQL Cluster ก็ยังไม่ Start สะทีเลยถือโอกาศมาเขียน docs เรื่องการติดตั้ง Apache + PHP + Mysql ในรูปแบบของผมกันครับ ก่อนอื่นให้ทำการติดตั้ง MySQL ตามเอกสารนี้ครับ

1. ทำการ Update pors ครับ (แนะนำว่าให้ทำบ่อยๆ ใส่ crontab ไว้เลยก็ได้ครับ)

cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile -h cvsup.th.freebsd.org

2. ทำการติดตั้ง Apache 2.0

cd /usr/ports/www/apache20/
make all install clean WITH_SSL_MODULES=yes

Continue reading “Apache2.0 + PHP5 on FreeBSD” »

Install MySQL Server on FreeBSD

Posted by อัทศักดิ์ วงศ์กิตตะ on Wednesday, June 4th, 2008

     สวัสดีครับตอนนี้ว่างเพราะรอ Restore Databse เข้า MySQL Cluster เลยพอมีเวลามาเขียนวิธีติดตั้ง MySQL บน FreeBSD เ้อาง่ายๆละกันนะครับ

1. ทำการ Update ports ของ FreeBSD

cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile -h cvsup.th.freebsd.org

2. ทำการติดตั้ง MySQL Server ผมเลือก Version 5.0 นะครับ

cd /usr/ports/databases/mysql50-server
make all install clean WITH_CHARSET=tis620 WITH_XCHARSET=all WITH_COLLATION=tis620_thai_ci

Continue reading “Install MySQL Server on FreeBSD” »