ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

Topic List

34 items(1/4) 2 3 4 Next » Last »|
โดย Little Bear on 2 พ.ย. 62 12:53
sudo apt-get install netatalk
sudo nano /etc/netatalk/AppleVolumes.default

/shares                "Shares" /media/user/VolumeName  "ShareName"

sudo /etc/init.d/netatalk restart
โดย Little Bear on 31 ต.ค. 59 10:52

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
โดย Little Bear on 30 ส.ค. 59 10:12

ชีวิตหวนกลับมาหา Linux : Ubuntu อีกครั้งหลังส่ง MacBook ไปเข้าโรงซ่อมเป็นครั้งที่ 2 พร้อมกับการรอคอยการกลับมาอีกประมาณ 3 สัปดาห์ (รวมความแล้ว 1 ปีกว่า ๆ ไม่ได้ใช้งานเครื่องเกือบ 2 เดือน)

จึงต้องหวนกลับมาหาคำสั่ง Linux อีกครั้ง

แต่ชีวิตก็มีความสุขดี

ที่มา Geek | Linux basic comamnds

โดย Little Bear on 3 เม.ย. 55 17:07

อันนี้ copy มาล้วน ๆ ครับ ยังไม่มีความสามารถพอที่จะเขียนอย่างนี้ได้

เอามาจาก www.thaihosttalk.com ตามนี้นะครับ

นี่เป็นเกร็ดเล็กๆน้อยๆเบื้องต้นสำหรับมือใหม่ที่จะช่วยปรับแต่งให้เครื่อง Linux มีความปลอดภัยมากยิ่งขึ้นครับ โดยตัวอย่างที่ให้เป็นคำสั่งบนเครื่อง debian ถ้าใครใช้ distro อื่นๆก็อาจจะมีรายละเอียดปลีกย่อยแตกต่างกันไป (ส่วนใหญ่จะคล้ายๆกันแต่ต่างกันที่สถานที่เก็บ config ไฟล์ต่างๆ) ผิดพลาดประการใดก็ขออภัยด้วยครับ

แบ่งขั้นตอนคร่าวๆได้ดังนี้

  1. สร้าง user ขึ้นมาใหม่ - เพื่อที่จะได้ไม่ต้องเข้าเป็น root ตลอดเวลา ช่วยทั้งเรื่องความปลอดภัยและป้องกันความซุ่มซ่ามของตัวเองทำเครื่องพังจากการใช้คำสั่งอย่างไม่ระมัดระวัง
  2. เปลี่ยน root password - โดยเฉพาะคนที่ได้ root password มาจากคนอื่น (แต่ถ้าเราเปลี่ยนแล้ว คนๆนั้นก็จะเข้า root ไม่ได้นะครับ เว้นแต่ว่าจะให้สิทธิ์ใน sudoers ไว้ตามข้างล่าง)
  3. ปิด service ต่างๆที่ไม่ได้ใช้ - เพื่อลดจำนวนช่องโหว่ลง
  4. ลง sudo - จะได้ไม่ต้อง login เข้า root ตามข้อ (1) ข้างบน
  5. ตั้งค่า SSH - ไม่ให้ login โดยใช้ root และทำ public key authentication (ถ้าต้องการ)
  6. ตั้งค่า 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 ต่างๆ

  1. อนุญาต traffic จาก loopback interface
  2. ถ้ามี traffic มาที่ 127.0.0.0/8 ต้องมาจาก loopback interface เท่านั้น
  3. อนุญาต incoming traffic ที่เริ่มจากเครื่องนี้
  4. อนุญาต outgoing traffic ทั้งหมด
  5. อนุญาต tcp traffic ที่มาที่ port 80
  6. อนุญาต tcp traffic ที่มาที่ port 22 (SSH)
  7. อนุญาต ping
  8. เก็บ log traffic ที่ไม่ได้รับอนุญาต
  9. drop incoming traffic อื่นๆ
  10. 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

โดย Little Bear on 21 มิ.ย. 54 12:33

ติดตั้ง 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 ด้วยนะ

ที่มา

#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
โดย Little Bear on 17 ก.ย. 53 22:17

โดนอีกแล้ว รู้สึกว่าจะเป็นครั้งที่ 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 ที่ทำให้ไม่ต้องลงใหม่

โดย Little Bear on 18 พ.ค. 53 09:09

