<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SpaLinux.com - สปาลีนุกซ์ &#187; Security</title>
	<atom:link href="http://spalinux.com/category/security/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>เพื่อชีวิตที่ผ่อนคลายของคนใช้ลีนุกซ์</description>
	<lastBuildDate>Sat, 12 May 2012 10:38:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ติดตั้ง WordPress บน CentOS 6</title>
		<link>http://spalinux.com/2012/05/install-wordpress-on-centos-6</link>
		<comments>http://spalinux.com/2012/05/install-wordpress-on-centos-6#comments</comments>
		<pubDate>Sat, 12 May 2012 09:37:12 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2342</guid>
		<description><![CDATA[WordPress โปรแกรมทำเว็บไซต์ blog ที่สามารถนำมาใช้งานได้ฟรี เป็นที่นิยมเป็นอย่างมาก เนื่องจากข้อดีหลายอย่างเช่นการติดตั้งและคอนฟิกง่าย มีโปรแกรมเสริม (plugin) เพื่อช่วยเพิ่มประสิทธิภาพของเว็บไซต์ และที่สำคัญหน้าเว็บที่แสดงบนเว็บไซต์จะถูกจัดเรียบเรียงเพื่อให้ search engine เช่น Google สามารถเข้ามาทำ index แล้วค้นหาเนื้อหา (keyword) ในเว็บเราได้สะดวก ซึ่งจะมีผลต่อลำดับในผลลัพธ์การค้นหา WordPress พัฒนาด้วยภาษา PHP และใช้ MySQL เป็นฐานข้อมูล ติดตั้งได้ทั้งบน Linux, Unix, MAC OS และ Windows ในที่นี้จะแสดงวิธีการติดตั้ง WordPress บน CentOS 6 ตั้งแต่การดาวน์โหลดไฟล์ การสร้างฐานข้อมูล คอนฟิกผ่านหน้าเว็บ จนสามารถล็อกอินเข้าสู่หน้า admin ของ WordPress ได้ เครื่องที่ทดสอบ ติดตั้ง CentOS 6.2 แบบ &#8220;Minimal &#8211; Base System [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress โปรแกรมทำเว็บไซต์ blog ที่สามารถนำมาใช้งานได้ฟรี เป็นที่นิยมเป็นอย่างมาก เนื่องจากข้อดีหลายอย่างเช่นการติดตั้งและคอนฟิกง่าย มีโปรแกรมเสริม (plugin) เพื่อช่วยเพิ่มประสิทธิภาพของเว็บไซต์ และที่สำคัญหน้าเว็บที่แสดงบนเว็บไซต์จะถูกจัดเรียบเรียงเพื่อให้ search engine เช่น Google สามารถเข้ามาทำ index แล้วค้นหาเนื้อหา (keyword) ในเว็บเราได้สะดวก ซึ่งจะมีผลต่อลำดับในผลลัพธ์การค้นหา</p>
<p>WordPress พัฒนาด้วยภาษา PHP และใช้ MySQL เป็นฐานข้อมูล ติดตั้งได้ทั้งบน Linux, Unix, MAC OS และ Windows</p>
<p>ในที่นี้จะแสดงวิธีการติดตั้ง WordPress บน CentOS 6 ตั้งแต่การดาวน์โหลดไฟล์ การสร้างฐานข้อมูล คอนฟิกผ่านหน้าเว็บ จนสามารถล็อกอินเข้าสู่หน้า admin ของ WordPress ได้</p>
<p><span id="more-2342"></span></p>
<h4>เครื่องที่ทดสอบ</h4>
<ul>
<li>ติดตั้ง CentOS 6.2 แบบ &#8220;Minimal &#8211; Base System &#8211; Base&#8221;  (<a title="View Details: ติดตั้ง CentOS 6.2 : เลือกชุดซอฟต์แวร์ที่จะลง" href="http://spalinux.com/2012/03/centos-6-2-installation-select-a-set-of-software-to-install" rel="bookmark">ติดตั้ง CentOS 6.2 : เลือกชุดซอฟต์แวร์ที่จะลง</a>)</li>
<li>IP Address ของเซิร์ฟเวอร์ 192.168.5.62</li>
<li><a title="View Details: ติดตั้งเว็บเซิร์ฟเวอร์ ​Apache" href="http://spalinux.com/2012/04/install-apache-web-server" rel="bookmark">ติดตั้งเว็บเซิร์ฟเวอร์ ​Apache</a></li>
<li><a title="View Details: ติดตั้งฐานข้อมูล MySQL" href="http://spalinux.com/2012/04/install-mysql-database" rel="bookmark">ติดตั้งฐานข้อมูล MySQL</a></li>
<li><a title="View Details: ติดตั้งโมดูล PHP เพิ่มเติม บน CentOS 6" href="http://spalinux.com/2012/04/install-more-php-module-on-centos-6" rel="bookmark">ติดตั้งโมดูล PHP เพิ่มเติม บน CentOS 6</a></li>
</ul>
<p>&nbsp;</p>
<p>สรุปไฟล์ rpm จากแผ่นดีวีดีที่ต้องติดตั้งเพิ่ม หลังจากลง CentOS 6.2 แบบ Minimal +Base</p>
<ul>
<li>apr-1.3.9-3.el6_1.2.x86_64.rpm</li>
<li>apr-util-1.3.9-3.el6_0.1.x86_64.rpm</li>
<li>apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm</li>
<li>mailcap-2.1.31-2.el6.noarch.rpm</li>
<li>httpd-tools-2.2.15-15.el6.centos.x86_64.rpm</li>
<li>httpd-2.2.15-15.el6.centos.x86_64.rpm</li>
<li>mysql-5.1.52-1.el6_0.1.x86_64.rpm</li>
<li>perl-DBI-1.609-4.el6.x86_64.rpm</li>
<li>perl-DBD-MySQL-4.013-3.el6.x86_64.rpm</li>
<li>mysql-server-5.1.52-1.el6_0.1.x86_64.rpm</li>
<li>php-5.3.3-3.el6_1.3.x86_64.rpm</li>
<li>php-cli-5.3.3-3.el6_1.3.x86_64.rpm</li>
<li>php-common-5.3.3-3.el6_1.3.x86_64.rpm</li>
<li>php-pdo-5.3.3-3.el6_1.3.x86_64.rpm</li>
<li>php-mysql-5.3.3-3.el6_1.3.x86_64.rpm</li>
</ul>
<p>&nbsp;</p>
<h4>ดาวน์โหลดโปรแกรม WordPress</h4>
<p>เข้าเว็บไซต์ wordpress.org เพื่อดาวน์โหลดโปรแกรม wordpress</p>
<p>คลิ้กที่เมนู Download หรือคลิ้กปุ่ม Download WordPress เพื่อเข้าสู่หน้าดาวน์โหลด</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w01-Download-WordPress.png"><img class="alignnone size-full wp-image-2343" title="w01-Download-WordPress" src="http://spalinux.com/wp-content/uploads/2012/05/w01-Download-WordPress.png" alt="" width="493" height="343" /></a></p>
<p>ล่าสุด ณ ตอนที่เขียนเป็นเวอร์ชั่น WordPress 3.3.2</p>
<p>ในหน้าดาวน์โหลด แนะนำให้คลิ้กที่ลิ้งค์ Download .tar.gz เพราะจะมีขนาดไฟล์เล็กกว่า .zip และใช้ติดตั้งได้เหมือนกัน</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w02-Download.WordPress.tar.gz.png"><img class="alignnone size-full wp-image-2344" title="w02-Download.WordPress.tar.gz" src="http://spalinux.com/wp-content/uploads/2012/05/w02-Download.WordPress.tar.gz.png" alt="" width="235" height="263" /></a><br />
ใช้โปรแกรมประเภท scp เพื่อถ่ายโอนไฟล์ไปยังเครื่องลีนุกซ์ที่จะติดตั้ง</p>
<p>หรือถ้าจะดาวน์โหลดบนคำสั่งลีนุกซ์เลย ก็สามารถทำได้โดยใช้โปรแกรม curl หรือ wget</p>
<p>ตัวอย่างเช่นใช้คำสั่ง curl เพื่อดาวน์โหลดโปรแกรม wordpress</p>
<pre>[root@cent6 ~]# <strong>curl -o wordpress-3.3.2.tar.gz 'http://wordpress.org/latest.tar.gz'</strong>
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3792k    0 3792k    0     0  53721      0 --:--:--  0:01:12 --:--:-- 59257</pre>
<p>&nbsp;</p>
<p>ออปชั่น &#8216;<strong>-o</strong>&#8216; ระบุชื่อไฟล์ที่ต้องการเซฟ ส่วน http://wordpress.org/latest.tar.gz เป็น URL ที่ทาง wordpress สร้างไว้สำหรับให้ดาวน์โหลดโปรแกรมที่เป็นเวอร์ชั่นล่าสุด</p>
<p>ไฟล์ที่ได้</p>
<pre>[root@cent6 ~]# <strong>ls -l wordpress-3.3.2.tar.gz</strong>
-rw-r--r--. 1 root root 3883667 May 12 13:20 wordpress-3.3.2.tar.gz</pre>
<h4>ติดตั้งไฟล์ wordpress</h4>
<p>ใช้คำสั่ง tar แตก (extract) ไฟล์ที่ดาวน์โหลดมาในไดเร็คทอรี /var/www/html/</p>
<pre>[root@cent6 ~]# <strong>cd /var/www/html/</strong>
[root@cent6 html]# <strong>tar zxvf /root/wordpress-3.3.2.tar.gz</strong>
wordpress/
wordpress/license.txt
wordpress/wp-activate.php
wordpress/wp-pass.php
wordpress/wp-login.php
wordpress/readme.html
...
wordpress/wp-mail.php
wordpress/wp-config-sample.php
wordpress/wp-links-opml.php
wordpress/wp-comments-post.php
wordpress/wp-app.php
[root@cent6 html]#</pre>
<p>หลังการใช้คำสั่ง tar เพื่อแตกไฟล์ที่ดาวน์โหลดมา ทุกครั้งแนะนำให้แก้ไข owner และ group ของไฟล์ เพื่อป้องกัน owner หรือ group ไปตรงกับผู้ใช้ (user) ที่อยู่บนเครื่อง</p>
<pre>[root@cent6 html]# <strong>ls -l wordpress/</strong>
total 204
-rw-r--r--. 1 33 tape   397 May 26  2008 index.php
-rw-r--r--. 1 33 tape 16899 Jun  9  2011 license.txt
-rw-r--r--. 1 33 tape  9202 Apr 20 19:44 readme.html
-rw-r--r--. 1 33 tape  4268 Oct 20  2011 wp-activate.php
...</pre>
<p>ใช้คำสั่ง chown เพื่อแก้ไข owner และ group ให้เป็น root ทั้งหมด</p>
<p>หมายเหตุ หรือถ้าต้องการเพิ่มความปลอดภัยของระบบอีกขั้น แนะนำให้สร้าง user เพื่อเป็นเจ้าของไฟล์ที่ติดตั้งนี้อีกที แต่ในที่นี้ขอใช้ root เพื่อความง่ายต่อการนำเสนอ</p>
<p>ใช้คำสั่ง chown ออปชั่น &#8216;-R&#8217; เพื่อเปลี่ยน owner และ group ของทุกไฟล์ภายใต้ไดเร็คทอรีที่ระบุ</p>
<pre>[root@cent6 html]# <strong>chown -R root.root wordpress/</strong>

[root@cent6 html]# <strong>ls -l wordpress/</strong>
total 204
-rw-r--r--. 1 root root   397 May 26  2008 index.php
-rw-r--r--. 1 root root 16899 Jun  9  2011 license.txt
-rw-r--r--. 1 root root  9202 Apr 20 19:44 readme.html
-rw-r--r--. 1 root root  4268 Oct 20  2011 wp-activate.php
...</pre>
<h4>คอนฟิก wordpress ผ่านเว็บ</h4>
<p>ใช้ browser เข้าไปที่ http://192.168.5.62/wordpress/ เพื่อเริ่มคอนฟิก wordpress ผ่านเว็บ</p>
<p>หน้าแรกที่เจอ แสดงข้อความ &#8220;There doesn&#8217;t seem to be a wp-config.php file&#8221; คือไม่สามารถหาไฟล์ wp-config.php ซึ่งเป็นไฟล์คอนฟิกหลักของ  wordpress</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w11-wordpress-config.png"><img class="alignnone size-full wp-image-2345" title="w11-wordpress-config" src="http://spalinux.com/wp-content/uploads/2012/05/w11-wordpress-config.png" alt="" width="781" height="358" /></a><br />
กดปุ่ม [Create a Configuration File] เพื่อเริ่มสร้างคอนฟิกไฟล์ wp-config.php</p>
<p>&nbsp;</p>
<p>หน้าถัดมา แสดงข้อมูลคำอธิบายเกี่ยวกับฐานข้อมูล (database) ที่ wordpress ต้องใช้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w12-wordpress-need-information.png"><img class="alignnone size-full wp-image-2346" title="w12-wordpress-need-information" src="http://spalinux.com/wp-content/uploads/2012/05/w12-wordpress-need-information.png" alt="" width="775" height="510" /></a></p>
<p>ก่อนจะกดปุ่ม [Let's go!] เพื่อไปหน้าต่อไป ต้องสร้าง database และ GRANT สิทธิ ให้ wordpress ใช้เชื่อมต่อได้ก่อน</p>
<p>รันคำสั่ง mysql (หรือ phpmyadmin) เพื่อสร้าง database และ GRANT สิทธิให้ wordpress เชื่อมเข้าต่อฐานข้อมูล</p>
<pre>[root@cent6 html]# <strong>mysql -u root -p</strong>
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.1.52 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement

mysql&gt; <strong>CREATE DATABASE wordpress;</strong>
Query OK, 1 row affected (0.00 sec)

mysql&gt; <strong>GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'password';</strong>
Query OK, 0 rows affected (0.01 sec)</pre>
<p>&nbsp;</p>
<p>สร้างเสร็จเรียบร้อย กลับมาที่หน้าเว็บแล้วกดปุ่ม [Let's go!]</p>
<p>ใส่ข้อมูลการเชื่อมต่อเข้าฐานข้อมูล แล้วกดปุ่ม [Submit]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w13-wordpress-database-connection.png"><img class="alignnone size-full wp-image-2347" title="w13-wordpress-database-connection" src="http://spalinux.com/wp-content/uploads/2012/05/w13-wordpress-database-connection.png" alt="" width="775" height="526" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>โปรแกรมจะพยายามเขียนไฟล์คอนฟิก wp-config.php ให้ แต่ไม่สามารถเขียนได้ ฟ้องข้อความ &#8220;Sorry, but I can&#8217;t write the wp-config.php file.&#8221;</p>
<p>เราต้องสร้างไฟล์ wp-config.php ขึ้นมาเอง ด้วยการคัดลอกคอนฟิกที่หมดที่แสดงในช่องฟอร์ม สำหรับ Windows ให้คลิ้กเมาส์ในช่องฟอร์มแล้วกด <strong>[Ctrl]+[A]</strong> เพื่อเลือกข้อความทั้งหมดในฟอร์ม แล้วกด<strong> [Ctrl]+[C]</strong> เพื่อคัดลอก</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w14-wp-config.png"><img class="alignnone size-full wp-image-2348" title="w14-wp-config" src="http://spalinux.com/wp-content/uploads/2012/05/w14-wp-config.png" alt="" width="773" height="568" /></a></p>
<p>&nbsp;</p>
<p>สร้างไฟล์บนเซิร์ฟเวอร์ ด้วยคำสั่ง vi</p>
<pre>[root@cent6 html]# <strong>vi wordpress/wp-config.php</strong></pre>
<p>หากเราใช้ PuTTY เพื่อ SSH เข้าเซิร์ฟเวอร์ลีนุกซ์ กด <strong>i</strong> เพื่อเข้าสู่โหมด INSERT แล้วกดปุ่ม <strong>[Shift]+[Insert]</strong> เพื่อวางข้อความ (paste) ที่คัดลอกมาได้</p>
<p>กดปุ่ม<strong> [Esc]</strong> เพื่อกลับสู่โหมดคำสั่ง แล้วพิมพ์ <strong>:wq</strong> เซฟไฟล์แล้วออกจาก vi</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w15-vi-wp-config.png"><img class="alignnone size-full wp-image-2349" title="w15-vi-wp-config" src="http://spalinux.com/wp-content/uploads/2012/05/w15-vi-wp-config.png" alt="" width="650" height="420" /></a></p>
<p>เนื่องจากในไฟล์คอนฟิก wp-config.php นี้ มีข้อมูล user, password ที่ใช้เชื่อมต่อเข้าฐานข้อมูลของ wordpress อยู่ด้วย เพื่อความปลอดภัย (security) แนะนำให้เปลี่ยน owner และ permission ให้ apache อ่านได้เท่านั้น ผู้ใช้ธรรมดา (user) ไม่สามารถเข้ามาอ่านได้</p>
<p>ตัวอย่างการเปลี่ยน permission และ owner ของไฟล์</p>
<pre>[root@cent6 html]# <strong>ls -l wordpress/wp-config.php</strong>
-rw-r--r--. 1 root root 3366 May 12 15:08 wordpress/wp-config.php

[root@cent6 html]# <strong>chmod 400 wordpress/wp-config.php</strong>
[root@cent6 html]# <strong>chown apache wordpress/wp-config.php</strong>

<strong>[root@cent6 html]#</strong> ls -l wordpress/wp-config.php
-r--------. 1 apache root 3366 May 12 15:08 wordpress/wp-config.php</pre>
<p>หลังจากสร้างไฟล์ wp-config.php เรียบร้อย กลับมาหน้าเว็บแล้ว กดปุ่ม [Run the install]</p>
<p>หน้าใส่ข้อมูลเบื้องต้นของเว็บไซต์ และตั้ง username และ password ไว้เป็น admin ของโปรแกรม wordpress</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w16-wordpress-username-password.png"><img class="alignnone size-full wp-image-2350" title="w16-wordpress-username-password" src="http://spalinux.com/wp-content/uploads/2012/05/w16-wordpress-username-password.png" alt="" width="718" height="712" /></a></p>
<p>แนะนำให้เปลี่ยน username จาก admin เป็นชื่ออื่น เพื่อเพิ่มความปลอดภัย ป้องกันการคาดเดา username, password</p>
<p>หน้าเว็บจะมีการตรวจสอบความยากง่ายของ password ที่เราใส่  แนะนำให้ตั้งยากหน่อย อย่างน้อยน่าจะได้ Medium หรือจะให้ดีก็ Strong</p>
<p>สำหรับการทดสอบ แนะนำให้คลิ้กไม่เลือก &#8220;Allow my site to appear in search engines like Google and Technorati.&#8221; ไว้ติดตั้งเว็บไซต์ใช้งานจริงแล้วค่อยเลือก</p>
<p>กดปุ่ม [Install WordPress]</p>
<p>หน้าแสดงการติดตั้งเสร็จสิ้น &#8220;Success&#8221;</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w17-install-Success.png"><img class="alignnone size-full wp-image-2351" title="w17-install-Success" src="http://spalinux.com/wp-content/uploads/2012/05/w17-install-Success.png" alt="" width="556" height="364" /></a></p>
<p>กดปุ่ม [Log In] เพื่อเข้าสู่หน้า admin ของ wordpress (หรือเข้าโดยตรง http://192.168.5.62/wordpress/wp-admin/)</p>
<p>หน้าล็อกอินของ WordPress ใส่ username, password ที่ตั้งไว้<br />
<a href="http://spalinux.com/wp-content/uploads/2012/05/w21-wordpress-login.png"><img class="alignnone size-full wp-image-2352" title="w21-wordpress-login" src="http://spalinux.com/wp-content/uploads/2012/05/w21-wordpress-login.png" alt="" width="466" height="410" /></a></p>
<p>ถ้าล็อกอินสำเร็จ จะเข้าสู่หน้า Dashboard ของ WordPress</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/05/w22-wordpress-Dashboard.png"><img class="alignnone size-full wp-image-2353" title="w22-wordpress-Dashboard" src="http://spalinux.com/wp-content/uploads/2012/05/w22-wordpress-Dashboard.png" alt="" width="964" height="744" /></a></p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://wordpress.org/download/" target="_blank">Download WordPress</a></li>
<li><a title="View Details: แก้ปัญหา WordPress  อัพโหลดไฟล์ไม่ได้" href="http://spalinux.com/2012/05/fix-wordpress-cannot-upload-file" rel="bookmark">แก้ปัญหา WordPress อัพโหลดไฟล์ไม่ได้</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/05/install-wordpress-on-centos-6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ใช้ yum ปรับปรุงเวอร์ชั่นของแพ็คเกจ</title>
		<link>http://spalinux.com/2012/05/use-yum-to-update-package-version</link>
		<comments>http://spalinux.com/2012/05/use-yum-to-update-package-version#comments</comments>
		<pubDate>Mon, 07 May 2012 09:34:13 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Yum]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2322</guid>
		<description><![CDATA[ทางทีมดูแลพัฒนา CentOS จะคอยดูแลปรับปรุงโปรแกรมและออกเวอร์ชั่นใหม่ตาม RedHat อยู่เสมอ ไฟล์แพ็คเกจเวอร์ชั่นใหม่นี้ จะถูกเก็บไว้ใน repos ชื่อ updates เพื่อให้ผู้ใช้งานสามารถใช้ yum เข้ามาตรวจสอบและปรับปรุงโปรแกรมได้ ในที่นี้จะแนะนำวิธีการปรับปรุงโปรแกรมโดยใช้คำสั่ง yum ทั้งปรับปรุงเฉพาะโปรแกรม หรือปรับปรุงทุกโปรแกรมที่ติดตั้งบนเครื่องลีนุกซ์แล้ว คำเตือน แนะนำให้ทดสอบในเครื่องลีนุกซ์ทดลองดูก่อน เพื่อดูผลกระทบการปรับปรุงเวอร์ชั่นของโปรแกรม ปรับปรุงแพ็คเกจที่ระบุ สมมติว่าต้องการจะปรับปรุง (update) แพ็คเกจ openssh ใช้คำสั่ง yum list installed เพื่อดูข้อมูลแพ็คเกจ openssh ที่ติดตั้งไว้  [root@cent62-yum ~]# yum list installed openssh Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Installed Packages openssh.x86_64       5.3p1-70.el6       @anaconda-CentOS-201112091719.x86_64/6.2 ใช้คำสั่ง yum [...]]]></description>
			<content:encoded><![CDATA[<p>ทางทีมดูแลพัฒนา CentOS จะคอยดูแลปรับปรุงโปรแกรมและออกเวอร์ชั่นใหม่ตาม RedHat อยู่เสมอ ไฟล์แพ็คเกจเวอร์ชั่นใหม่นี้ จะถูกเก็บไว้ใน repos ชื่อ updates เพื่อให้ผู้ใช้งานสามารถใช้ yum เข้ามาตรวจสอบและปรับปรุงโปรแกรมได้</p>
<p>ในที่นี้จะแนะนำวิธีการปรับปรุงโปรแกรมโดยใช้คำสั่ง yum ทั้งปรับปรุงเฉพาะโปรแกรม หรือปรับปรุงทุกโปรแกรมที่ติดตั้งบนเครื่องลีนุกซ์แล้ว</p>
<p><span style="color: #ff0000;">คำเตือน แนะนำให้ทดสอบในเครื่องลีนุกซ์ทดลองดูก่อน เพื่อดูผลกระทบการปรับปรุงเวอร์ชั่นของโปรแกรม</span></p>
<p><span id="more-2322"></span></p>
<h4>ปรับปรุงแพ็คเกจที่ระบุ</h4>
<p>สมมติว่าต้องการจะปรับปรุง (update) แพ็คเกจ openssh</p>
<p>ใช้คำสั่ง yum list installed เพื่อดูข้อมูลแพ็คเกจ openssh ที่ติดตั้งไว้ </p>
<pre>[root@cent62-yum ~]# <strong>yum list installed openssh</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Installed Packages
openssh.x86_64       5.3p1-70.el6       @anaconda-CentOS-201112091719.x86_64/6.2</pre>
<p>ใช้คำสั่ง yum list available หรือ yum list updates เพื่อดูเวอร์ชั่นที่มีให้ปรับปรุง</p>
<pre>[root@cent62-yum ~]# <strong>yum list updates openssh</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Updated Packages
openssh.x86_64                     5.3p1-70.el6_2.2                      updates</pre>
<p>ใช้คำสั่ง yum update  ตามด้วยชื่อแพ็คเกจที่ต้องการปรับปรุง</p>
<p>หมายเหตุ สังเกตการใช้คำว่า updates และ update อย่างแรก updates (มี s) เป็นชื่อ repos ส่วน update (ไม่มี s) เป็นคำสั่งของ yum เพื่อใช้ปรับปรุงแพ็คเกจเวอร์ชั่น</p>
<pre>[root@cent62-yum ~]# <strong>yum update openssh</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package openssh.x86_64 0:5.3p1-70.el6 will be updated
--&gt; Processing Dependency: openssh = 5.3p1-70.el6 for package: openssh-server-5.3p1-70.el6.x86_64
--&gt; Processing Dependency: openssh = 5.3p1-70.el6 for package: openssh-clients-5.3p1-70.el6.x86_64
---&gt; Package openssh.x86_64 0:5.3p1-70.el6_2.2 will be an update
--&gt; Running transaction check
---&gt; Package openssh-clients.x86_64 0:5.3p1-70.el6 will be updated
---&gt; Package openssh-clients.x86_64 0:5.3p1-70.el6_2.2 will be an update
---&gt; Package openssh-server.x86_64 0:5.3p1-70.el6 will be updated
---&gt; Package openssh-server.x86_64 0:5.3p1-70.el6_2.2 will be an update
--&gt; Finished Dependency Resolution</pre>
<pre>Dependencies Resolved</pre>
<pre>================================================================================
 Package               Arch         Version                 Repository     Size
================================================================================
Updating:
 openssh               x86_64       5.3p1-70.el6_2.2        updates       235 k
Updating for dependencies:
 openssh-clients       x86_64       5.3p1-70.el6_2.2        updates       357 k
 openssh-server        x86_64       5.3p1-70.el6_2.2        updates       297 k</pre>
<pre>Transaction Summary
================================================================================
Upgrade       3 Package(s)</pre>
<pre>Total download size: 888 k
Is this ok [y/N]:</pre>
<p>เหมือนกับการติดตั้งใหม่ yum จะตรวจสอบแพ็คเกจอื่นๆ ที่จำเป็น รวมทั้งเวอร์ชั่นที่ต้องปรับปรุงพร้อมกันไปด้วย</p>
<p>เช่นในตัวอย่างนี้ ถ้าต้องการปรับปรุงแพ็คเกจ openssh จำเป็นต้องปรับปรุง openssh-clients และ openssh-server ไปด้วย</p>
<p>พิมพ์ y แล้ว [Enter] เพื่อยืนยันการปรับปรุง</p>
<pre>Is this ok [y/N]: <strong>y</strong>
Downloading Packages:
(1/3): openssh-5.3p1-70.el6_2.2.x86_64.rpm               | 235 kB     00:01
(2/3): openssh-clients-5.3p1-70.el6_2.2.x86_64.rpm       | 357 kB     00:01
(3/3): openssh-server-5.3p1-70.el6_2.2.x86_64.rpm        | 297 kB     00:01
--------------------------------------------------------------------------------
Total                                           150 kB/s | 888 kB     00:05</pre>
<pre>Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : openssh-5.3p1-70.el6_2.2.x86_64                              1/6
  Updating   : openssh-clients-5.3p1-70.el6_2.2.x86_64                      2/6
  Updating   : openssh-server-5.3p1-70.el6_2.2.x86_64                       3/6
  Cleanup    : openssh-server-5.3p1-70.el6.x86_64                           4/6
  Cleanup    : openssh-clients-5.3p1-70.el6.x86_64                          5/6
  Cleanup    : openssh-5.3p1-70.el6.x86_64                                  6/6</pre>
<pre>Updated:
  openssh.x86_64 0:5.3p1-70.el6_2.2</pre>
<pre>Dependency Updated:
  openssh-clients.x86_64 0:5.3p1-70.el6_2.2
  openssh-server.x86_64 0:5.3p1-70.el6_2.2</pre>
<pre>Complete!</pre>
<p>ใช้คำสั่ง yum list เพื่อดูแพ็คเกจหลังการปรับปรุง</p>
<pre>[root@cent62-yum ~]# <strong>yum list installed openssh</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Installed Packages
openssh.x86_64                     5.3p1-70.el6_2.2                     @updates</pre>
<p>ลองใช้ yum list updates อีกครั้ง จะไม่มีเวอร์ชั่นใหม่ ให้ปรับปรุงอีกแล้ว</p>
<pre>[root@cent62-yum ~]# <strong>yum list updates openssh</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Error: No matching Packages to list</pre>
<p>หมายเหตุ หลังการปรับปรุงแพ็คเกจ บางโปรแกรมอาจต้องแก้ไขเพิ่มเติม เช่นหลังการปรับปรุง openssh ต้องมีการรีสตาร์ตเซอร์วิส sshd (OpenSSH Server) เพื่อให้เวอร์ชั่นใหม่มีผล</p>
<p>&nbsp;</p>
<h4>ปรับปรุงทุกแพ็คเกจในเครื่อง</h4>
<p>พิมพ์ yum list updates เพื่อดูรายชื่อแพ็คเกจทั้งหมด ที่มีเวอร์ชั่นใหม่ (ใน repos) ให้ปรับปรุง</p>
<pre>[root@cent62-yum ~]# <strong>yum list updates</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Updated Packages
at.x86_64                              3.1.10-43.el6_2.1                 updates
bind-libs.x86_64                       32:9.7.3-8.P3.el6_2.2             updates
bind-utils.x86_64                      32:9.7.3-8.P3.el6_2.2             updates
chkconfig.x86_64                       1.3.49.3-1.el6_2                  updates
cups-libs.x86_64                       1:1.4.2-44.el6_2.3                updates
...</pre>
<p>หากต้องการปรับปรุงแพ็คเกจทั้งหมด สามารถทำได้โดยพิมพ์ yum update โดยไม่ต้องตามด้วยชื่อแพ็คเกจใดๆ </p>
<pre>[root@cent62-yum ~]# <strong>yum update</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package at.x86_64 0:3.1.10-43.el6 will be updated
---&gt; Package at.x86_64 0:3.1.10-43.el6_2.1 will be an update
---&gt; Package bind-libs.x86_64 32:9.7.3-8.P3.el6 will be updated
---&gt; Package bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2 will be an update
---&gt; Package bind-utils.x86_64 32:9.7.3-8.P3.el6 will be updated
---&gt; Package bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2 will be an update</pre>
<pre>...</pre>
<pre>--&gt; Finished Dependency Resolution</pre>
<pre>Dependencies Resolved</pre>
<pre>================================================================================
 Package                   Arch     Version                     Repository
                                                                           Size
================================================================================
Installing:
 kernel                    x86_64   2.6.32-220.13.1.el6         updates    24 M
Updating:
 at                        x86_64   3.1.10-43.el6_2.1           updates    60 k
 bind-libs                 x86_64   32:9.7.3-8.P3.el6_2.2       updates   840 k
 bind-utils                x86_64   32:9.7.3-8.P3.el6_2.2       updates   178 k</pre>
<pre>...</pre>
<pre>Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade      53 Package(s)</pre>
<pre>Total download size: 68 M
Is this ok [y/N]:</pre>
<p>ผลลัพธ์จะแสดงรายชื่อแพ็คเกจทั้งหมดที่จะปรับปรุง แสดงจำนวนแพ็คเกจ และขนาดรวมที่ต้องดาวน์โหลด พิมพ์ y แล้ว [Enter] เพื่อยืนยันการปรับปรุง</p>
<pre>Is this ok [y/N]: <strong>y</strong>
Downloading Packages:
(1/54): at-3.1.10-43.el6_2.1.x86_64.rpm                  |  60 kB     00:01
(2/54): bind-libs-9.7.3-8.P3.el6_2.2.x86_64.rpm          | 840 kB     00:04
(3/54): bind-utils-9.7.3-8.P3.el6_2.2.x86_64.rpm         | 178 kB     00:01
(4/54): chkconfig-1.3.49.3-1.el6_2.x86_64.rpm            | 159 kB     00:03</pre>
<pre>...</pre>
<pre>--------------------------------------------------------------------------------
Total                                           293 kB/s |  68 MB     03:58
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : 12:dhcp-common-4.1.1-25.P1.el6_2.1.x86_64                  1/107
  Updating   : kernel-firmware-2.6.32-220.13.1.el6.noarch                 2/107
  Updating   : tzdata-2012b-3.el6.noarch                                  3/107
  Updating   : glibc-2.12-1.47.el6_2.9.x86_64                             4/107</pre>
<pre>...</pre>
<pre>Installed:
  kernel.x86_64 0:2.6.32-220.13.1.el6</pre>
<pre>Updated:
  at.x86_64 0:3.1.10-43.el6_2.1
  bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2
  bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2
  chkconfig.x86_64 0:1.3.49.3-1.el6_2</pre>
<pre>...</pre>
<pre>Complete!</pre>
<p>รีสตาร์ตเครื่องหลังจาก update โปรแกรมทั้งเครื่อง</p>
<p>เมื่อบู๊ตเครื่องขึ้นมาแล้ว ลองใช้ yum list updates อีกครั้ง</p>
<pre>[root@cent62-yum ~]# <strong>yum list updates</strong>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile</pre>
<p>ไม่มีแพ็คเกจให้ update อีกแล้ว หรือหมายความว่าเครื่องลีนุกซ์ของเราติดตั้งหรือปรับปรุงโปรแกรมเป็นเวอร์ชั่นใหม่ล่าสุด เท่ากับไฟล์ที่อยู่ใน repos แล้ว</p>
<p>&nbsp;</p>
<h4>ปรับปรุงเวอร์ชั่นจาก CentOS 6.0 เป็น 6.2</h4>
<p>หากเราติดตั้ง CentOS เวอร์ชั่นเก่า เช่น 6.0 แล้วต้องการปรับปรุงเป็นเวอร์ชั่นใหม่ เราสามารถใช้คำสั่ง yum update เพื่อปรับปรุงได้ แทนที่ต้องใช้แผ่นดีวีดีติดตั้งใหม่ทั้งหมด</p>
<p>แต่ไม่สามารถจะปรับปรุงข้าม Major เวอร์ชั่นได้ เช่นไม่สามารถปรับปรุงจาก 5.5 เป็น 6.2 ได้ ทำได้เฉพาะภายใต้ Major เวอร์ชั่นเดียวกันเท่านั้น</p>
<p>ตัวอย่างเครื่องที่ติดตั้ง CentOS 6.0 ไว้</p>
<pre>[root@cent60 ~]# <strong>cat /etc/redhat-release</strong>
CentOS Linux release 6.0 (Final)</pre>
<pre>[root@cent60 ~]# <strong>uname -a</strong>
Linux cent60.example.com 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux</pre>
<p>ต้องการจะ update เป็น CentOS 6.2 สามารถใช้ yum update เพื่อปรับปรุงได้</p>
<pre>[root@cent60 ~]# <strong>yum update</strong>
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package abrt.x86_64 0:2.0.4-14.el6.centos set to be updated
--&gt; Processing Dependency: libreport.so.0()(64bit) for package: abrt-2.0.4-14.el6.centos.x86_64
--&gt; Processing Dependency: libabrt_dbus.so.0()(64bit) for package: abrt-2.0.4-14.el6.centos.x86_64
---&gt; Package abrt-addon-ccpp.x86_64 0:2.0.4-14.el6.centos set to be updated
--&gt; Processing Dependency: libbtparser.so.2()(64bit) for package: abrt-addon-ccpp-2.0.4-14.el6.centos.x86_64
---&gt; Package abrt-addon-kerneloops.x86_64 0:2.0.4-14.el6.centos set to be updated
--&gt; Processing Dependency: libreport-plugin-kerneloops for package: abrt-addon-kerneloops-2.0.4-14.el6.centos.x86_64
---&gt; Package abrt-addon-python.x86_64 0:2.0.4-14.el6.centos set to be updated
---&gt; Package abrt-cli.x86_64 0:2.0.4-14.el6.centos set to be updated
--&gt; Processing Dependency: libreport-cli for package: abrt-cli-2.0.4-14.el6.centos.x86_64
--&gt; Processing Dependency: libreport-plugin-mailx for package: abrt-cli-2.0.4-14.el6.centos.x86_64
---&gt; Package abrt-libs.x86_64 0:2.0.4-14.el6.centos set to be updated</pre>
<pre>...</pre>
<pre>Dependencies Resolved</pre>
<pre>================================================================================================================================
 Package                                     Arch               Version                               Repository           Size
================================================================================================================================
Installing:
 abrt                                        x86_64             2.0.4-14.el6.centos                   base                210 k
     replacing  abrt-plugin-sosreport.x86_64 1.1.13-4.el6
 kernel                                      x86_64             2.6.32-220.13.1.el6                   updates              24 M
 libreport-plugin-logger                     x86_64             2.0.5-20.el6                          base                 16 k
     replacing  abrt-plugin-logger.x86_64 1.1.13-4.el6
 libreport-plugin-rhtsupport                 x86_64             2.0.5-20.el6                          base                 24 k
     replacing  abrt-plugin-rhtsupport.x86_64 1.1.13-4.el6
Updating:
 abrt-addon-ccpp                             x86_64             2.0.4-14.el6.centos                   base                 93 k
 abrt-addon-kerneloops                       x86_64             2.0.4-14.el6.centos                   base                 63 k
 abrt-addon-python                           x86_64             2.0.4-14.el6.centos                   base                 57 k
 abrt-cli                                    x86_64             2.0.4-14.el6.centos                   base                 55 k
 abrt-libs                                   x86_64             2.0.4-14.el6.centos                   base                 53 k</pre>
<pre>...</pre>
<pre>Transaction Summary
================================================================================================================================
Install      12 Package(s)
Upgrade     220 Package(s)</pre>
<pre>Total download size: 152 M
Is this ok [y/N]:</pre>
<p>ตอบ y เพื่อยืนยันการปรับปรุง</p>
<pre>Is this ok [y/N]: <strong>y</strong>
Downloading Packages:
(1/232): abrt-2.0.4-14.el6.centos.x86_64.rpm                                                             | 210 kB     00:01
(2/232): abrt-addon-ccpp-2.0.4-14.el6.centos.x86_64.rpm                                                  |  93 kB     00:00
(3/232): abrt-addon-kerneloops-2.0.4-14.el6.centos.x86_64.rpm                                            |  63 kB     00:00
(4/232): abrt-addon-python-2.0.4-14.el6.centos.x86_64.rpm                                                |  57 kB     00:00
(5/232): abrt-cli-2.0.4-14.el6.centos.x86_64.rpm                                                         |  55 kB     00:00
(6/232): abrt-libs-2.0.4-14.el6.centos.x86_64.rpm                                                        |  53 kB     00:00</pre>
<pre>...</pre>
<pre>--------------------------------------------------------------------------------------------------------------------------------
Total                                                                                           272 kB/s | 152 MB     09:34</pre>
<pre>Is this ok [y/N]: <strong>y</strong></pre>
<p>ตอบ y เพื่อยืนยันการปรับปรุง</p>
<pre>Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : libgcc-4.4.6-3.el6.x86_64                                                                              1/456
  Updating       : setup-2.8.14-13.el6.noarch                                                                             2/456
warning: /etc/shadow created as /etc/shadow.rpmnew
  Updating       : filesystem-2.4.30-3.el6.x86_64                                                                         3/456
  Updating       : centos-release-6-2.el6.centos.7.x86_64                                                                 4/456</pre>
<pre>...</pre>
<pre>Installed:
  abrt.x86_64 0:2.0.4-14.el6.centos                               kernel.x86_64 0:2.6.32-220.13.1.el6
  libreport-plugin-logger.x86_64 0:2.0.5-20.el6                   libreport-plugin-rhtsupport.x86_64 0:2.0.5-20.el6</pre>
<pre>Dependency Installed:
  btparser.x86_64 0:0.13-1.el6                                          dhcp-common.x86_64 12:4.1.1-25.P1.el6_2.1
  libreport.x86_64 0:2.0.5-20.el6                                       libreport-cli.x86_64 0:2.0.5-20.el6
  libreport-plugin-kerneloops.x86_64 0:2.0.5-20.el6                     libreport-plugin-mailx.x86_64 0:2.0.5-20.el6
  libreport-plugin-reportuploader.x86_64 0:2.0.5-20.el6                 libreport-python.x86_64 0:2.0.5-20.el6</pre>
<pre>Updated:
  abrt-addon-ccpp.x86_64 0:2.0.4-14.el6.centos                       abrt-addon-kerneloops.x86_64 0:2.0.4-14.el6.centos
  abrt-addon-python.x86_64 0:2.0.4-14.el6.centos                     abrt-cli.x86_64 0:2.0.4-14.el6.centos
  abrt-libs.x86_64 0:2.0.4-14.el6.centos                             acl.x86_64 0:2.2.49-6.el6</pre>
<pre>...</pre>
<pre>Replaced:
  abrt-plugin-logger.x86_64 0:1.1.13-4.el6 abrt-plugin-rhtsupport.x86_64 0:1.1.13-4.el6 abrt-plugin-sosreport.x86_64 0:1.1.13-4.el6</pre>
<pre>Complete!</pre>
<p>รีสตาร์ตเครื่อง แล้วตรวจสอบผลที่ได้</p>
<pre>[root@cent60 ~]# <strong>cat /etc/redhat-release</strong>
CentOS release 6.2 (Final)</pre>
<pre>[root@cent60 ~]# <strong>uname -a</strong>
Linux cent60.example.com 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 x86_64 x86_64 GNU/Linux </pre>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2012/05/using-yum-in-centos-6">การใช้งานคำสั่ง yum ใน CentOS 6</a></li>
<li><a href="http://spalinux.com/2012/05/change-yum-config-to-use-repos-in-thailand">เปลี่ยนคอนฟิก yum ให้มาใช้ repos ในไทย</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/05/use-yum-to-update-package-version/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ถ่ายโอนไฟล์ระหว่าง Windows กับลีนุกซ์ ด้วย pscp</title>
		<link>http://spalinux.com/2012/04/transfer-file-between-windows-and-linux-by-pscp</link>
		<comments>http://spalinux.com/2012/04/transfer-file-between-windows-and-linux-by-pscp#comments</comments>
		<pubDate>Sat, 21 Apr 2012 18:53:23 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[pscp]]></category>
		<category><![CDATA[scp]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2142</guid>
		<description><![CDATA[ในหลายๆ ครั้ง เรามีไฟล์อยู่บน Windows ต้องการถ่ายโอนไปยังลีนุกซ์ หรือในทำนองกลับกัน ต้องการดาวน์โหลดไฟล์จากลีนุกซ์กลับมาไว้บน Windows บทนี้จะแนะนำการใช้โปรแกรม pscp รันบน Windows เพื่อใช้ถ่ายโอนไฟล์ (transfer) กับเครื่องที่รันลีนุกซ์ ผ่านทาง Secure Shell ได้ ดาวน์โหลดโปรแกรม pscp โปรแกรม pscp เป็นส่วนหนึ่งของชุดโปรแกรม PuTTY แต่สามารถใช้งานได้โดยลำพัง ไม่จำเป็นต้องติดตั้งโปรแกรมทั้งชุด เพียงแค่ดาวน์โหลดไฟล์ pscp.exe ในหน้า PuTTY Download Page ภายใต้หัวข้อ For Windows on Intel x86 คลิ้กดาวน์โหลดไฟล์ pscp.exe เซฟลงบน Desktop ของ Windows &#160; สร้างไฟล์ทดสอบบน Windows ชื่อไฟล์ &#8220;win-data.txt&#8221; เซฟไว้บน Desktop &#160; คลิ้กปุ่ม start [...]]]></description>
			<content:encoded><![CDATA[<p>ในหลายๆ ครั้ง เรามีไฟล์อยู่บน Windows ต้องการถ่ายโอนไปยังลีนุกซ์ หรือในทำนองกลับกัน ต้องการดาวน์โหลดไฟล์จากลีนุกซ์กลับมาไว้บน Windows</p>
<p>บทนี้จะแนะนำการใช้โปรแกรม pscp รันบน Windows เพื่อใช้ถ่ายโอนไฟล์ (transfer) กับเครื่องที่รันลีนุกซ์ ผ่านทาง Secure Shell ได้</p>
<p><span id="more-2142"></span></p>
<h4>ดาวน์โหลดโปรแกรม pscp</h4>
<p>โปรแกรม pscp เป็นส่วนหนึ่งของชุดโปรแกรม PuTTY แต่สามารถใช้งานได้โดยลำพัง ไม่จำเป็นต้องติดตั้งโปรแกรมทั้งชุด เพียงแค่ดาวน์โหลดไฟล์ pscp.exe</p>
<p>ในหน้า PuTTY Download Page ภายใต้หัวข้อ For Windows on Intel x86 คลิ้กดาวน์โหลดไฟล์ pscp.exe เซฟลงบน Desktop ของ Windows</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps01-download-pscp.png"><img class="alignnone size-full wp-image-2144" title="ps01-download-pscp" src="http://spalinux.com/wp-content/uploads/2012/04/ps01-download-pscp.png" alt="" width="757" height="234" /></a></p>
<p>&nbsp;</p>
<p>สร้างไฟล์ทดสอบบน Windows ชื่อไฟล์ &#8220;win-data.txt&#8221; เซฟไว้บน Desktop</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps02-pscp-on-Desktop.png"><img class="alignnone size-full wp-image-2145" title="ps02-pscp-on-Desktop" src="http://spalinux.com/wp-content/uploads/2012/04/ps02-pscp-on-Desktop.png" alt="" width="83" height="309" /></a></p>
<p>&nbsp;</p>
<p>คลิ้กปุ่ม start เลือก Run</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps03-click-start-Run.png"><img class="alignnone size-full wp-image-2146" title="ps03-click-start-Run" src="http://spalinux.com/wp-content/uploads/2012/04/ps03-click-start-Run.png" alt="" width="253" height="133" /></a></p>
<p>&nbsp;</p>
<p>หน้าจอ Run เราสามารถพิมพ์คำสั่งบน Windows ที่ต้องการจะรันในช่อง Open ได้</p>
<p>พิมพ์ cmd แล้วกดปุ่ม [OK] หรือ [Enter] เพื่อเข้าสู่ command prompt ของ Windows</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps04-Open-cmd.png"><img class="alignnone size-full wp-image-2147" title="ps04-Open-cmd" src="http://spalinux.com/wp-content/uploads/2012/04/ps04-Open-cmd.png" alt="" width="347" height="186" /></a></p>
<p>&nbsp;</p>
<p>หน้าจอ command prompt ของ Windows<br />
<a href="http://spalinux.com/wp-content/uploads/2012/04/ps05-cmd.png"><img class="alignnone size-full wp-image-2148" title="ps05-cmd" src="http://spalinux.com/wp-content/uploads/2012/04/ps05-cmd.png" alt="" width="437" height="122" /></a></p>
<p>&nbsp;</p>
<p>พิมพ์คำสั่ง cd Desktop เข้าสู่ Desktop ของผู้ใช้งานบน Windows</p>
<p>พิมพ์คำสั่ง dir เพื่อแสดงไฟล์ จะมีไฟล์ pscp.exe, putty.exe และ win-data.txt</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps06-cd-Desktop-dir1.png"><img class="alignnone size-full wp-image-2150" title="ps06-cd-Desktop-dir" src="http://spalinux.com/wp-content/uploads/2012/04/ps06-cd-Desktop-dir1.png" alt="" width="466" height="287" /></a></p>
<p>&nbsp;</p>
<h4>ถ่ายโอนไฟล์จาก Windows ไปยังลีนุกซ์</h4>
<p>รูปแบบการใช้คำสั่ง pscp เหมือนกับคำสั่ง cp คือ ตามด้วยไฟล์ต้นทางที่ต้องการจะถ่ายโอน เว้นวรรค ตามด้วยปลายทางที่ต้องการส่งไฟล์ไป</p>
<p>ตัวอย่าง ถ้าต้องการถ่ายโอนไฟล์จาก Windows เช่นในตัวอย่างนี้คือไฟล์ win-data.txt ไปยังลีนุกซ์ IP Address  192.168.5.62 ล็อกอินด้วย root สามารถทำได้โดย</p>
<pre>pscp win-data.txt root@192.168.5.62:</pre>
<p>สังเกตการระบุปลายทาง เป็นชื่อ user ตามด้วยเครื่องหมาย @ ตามด้วย IP ของปลายทาง ปิดท้ายด้วยเครื่องหมาย :  โดยพิมพ์ติดกันหมด ไม่มีเว้นวรรค</p>
<p>หากเป็นการล็อกอินเข้าไป IP นั้นเป็นครั้งแรก จะมีข้อความเตือนเกี่ยวกับ key เหมือนกับตอนใช้ putty</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps07-pscp-file-to-linux.png"><img class="alignnone size-full wp-image-2151" title="ps07-pscp-file-to-linux" src="http://spalinux.com/wp-content/uploads/2012/04/ps07-pscp-file-to-linux.png" alt="" width="629" height="208" /></a></p>
<p>&nbsp;</p>
<p>ไฟล์จะถูกถ่ายโอนไปไว้ใน HOME ของ root สามารถตรวจสอบได้โดยการใช้ PuTTY ล็อกอินเข้าไป ใช้คำสั่ง ls แสดงไฟล์ที่ถูกส่งไป</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps08-check-file-on-linux.png"><img class="alignnone size-full wp-image-2152" title="ps08-check-file-on-linux" src="http://spalinux.com/wp-content/uploads/2012/04/ps08-check-file-on-linux.png" alt="" width="457" height="135" /></a></p>
<h4></h4>
<h4>โหลดจากลีนุกซ์ ลง Windows</h4>
<p>หากไฟล์อยู่บนลีนุกซ์ เช่นอยู่ใน HOME ของ root ก็สามารถใช้คำสั่ง pscp เพื่อถ่ายโอนไฟล์มาใส่ใน Windows ได้</p>
<p>โดยระบุต้นทางเป็นไฟล์ที่อยู่บนลีนุกซ์ เว้นวรรคตามด้วยปลายทางคือไดเร็คทอรีบน Windows หากต้องการโหลดไฟล์มาใส่ในไดเร็คทอรีที่พิมพ์คำสั่ง (Desktop) ก็ระบุเป็นเครื่องหมายจุด .</p>
<p>เช่นต้องการโหลดไฟล์ชื่อ linux-file.txt ใน HOME ของ root บนลีนุกซ์ มายังไดเร็คทอรีปัจจุบัน พิมพ์คำสั่ง</p>
<pre>pscp root@192.168.5.62:linux-file.txt .</pre>
<p>หากไฟล์อยู่ในพาธอื่นเช่นต้องการโหลดไฟล์ /etc/passwd จากลีนุกซ์ สามารถระบุต้นทางเป็นพาธเต็ม เช่น root@192.168.5.62:/etc/passwd</p>
<p>ตัวอย่าง และผลลัพท์ที่ได้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/ps09-pscp-file-from-linux.png"><img class="alignnone size-full wp-image-2153" title="ps09-pscp-file-from-linux" src="http://spalinux.com/wp-content/uploads/2012/04/ps09-pscp-file-from-linux.png" alt="" width="646" height="254" /></a></p>
<h4></h4>
<h4>ข้อมูลอ้างอิง</h4>
<p>&nbsp;</p>
<ul>
<li><a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html" target="_blank">PuTTY Download Page</a></li>
<li><a title="View Details: ล็อกอินเข้าลีนุกซ์จาก Windows ด้วย PuTTY" href="http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty" rel="bookmark">ล็อกอินเข้าลีนุกซ์จาก Windows ด้วย PuTTY</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/04/transfer-file-between-windows-and-linux-by-pscp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ล็อกอินเข้าลีนุกซ์จาก Windows ด้วย PuTTY</title>
		<link>http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty</link>
		<comments>http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty#comments</comments>
		<pubDate>Sat, 21 Apr 2012 10:58:59 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2131</guid>
		<description><![CDATA[หลังจากติดตั้ง คอนฟิกเน็ตเวิร์ค เช่น ตั้งค่า IP Address, Netmask, Gateway บนลีนุกซ์เสร็จเรียบร้อย การคอนฟิกที่เหลือ สามารถล็อกอินจากเครื่องอื่นมาทำงานได้โดยผ่านทาง SSH (Secure shell) ในบทนี้จะแนะนำโปรแกรม PuTTY  ซึ่งเป็นโปรแกรมที่สามารถใช้งานได้ฟรี รันบน Windows ให้สามารถล็อกอินเข้าลีนุกซ์เครื่องที่เราติดตั้งได้ ดาวน์โหลดโปรแกรม PuTTY ค้นหาคำว่า &#8220;PuTTY&#8221; จาก google หรือไม่ก็เข้าเว็บไซต์ PuTTY Download Page โดยตรงที่ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html การใช้งาน PuTTY สามารถทำได้สองแบบคือดาวน์โหลดไฟล์ putty.exe มาไฟล์เดียว ก็สามารถใช้งานได้แล้ว หรือจะเลือกแบบ Windows installer เพื่อติดตั้งเป็นชุดโปรแกรม โดยจะมีโปรแกรมย่อยอื่นๆ ด้วย เพื่อความง่าย แนะนำให้ดาวน์โหลดแค่ putty.exe ไฟล์เดียว ด้านล่างหัวข้อ &#8220;For Windows on Intel x86&#8243; คลิ้กที่ลิ้งค์ [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากติดตั้ง คอนฟิกเน็ตเวิร์ค เช่น ตั้งค่า IP Address, Netmask, Gateway บนลีนุกซ์เสร็จเรียบร้อย</p>
<p>การคอนฟิกที่เหลือ สามารถล็อกอินจากเครื่องอื่นมาทำงานได้โดยผ่านทาง SSH (Secure shell)</p>
<p>ในบทนี้จะแนะนำโปรแกรม PuTTY  ซึ่งเป็นโปรแกรมที่สามารถใช้งานได้ฟรี รันบน Windows ให้สามารถล็อกอินเข้าลีนุกซ์เครื่องที่เราติดตั้งได้</p>
<p><span id="more-2131"></span></p>
<h4>ดาวน์โหลดโปรแกรม PuTTY</h4>
<p>ค้นหาคำว่า &#8220;PuTTY&#8221; จาก google หรือไม่ก็เข้าเว็บไซต์ PuTTY Download Page โดยตรงที่</p>
<p>http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/01-PuTTY-Download-Page.png"><img class="alignnone size-full wp-image-2132" title="01-PuTTY-Download-Page" src="http://spalinux.com/wp-content/uploads/2012/04/01-PuTTY-Download-Page.png" alt="" width="804" height="323" /></a></p>
<p>การใช้งาน PuTTY สามารถทำได้สองแบบคือดาวน์โหลดไฟล์ putty.exe มาไฟล์เดียว ก็สามารถใช้งานได้แล้ว หรือจะเลือกแบบ Windows installer เพื่อติดตั้งเป็นชุดโปรแกรม โดยจะมีโปรแกรมย่อยอื่นๆ ด้วย</p>
<p>เพื่อความง่าย แนะนำให้ดาวน์โหลดแค่ putty.exe ไฟล์เดียว</p>
<p>ด้านล่างหัวข้อ &#8220;For Windows on Intel x86&#8243; คลิ้กที่ลิ้งค์ &#8220;putty.exe&#8221; เพื่อดาวน์โหลดไฟล์ สมมติว่าเซฟลง Desktop</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/02-putty.exe-on-Desktop.png"><img class="alignnone size-full wp-image-2133" title="02-putty.exe-on-Desktop" src="http://spalinux.com/wp-content/uploads/2012/04/02-putty.exe-on-Desktop.png" alt="" width="75" height="220" /></a></p>
<p>&nbsp;</p>
<p>เพียงแค่นี้ก็สามารถใช้โปรแกรม putty เพื่อล็อกอินเข้าเครื่องลีนุกซ์ได้แล้ว</p>
<p>ดับเบิ้ลคลิ้กที่ไอคอนไฟล์ putty.exe เพื่อรันโปรแกรม</p>
<p>หน้าจอของ PuTTY แสดงขึ้นมา เพื่อให้กรอกข้อมูล</p>
<ul>
<li>Host Name (or IP Address) ใส่ IP Address ของเครื่องลีนุกซ์ เช่น 192.168.5.62</li>
<li>Port ใส่ 22</li>
<li>Connection type: เลือก [x] SSH</li>
</ul>
<p>แล้วกด [Open] หรือกดปุ่ม [Enter]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/03-putty-session.png"><img class="alignnone size-full wp-image-2134" title="03-putty-session" src="http://spalinux.com/wp-content/uploads/2012/04/03-putty-session.png" alt="" width="456" height="442" /></a></p>
<p>&nbsp;</p>
<p>หากเป็นการล็อกอินด้วย SSH เข้าไปลีนุกซ์เครื่องที่ระบุ เป็นครั้งแรก หน้าจอจะแสดงเตือน &#8220;PuTTY Security Alert&#8221; เป็นข้อมูลเกี่ยวกับ key ต่างๆ ที่ใช้ใน  Secure Shell</p>
<p>กด [Yes] เพื่อยืนยันว่าถูกต้อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/p4-PuTTY-Security-Alert.png"><img class="alignnone size-full wp-image-2135" title="p4-PuTTY-Security-Alert" src="http://spalinux.com/wp-content/uploads/2012/04/p4-PuTTY-Security-Alert.png" alt="" width="389" height="237" /></a></p>
<p>&nbsp;</p>
<p>หมายเหตุ หากต้องการยืนยันความถูกต้องกับข้อมูลที่เตือนขึ้นมา สามารถตรวจสอบได้โดยเปรียบเทียบ fingerprint บนหน้าจอที่แสดง กับ Secure Shell ที่รันบนเซิร์ฟเวอร์</p>
<p>เช่นข้อมูลเกี่ยวกับ fingerprint ที่เตือนขึ้นมาแสดง</p>
<p>The server&#8217;s rsa2 key fingerprint is:<br />
ssh-rsa <span style="color: #0000ff;">2048 42:b2:98:95:57:14:aa:0a:6c:fa:e8:3a:7b:d8:0b:63</span></p>
<p>เปรียบเทียบกับ Secure Shell ที่รันบนเซิรฟ์เวอร์ ใช้คำสั่ง ssh-keygen -lf เพื่อดู fingerprint</p>
<pre>[root@cent6 ~]# <strong>ssh-keygen -lf /etc/ssh/ssh_host_rsa_key</strong>
<span style="color: #0000ff;">2048 42:b2:98:95:57:14:aa:0a:6c:fa:e8:3a:7b:d8:0b:63</span> /etc/ssh/ssh_host_rsa_key.pub (RSA)</pre>
<p>ผลที่ได้ต้องออกมาตรงกัน เป็นการยืนยันว่า เราล็อกอินเข้าไปในเครื่องที่เราต้องการจริง</p>
<p>หน้าจอให้ใส่ login as: ใส่ root และพิมพ์รหัสผ่านของ root ให้ถูกต้อง ก็จะสามารถล็อกอินเข้าสู่เครื่องลีนุกซ์ได้ เปรียบเสมือนเรานั่งทำงานอยู่ที่หน้าจอคอนโซลของเครื่องลีนุกซ์เลย</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/p5-login-as.png"><img class="alignnone size-full wp-image-2136" title="p5-login-as" src="http://spalinux.com/wp-content/uploads/2012/04/p5-login-as.png" alt="" width="449" height="104" /></a></p>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">PuTTY Download Page</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เพิ่ม แก้ไข ลบ ผู้ใช้งานบนลีนุกซ์</title>
		<link>http://spalinux.com/2012/04/add-modify-delete-user-on-linux</link>
		<comments>http://spalinux.com/2012/04/add-modify-delete-user-on-linux#comments</comments>
		<pubDate>Sat, 21 Apr 2012 06:21:58 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Users]]></category>
		<category><![CDATA[add]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[modify]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2126</guid>
		<description><![CDATA[เนื่องจาก root สามารถทำได้ทุกอย่างบนลีนุกซ์ ไม่ว่าจะติดตั้งโปรแกรม แก้ไขคอนฟิก หรือกระทั่งสั่งปิดเครื่อง (shutdown) คำแนะนำอย่างหนึ่งสำหรับผู้ใช้ลีนุกซ์ ไม่ว่าจะเพิ่งเริ่มต้นหัดใช้งาน หรือใช้งานมานานแล้ว คือล็อกอินเป็นผู้ใช้ธรรมดาที่ไม่ใช่ root ให้เป็นนิสัย เพราะผู้ใช้งานธรรมดา ก็สามารถทำอะไรได้หลายอย่างแล้ว เช่นดูคอนฟิกของเครื่อง แก้ไขไฟล์เท่าที่มีสิทธิ์ และหากทำอะไรผิดพลาดไป ความเสียหายที่เกิดขึ้น ก็จะกระทบในระดับหนึ่ง เท่าที่ผู้ใช้คนนั้นจะทำได้ ไม่กระทบทั้งเครื่อง จนกว่าจำเป็นต้องมีการแก้ไขคอนฟิกหรือทำอะไรบางอย่างกับลีนุกซ์ที่จำเป็นต้องทำด้วย root ค่อยใช้คำสั่ง su เปลี่ยนผู้ใช้ root (หรือใช้ sudo) และเมื่อหลังจากแก้ไขเสร็จสิ้นแล้ว ก็เปลี่ยนกลับมาเป็น user ธรรมดาอีกครั้ง ในบทนี้จะอธิบายคำสั่งที่ใช้ในการ เพิ่ม แก้ไข ลบ ผู้ใช้งาน โดยต้องใช้ root เป็นคนรันคำสั่ง การเพิ่มผู้ใช้งาน (useradd) ใช้คำสั่ง useradd ตามด้วยชื่อ user ที่ต้องการเพิ่ม เช่นต้องการเพิ่มผู้ใช้งานชื่อ alice [root@cent6 ~]# useradd alice [...]]]></description>
			<content:encoded><![CDATA[<p>เนื่องจาก root สามารถทำได้ทุกอย่างบนลีนุกซ์ ไม่ว่าจะติดตั้งโปรแกรม แก้ไขคอนฟิก หรือกระทั่งสั่งปิดเครื่อง (shutdown)</p>
<p>คำแนะนำอย่างหนึ่งสำหรับผู้ใช้ลีนุกซ์ ไม่ว่าจะเพิ่งเริ่มต้นหัดใช้งาน หรือใช้งานมานานแล้ว คือล็อกอินเป็นผู้ใช้ธรรมดาที่ไม่ใช่ root ให้เป็นนิสัย เพราะผู้ใช้งานธรรมดา ก็สามารถทำอะไรได้หลายอย่างแล้ว เช่นดูคอนฟิกของเครื่อง แก้ไขไฟล์เท่าที่มีสิทธิ์ และหากทำอะไรผิดพลาดไป ความเสียหายที่เกิดขึ้น ก็จะกระทบในระดับหนึ่ง เท่าที่ผู้ใช้คนนั้นจะทำได้ ไม่กระทบทั้งเครื่อง</p>
<p>จนกว่าจำเป็นต้องมีการแก้ไขคอนฟิกหรือทำอะไรบางอย่างกับลีนุกซ์ที่จำเป็นต้องทำด้วย root ค่อยใช้คำสั่ง su เปลี่ยนผู้ใช้ root (หรือใช้ sudo) และเมื่อหลังจากแก้ไขเสร็จสิ้นแล้ว ก็เปลี่ยนกลับมาเป็น user ธรรมดาอีกครั้ง</p>
<p>ในบทนี้จะอธิบายคำสั่งที่ใช้ในการ เพิ่ม แก้ไข ลบ ผู้ใช้งาน โดยต้องใช้ root เป็นคนรันคำสั่ง</p>
<h4><span id="more-2126"></span><br />
การเพิ่มผู้ใช้งาน (useradd)</h4>
<p>ใช้คำสั่ง useradd ตามด้วยชื่อ user ที่ต้องการเพิ่ม เช่นต้องการเพิ่มผู้ใช้งานชื่อ alice</p>
<pre>[root@cent6 ~]# <strong>useradd alice</strong></pre>
<p>คำสั่ง id ตามด้วยชื่อผู้ใช้งาน สามารถใช้ตรวจสอบข้อมูลของผู้ใช้ได้ เช่น uid, gid ของผู้ใช้</p>
<pre>[root@cent6 ~]# <strong>id alice</strong>
uid=500(alice) gid=500(alice) groups=500(alice)</pre>
<p>หากพิมพ์คำสั่ง id เฉยๆ จะเป็นการดูข้อมูลของตัวเอง เช่นถ้า root พิมพ์คำสั่ง id ไม่ได้ระบุชื่อผู้ใช้ ผลลัพธ์จะแสดงข้อมูลของ root</p>
<pre>[root@cent6 ~]# <strong>id</strong>
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023</pre>
<h4>เปลี่ยนรหัสผ่านผู้ใช้งาน (passwd)</h4>
<p>ใช้คำสั่ง passwd ตามด้วยชื่อผู้ใช้งาน เพื่อเปลี่ยนรหัสผ่านของผู้ใช้งาน พิมพ์ password สองครั้งให้เหมือนกัน หน้าจอจะไม่แสดงรหัสผ่านที่พิมพ์ลงไป</p>
<pre>[root@cent6 ~]# <strong>passwd alice</strong>
Changing password for user <span style="color: #0000ff;">alice</span>.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.</pre>
<p>ระวังการใช้คำสั่ง passwd ด้วย root เพราะถ้าลืมพิมพ์ชื่อผู้ใช้งานตามหลังคำสั่ง passwd จะเป็นการเปลี่ยนรหัสผ่านของตัวเอง เช่นถ้า root พิมพ์ ก็จะเป็นการเปลี่ยนรหัสผ่านของ root เอง</p>
<pre>[root@cent6 ~]# <strong>passwd</strong>
Changing password for user <span style="color: #0000ff;">root</span>.
New password:</pre>
<p>สังเกตชื่อ user ที่แสดงขึ้นมาหลังประโยค Changing password for user</p>
<p>หากต้องการยกเลิกการรันคำสั่ง passwd (และหลายๆ คำสั่งบนลีนุกซ์) ให้กดปุ่ม [Ctrl]+[C] จะเป็นการยกเลิก และออกจากคำสั่งได้</p>
<pre>[root@cent6 ~]# <strong>passwd</strong>
Changing password for user <span style="color: #0000ff;">root</span>.
New password: <span style="color: #ff0000;"><strong>[Ctrl]+[C]</strong></span>
[root@cent6 ~]#</pre>
<p>&nbsp;</p>
<p>คำสั่ง passwd จะมีการตรวจสอบความยากง่าย (ต่อการเดา) ของรหัสผ่านที่จะเปลี่ยน คือถ้าสามารถเดาง่ายเกินไป หน้าจอจะแสดงคำเตือนว่า BAD PASSWORD พร้อมคำอธิบายประกอบ เช่นสั้นเกินไป ง่ายต่อการเดา หรือเป็นคำที่อยู่ใน dictionary</p>
<p>เพื่อความปลอดภัยของระบบ แนะนำให้ตั้งรหัสผ่านที่ยากต่อการเดา แต่ให้ผู้ใช้งานเองจำได้ด้วย</p>
<pre>[root@cent6 ~]# <strong>passwd alice</strong>
Changing password for user alice.
New password:
<span style="color: #ff0000;">BAD PASSWORD: it is too short</span>
<span style="color: #ff0000;">BAD PASSWORD: is too simple</span>
Retype new password:</pre>
<p>ถ้ายังยืนยันจะใช้ root ก็สามารถเปลี่ยนรหัสผ่านให้ได้ (ไม่แนะนำ)</p>
<p>ผู้ใช้งานแต่ละคนสามารถเปลี่ยนรหัสผ่านของตัวเองได้ โดยใช้คำสั่ง passwd</p>
<p>ข้อแตกต่างหากรันคำสั่ง passwd ด้วยตัวผู้ใช้งานเองคือ</p>
<ul>
<li>ต้องใส่รหัสผ่านที่ใช้งานอยู่ (current) ให้ถูกต้อง</li>
<li>จะไม่ยอมให้ผู้ใช้งานเอง ตั้งรหัสผ่านง่ายเกินไป</li>
</ul>
<p>ตัวอย่างการใส่รหัสผ่านที่ใช้งานอยู่ไม่ถูกต้อง</p>
<pre>[alice@cent6 ~]$ <strong>passwd</strong>
Changing password for user alice.
Changing password for alice.
(current) UNIX password:
<span style="color: #ff0000;">passwd: Authentication token manipulation error</span></pre>
<p>ตัวอย่างการตั้งรหัสผ่านง่ายเกินไป คำสั่ง passwd จะไม่ยอมเปลี่ยนให้</p>
<pre>[alice@cent6 ~]$ <strong>passwd</strong>
Changing password for user alice.
Changing password for alice.
(current) UNIX password:
New password:
<span style="color: #ff0000;">BAD PASSWORD: it is too short</span>
New password:
<span style="color: #ff0000;">BAD PASSWORD: it is based on your username</span>
New password:
<span style="color: #ff0000;">BAD PASSWORD: it is based on a dictionary word</span>
passwd: Have exhausted maximum number of retries for service
[alice@cent6 ~]$</pre>
<p>&nbsp;</p>
<h4>เปลี่ยนเป็น root ด้วยคำสั่ง su</h4>
<p>ตัวอย่างการล็อกอินด้วยผู้ใช้งานธรรมดา สังเกต พร้อมพต์จะเป็นเครื่องหมาย $</p>
<pre>login as: <strong>alice</strong>
alice@192.168.5.62's password:
[alice@cent6 ~]$</pre>
<p>ใช้คำสั่ง su เมื่อต้องการเปลี่ยนจากผู้ใช้งานธรรมดา ให้เป็น root ใส่ password ของ root ให้ถูกต้อง</p>
<p>สังเกต พร้อมพต์ที่เปลี่ยนไปจากเครื่องหมาย $ เป็น #</p>
<pre>[alice@cent6 ~]$ <strong>su -</strong>
Password:
[root@cent6 ~]#</pre>
<p>ใช้คำสั่ง exit เมื่อต้องการออกจาก root เปลี่ยนเป็นผู้ใช้ธรรมดา</p>
<pre>[root@cent6 alice]# <strong>exit</strong>
exit
[alice@cent6 ~]$</pre>
<p>การใช้คำสั่ง su เพื่อเปลี่ยนเป็น root แนะนำให้พิมพ์เว้นวรรคแล้วตามด้วยเครื่องหมายลบ &#8220;-&#8221; เพื่อเปลี่ยนเป็น root แบบสมบูรณ์แบบ คือให้อ่านค่าคอนฟิกของ root  ด้วย</p>
<p>ตัวอย่างที่เห็นได้ชัดคือค่าคอนฟิก PATH ระหว่างผู้ใช้ธรรมดา กับ root จะแตกต่างกัน หากเปรียบเทียบการใช้คำสั่ง su แล้วตามด้วยเครื่องหมายลบ</p>
<pre>[alice@cent6 ~]$ <strong>echo $PATH</strong>
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/alice/bin</pre>
<p>คำสั่ง su แบบไม่มีเครื่องหมายลบ ตัวแปร $PATH จะมีค่าเหมือนเดิม</p>
<pre>[alice@cent6 ~]$ <strong>su</strong>
Password:
[root@cent6 alice]# echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/alice/bin</pre>
<p>&nbsp;</p>
<p>คำสั่ง su ตามด้วยเครื่องหมาย &#8216;-&#8217; ตัวแปร $PATH จะเปลี่ยนไปตามคอนฟิกของ root</p>
<pre>[alice@cent6 ~]$ <strong>su -</strong>
Password:
[root@cent6 ~]# <strong>echo $PATH</strong>
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin</pre>
<p>&nbsp;</p>
<h4>การลบผู้ใช้งาน (userdel)</h4>
<p>ใช้คำสั่ง userdel ตามด้วยชื่อผู้ใช้งานที่ต้องการลบออกจากเครื่องลีนุกซ์</p>
<p>โดยดีฟอลต์ คำสั่ง userdel จะลบชื่อผู้ใช้ออกจากระบบ แต่ไฟล์ที่อยู่ใน HOME ของผู้ใช้ยังอยู่ ทั้งนี้ก็เพื่อสำรองไฟล์ไว้ เผื่อผู้ใช้งานคนนี้จะมาขอไฟล์ภายหลังได้</p>
<p>ตัวอย่างการใช้คำสั่ง userdel ไม่ระบุออปชั่น</p>
<pre>[root@cent6 ~]# <strong>id alice</strong>
uid=500(alice) gid=500(alice) groups=500(alice)

[root@cent6 ~]# <strong>userdel alice</strong>

[root@cent6 ~]# <strong>ls -ld /home/alice/</strong>
drwx------. 2 500 500 4096 Apr 21 12:44 /home/alice/

[root@cent6 ~]# <strong>id alice</strong>
id: alice: No such user</pre>
<p>&nbsp;</p>
<p>ระบุออปชั่น &#8216;-r&#8217; หากต้องการลบไฟล์ที่อยู่ใน HOME ของผู้ใช้ด้วย</p>
<pre>[root@cent6 ~]# <strong>id alice</strong>
uid=500(alice) gid=500(alice) groups=500(alice)

[root@cent6 ~]# <strong>userdel -r alice</strong>

[root@cent6 ~]# <strong>ls -ld /home/alice/</strong>
ls: cannot access /home/alice/: No such file or directory</pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/04/add-modify-delete-user-on-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>แก้ไขคอนฟิก firewall ด้วย system-config-firewall</title>
		<link>http://spalinux.com/2012/04/configure-firewall-using-system-config-firewall</link>
		<comments>http://spalinux.com/2012/04/configure-firewall-using-system-config-firewall#comments</comments>
		<pubDate>Sun, 08 Apr 2012 16:46:12 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2032</guid>
		<description><![CDATA[จากบทความ แก้ไขคอนฟิก firewall บนลีนุกซ์ด้วย iptables ผู้ที่จะแก้ไขคอนฟิกแบบนี้ได้ ต้องมีความรู้ทางด้านเน็ตเวิร์ก มีความเข้าใจเรื่อง firewall รวมทั้งต้องทราบว่าเซอร์วิสที่รันใช้พอร์ตอะไร ซึ่งอาจทำให้เกิดความยากสำหรับผู้เริ่มต้น เพราะไม่รู้ว่าจะเพิ่ม หรือลบ rule อย่างไร ใส่ออปชั่นอะไรบ้าง สำหรับผู้เริ่มต้นหัดใช้ แนะนำให้ใช้โปรแกรม system-config-firewall เพื่อช่วยแก้ไข rule ของ firewall บนลีนุกซ์ โปรแกรม system-config-firewall มีสองเวอร์ชั่น ทำงานได้เหมือนกัน system-config-firewall รันเป็น GUI บน X Window เช่น GNOME system-config-firewall-tui รันบนหน้าจอคอนโซล จะเป็นแบบเมนูให้เลือก ในที่นี้จะแสดงวิธีการใช้แบบรันบนหน้าจอคอนโซล เพื่อเปรียบเทียบสิ่งที่โปรแกรม system-config-firewall จะแก้ไข ก่อนรันคำสั่ง ใช้คำสั่ง iptables -L เพื่อแสดงคอนฟิก firewall ที่ทำงานอยู่ [root@cent6 ~]# iptables -L -v -n --line-numbers [...]]]></description>
			<content:encoded><![CDATA[<p>จากบทความ <a href="http://spalinux.com/2012/04/configure-linux-firewall-by-iptables">แก้ไขคอนฟิก firewall บนลีนุกซ์ด้วย iptables</a> ผู้ที่จะแก้ไขคอนฟิกแบบนี้ได้ ต้องมีความรู้ทางด้านเน็ตเวิร์ก มีความเข้าใจเรื่อง firewall รวมทั้งต้องทราบว่าเซอร์วิสที่รันใช้พอร์ตอะไร</p>
<p>ซึ่งอาจทำให้เกิดความยากสำหรับผู้เริ่มต้น เพราะไม่รู้ว่าจะเพิ่ม หรือลบ rule อย่างไร ใส่ออปชั่นอะไรบ้าง</p>
<p>สำหรับผู้เริ่มต้นหัดใช้ แนะนำให้ใช้โปรแกรม system-config-firewall เพื่อช่วยแก้ไข rule ของ firewall บนลีนุกซ์</p>
<p><span id="more-2032"></span></p>
<p>โปรแกรม system-config-firewall มีสองเวอร์ชั่น ทำงานได้เหมือนกัน</p>
<ul>
<li><strong>system-config-firewall</strong> รันเป็น GUI บน X Window เช่น GNOME</li>
<li><strong>system-config-firewall-tui</strong> รันบนหน้าจอคอนโซล จะเป็นแบบเมนูให้เลือก</li>
</ul>
<p>ในที่นี้จะแสดงวิธีการใช้แบบรันบนหน้าจอคอนโซล</p>
<p>เพื่อเปรียบเทียบสิ่งที่โปรแกรม system-config-firewall จะแก้ไข ก่อนรันคำสั่ง ใช้คำสั่ง iptables -L เพื่อแสดงคอนฟิก firewall ที่ทำงานอยู่</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     2414  180K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 1379 packets, 505K bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<div></div>
<p>พิมพ์คำสั่ง system-config-firewall-tui</p>
<pre>[root@cent6 ~]# <strong>system-config-firewall-tui</strong></pre>
<p>หมายเหตุ หากรันคำสั่งแล้วขึ้น &#8220;command not found&#8221; ให้ติดตั้งไฟล์ rpm ชื่อ system-config-firewall-tui-1.2.27-5.el6.noarch.rpm</p>
<p>หน้าจอ Firewall Configuration สามารถเลือกที่จะเปิด ปิด firewall ได้</p>
<pre>[*] Enabled เปิดใช้งาน firewall
[ ] Enabled ปิดการใช้ firewall (ไม่แนะนำ)</pre>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/f01-system-config-firewall-tui-Firewall-Configuration.png"><img class="alignnone size-full wp-image-2035" title="f01-system-config-firewall-tui-Firewall Configuration" src="http://spalinux.com/wp-content/uploads/2012/04/f01-system-config-firewall-tui-Firewall-Configuration.png" alt="" width="639" height="411" /></a></p>
<p>&nbsp;</p>
<p>กดปุ่ม [Tab] เพื่อเลื่อนแถบสีไปยัง [Customize] แล้วกดปุ่ม [Enter]</p>
<p>หน้าจอแสดง Services ต่างๆ ที่โปรแกรมเตรียมไว้ให้สามารถเลือกคอนฟิกได้</p>
<p>กดปุ่มลูกศร (cursor) ขึ้นลง เพื่อเลื่อนไปยังเซอร์วิสต่างๆ ได้</p>
<p>โดยดีฟอลต์จากการติดตั้ง ถ้าไม่ได้แก้ไข จะอนุญาตให้เครื่องอื่นเข้ามาใช้ SSH ได้อย่างเดียว</p>
<p>เครื่องหมายดอกจัน ในวงเล็บสี่เหลี่ยม [*] หน้าเซอร์วิส หมายถึงการอนุญาตเซอร์วิสนั้น</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/f02-Trusted-Services.png"><img class="alignnone size-full wp-image-2036" title="f02-Trusted-Services" src="http://spalinux.com/wp-content/uploads/2012/04/f02-Trusted-Services.png" alt="" width="492" height="332" /></a></p>
<p>&nbsp;</p>
<p>กดปุ่มลูกศรลง เพื่อไปยังชื่อเซอร์วิสที่ต้องการอนุญาตให้เครื่องอื่นสามารถเข้ามาใช้บนเครื่องลีนุกซ์นี้ได้</p>
<p>เช่นต้องการให้เครื่องอื่น สามารถใช้เว็บเซิร์ฟเวอร์พอร์ต 80 WWW (HTTP) บนเครื่องเราได้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/f03-select-WWW.png"><img class="alignnone size-full wp-image-2037" title="f03-select-WWW" src="http://spalinux.com/wp-content/uploads/2012/04/f03-select-WWW.png" alt="" width="313" height="109" /></a></p>
<p>กดปุ่ม [Spacebar] เพื่อเปลี่ยนค่าในวงเล็บสี่เหลี่ยม ต้องเปลี่ยนให้เป็นเครื่องหมายดอกจัน</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/f04-Enable-WWW.png"><img class="alignnone size-full wp-image-2038" title="f04-Enable-WWW" src="http://spalinux.com/wp-content/uploads/2012/04/f04-Enable-WWW.png" alt="" width="312" height="111" /></a></p>
<p>หลังจากเปลี่ยนเป็นเครื่องหมายดอกจันเรียบร้อยแล้ว กดปุ่ม [Tab] เพื่อเลื่อนแถบสีมาที่ [Close] แล้วกดปุ่ม [Enter]</p>
<p>จะกลับมาหน้าจอหลัก กดปุ่ม [Tab] เลื่อนไปยัง [OK] แล้วกดปุ่ม [Enter]<br />
หน้าจอเตือน Warning ว่าจะมีการสร้างคอนฟิกไฟล์ของ firewall ใหม่ เลื่อนแถบสีอยู่ที่ [Yes] แล้วกดปุ่ม [Enter]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/f05-Warning.png"><img class="alignnone size-full wp-image-2039" title="f05-Warning" src="http://spalinux.com/wp-content/uploads/2012/04/f05-Warning.png" alt="" width="378" height="289" /></a></p>
<p>&nbsp;</p>
<p>ลองใช้คำสั่ง iptables -L เพื่อดูคอนฟิก firewall ที่เปลี่ยนไป จะเห็น num 5 เพิ่มขึ้นมา เพื่ออนุญาต tcp dpt:80 หรือพอร์ตเว็บ WWW (HTTP) นั่นเอง</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       13   916 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        1   100 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
<span style="color: #0000ff;">5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80</span>
6        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 8 packets, 960 bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<pre></pre>
<p>หากต้องการยกเลิก หรือไม่ต้องการให้เครื่องอื่นเข้าใช้งานพอร์ตเว็บบนเครื่องนี้อีกต่อไปแล้ว ก็ใช้คำสั่ง system-config-firewall-tui เข้าไปเอาเครื่องหมายดอกจันหน้าเซอร์วิส WWW (HTTP) ออกไป ทำตามขั้นตอนอื่นๆ เหมือนเดิม</p>
<p>การใช้คำสั่ง system-config-firewall ไม่ว่าจะแบบ GUI หรือคอนโซล เมื่อแก้ไขเสร็จแล้วกดยืนยันเพื่อให้คอนฟิกใหม่มีผล นอกจากจะทำให้คอนฟิกใหม่มีผลทันทีแล้ว คำสั่งนี้จะเข้าไปแก้ไขไฟล์คอนฟิกของ iptables เพื่อให้มีผลต่อการบู๊ตเครื่องครั้งต่อไปด้วย</p>
<p>ไฟล์คอนฟิกของ iptables ของ CentOS คือไฟล์ /etc/sysconfig/iptables</p>
<p>ตัวอย่างของไฟล์หลังจากเพิ่ม การอนุญาตพอร์ต 80</p>
<pre>[root@cent6 ~]# cat /etc/sysconfig/iptables
 # Firewall configuration written by system-config-firewall
 # Manual customization of this file is not recommended.
 *filter
 :INPUT ACCEPT [0:0]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [0:0]
 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 -A INPUT -p icmp -j ACCEPT
 -A INPUT -i lo -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
<span style="color: #0000ff;"> -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT</span>
 -A INPUT -j REJECT --reject-with icmp-host-prohibited
 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
 COMMIT</pre>
<p>ชื่อเซอร์วิสที่มาอ่านไฟล์นี้ก็คือ iptables โดยดีฟอลต์จะถูกรันเมื่อเข้าสู่ runlevel 2,3,4,5 หรือการบู๊ตเครื่องใหม่</p>
<pre>[root@cent6 ~]# <strong>chkconfig --list iptables</strong>
iptables        0:off 1:off 2:on 3:on 4:on 5:on 6:off</pre>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a title="View Details: แก้ไขคอนฟิก firewall บนลีนุกซ์ด้วย iptables" href="http://spalinux.com/2012/04/configure-linux-firewall-by-iptables" rel="bookmark">แก้ไขคอนฟิก firewall บนลีนุกซ์ด้วย iptables</a></li>
<li><a title="View Details: การเปิดเซอร์วิสตอนบู๊ตเครื่องของ CentOS 6" href="http://spalinux.com/2012/04/start-service-when-boot-centos-6" rel="bookmark">การเปิดเซอร์วิสตอนบู๊ตเครื่องของ CentOS 6</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/04/configure-firewall-using-system-config-firewall/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>แก้ไขคอนฟิก firewall บนลีนุกซ์ด้วย iptables</title>
		<link>http://spalinux.com/2012/04/configure-linux-firewall-by-iptables</link>
		<comments>http://spalinux.com/2012/04/configure-linux-firewall-by-iptables#comments</comments>
		<pubDate>Sun, 08 Apr 2012 10:28:19 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2013</guid>
		<description><![CDATA[บนลีนุกซ์มีคุณสมบัติ firewall ติดตั้งมาให้สามารถเลือกอนุญาต หรือปฏิเสธการ รับ/ส่ง packet เข้า/ออกเครื่องได้ จุดมุ่งหมายหลักๆ ของ firewall ก็เพื่อเพิ่มความปลอดภัยให้กับเครื่องเซิร์ฟเวอร์ หลายคนมักจะปิดคุณสมบัตินี้ไป ด้วยเหตุผลบอกว่ายากต่อการทำความเข้าใจ และแก้ไข ในบทความนี้จะอธิบายการใช้คำสั่ง iptables เพื่อแสดงสถานะ firewall ที่เปิดใช้งาน การเพิ่ม rule เพื่ออนุญาตการเชื่อมต่อ การลบ rule ที่ไม่ได้ใช้แล้ว ลองทำตามดู ในหลายเซอร์วิส เพียงแค่แก้ไข rule นิดเดียวเท่านั้น ก็จะใช้งานได้แล้ว ไม่จำเป็นต้องปิดคุณสมบัติ firewall แต่อย่างได้ แสดง (list) rule ที่เปิดใช้งานอยู่ ใช้คำสั่ง iptables ออปชั่น &#8220;-L&#8221; เพื่อแสดงคอนฟิก firewall ที่เปิดใช้งานอยู่ ออปชั่นเพิ่มเติม ที่มักจะใช้ร่วมกับออปชั่น &#8220;-L&#8221; ออปชั่น &#8220;-v&#8221; เพื่อแสดงรายละเอียดเพิ่มเติมของ rule เช่นผลรวมสะสมของจำนวน packets (pkts) [...]]]></description>
			<content:encoded><![CDATA[<p>บนลีนุกซ์มีคุณสมบัติ firewall ติดตั้งมาให้สามารถเลือกอนุญาต หรือปฏิเสธการ รับ/ส่ง packet เข้า/ออกเครื่องได้</p>
<p>จุดมุ่งหมายหลักๆ ของ firewall ก็เพื่อเพิ่มความปลอดภัยให้กับเครื่องเซิร์ฟเวอร์</p>
<p>หลายคนมักจะปิดคุณสมบัตินี้ไป ด้วยเหตุผลบอกว่ายากต่อการทำความเข้าใจ และแก้ไข</p>
<p>ในบทความนี้จะอธิบายการใช้คำสั่ง iptables เพื่อแสดงสถานะ firewall ที่เปิดใช้งาน การเพิ่ม rule เพื่ออนุญาตการเชื่อมต่อ การลบ rule ที่ไม่ได้ใช้แล้ว</p>
<p>ลองทำตามดู ในหลายเซอร์วิส เพียงแค่แก้ไข rule นิดเดียวเท่านั้น ก็จะใช้งานได้แล้ว ไม่จำเป็นต้องปิดคุณสมบัติ firewall แต่อย่างได้</p>
<p><span id="more-2013"></span></p>
<h4>แสดง (list) rule ที่เปิดใช้งานอยู่</h4>
<p>ใช้คำสั่ง iptables ออปชั่น &#8220;-L&#8221; เพื่อแสดงคอนฟิก firewall ที่เปิดใช้งานอยู่</p>
<p>ออปชั่นเพิ่มเติม ที่มักจะใช้ร่วมกับออปชั่น &#8220;-L&#8221;</p>
<ul>
<li>ออปชั่น &#8220;<strong>-v</strong>&#8221; เพื่อแสดงรายละเอียดเพิ่มเติมของ rule เช่นผลรวมสะสมของจำนวน packets (pkts) ขนาด (bytes)</li>
<li>ออปชั่น &#8220;<strong>-n</strong>&#8221; เพื่อแสดง IP (source และ destination) และพอร์ตให้เป็นตัวเลข</li>
<li>ออปชั่น &#8220;<strong>&#8211;line-numbers</strong>&#8221; เพื่อแสดงตัวเลขกำกับ rule ในแต่ละบรรทัด เพื่อสะดวกต่อการแก้ไข rule</li>
</ul>
<p>ตัวอย่างการใช้คำสั่ง iptables ออปชั่น &#8220;-L&#8221; เพื่อแสดงค่าคอนฟิก firewall ที่ใช้งานอยู่</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      630 49714 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        2   128 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 349 packets, 55278 bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<pre></pre>
<pre></pre>
<p>คอนฟิก rule ที่แสดงนี้ เป็นคอนฟิกดีฟอลต์จากติดตั้ง CentOS 6 (หากไม่ได้มีการเลือกแก้ไข firewall ระหว่างการติดตั้ง)</p>
<p>ในที่นี้ขออธิบาย rule คร่าวๆ ในส่วนของ Chain INPUT ที่เปิดใช้งานอยู่ดังนี้</p>
<ul>
<li>num 1 : อนุญาต (ACCEPT) ให้ทุก packet ที่ผ่านขั้นตอนการเชื่อมต่อเรียบร้อยแล้ว (RELATED, ESTABLISHED) เข้าสู่เครื่องได้</li>
<li>num 2 : อนุญาต (ACCEPT) ให้ packet ประเภท (icmp) เช่น ping เข้าสู่เครื่องได้</li>
<li>num 3 : อนุญาต (ACCEPT) ให้ทุก packet ที่ส่งภายในของเครื่องเองได้ (lo หรือ loopback)</li>
<li>num 4 : อนุญาต (ACCEPT) ให้ packet แรก (NEW) ที่พยายามเชื่อมต่อเข้าพอร์ตปลายทาง tcp dpt:22 (secure shell) สามารถเข้าสู่เครื่องได้ หรือสรุปง่ายๆ คืออนุญาตให้สามารถ ssh เข้าสู่เครื่องนี้ได้นั่นเอง</li>
<li>num 5 : packet อื่นๆ นอกจากนี้ จะถูกปฏิเสธ (REJECT) การเข้าถึงเครื่อง และจะมีการตอบ icmp-host-prohibited กลับไปยังเครื่องต้นทางที่พยายามส่ง packet เข้ามา</li>
</ul>
<p>การทำงาน firewall ของลีนุกซ์จะตรวจสอบ (match) ตามลำดับ rule num ที่คอนฟิกไว้ เช่นเมื่อมี packet พยายามส่งเข้า (INPUT) ก็จะตรวจสอบเรียงตาม num 1, 2, 3, 4, 5</p>
<p>&nbsp;</p>
<h4>เพิ่ม (insert) rule ใหม่</h4>
<p>หากเราติดตั้งเซอร์วิสใหม่ คอนฟิกและรันได้เรียบร้อยแล้ว เช่นเว็บเซิร์ฟเวอร์ เปิดใช้งานพอร์ต tcp 80</p>
<p>ตัวอย่างการใช้คำสั่ง netstat -an เพื่อดูพอร์ตที่เปิดอยู่ ในที่นี้จะใช้คำสั่ง grep เพื่อเลือกแสดงเฉพาะบรรทัดที่มีตัวเลข 80</p>
<pre>[root@cent6 ~]# <strong>netstat -an | grep 80</strong>
tcp        0      0 :::80                       :::*                        LISTEN</pre>
<p>เราสามารถทดสอบจากเครื่องที่รันเว็บเซิร์ฟเวอร์เองได้ เพราะ rule ของ firewall โดยดีฟอลต์อนุญาตให้การส่งข้อมูลภายใน (lo) สามารถทำได้ (rule num 3)</p>
<p>ตัวอย่างการใช้คำสั่ง telnet เพื่อทดสอบการเชื่อมต่อเข้าพอร์ต 80 ของเว็บเซิร์ฟเวอร์ 192.168.5.62 (ทดสอบบนเครื่องเดียวกัน กับที่รันเว็บเซิรฟ์เวอร์)</p>
<pre>[root@cent6 ~]# <strong>telnet 192.168.5.62 80</strong>
Trying 192.168.5.62...
Connected to 192.168.5.62.
Escape character is '^]'.

<strong>HEAD / HTTP/1.0</strong>

HTTP/1.1 403 Forbidden
Date: Sun, 08 Apr 2012 08:53:11 GMT
Server: Apache/2.2.15 (CentOS)
Accept-Ranges: bytes
Content-Length: 5039
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.</pre>
<p>คำอธิบายการใช้คำสั่ง telnet เข้าพอร์ต</p>
<ul>
<li>หากใช้คำสั่ง telnet แล้วขึ้น &#8220;command not found&#8221; ต้องติดตั้งไฟล์ rpm ของโปรแกรม telnet เพิ่ม ซึ่งอยู่ในแผ่นดีวีดีติดตั้ง CentOS อยู่แล้ว</li>
</ul>
<pre>[root@cent6 Packages]# <strong>rpm -i telnet-0.17-47.el6.x86_64.rpm</strong></pre>
<ul>
<li>เราสามารถใช้คำสั่ง telnet เพื่อทดสอบเข้าพอร์ตเว็บ (tcp 80) ได้ โดยพิมพ์คำสั่ง telnet ตามด้วย IP ของเว็บเซิร์ฟเวอร์ แล้วตามด้วยพอร์ตที่รันเว็บ</li>
<li>ในคำสั่ง telnet เมื่อขึ้น Connected แปลว่าสามารถเชื่อมต่อเข้าพอร์ตที่ระบะไว้ได้</li>
<li>กดปุ่ม [Enter] หนึ่งครั้ง แล้วพิมพ์คำสั่ง HEAD / HTTP/1.0 เพื่อเป็นการส่งคำสั่งขอดูข้อมูลเบื้องต้นของเว็บเซิร์ฟเวอร์ได้</li>
<li>หากต้องการออกจากคำสั่ง telnet ให้กดปุ่ม [Ctrl] และ ] พร้อมกัน จะมีพร้อมพต์ telnet&gt; ขึ้นมาให้พิมพ์คำสั่ง quit เพื่อออจาก telnet</li>
</ul>
<pre>[root@cent6 ~]# <strong>telnet 192.168.5.62 80</strong>
Trying 192.168.5.62...
Connected to 192.168.5.62.
Escape character is '^]'.
<strong>^]</strong>
telnet&gt; <strong>quit</strong>
Connection closed.</pre>
<p>แต่ถ้าใช้ browser หรือทดสอบด้วยคำสั่ง telnet เข้าพอร์ต 80 จากเครื่องอื่นๆ เปิดเว็บเข้ามา จะเข้าไม่ได้</p>
<pre>$ <strong>telnet 192.168.5.62 80</strong>
 Trying 192.168.5.62...
 telnet: connect to address 192.168.5.62: No route to host</pre>
<p>ต้องเพิ่ม rule ใหม่ เข้าไปเพื่ออนุญาตการเชื่อมต่อเข้ามา โดย rule ที่เพิ่มใหม่ ต้องเพิ่มก่อน rule สุดท้ายที่มีการปฏิเสธการเข้าถึง (REJECT) ทุก packet</p>
<p>ใช้คำสั่ง iptables ออปชั่น &#8220;-L&#8221; เพื่อแสดงคอนฟิก firewall ที่ใช้งานอยู่</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     2363  182K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3       11   660 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        4   252 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5       10   620 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 1358 packets, 169K bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<pre></pre>
<p>ใช้คำสั่ง iptables ออปชั่น &#8220;-I&#8221; เพิ่มด้วยการแทรก (insert) rule ใหม่เข้าไปแทนที่ rule num 5 ระบุว่าอนุญาต (ACCEPT) ให้การเชื่อมต่อใหม่ (NEW) เข้า (INPUT) พอร์ต tcp 80 ได้</p>
<pre>[root@cent6 ~]# <strong>iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT</strong></pre>
<p>ตรวจสอบผลลัพธ์ที่ได้จาก iptables ออปชั่น &#8220;-L&#8221;</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     2383  184K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3       11   660 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        4   252 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
<span style="color: #0000ff;">5 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80</span>
6       10   620 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 5 packets, 692 bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<pre></pre>
<p>ทดสอบจากเครื่องอื่นด้วยการ telnet เข้าพอร์ต 80 อีกครั้ง จะสามารถเชื่อมต่อได้แล้ว</p>
<pre>$ <strong>telnet 192.168.5.62 80</strong>
Trying 192.168.5.62...
Connected to 192.168.5.62.
Escape character is '^]'.

<strong>HEAD / HTTP/1.0</strong>

HTTP/1.1 403 Forbidden
Date: Sun, 08 Apr 2012 09:06:10 GMT
Server: Apache/2.2.15 (CentOS)
Accept-Ranges: bytes
Content-Length: 5039
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.</pre>
<pre></pre>
<p>&nbsp;</p>
<h4>ลบ (delete) rule</h4>
<p>หากต้องการยกเลิก rule ที่ใส่ไว้ เช่นไม่ต้องการให้เครื่องอื่นสามารถเชื่อมต่อเข้าพอร์ต 80 ได้อีกต่อไปแล้ว สามารถทำได้โดยใช้คำสั่ง iptables ออปชั่น -D ตามด้วย rule num ที่ต้องการลบ (delete) ใช้คำสั่ง iptables ออปชั่น &#8220;-L&#8221; เพื่อแสดง rule ที่เปิดใช้งานอยู่</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     2417  186K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3       11   660 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        4   252 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
<span style="color: #0000ff;">5 1 60 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80</span>
6       10   620 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 27 packets, 5466 bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<p>สมมติว่าต้องการลบ rule ที่อนุญาตการเชื่อมต่อเข้า (INPUT) พอร์ต 80 หรือ rule num 5 สามารถทำได้โดย</p>
<pre>[root@cent6 ~]# <strong>iptables -D INPUT 5</strong></pre>
<p>ใช้คำสั่ง iptables -L จะเห็นว่า rule num 5 ถูกลบไป</p>
<pre>[root@cent6 ~]# <strong>iptables -L -v -n --line-numbers</strong>
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     2518  194K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3       11   660 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        4   252 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5       10   620 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 6 packets, 728 bytes)
num   pkts bytes target     prot opt in     out     source               destination</pre>
<p>&nbsp;</p>
<p>ลองทดสอบ telnet เข้าพอร์ต 80 จากเครื่องอื่นดู ก็ไม่สามารถเชื่อมต่อได้แล้ว</p>
<pre>$ telnet 192.168.5.62 80
 Trying 192.168.5.62...
 telnet: connect to address 192.168.5.62: No route to host</pre>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a title="View Details: แก้ไขคอนฟิก firewall ด้วย system-config-firewall" href="http://spalinux.com/2012/04/configure-firewall-using-system-config-firewall" rel="bookmark">แก้ไขคอนฟิก firewall ด้วย system-config-firewall</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/04/configure-linux-firewall-by-iptables/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คำสั่ง fciv บน Windows เพื่อตรวจสอบความถูกต้องของไฟล์ (md5sum, sha1sum) ที่ดาวน์โหลดมา</title>
		<link>http://spalinux.com/2012/03/use-fciv-on-windows-to-verify-download-file-checksum-md5sum-sha1sum</link>
		<comments>http://spalinux.com/2012/03/use-fciv-on-windows-to-verify-download-file-checksum-md5sum-sha1sum#comments</comments>
		<pubDate>Sat, 24 Mar 2012 10:23:37 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[checksum]]></category>
		<category><![CDATA[md5sum]]></category>
		<category><![CDATA[sha1sum]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1783</guid>
		<description><![CDATA[ไฟล์โปรแกรมของลีนุกซ์ส่วนใหญ่ จะมีการตรวจสอบ checksum ควบคู่ไปด้วย โดยอาจเป็นไฟล์ให้ดาวน์โหลดแยกต่างหาก หรือใส่ไว้ใน Release Notes, Readme ทั้งนี้ก็เพื่อให้ผู้ใช้งาน สามารถตรวจสอบความถูกต้องของไฟล์ที่โหลดมาได้ เพราะบางไฟล์อาจมีขนาดใหญ่มาก เช่นไฟล์ ISO สำหรับติดตั้งลีนุกซ์ เราอาจดาวน์โหลดมาไม่ครบ หรือถ้าไปโหลดจาก mirror site ที่ไม่น่าไว้ว่างใจ อาจมีการแก้ไขไฟล์ระหว่างทางได้ ที่เคยใช้ส่วนใหญ่ก็เป็นคำสั่งบนลีนุกซ์ ไม่ว่าจะเป็น md5sum หรือ sha1sum แต่วันนี้ได้เจอคำสั่ง fciv เพื่อใช้ตรวจสอบ checksum ของไฟล์ บน Windows คลิ้กลิ้งค์  Download the File Checksum Integrity Verifier utility package now เพื่อดาวน์โหลด แล้วติดตั้งไฟล์ไว้ในโฟลเดอร์ เช่น D:\fciv\ ตัวอย่างการใช้คำสั่ง fciv เพื่อตรวจสอบไฟล์ ISO ของ CentOS 6.2 เปรียบเทียบกับ [...]]]></description>
			<content:encoded><![CDATA[<p>ไฟล์โปรแกรมของลีนุกซ์ส่วนใหญ่ จะมีการตรวจสอบ checksum ควบคู่ไปด้วย โดยอาจเป็นไฟล์ให้ดาวน์โหลดแยกต่างหาก หรือใส่ไว้ใน Release Notes, Readme</p>
<p>ทั้งนี้ก็เพื่อให้ผู้ใช้งาน สามารถตรวจสอบความถูกต้องของไฟล์ที่โหลดมาได้ เพราะบางไฟล์อาจมีขนาดใหญ่มาก เช่นไฟล์ ISO สำหรับติดตั้งลีนุกซ์ เราอาจดาวน์โหลดมาไม่ครบ หรือถ้าไปโหลดจาก mirror site ที่ไม่น่าไว้ว่างใจ อาจมีการแก้ไขไฟล์ระหว่างทางได้</p>
<p>ที่เคยใช้ส่วนใหญ่ก็เป็นคำสั่งบนลีนุกซ์ ไม่ว่าจะเป็น md5sum หรือ sha1sum</p>
<p>แต่วันนี้ได้เจอคำสั่ง fciv เพื่อใช้ตรวจสอบ checksum ของไฟล์ บน Windows</p>
<p><span id="more-1783"></span><br />
คลิ้กลิ้งค์  <a href="http://download.microsoft.com/download/c/f/4/cf454ae0-a4bb-4123-8333-a1b6737712f7/Windows-KB841290-x86-ENU.exe" target="_blank">Download the File Checksum Integrity Verifier utility package now</a> เพื่อดาวน์โหลด แล้วติดตั้งไฟล์ไว้ในโฟลเดอร์ เช่น D:\fciv\</p>
<p>ตัวอย่างการใช้คำสั่ง fciv เพื่อตรวจสอบไฟล์ ISO ของ CentOS 6.2</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/fciv-verify-CentOS-6.2.png"><img class="alignnone size-full wp-image-1784" title="fciv-verify-CentOS-6.2" src="http://spalinux.com/wp-content/uploads/2012/03/fciv-verify-CentOS-6.2.png" alt="" width="663" height="148" /></a></p>
<p>เปรียบเทียบกับ sha1sum ใน CentOS 6.2 Release Notes</p>
<p>sha1sum x86_64:<br />
<strong>d97377c83fab7493dbd1c2e04dab29c8ba6cd351</strong>  CentOS-6.2-x86_64-bin-DVD1.iso</p>
<p>ค่าที่คำนวณได้ตรงกับค่าใน Release Notes แสดงว่าไฟล์ที่เราดาวน์โหลดมานั้น ถูกต้อง ใช้งานได้</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://download.microsoft.com/download/c/f/4/cf454ae0-a4bb-4123-8333-a1b6737712f7/Windows-KB841290-x86-ENU.exe" target="_blank">Download the File Checksum Integrity Verifier utility package now</a></li>
<li><a href="http://support.microsoft.com/kb/841290" target="_blank">Availability and description of the File Checksum Integrity Verifier utility</a></li>
<li><a href="http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.2" target="_blank">CentOS 6.2 Release Notes</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/03/use-fciv-on-windows-to-verify-download-file-checksum-md5sum-sha1sum/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง policycoreutils-python เพื่อจัดการ SELinux</title>
		<link>http://spalinux.com/2012/03/install-policycoreutils-python-to-manage-selinux</link>
		<comments>http://spalinux.com/2012/03/install-policycoreutils-python-to-manage-selinux#comments</comments>
		<pubDate>Sun, 18 Mar 2012 09:33:35 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[SELinux]]></category>
		<category><![CDATA[audit2allow]]></category>
		<category><![CDATA[semanage]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1720</guid>
		<description><![CDATA[ตั้งใจไว้ว่าต่อไปนี้จะพยายามใช้ SELinux เพื่อเพิ่มความปลอดภัยของเซิร์ฟเวอร์ลีนุกซ์ แต่ในบางครั้งจำเป็นต้องแก้ไข policy ของ SELinux เพื่อเหตุผลบางประการ เช่นที่เคยเขียนถึงไปแล้ว แก้ไข Joomla Directory Permissions Unwritable บนลีนุกซ์ที่เปิด SELinux โปรแกรมที่ใช้แก้ไข policy นอกจาก chcon แล้ว ยังมีอีกหลายโปรแกรม เช่น audit2allow และ semanage ที่ใช้กัน สำหรับ Fedora 16 ต้องติดตั้งไฟล์ rpm เพิ่มเติม คือ policycoreutils-python ซึ่งจะมีโปรแกรม (เขียนด้วย python) เพื่อใช้จัดการ SELinux ได้ ไฟล์ rpm นี้อยู่ในแผ่นดีวีดีติดตั้งอยู่แล้ว ใส่แผ่นแล้วใช้คำสั่ง mount [root@fc16-64a ~]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, [...]]]></description>
			<content:encoded><![CDATA[<p>ตั้งใจไว้ว่าต่อไปนี้จะพยายามใช้ SELinux เพื่อเพิ่มความปลอดภัยของเซิร์ฟเวอร์ลีนุกซ์</p>
<p>แต่ในบางครั้งจำเป็นต้องแก้ไข policy ของ SELinux เพื่อเหตุผลบางประการ เช่นที่เคยเขียนถึงไปแล้ว <a href="http://spalinux.com/2012/03/fix-joomla-directory-permissions-unwritable-on-linux-enable-selinux">แก้ไข Joomla Directory Permissions Unwritable บนลีนุกซ์ที่เปิด SELinux</a></p>
<p>โปรแกรมที่ใช้แก้ไข policy นอกจาก chcon แล้ว ยังมีอีกหลายโปรแกรม เช่น audit2allow และ semanage ที่ใช้กัน</p>
<p>สำหรับ Fedora 16 ต้องติดตั้งไฟล์ rpm เพิ่มเติม คือ policycoreutils-python ซึ่งจะมีโปรแกรม (เขียนด้วย python) เพื่อใช้จัดการ SELinux ได้</p>
<p><span id="more-1720"></span></p>
<p>ไฟล์ rpm นี้อยู่ในแผ่นดีวีดีติดตั้งอยู่แล้ว ใส่แผ่นแล้วใช้คำสั่ง mount</p>
<pre>[root@fc16-64a ~]# <strong>mount /dev/cdrom /mnt/cdrom</strong>
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@fc16-64a ~]# <strong>cd /mnt/cdrom/Packages/</strong></pre>
<p>ติดตั้งไฟล์ rpm ต่างๆ ดังนี้</p>
<pre>[root@fc16-64a Packages]# <strong>rpm -i audit-libs-python-2.1.3-4.fc16.x86_64.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i libcgroup-0.37.1-4.fc16.x86_64.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i libselinux-python-2.1.5-5.1.fc16.x86_64.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i libsemanage-python-2.1.2-1.fc16.x86_64.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i python-IPy-0.75-1.fc16.noarch.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i setools-libs-3.3.7-16.fc16.x86_64.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i setools-libs-python-3.3.7-16.fc16.x86_64.rpm</strong>
[root@fc16-64a Packages]# <strong>rpm -i policycoreutils-python-2.1.4-3.fc16.x86_64.rpm</strong></pre>
<p>ตัวอย่างการรันโปรแกรม semanage</p>
<pre>[root@fc16-64a ~]# <strong>semanage</strong></pre>
<pre>/usr/sbin/semanage:
semanage [ -S store ] -i [ input_file | - ]
semanage [ -S store ] -o [ output_file | - ]</pre>
<pre>semanage login -{a|d|m|l|D|E} [-nsr] login_name | %groupname
semanage user -{a|d|m|l|D|E} [-LnrRP] selinux_name
semanage port -{a|d|m|l|D|E} [-ntr] [ -p proto ] port | port_range
semanage interface -{a|d|m|l|D|E} [-ntr] interface_spec
semanage module -{a|d|m} [--enable|--disable] module
semanage node -{a|d|m|l|D|E} [-ntr] [ -p protocol ] [-M netmask] addr
semanage fcontext -{a|d|m|l|D|E} [-efnrst] file_spec
semanage boolean -{d|m} [--on|--off|-1|-0] -F boolean | boolean_file
semanage permissive -{d|a|l} [-n] type
semanage dontaudit [ on | off ]</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/03/install-policycoreutils-python-to-manage-selinux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คอนฟิก Squid Proxy Server ให้ตรวจสอบ user, password จาก LDAP</title>
		<link>http://spalinux.com/2012/03/configure-squid-proxy-server-to-authenticate-user-with-ldap</link>
		<comments>http://spalinux.com/2012/03/configure-squid-proxy-server-to-authenticate-user-with-ldap#comments</comments>
		<pubDate>Sun, 18 Mar 2012 07:12:32 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Squid]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1712</guid>
		<description><![CDATA[จากบทความ คอนฟิก Squid Proxy Server ให้ผู้ใช้ใส่ user, password ก่อนเข้าเว็บ เป็นการตรวจสอบ user จาก Local Password หรือไฟล์ /etc/passwd, /etc/shadow ผ่าน Linux PAM ที่อยู่บนเครื่อง proxy server เอง แต่ถ้าบริษัทหรือองค์กรของเรามีการเก็บ user, password อยู่บนเซิร์ฟเวอร์เครื่องอื่น เช่นเก็บรวมเป็นศูนย์กลางบน LDAP Server เราก็สามารถคอนฟิก Squid Proxy Server ให้ตรวจสอบ user, password จาก LDAP Server ได้ วิธีการคือ แก้ไขคอนฟิกในส่วนของ auth_param basic program เปลี่ยนไปใช้ไฟล์ basic_ldap_auth สมมติว่าค่าคอนฟิกต่างๆ ของ LDAP Server มีดังนี้ ออปชั่น &#8216;-v&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>จากบทความ <a href="http://spalinux.com/2012/03/configure-squid-proxy-server-user-authentication-with-local-password">คอนฟิก Squid Proxy Server ให้ผู้ใช้ใส่ user, password ก่อนเข้าเว็บ</a></p>
<p>เป็นการตรวจสอบ user จาก Local Password หรือไฟล์ /etc/passwd, /etc/shadow ผ่าน Linux PAM ที่อยู่บนเครื่อง proxy server เอง</p>
<p>แต่ถ้าบริษัทหรือองค์กรของเรามีการเก็บ user, password อยู่บนเซิร์ฟเวอร์เครื่องอื่น เช่นเก็บรวมเป็นศูนย์กลางบน LDAP Server เราก็สามารถคอนฟิก Squid Proxy Server ให้ตรวจสอบ user, password จาก LDAP Server ได้</p>
<p><span id="more-1712"></span></p>
<p>วิธีการคือ แก้ไขคอนฟิกในส่วนของ auth_param basic program เปลี่ยนไปใช้ไฟล์ basic_ldap_auth</p>
<p>สมมติว่าค่าคอนฟิกต่างๆ ของ LDAP Server มีดังนี้</p>
<ul>
<li>ออปชั่น &#8216;-v&#8217; ระบุเวอร์ชั่นของ LDAP ที่ใช้ = 3</li>
<li>ออปชั่น &#8216;-b&#8217; ระบุ Base DN สำหรับการค้นหา = &#8220;dc=example,dc=com&#8221;</li>
<li>ออปชั่น &#8216;-f&#8217; ระบุเงื่อนไขการค้นหา uid=% คือให้ค้นหาการ username (บน LDAP Server ก็ต้องเก็บโดยใช้ชื่อฟิลด์ uid ด้วย)</li>
<li>ออปชั่น &#8216;-h&#8217; ระบุ IP Address = 192.168.1.10</li>
</ul>
<p>แต่ถ้า LDAP Server ที่คุณใช้ ต้องมีการระบุชื่อ DN และ password ที่ใช้ bind ด้วย ก็ต้องระบุ 2 ออปชั่นนี้เพิ่มเติม</p>
<ul>
<li>ออปชั่น &#8216;-D&#8217; ระบุชื่อ DN สำหรับการ bind เข้า LDAP</li>
<li>ออปชั่น &#8216;-w&#8217; ระบุ password ที่ใช้ bind เข้า LDAP</li>
</ul>
<p>ตัวอย่างการแก้ไขคอนฟิก</p>
<pre>[root@fc16-64a ~]# <strong>cat /etc/squid/squid.conf</strong>
....
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
auth_param basic children 5
auth_param basic realm Proxy Authentication
auth_param basic credentialsttl 12 hours
<span style="color: #0000ff;">auth_param basic program /usr/lib64/squid/basic_ldap_auth -v 3 -b "dc=example,dc=com" -f uid=%s -h 192.168.1.10</span></pre>
<pre>acl <span style="color: #0000ff;">user_ldap_auth</span> proxy_auth REQUIRED
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet <span style="color: #0000ff;">user_ldap_auth</span>
...</pre>
<p>ใช้คำสั่ง service หรือ systemctl เพื่อ start หรือ reload เซอร์วิส squid</p>
<pre>[root@fc16-64a ~]# <strong>systemctl reload squid.service</strong></pre>
<p>เสร็จแล้วลองทดสอบจาก Browser</p>
<p><strong>หมายเหตุ</strong> หลังจากทดสอบเรียบร้อยใช้งานได้แล้ว เพื่อความปลอดภัยของเซิร์ฟเวอร์ หากคุณเปลี่ยนจาก basic_pam_auth มาเป็น basic_ldap_auth แล้ว ให้ยกเลิก setuid root ของไฟล์ basic_pam_auth ด้วย ใช้คำสั่ง chmod ดังนี้</p>
<pre>[root@fc16-64a ~]# <strong>ls -l /usr/lib64/squid/basic_pam_auth</strong>
-rw<span style="color: #ff0000;">s</span>r-x---. 1 root squid 15416 Sep 20 15:36 /usr/lib64/squid/basic_pam_auth</pre>
<pre>[root@fc16-64a ~]# <strong>chmod u-s /usr/lib64/squid/basic_pam_auth</strong></pre>
<pre>[root@fc16-64a ~]# <strong>ls -l /usr/lib64/squid/basic_pam_auth</strong>
-rw<span style="color: #0000ff;">x</span>r-x---. 1 root squid 15416 Sep 20 15:36 /usr/lib64/squid/basic_pam_auth</pre>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2012/03/configure-squid-proxy-server-user-authentication-with-local-password">คอนฟิก Squid Proxy Server ให้ผู้ใช้ใส่ user, password ก่อนเข้าเว็บ</a></li>
<li><a href="http://spalinux.com/2010/07/install_openldap_server_on_fedora_13">ติดตั้ง OpenLDAP Server บน Fedora 13</a></li>
<li><a href="http://www.squid-cache.org/Versions/v3/3.2/manuals/basic_ldap_auth.html" target="_blank">squid: basic_ldap_auth</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/03/configure-squid-proxy-server-to-authenticate-user-with-ldap/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

