Archive for the ‘Operating System’ Category
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 ที่มีอยู่ครับผม
Tags: Disk Label, Linux
Posted in Operating System | No Comments »
Posted by อัทศักดิ์ วงศ์กิตตะ on Monday, October 25th, 2010
สมัยนี้ไปไหนก็มีก็มี Wifi ให้เราใช้งาน ไม่ว่าจะเป็นแบบฟรี หรือ เสียเงิน วันนี้ผมเอาจุดอ่อน ที่ผู้ให้บริการ Hotspot มองข้ามคือ การเปิด Any DNS หรือ การเปิดให้ Client สามารถ Query DNS ข้างน้อกได้ โดยไม่ได้ทำการ Auth ซึ่ง Wifi หลายๆที่เปิดไว้เพื่อความสะดวก แต่ตรงนี้แหละเป็นจุดอ่อน ที่จะทำให้เราสามารถใช้งาน Internet ได้โดยไม่โดนจำกัด Bandwidth
สิ่งที่ต้องเตรียม
- ต้องมี Server ที่เป็น Fix IP ไว้ข้างนอก
- ติดตั้ง 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 ได้แล้วครับ
Tags: debian, OpenVPN, VPN
Posted in debian | No Comments »
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 อีกแล้วครับ
Tags: apt-get, debian, xen
Posted in debian, Operating System | No Comments »
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” »
Tags: NFS, Nginx, Web Server
Posted in debian, Operating System | No Comments »
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 เมื่อใดบ้าง
Tags: FreeBSD, ssh
Posted in CentOS, debian, FreeBSD, Operating System, ubuntu | No Comments »
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 ได้แล้วครับ
Tags: FreeBSD, wget
Posted in FreeBSD | No Comments »
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” »
Tags: centos, debian, firewall, INPUT, iptables, Linux, Shell
Posted in CentOS, debian, Development, Operating System, Shell script, ubuntu | 4 Comments »
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 ใหม่ได้แล้วครับ : )
Tags: FreeBSD, MySQL, password
Posted in Database, FreeBSD, MySQL, Operating System | 3 Comments »
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 โดยไม่ต้องใส่รหัสผ่าน” »
Tags: *BSD, centos, Linux, Mac OS X, OpenSSH, password, ssh, ubuntu, รหัสผ่าน
Posted in CentOS, debian, FreeBSD, Mac OS X, Operating System, ubuntu | 1 Comment »
Posted by กวิน ชัยเลิศ on Friday, 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, debian, Operating System, ubuntu | 1 Comment »