Posted by อัทศักดิ์ วงศ์กิตตะ on February 19th, 2009
สวัสดีครับ วันนี้จิบเบียร์แล้วก็มานั้งทบทวนเรื่องงานที่ทำ พอดีมีเรื่องเล็กๆน้่อยๆ ที่ผมเองทำและน่าจะเป็นประโยช์กับเพื่อนๆ เกี่ยวกับการตั้ง Reverse Proxy กับปัญหา เรื่อง IP ที่ show ใน app ของเรา
ปกติเวลาเราเขียน Apps หรือ พวกฟรี Webboard ทั้งหลายจะมีการ Check IP จาก
$_SERVER['REMOTE_ADDR'] และ $_SERVER['HTTP_X_FORWARDED_FOR'] หากเจอตัวแปล HTTP_X_FORWARDED_FOR ระบบจะทำการ Record IP จาก HTTP_X_FORWARDED_FOR ด้วย แต่หากว่าบางโปรแกรมที่เขียน จะเก็บแค่ REMOTE_ADDR ทำให้ IP ที่แสดงในโปรแกรมของเรา เป็น IP ของ Reverse Proxy แทน
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: PHP, Reverse Proxy
Posted in Development, PHP | 3 Comments »
Posted by อัทศักดิ์ วงศ์กิตตะ on 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 ใหม่ได้แล้วครับ : )
Posted in Database, FreeBSD, MySQL, Operating System | 2 Comments »
Posted by อัทศักดิ์ วงศ์กิตตะ on January 16th, 2009
ช่วงนี้ขยันครับกะจะปั่นบาความใหม่ๆสะหน่อย หลังจากไม่ได้เขียนมาสะนาน วันนี้เอาเรื่องเกี่ยวกับ Developer บ้างผมเองเป็นทั้ง System, Programing เลยยกเรื่องการเ้ข้ารหัสข้อมูลที่เป็นแบบ 2 way คือสามารถ เข้ารหัส และถอดกลับมาได้ และมีความปลอดภัยสูง
มาพูดเรื่อง PKI ก่อนนะครับ ส่วนตัวผมเองไม่ได้เรื่อง IT มาเรื่อง PKI ผมเองก็ได้แต่อ่านๆจากในเน็ต แล้วก็นำมาเล่าสู่กันฟัง ท่าสามารถหาข้อมูลที่ลึงมากกว่านี้ได้จาก Link ข้างล่าง “Public key infrastructure” คือการเข้ารหัสข้อมูล โดยใช้ กุญแจ 2 ลูกคือ Public Key และ Private Key หากเราเข้ารหัสข้อมูลโดยใช้ Private Key เราก็ต้องถอดรหัสโดยใช้ Public Key ในทางกลับกัน ถ้าเข้ารหัสด้วย Public Key ก็ต้องใช้ Private Key ถอดรหัสเท่านั้น
ทีนี้มาพูดถึงความปลอดภัย ตัว PKI เองสามารถเลือก bit การเข้ารหัสได้ตามที่เราต้องการ ตั้งแต่ 512, 1024, 2048 และสามารถเข้ารหัวได้สูงกว่านี้ ทำให้เป็นการยากที่จะถอดรหัสได้ ทุกๆวันนี้เราเองก็ใช้เทคโนโลยีนี้แทบทุกวัน โดยที่เราไม่รู้ตัว อย่างบัตร SmartCard เองก็ใช้ PKI ในการเข้ารหัส หรือ Card UBC เองก็ใช้เช่นกัน อีกตัวอย่างคือ เวลาเข้าเว็บไซด์ผ่าน https ระหว่าง Web Server และ Browser ก็จะมีการเข้ารหัสข้อมูล โดยใช้เทคโนโลยี PKI ในการเข้ารหัสเช่นกัน
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: OpenSSL, PHP, PKI
Posted in Development, PHP | No Comments »
Posted by กวิน ชัยเลิศ on 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
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: *BSD, centos, Linux, Login, Mac OS X, OpenSSH, password, ssh, ubuntu, รหัสผ่าน
Posted in CentOS, FreeBSD, Mac OS X, Operating System, debian, ubuntu | 1 Comment »
Posted by กวิน ชัยเลิศ on January 16th, 2009
กรณีที่ผู้ดูแลระบบได้รับมอบหมายให้ดูแล server ที่ตนเองไม่ได้ติดตั้ง คงจะอยากรู้ว่า Linux / Unix server ที่ใช้อยู่เป็น 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)
ได้ Output ประมาณนี้ครับ
* ทดสอบบน Ubuntu 8.10
Tags: *BSD, command, Distribution, Linux, คำสั่ง
Posted in CentOS, Operating System, debian, ubuntu | 1 Comment »
Posted by อัทศักดิ์ วงศ์กิตตะ on 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
Tags: debian, OpenVPN
Posted in Operating System, debian | No Comments »
Posted by กวิน ชัยเลิศ on December 8th, 2008
“Mac OS X” หลายๆ คนอาจเข้าใจผิดออกเสียงโอเอสตัวเก่งของ Apple ว่า “โอเอส เอ็ก” ซึ่งความจริงแล้วโอเอสที่ว่านี้ทาง Apple ตั้งใจให้ออกเสียงว่า “โอเอส เท็น” (ผมก็คนนึงละที่เคยเรียกมันว่า “โอเอส เอ็ก”)
ทำไมต้องออกเสียง X ว่า “เท็น” ?
ตัวอักษร “X” หมายถึงเลขสิบในระบบโรมัน และอ่านออกเสียงว่า “เท็น” (Ten, แปลว่า “สิบ” ในภาษาอังกฤษ) และยังแสดงถึงรุ่นที่ต่อมากจากแมคโอเอสตัวก่อนหน้านี้คือ แมคโอเอส 9 นอกจากนี้ตัวอักษร X ยังแสดงถึงความเป็นยูนิกซ์ (UNIX) ในตัวโอเอสด้วย ซึ่งแมคโอเอสเท็นได้ใช้ยูนิกซ์ที่เป็นโอเพนซอร์สที่ชื่อว่า Darwin เป็นแกนกลาง
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: Apple, Darwin, Mac OS X, OS X, UNIX, ยูนิกซ์, ระบบปฏิบัติการ, แมคอินทอช, แมคโอเอส, โอเอส
Posted in Mac OS X | No Comments »
Posted by อัทศักดิ์ วงศ์กิตตะ on September 1st, 2008
คือมี case ที่ต้องทำ transparent proxy ครับ แต่ว่าเวลา proxy มีปัญหา ผมอยากให้ทำการ ปลด proxy ออกเอง ผมเลยเขียน shell script มาเพื่อทำการ ตรวจสอบว่า proxy ทำได้หรือเปล่า ถ้าทำงานได้ ก็จะเพิ่ม iptables ทำการสร้าง DNAT ไปยังเครื่อง Proxy ครับ
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: Linux, Proxy, Shell script, Squid, Transparent, TransparentProxy
Posted in Development, FreeBSD, Shell script, debian | 1 Comment »
Posted by อัทศักดิ์ วงศ์กิตตะ on August 24th, 2008
ตามที่ พรบ ได้กำหนดให้ “ผู้ให้บริการ” เก็บ log การใช้บริการ โชคดีที่ผมมี Revert Proxy วางไว้หน้า Web Server ทำให้สามารถเก็บ Log ได้ง่ายหน่อย ตัว script ที่ผมเขียนนี้ จะทำการ rotate log และ compress log ไว้ ใน version ต่อไป จะทำการ ftp ไปไว้ยัง Log Server อื่น แทนครับ 
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: Apache, Log, Proxy, Revert, Rotate, Squid, พรบ
Posted in Development, Shell script, debian | 3 Comments »
Posted by อัทศักดิ์ วงศ์กิตตะ on 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 และส่ง
คลิกที่นี่เพื่อดูส่วนที่เหลือ »
Tags: Apache, IP Base Vhost, Name Base Vhost, PHP, Vhost
Posted in FreeBSD | 2 Comments »