Topic List
sudo apt-get install netatalk
sudo nano /etc/netatalk/AppleVolumes.default
/shares "Shares" /media/user/VolumeName "ShareName"
sudo /etc/init.d/netatalk restart
top :: the Linux Top Command
top
iotop :: I/O Monitor
iotop
iftop :: Bandwidth Monitor
iftop
iptstate : IP Tables State
iptstate
df :: Display Free Disk Space
df
ชีวิตหวนกลับมาหา Linux : Ubuntu อีกครั้งหลังส่ง MacBook ไปเข้าโรงซ่อมเป็นครั้งที่ 2 พร้อมกับการรอคอยการกลับมาอีกประมาณ 3 สัปดาห์ (รวมความแล้ว 1 ปีกว่า ๆ ไม่ได้ใช้งานเครื่องเกือบ 2 เดือน)
จึงต้องหวนกลับมาหาคำสั่ง Linux อีกครั้ง
แต่ชีวิตก็มีความสุขดี
อันนี้ copy มาล้วน ๆ ครับ ยังไม่มีความสามารถพอที่จะเขียนอย่างนี้ได้
เอามาจาก www.thaihosttalk.com ตามนี้นะครับ
นี่เป็นเกร็ดเล็กๆน้อยๆเบื้องต้นสำหรับมือใหม่ที่จะช่วยปรับแต่งให้เครื่อง Linux มีความปลอดภัยมากยิ่งขึ้นครับ โดยตัวอย่างที่ให้เป็นคำสั่งบนเครื่อง debian ถ้าใครใช้ distro อื่นๆก็อาจจะมีรายละเอียดปลีกย่อยแตกต่างกันไป (ส่วนใหญ่จะคล้ายๆกันแต่ต่างกันที่สถานที่เก็บ config ไฟล์ต่างๆ) ผิดพลาดประการใดก็ขออภัยด้วยครับ
แบ่งขั้นตอนคร่าวๆได้ดังนี้
- สร้าง user ขึ้นมาใหม่ - เพื่อที่จะได้ไม่ต้องเข้าเป็น root ตลอดเวลา ช่วยทั้งเรื่องความปลอดภัยและป้องกันความซุ่มซ่ามของตัวเองทำเครื่องพังจากการใช้คำสั่งอย่างไม่ระมัดระวัง
- เปลี่ยน root password - โดยเฉพาะคนที่ได้ root password มาจากคนอื่น (แต่ถ้าเราเปลี่ยนแล้ว คนๆนั้นก็จะเข้า root ไม่ได้นะครับ เว้นแต่ว่าจะให้สิทธิ์ใน sudoers ไว้ตามข้างล่าง)
- ปิด service ต่างๆที่ไม่ได้ใช้ - เพื่อลดจำนวนช่องโหว่ลง
- ลง sudo - จะได้ไม่ต้อง login เข้า root ตามข้อ (1) ข้างบน
- ตั้งค่า SSH - ไม่ให้ login โดยใช้ root และทำ public key authentication (ถ้าต้องการ)
- ตั้งค่า iptables - เพื่อเปิดใช้เฉพาะ port ที่จำเป็นจริงๆ
มาเริ่มกันเลยดีกว่า..
1. สร้าง user โดยใช้คำสั่ง adduser
$ adduser username $ passwd username
2. เปลี่ยน root password
$ passwd
3. ปิด service ต่าง ๆ ที่ไม่ได้ใช้
ปกติผมจะไปเพิ่มหรือลบ symbolic link ตาม /etc/rcX.d/ เอาด้วยความเคยชิน แต่เดี๋ยวนี้ใช้สคริปต์ update-rc.d ได้ครับ (สำหรับ debian) หรือ 'service' สำหรับ Centos
$ update-rc.d -f service_name remove
4. ลง sudo
$ apt-get install sudo
หรือใครใช้ Centos ก็ให้ใช้ yum เอา
จากนั้นก็ให้ใช้ visudo เพื่อแก้ไฟล์ sudoers อยากให้ใครใช้คำสั่งที่ต้องใช้ root privilege ได้ก็ใส่บรรทัดนี้เข้าไป
username ALL=(ALL)
5. ตั้งค่า SSH
อันดับแรกที่ผมทำเลยคือปิด root login ครับ ให้เข้ามาเป็น user ธรรมดาแล้วมา sudo เอา เปิดไฟล์ /etc/ssh/sshd_config โดยใช้ editor ที่ถนัด แล้วมองหาบรรทัด PermitRootLogin yes แล้วเปลี่ยนเป็น PermitRootLogin no แทน
จากนั้นก็เช็คว่าให้ใช้ SSH version 2 เท่านั้น โดยดูในไฟล์เดิมแล้วหาบรรทัด Protocol 2,1 แล้วเปลี่ยนเป็น Protocol 2 แทน ถ้าเป็น Protocol 2 อยู่แล้วก็ไม่ต้องไปยุ่งอะไรมันครับ
ถ้าอยากจะเปลี่ยน port SSH ด้วยก็ทำได้ครับ หาบรรทัด Port 22 แล้วเปลี่ยนเลข 22 เป็น port อื่นที่เราต้องการ
สำหรับคนที่โรคจิตวิตกจริตอย่างผมก็อาจจะอยากใช้ public key authentication แทน ก็ทำได้ครับ ก่อนอื่นก็สร้าง public/private key บนเครื่องตัวเองก่อน
$ ssh-keygen -t rsa
และควรจะใส่ password ให้กับ key นี้ด้วยเพื่อเพิ่มความปลอดภัย (ไม่งั้นถ้า private key โดนขโมย คนที่ขโมยก็จะสามารถเข้าเครื่องเราได้ทันที)
จากนั้นก็ upload public key ขึ้นไปบน server
$ scp id_rsa.pub username@server:id_rsa.pub
แล้ว log เข้าไปที่ server เพื่อตั้งให้ใช้ key นี้สำหรับ login
$ cd (ไปที่ home ของ user ที่ต้องการ) $ mkdir .ssh $ chmod 700 .ssh $ cat id_rsa.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys
แล้วเปิดไฟล์ /etc/ssh/sshd_config ขึ้นมาอีกครั้งเพื่อตั้งให้ใช้ public key เท่านั้น
หาบรรทัด PasswordAuthentication yes แล้วเปลี่ยนเป็น PasswordAuthentication no
หาบรรทัด UsePAM yes แล้วเปลี่ยนเป็น UsePAM no
ถ้ามั่นใจว่าไม่ได้ทำอะไรผิดก็ทำการ restart sshd
$ /etc/init.d/ssh restart
*** ควรจะทำที่หน้าจอหรือผ่าน iKVM เพราะถ้า config พลาดอาจจะทำให้เข้าเครื่องไม่ได้ (เตือนแล้วนะครับ) หรือถ้าจำเป็นจริงๆที่ต้องทำจากข้างนอกก็ต้องไม่ปิด session ssh ปัจจุบันจนกว่าจะมั่นใจว่าสามารถเข้า session ใหม่ผ่าน public key ได้ ***
6. ตั้งค่า iptables
โดยปกติผมจะปิดทุก port ยกเว้นแต่ port ที่ต้องใช้จริงๆ ขั้นตอนต่อไปจะทำในไฟล์หรือใส่ command เข้าไปเลยก็ได้ ถ้าสร้างไฟล์ก็ให้เริ่มไฟล์ด้วย *filter เพื่อบอกว่าเรากำลังแก้ filter table อยู่ ดังนี้
$ vi /etc/iptables.test.rules
*filter -A INPUT -i lo -j ACCEPT -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j DROP -A FORWARD -j DROP COMMIT
อธิบาย rules ต่างๆ
- อนุญาต traffic จาก loopback interface
- ถ้ามี traffic มาที่ 127.0.0.0/8 ต้องมาจาก loopback interface เท่านั้น
- อนุญาต incoming traffic ที่เริ่มจากเครื่องนี้
- อนุญาต outgoing traffic ทั้งหมด
- อนุญาต tcp traffic ที่มาที่ port 80
- อนุญาต tcp traffic ที่มาที่ port 22 (SSH)
- อนุญาต ping
- เก็บ log traffic ที่ไม่ได้รับอนุญาต
- drop incoming traffic อื่นๆ
- drop traffic อื่นๆ ที่จะต้องถูก forward
เสร็จแล้วก็ load เข้า iptables โดยคำสั่ง
$ iptables-restore < /etc/iptables.test.rules
หรือถ้าไม่ทำใส่ไฟล์ก็ให้ใช้คำสั่ง iptables นำหน้าแทนครับ เช่น
$ iptables -A INPUT -i lo -j ACCEPT
แล้วใส่เข้าไปทีละบรรทัด
จากนั้นก็ดูความเรียบร้อย
$ iptables -L
และลองดูว่า port ที่ต้องการจะใช้ใช้ได้จริงหรือเปล่า และ port อื่นๆได้ถูกปิดไปจริงหรือไม่ (สำหรับคนที่เปลี่ยน port ssh ก็อย่าลืมเปลี่ยนตามนะครับ) ถ้าเรียบร้อยดีก็ save ไป
$ iptables-save > /etc/iptables.up.rules
แล้วสร้าง script ขึ้นมาเพื่อโหลด rules ตอน boot
$vi /etc/network/if-pre-up.d/iptables
#!/bin/bash /sbin/iptables-restore < /etc/iptables.up.rules
save ไฟล์แล้วเปลี่ยน permission ให้เป็น executable
$ chmod +x /etc/network/if-pre-up.d/iptables
เป็นอันเสร็จเรียบร้อย
(ลอกมาจาก blog ตัวเอง + update นิดหน่อย) original ที่นี่ http://just-another-...ลอดภัยให้-debi/
ที่มา www.thaihosttalk.com
ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)
ผ่านไป 2 ปี ก็ถึงเวลาต้องติดตั้ง Ubuntu ใหม่เสียที คราวนี้เลยถือโอกาสเปลี่ยนเป็น Ubuntu 11.04 64 bit ไปเลย ก็เลยลองมารีวิวการติดตั้ง LAMP บน Ubuntu ใหม่ว่ามีอะไรที่เปลี่ยนแปลงไปบ้าง
หมายเหตุ : การติดตั้งต่อไปนี้ใช้สิทธิ์ของ root ขอให้เข้าสู่สิทธิ์ของ root โดยการเปิด terminal แล้วพิมพ์ sudo su
Install L.A.M.P Stack (Apache, Mysql, PHP) ทีเดียวซะเลย
root@god:/# apt-get install lamp-server^
แล้วก็ลง phpMyAdmin
root@god:/# apt-get install phpmyadmin
เลือก Apache แล้ว YES สำหรับ dbconfig-common.
ติดตั้งเพิ่มเติม
php5-curl
root@god# apt-get install php5-curl
หรือชอบที่จะลงทีละตัว ก็
Install Apache
root@god:/# apt-get install apache2
Enable mod_rewrite
root@god:/# a2enmod rewrite
เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url
root@god:/# nano /etc/apache2/sites-available/default
- เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
- แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All
Install PHP
root@god:/# apt-get install php5 libapache2-mod-php5 php5-gd root@god:/# /etc/init.d/apache2 restart
Install MySQL
root@god:/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin root@god:/# /etc/init.d/apache2 restart
หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง
root@god:/# cp /media/disk/var/lib/mysql/* /var/lib/mysql/ root@god:/# chown -hR mysql /var/lib/mysql/* root@god:/# chgrp -hR mysql /var/lib/mysql/*
ย้ายข้อมูล mysql ไปไว้ที่อื่น
root@god:/# /etc/init.d/mysql stop root@god:/# mkdir /home/mysql root@god:/# chown -R mysql:mysql /home/mysql root@god:/# cp -r /var/lib/mysql/mysql /home/mysql/ root@god:/# chown -R mysql:mysql /home/mysql/*
แล้วแก้ my.cnf
root@god:/# nano /etc/mysql/my.cnf
หาคำนี้ให้เจอ :
datadir = /var/lib/mysql
แล้วเปลี่ยนเป็นตำแหน่งใหม่ :
datadir = /home/mysql
เสร็จแล้วก็ restart mysql service
root@god:/# /etc/init.d/mysql start Starting MySQL database server mysqld [ OK ]
แล้ว mysql จะทำการสร้างไฟล์ ibdata1, ib_logfile0, อื่น ๆ ขึ้นมาใหม่
ทุกอย่างน่าจะเรียบร้อย แต่ผมไม่สามารถ start mysql ได้ มันค้างอยู่ เลยต้องไปแก้ค่าในไฟล์ /etc/apparmor.d/usr.sbin.mysqld โดยเปลี่ยนค่า /var/lib/mysql ให้เป็น /home/mysql ด้วย
แล้วคราวนี้ก็ทำการ copy ฐานข้อมูลเก่า ๆ มาได้เลย อย่าลืมเปลี่ยน owner/group เป็น mysql ด้วยนะ
ที่มา
- Installing LAMP On Ubuntu For Newbies
- How to move mysql database to another drive or partition
- howtoforge.com
#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
โดนอีกแล้ว รู้สึกว่าจะเป็นครั้งที่ 2 แล้ว ที่เผลอกดเลือกเข้าไปใน boot Windows recovery แล้ว ไอ้เจ้า Windows recovery ก็ดันไม่ถามอะไรเลย มันจัดการลงเองอัตโนมัติ ยกเลิกไม่ได้
ผลคือ เข้า Windows ก็ไม่ได้ เข้า Ubuntu ก็ไม่ได้ Grub ค้าง ไม่ยอมไปไหน
วิธีแก้ คือ หาทางเอา Grub2 กลับมาโดย
จะต้องเปิดเครื่องด้วย LIVE CD หรือ LIVE USB ก็ได้ แล้วเข้า terminal
เช็คดูก่อนว่า Ubuntu partion อยู่ที่ไหน ด้วย
$sudo fdisk -l
ซึ่งผลก็ประมาณนี้
/dev/sda1 8370 13995 45190845 7 HPFS/NTFS /dev/sda2 * 3996 14593 4803435 5 Extended /dev/sda3 29 8369 66999082+ 83 Linux /dev/sda5 13996 14593 4803403+ 82 Linux swap / Solaris
ก็แล้วแต่ แต่ว่า ของผมเป็น /dev/sda3
mount มันเข้ามาซะ
$sudo mount /dev/sda1 /mnt $sudo mount --bind /dev /mnt/dev $sudo mount --bind /proc /mnt/proc
เข้าเป็น root ซึ่งหลังจากเข้าด้วย chroot แล้ว ก็ไม่จำเป็นต้องสั่ง sudo อีก
sudo chroot /mnt
หากต้องการแก้ค่า default ของ grub ก็
#nano -w /etc/default/grub
แล้วก็สั่งติดตั้ง grub เลย
#grub-install /dev/sda
หากมี error ก็สามารถเช็คได้ด้วย
#grub-install --recheck /dev/sda
ออกจาก root แล้วสั่ง reboot เลย
<a class="hashtag" href="/tags/exit">#exit</a> $sudo umount /mnt/dev $sudo umount /mnt/proc $sudo umount /mnt $sudo reboot
ขอบคุณ Howto Recover Grub2 After Windows Installation ที่ทำให้ไม่ต้องลงใหม่
คุณจะบอกลูก ๆ ว่าอย่างไรเมื่อให้ลูกเลิกใช้ windows แล้วหันมาใช้ linux ผมเจอจากเว็บนี้ เลยเอามา blog ไว้ก่อน แล้วจะพยายามแปลมาเป็นภาษาไทยอีกที
จะบอกว่าอย่างไรหากลูกไม่สามารถเล่นเกมส์ที่ชอบที่เคยเล่นบน windows ได้อีกเล้ว?
อย่างแรกเลย คือ บน linux มีเกมส์ดี ๆ แถมฟรีอีกต่างหากอย่างมากมาย ลองหาดูที่ 100 เกมส์ฟรีบนลินุกส์ หรือที่ แหล่งเกมส์ขนาดมหึมาสำหรับลินุกส์ สิครับ
flash game ก็สามารถเล่นได้ แม้ผมจะไม่ค่อยได้เล่นสักเท่าไหร่นัก ลองติดตั้ง flash player ดูสิ ติดตามเรื่องราวของ shockwave in linux
แต่นั่นไม่ใช่ทั้งหมด คุณสามารถสอนลูกถึงสิ่งที่ยิ่งใหญ่ที่สุดเกี่ยวกับ open source
Open source games! เมื่อตอนเด็ก ๆ ผมก็เคยเล่นเกมส์ เกมส์ยุคแรก ๆ ที่เล่น จะเป็นเกมส์บนภาษา BASIC ซึ่งผมสามารถเข้าไปแก้ไขค่าบางอย่างได้ (เพราะผมเห็น source program) ลองสอนเขาในการเขียนโปรแกรมเล็ก ๆ น้อย ๆ โดยการแก้ไขโปรแกรมหรือค่าต่าง ๆ ของเกมส์ ซึ่งเป็นสิ่งที่ทำได้หากคุณอยู่ในโลกของ Linux
ใช้งาน windows paint ไม่ได้อีกต่อไป?
แสดงให้เด็ก ๆ เห็นสิว่า เขาสามารถทำได้อย่างง่ายดายด้วยโปรแกรม inkscape หรือ กระทั่ง GIMP ที่เพียบพร้อมด้วยคุณสมบัติต่าง ๆ ในการทำงานที่มากกว่า ง่ายกว่า ด้วยอินเตอร์เฟสที่เด็ก ๆ ก็สามารถใช้งานได้
Kids need office for school
Movie maker alternatives in Linux
Fun Learning
Configure it to suit the childs age
Teach your children about the benefits of open source
Tell your children about the environmental benefits
More change for a computer of their own
Land them a good job in the future
ที่มา 10 things to tell your kids when you've ditched windows for linux
พยายามหาทางทำให้ Skype สามารถสั่งให้ call โดยการคลิกบนปุ่มที่อยู่ในหน้าเว็บ (ใน Windows - IE/FF สามารถทำได้ แต่บน Ubuntu ทำไม่ได้)
ใช้ Skype Beta 2.1.0.47 + Firefox 3.5.6 + Ubuntu 9.10
เคยลองจาก Making skype links work แล้ว แต่มันไม่ work มันขึ้นเตือนว่า "Firefox doesn’t klnow how to open this address, because the protocol (gtalk) isn’t associated with any program."
ส่วนที่ work คือ "Associate the protocol with a program in Firefox" ลองทำตามนี้ - แต่อาจจะต้องไปทำจากหน้าเว็บของ The protocol is not associated with any program จากที่มาโดยตรง จึงจะทำได้นะครับ
ก่อนอื่นต้องดาวน์โหลด Skype Action Handler มาติดตั้งในเครื่องของเราเสียก่อน โดยนำไปเก็บไว้ในโฟลเดอร์ /usr/local/bin แล้วเซ็ตโหมดให้สามารถรันได้ ด้วย
sudo chmod 755 /usr/local/bin/action_handler_1.0.py
actionhandler1.0.py ก็ขึ้นอยู่กับว่าโหลดรุ่นไหนมานะครับ
แล้วทำตามขั้นตอนด้านล่างเพื่อเปิดใช้งาน script
copy code ด้านล่างนี้
javascript:navigator.registerProtocolHandler('skype','http://support.mozilla.com/value=%s','Skype IM');
เข้าไปที่เว็บ The protocol is not associated with any program
ขณะอยู่ในหน้าโน้น ให้ลบข้อความในช่อง web address (URL) ทั้งหมด แล้ว paste code ด้านบนลงไปแทน แล้วกดปุ่ม Enter/Return แถบ Add programName (support.mozilla.com) as an application for protocolName links? จะขึ้นมา
ให้คลิกปุ่ม Add Application
กลับไปที่หน้าเว็บที่มีปุ่ม Skype คลิกบนปุ่ม call ของ Skype จะขึ้นข้อความ Choose an Application
เลือกโปรแกรมที่จะสั่งให้ทำงานได้เลย โดยเลือก browse แล้วไปหาไฟล์ script ที่โหลดมาเมื่อกี้
ตามไปอ่านในที่มาก็ได้นะครับ
ที่มา : The protocol is not associated with any program
ได้ข้อมูลจาก How To Create Instant Messaging Hyperlinks Thank you.
เครื่องมือสำหรับตรวจสอบการทำงานของ server ที่ SysAdmin ควรมีและควรรู้
ตามไปดูได้ที่ http://www.cyberciti.biz นะครับ
จะอัพเกรด Ubuntu 9.04 เป็น 9.10 ขอเก็บค่า Grub menu for WindowsXP ไว้ก่อน เผื่อมีปัญหา
# This is a divider, added to separate the menu items below from the Debian # ones. title Other operating systems: root # This entry automatically added by the Debian installer for a non-linux OS # on /dev/sda1 title Microsoft Windows XP Professional root (hd0,0) savedefault makeactive chainloader +1