คุณจะบอกลูก ๆ ว่าอย่างไรเมื่อให้ลูกเลิกใช้ windows แล้วหันมาใช้ linux ผมเจอจากเว็บนี้ เลยเอามา blog ไว้ก่อน แล้วจะพยายามแปลมาเป็นภาษาไทยอีกที

  1. จะบอกว่าอย่างไรหากลูกไม่สามารถเล่นเกมส์ที่ชอบที่เคยเล่นบน windows ได้อีกเล้ว?

    อย่างแรกเลย คือ บน linux มีเกมส์ดี ๆ แถมฟรีอีกต่างหากอย่างมากมาย ลองหาดูที่ 100 เกมส์ฟรีบนลินุกส์ หรือที่ แหล่งเกมส์ขนาดมหึมาสำหรับลินุกส์ สิครับ

    flash game ก็สามารถเล่นได้ แม้ผมจะไม่ค่อยได้เล่นสักเท่าไหร่นัก ลองติดตั้ง flash player ดูสิ ติดตามเรื่องราวของ shockwave in linux

    แต่นั่นไม่ใช่ทั้งหมด คุณสามารถสอนลูกถึงสิ่งที่ยิ่งใหญ่ที่สุดเกี่ยวกับ open source

    Open source games! เมื่อตอนเด็ก ๆ ผมก็เคยเล่นเกมส์ เกมส์ยุคแรก ๆ ที่เล่น จะเป็นเกมส์บนภาษา BASIC ซึ่งผมสามารถเข้าไปแก้ไขค่าบางอย่างได้ (เพราะผมเห็น source program) ลองสอนเขาในการเขียนโปรแกรมเล็ก ๆ น้อย ๆ โดยการแก้ไขโปรแกรมหรือค่าต่าง ๆ ของเกมส์ ซึ่งเป็นสิ่งที่ทำได้หากคุณอยู่ในโลกของ Linux

  2. ใช้งาน windows paint ไม่ได้อีกต่อไป?

    แสดงให้เด็ก ๆ เห็นสิว่า เขาสามารถทำได้อย่างง่ายดายด้วยโปรแกรม inkscape หรือ กระทั่ง GIMP ที่เพียบพร้อมด้วยคุณสมบัติต่าง ๆ ในการทำงานที่มากกว่า ง่ายกว่า ด้วยอินเตอร์เฟสที่เด็ก ๆ ก็สามารถใช้งานได้

  3. Kids need office for school

  4. Movie maker alternatives in Linux

  5. Fun Learning

  6. Configure it to suit the childs age

  7. Teach your children about the benefits of open source

  8. Tell your children about the environmental benefits

  9. More change for a computer of their own

  10. Land them a good job in the future

ที่มา 10 things to tell your kids when you've ditched windows for linux

โดย Little Bear on 24 ธ.ค. 52 13:15

พยายามหาทางทำให้ 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

  1. copy code ด้านล่างนี้

    javascript:navigator.registerProtocolHandler('skype','http://support.mozilla.com/value=%s','Skype IM');

  2. เข้าไปที่เว็บ The protocol is not associated with any program

  3. ขณะอยู่ในหน้าโน้น ให้ลบข้อความในช่อง web address (URL) ทั้งหมด แล้ว paste code ด้านบนลงไปแทน แล้วกดปุ่ม Enter/Return แถบ Add programName (support.mozilla.com) as an application for protocolName links? จะขึ้นมา

  4. ให้คลิกปุ่ม Add Application

  5. กลับไปที่หน้าเว็บที่มีปุ่ม Skype คลิกบนปุ่ม call ของ Skype จะขึ้นข้อความ Choose an Application

  6. เลือกโปรแกรมที่จะสั่งให้ทำงานได้เลย โดยเลือก browse แล้วไปหาไฟล์ script ที่โหลดมาเมื่อกี้

ตามไปอ่านในที่มาก็ได้นะครับ

ที่มา : The protocol is not associated with any program

ได้ข้อมูลจาก How To Create Instant Messaging Hyperlinks Thank you.

โดย Little Bear on 29 พ.ย. 52 19:58

เครื่องมือสำหรับตรวจสอบการทำงานของ server ที่ SysAdmin ควรมีและควรรู้

ตามไปดูได้ที่ http://www.cyberciti.biz นะครับ

โดย Little Bear on 1 พ.ย. 52 12:45

จะอัพเกรด 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
34 items(1/4) 2 3 4 Next » Last »|