<?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; Authentication</title>
	<atom:link href="http://spalinux.com/category/authentication/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>ถ่ายโอนไฟล์ระหว่าง 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>เริ่มใช้ CentOS 6.2 : บู๊ต ล็อกอิน และ ปิดเครื่อง</title>
		<link>http://spalinux.com/2012/03/using-centos-6-2-boot-login-shutdown</link>
		<comments>http://spalinux.com/2012/03/using-centos-6-2-boot-login-shutdown#comments</comments>
		<pubDate>Sat, 31 Mar 2012 07:41:21 +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[boot]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[shutdown]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1894</guid>
		<description><![CDATA[หน้าจอบู๊ตของ CentOS 6.2 หากไม่ต้องการแก้ไขค่าคอนฟิกของการบู๊ต ก็ปล่อยผ่านไป ประมาณ 5 วินาที เครื่องก็จะบู๊ตเพื่อรันเซอร์วิสต่างๆ โดยอัตโนมัติ &#160; แต่ถ้าหากต้องการเข้าหน้าเมนูบู๊ต เพื่อแก้ไขค่าคอนฟิกหรือแก้ไขปัญหาการบู๊ต ให้กดปุ่มอะไรก็ได้ จะเข้าสู่ หน้าจอเมนูบู๊ต ในหน้าจอเมนูบู๊ต หากต้องการเริ่มบู๊ตเครื่องให้กดปุ่ม [Enter] &#160; หน้าจอขึ้นแถบสี แสดงว่ากำลังรันโปรเซสหรือเซอร์วิสต่างๆ อยู่ รอจนกว่าแถบสีขาวจะเต็ม ถึงจะบู๊ตเสร็จเรียบร้อย &#160; &#160; โดยปกติการบู๊ตของ CentOS ไม่น่าจะเกิน 10 นาที (ไม่รวมการ warm-up เครื่อง) หากหน้าจอแสดงแถบสีค้าง นานเกินไป สามารถกดปุ่ม [Esc] เพื่อดูรายละเอียดการบู๊ตว่า ค้างอยู่ขั้นตอนไหน เพื่อตรวจสอบปัญหาได้ ตัวอย่างหน้าจอแสดงรายละเอียดการบู๊ต เมื่อกดปุ่ม [Esc] &#160; เมื่อบู๊ตเสร็จเรียบร้อย หน้าจอจะขึ้นตัวหนังสือแสดงเวอร์ชั่นของ CentOS และ Linux Kernel พร้อมให้ login &#160; &#160; เริ่มต้น [...]]]></description>
			<content:encoded><![CDATA[<p>หน้าจอบู๊ตของ CentOS 6.2</p>
<p>หากไม่ต้องการแก้ไขค่าคอนฟิกของการบู๊ต ก็ปล่อยผ่านไป ประมาณ 5 วินาที เครื่องก็จะบู๊ตเพื่อรันเซอร์วิสต่างๆ โดยอัตโนมัติ</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/01-Booting-CentOS.png"><span id="more-1894"></span><br />
<img class="alignnone size-full wp-image-1895" title="01-Booting-CentOS" src="http://spalinux.com/wp-content/uploads/2012/03/01-Booting-CentOS.png" alt="" width="459" height="79" /></a></p>
<p>&nbsp;</p>
<p>แต่ถ้าหากต้องการเข้าหน้าเมนูบู๊ต เพื่อแก้ไขค่าคอนฟิกหรือแก้ไขปัญหาการบู๊ต ให้กดปุ่มอะไรก็ได้ จะเข้าสู่ หน้าจอเมนูบู๊ต</p>
<p>ในหน้าจอเมนูบู๊ต หากต้องการเริ่มบู๊ตเครื่องให้กดปุ่ม [Enter]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/02-GRUB-menu.png"><img class="alignnone size-full wp-image-1896" title="02-GRUB-menu" src="http://spalinux.com/wp-content/uploads/2012/03/02-GRUB-menu.png" alt="" width="616" height="348" /></a></p>
<p>&nbsp;</p>
<p>หน้าจอขึ้นแถบสี แสดงว่ากำลังรันโปรเซสหรือเซอร์วิสต่างๆ อยู่ รอจนกว่าแถบสีขาวจะเต็ม ถึงจะบู๊ตเสร็จเรียบร้อย</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/03-booting-slide.png"><img class="alignnone size-full wp-image-1897" title="03-booting-slide" src="http://spalinux.com/wp-content/uploads/2012/03/03-booting-slide.png" alt="" width="720" height="70" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>โดยปกติการบู๊ตของ CentOS ไม่น่าจะเกิน 10 นาที (ไม่รวมการ warm-up เครื่อง) หากหน้าจอแสดงแถบสีค้าง นานเกินไป สามารถกดปุ่ม [Esc] เพื่อดูรายละเอียดการบู๊ตว่า ค้างอยู่ขั้นตอนไหน เพื่อตรวจสอบปัญหาได้</p>
<p>ตัวอย่างหน้าจอแสดงรายละเอียดการบู๊ต เมื่อกดปุ่ม [Esc]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/04-booting-messages.png"><img class="alignnone size-full wp-image-1898" title="04-booting-messages" src="http://spalinux.com/wp-content/uploads/2012/03/04-booting-messages.png" alt="" width="606" height="215" /></a></p>
<p>&nbsp;</p>
<p>เมื่อบู๊ตเสร็จเรียบร้อย หน้าจอจะขึ้นตัวหนังสือแสดงเวอร์ชั่นของ CentOS และ Linux Kernel พร้อมให้ login</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/05-login.png"><img class="alignnone size-full wp-image-1899" title="05-login" src="http://spalinux.com/wp-content/uploads/2012/03/05-login.png" alt="" width="387" height="99" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>เริ่มต้น login ด้วย root และใส่ password ที่ได้ระบุไว้ตอนติดตั้ง</p>
<p>หากใส่ login, password ถูกต้อง หน้าจอจะขึ้นคล้ายตัวอย่าง [root@cent6 ~]# หรือเรียกกว่า prompt ของ root</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/06-login-root.png"><img class="alignnone size-full wp-image-1900" title="06-login-root" src="http://spalinux.com/wp-content/uploads/2012/03/06-login-root.png" alt="" width="383" height="141" /></a></p>
<p>&nbsp;</p>
<p>แต่ถ้าใส่ login, password ไม่ถูกต้อง จะขึ้น Login incorrect ต้องใส่ login, password อีกครั้ง</p>
<p>หมายเหตุ สำหรับ Linux/UNIX ตัวอักษรใหญ่ เล็ก จะมีผลทั้ง login, password เช่น root ต้องพิมพ์เป็นตัวอักษรตัวเล็กทั้งหมด</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/login-incorrect.png"><img title="login-incorrect" src="http://spalinux.com/wp-content/uploads/2012/03/login-incorrect.png" alt="" width="377" height="165" /></a></p>
<p>&nbsp;</p>
<p>คำสั่งแรกที่อยากแนะนำให้รู้จักหลังจากเปิดเครื่อง บู๊ตเครื่อง ล็อกอินด้วย root ได้สำเร็จแล้ว คือคำสั่งปิดเครื่อง</p>
<p>พิมพ์คำสั่ง shutdown –h now เพื่อปิดเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/07-shutdown.png"><img class="alignnone size-full wp-image-1901" title="07-shutdown" src="http://spalinux.com/wp-content/uploads/2012/03/07-shutdown.png" alt="" width="382" height="159" /></a></p>
<p>&nbsp;</p>
<p>แนะนำให้ใช้คำสั่ง shutdown ทุกครั้งสำหรับการปิดเครื่อง เพื่อการปิดโปรแกรม ปิดโปรเซส ปิดเซอร์วิส อย่างถูกต้อง</p>
<p>หน้าจอแสดงรายละเอียดการปิดเซอร์วิสต่างๆ ก่อนการปิดเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/08-shutdown-messages.png"><img class="alignnone size-full wp-image-1902" title="08-shutdown-messages" src="http://spalinux.com/wp-content/uploads/2012/03/08-shutdown-messages.png" alt="" width="607" height="174" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/03/using-centos-6-2-boot-login-shutdown/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง CentOS 6.2 : เลือก time zone, ใส่ root password</title>
		<link>http://spalinux.com/2012/03/centos-6-2-installation-select-time-zone-enter-root-password</link>
		<comments>http://spalinux.com/2012/03/centos-6-2-installation-select-time-zone-enter-root-password#comments</comments>
		<pubDate>Sun, 25 Mar 2012 15:15:41 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Time]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1872</guid>
		<description><![CDATA[หน้าจอให้เลือก time zone สามารถใช้เมาส์คลิ้กไปที่แผนที่เลือก Bangkok หรือเลือกจากเมนู ภายใต้ Selected city เลือก Asia/Bangkok &#160; ด้านล่างซ้ายของหน้าจอ จะมีให้เลือก [ ] System Clock uses UTC แนะนำให้คลิ้กออก &#160; คลิ้กปุ่ม Next ไปขั้นตอนต่อไป หน้าจอให้ใส่รหัสผ่าน (password) ของ root ใส่สองครั้งให้เหมือนกัน &#160; ข้อมูลอ้างอิง System clock uses UTC กับเวลาของเครื่องลีนุกซ์]]></description>
			<content:encoded><![CDATA[<p>หน้าจอให้เลือก time zone สามารถใช้เมาส์คลิ้กไปที่แผนที่เลือก Bangkok หรือเลือกจากเมนู ภายใต้ Selected city เลือก Asia/Bangkok</p>
<p><span id="more-1872"></span></p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/01-select-time-zone.png"><img class="alignnone size-full wp-image-1874" title="01-select-time-zone" src="http://spalinux.com/wp-content/uploads/2012/03/01-select-time-zone.png" alt="" width="568" height="361" /></a></p>
<p>&nbsp;</p>
<p>ด้านล่างซ้ายของหน้าจอ จะมีให้เลือก [ ] System Clock uses UTC แนะนำให้คลิ้กออก</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/disable-System-Clock-uses-UTC.png"><img class="alignnone size-full wp-image-2097" title="disable-System-Clock-uses-UTC" src="http://spalinux.com/wp-content/uploads/2012/03/disable-System-Clock-uses-UTC.png" alt="" width="207" height="60" /></a></p>
<p>&nbsp;</p>
<p>คลิ้กปุ่ม Next ไปขั้นตอนต่อไป</p>
<p>หน้าจอให้ใส่รหัสผ่าน (password) ของ root ใส่สองครั้งให้เหมือนกัน</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/02-enter-root-password.png"><img class="alignnone size-full wp-image-1875" title="02-enter-root-password" src="http://spalinux.com/wp-content/uploads/2012/03/02-enter-root-password.png" alt="" width="390" height="155" /></a></p>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a title="View Details: System clock uses UTC กับเวลาของเครื่องลีนุกซ์" href="http://spalinux.com/2012/04/system-clock-uses-utc-and-linux-system-time-date" rel="bookmark">System clock uses UTC กับเวลาของเครื่องลีนุกซ์</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/03/centos-6-2-installation-select-time-zone-enter-root-password/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>
		<item>
		<title>คอนฟิก Squid Proxy Server ให้ผู้ใช้ใส่ user, password ก่อนเข้าเว็บ</title>
		<link>http://spalinux.com/2012/03/configure-squid-proxy-server-user-authentication-with-local-password</link>
		<comments>http://spalinux.com/2012/03/configure-squid-proxy-server-user-authentication-with-local-password#comments</comments>
		<pubDate>Fri, 16 Mar 2012 18:18:54 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Squid]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[pam]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1701</guid>
		<description><![CDATA[บทความนี้อธิบายวิธีการคอนฟิก Squid Proxy Server เพื่อให้ผู้ใช้งานต้องใส่ user, password ก่อนถึงจะใช้งานอินเตอร์เน็ตได้ โดยจะตรวจสอบ user, password กับ Local Password หรือไฟล์ /etc/passwd, /etc/shadow ผ่าน Linux PAM ที่อยู่บนเครื่อง Proxy Server เอง ทดสอบบน Fedora 16 ติดตั้ง squid-3.2.0.12-1 ติดตั้งไฟล์ rpm จากแผ่นดีวีดีติดตั้ง [root@fc16-64a ~]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only [root@fc16-64a ~]# cd /mnt/cdrom/Packages/ [root@fc16-64a Packages]# rpm -i squid-3.2.0.12-1.fc16.x86_64.rpm มีหลายวิธีที่คอนฟิกให้ถาม [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้อธิบายวิธีการคอนฟิก Squid Proxy Server เพื่อให้ผู้ใช้งานต้องใส่ user, password ก่อนถึงจะใช้งานอินเตอร์เน็ตได้</p>
<p>โดยจะตรวจสอบ user, password กับ Local Password หรือไฟล์ /etc/passwd, /etc/shadow ผ่าน Linux PAM ที่อยู่บนเครื่อง Proxy Server เอง</p>
<p><span id="more-1701"></span></p>
<p>ทดสอบบน Fedora 16 ติดตั้ง squid-3.2.0.12-1</p>
<p>ติดตั้งไฟล์ rpm จากแผ่นดีวีดีติดตั้ง</p>
<pre>[root@fc16-64a ~]# <strong>mount /dev/cdrom /mnt/cdrom</strong>
mount: block device /dev/sr0 is write-protected, mounting read-only</pre>
<pre>[root@fc16-64a ~]# <strong>cd /mnt/cdrom/Packages/</strong>
[root@fc16-64a Packages]# <strong>rpm -i squid-3.2.0.12-1.fc16.x86_64.rpm</strong></pre>
<p>มีหลายวิธีที่คอนฟิกให้ถาม user, password ก่อนใช้ proxy ได้ วิธีหนึ่งคือเพิ่มคอนฟิกออปชั่น auth_param basic มี 3 ขั้นตอนดังนี้</p>
<ol>
<li>ตั้งค่าคอนฟิกของ auth_param basic มีอยู่หลายค่า บรรทัดสำคัญคือ program ในที่นี้จะเลือกเป็น basic_pam_auth เพื่อให้ตรวจสอบกับ Linux PAM</li>
<li>สร้าง acl เป็นชนิด proxy_auth ในตัวอย่างนี้ ตั้งชื่อ acl เป็น user_pam_auth</li>
<li>สุดท้ายนำ acl ที่สร้างขึ้นไปผูกเงื่อนไขใน http_access เช่นในที่นี้ ยังคงอนุญาตให้เครื่องที่อยู่ใน localnet ใช้ proxy ได้ แต่ต้องใส่ user, password ก่อน</li>
</ol>
<p>ตัวอย่างแก้ไขไฟล์ /etc/squid/squid.conf (แสดงเฉพาะส่วนที่แก้ไขจากดีฟอลต์คอนฟิกเท่านั้น)</p>
<pre>[root@fc16-64a ~]# <strong>cat /etc/squid/squid.conf</strong>
....
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
<span style="color: #0000ff;"><strong>auth_param basic children 5</strong></span>
<span style="color: #0000ff;"><strong>auth_param basic realm Proxy Authentication</strong></span>
<span style="color: #0000ff;"><strong>auth_param basic credentialsttl 12 hours</strong></span>
<span style="color: #0000ff;"><strong>auth_param basic program /usr/lib64/squid/basic_pam_auth</strong></span></pre>
<pre><span style="color: #0000ff;"><strong>acl user_pam_auth proxy_auth REQUIRED</strong></span></pre>
<pre># 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 <strong><span style="color: #0000ff;">user_pam_auth</span></strong>
...</pre>
<p>&nbsp;</p>
<p>ใช้คำสั่ง service หรือ systemctl เพื่อ start หรือ reload เซอร์วิส squid</p>
<pre>[root@fc16-64a ~]# <strong>systemctl reload squid.service</strong></pre>
<p>ใช้คำสั่ง useradd เพิ่ม user สำหรับทดสอบ</p>
<pre>[root@fc16-64a ~]# <strong>useradd -g users user1</strong>
[root@fc16-64a ~]# <strong>passwd user1</strong>
Changing password for user user1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.</pre>
<pre></pre>
<h4>ทดสอบจาก Browser</h4>
<p>คอนฟิก Browser ของเครื่องผู้ใช้ ให้ชี้มาที่ proxy แล้วลองเข้าเว็บดู จะมีหน้าจอให้ใส่ user, password ลองใส่ user ที่เพิ่งสร้างขึ้น</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/p01-user-password.png"><img class="alignnone size-full wp-image-1702" title="p01-user-password" src="http://spalinux.com/wp-content/uploads/2012/03/p01-user-password.png" alt="" width="620" height="242" /></a></p>
<p>&nbsp;</p>
<p>แม้จะพยายามใส่ user, password อย่างไร ก็ไม่สำเร็จ</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/03/p02-cache-denied.png"><img class="alignnone size-full wp-image-1703" title="p02-cache-denied" src="http://spalinux.com/wp-content/uploads/2012/03/p02-cache-denied.png" alt="" width="786" height="299" /></a></p>
<p>&nbsp;</p>
<p>ที่เป็นเช่นนี้เนื่องจาก basic_pam_auth ไ่ม่สามารถอ่านไฟล์ /etc/shadow ได้ จำเป็นต้องแก้ไขไฟล์นี้ให้เป็น setuid root</p>
<p>ใช้คำสั่ง chmod เพื่อแก้ไขไฟล์ให้เป็น setuid root</p>
<pre>[root@fc16-64a ~]# <strong>ls -l /usr/lib64/squid/basic_pam_auth</strong>
-rwxr-xr-x. 1 root root 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: #ff0000;">s</span>r-xr-x. 1 root root 15416 Sep 20 15:36 /usr/lib64/squid/basic_pam_auth</pre>
<p>&nbsp;</p>
<p>แต่การใช้ setuid root แบบนี้ ค่อนข้างอันตราย user ทั่วไป บนเครื่องเซิร์ฟเวอร์ สามารถรันโปรแกรมนี้แล้วตรวจสอบไฟล์ /etc/shadow ได้</p>
<p>วิธีที่จะพอป้องกันได้ คือให้เฉพาะ squid รันไฟล์นี้ได้เท่านั่้น ตัวอย่างเช่น</p>
<pre>[root@fc16-64a ~]# <strong>chmod 750 /usr/lib64/squid/basic_pam_auth</strong>
[root@fc16-64a ~]# <strong>chgrp squid /usr/lib64/squid/basic_pam_auth</strong>
[root@fc16-64a ~]# <strong>ls -l /usr/lib64/squid/basic_pam_auth</strong>
-rwxr-x<span style="color: #0000ff;">---</span>. 1 root <span style="color: #0000ff;">squid</span> 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>
[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>
<p>รีโหลดเซอร์วิสหลังแก้ไข</p>
<pre>[root@fc16-64a ~]# <strong>systemctl reload squid.service</strong></pre>
<p>ลองใส่ user, password อีกครั้ง บน browser น่าจะใช้งานได้แล้ว</p>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.squid-cache.org/Versions/v3/3.2/manuals/basic_pam_auth.html" target="_blank">squid: basic_pam_auth</a></li>
<li><a href="http://spalinux.com/2008/05/configure_squid_proxy_server" target="_blank">คอนฟิก Squid Proxy Server</a></li>
<li><a title="View Details: คอนฟิก Squid Proxy Server ให้ตรวจสอบ user, password จาก LDAP" href="http://spalinux.com/2012/03/configure-squid-proxy-server-to-authenticate-user-with-ldap" rel="bookmark">คอนฟิก Squid Proxy Server ให้ตรวจสอบ user, password จาก LDAP</a></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/03/configure-squid-proxy-server-user-authentication-with-local-password/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>จำกัดจำนวน login พร้อมกันของผู้ใช้เดียวกัน</title>
		<link>http://spalinux.com/2011/05/limit_maximum_number_of_logins_for_user</link>
		<comments>http://spalinux.com/2011/05/limit_maximum_number_of_logins_for_user#comments</comments>
		<pubDate>Sun, 08 May 2011 07:13:52 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1325</guid>
		<description><![CDATA[การจำกัด (limit) จำนวนการ login พร้อมกันโดยใช้ชื่อผู้ใช้เดียวกัน สามารถคอนฟิกด้วยออปชั่น &#8220;maxlogins&#8221; ในไฟล์ /etc/security/limits.conf คำอธิบายออปชั่น &#8220;maxlogins&#8221; คือ max number of logins for this user คอนฟิกได้สองแบบคือ จำกัดเป็นรายคน เช่น ชื่อผู้ใช้ user1 สามารถ login ได้สูงสุดพร้อมกันได้แค่ 2 sessions แต่ถ้าต้องการจำกัดผู้ใช้ที่อยู่ในกลุ่ม (group) ให้เติมเครื่องหมาย @ ข้างหน้าชื่อกลุ่ม ตัวอย่างคอนฟิก จำกัดผู้ใช้ user1 ให้ login พร้อมกันได้แค่ 2 sessions เท่านั้น [root@server ~]# cat /etc/security/limits.conf user1           -       maxlogins       2 หลังแก้ไขไฟล์แล้ว คอนฟิกใหม่มีผลต่อการ login ครั้งต่อไปเลย [...]]]></description>
			<content:encoded><![CDATA[<p>การจำกัด (limit) จำนวนการ login พร้อมกันโดยใช้ชื่อผู้ใช้เดียวกัน สามารถคอนฟิกด้วยออปชั่น &#8220;maxlogins&#8221; ในไฟล์ /etc/security/limits.conf</p>
<p>คำอธิบายออปชั่น &#8220;maxlogins&#8221; คือ max number of logins for this user</p>
<p><span id="more-1325"></span></p>
<p>คอนฟิกได้สองแบบคือ จำกัดเป็นรายคน เช่น ชื่อผู้ใช้ user1 สามารถ login ได้สูงสุดพร้อมกันได้แค่ 2 sessions แต่ถ้าต้องการจำกัดผู้ใช้ที่อยู่ในกลุ่ม (group) ให้เติมเครื่องหมาย @ ข้างหน้าชื่อกลุ่ม</p>
<p>ตัวอย่างคอนฟิก จำกัดผู้ใช้ user1 ให้ login พร้อมกันได้แค่ 2 sessions เท่านั้น</p>
<pre>[root@server ~]# <strong>cat /etc/security/limits.conf
</strong>user1           -       maxlogins       2</pre>
<p>หลังแก้ไขไฟล์แล้ว คอนฟิกใหม่มีผลต่อการ login ครั้งต่อไปเลย ไม่จำเป็นต้องรีสตาร์ตโปรแกรม หรือเซอร์วิสใด</p>
<p>ตัวอย่างข้อความในไฟล์ /var/log/secure ที่เกิดขึ้น ระหว่างการทดสอบ login</p>
<p>login ด้วย user1 ครั้งแรก ได้</p>
<pre>Jul  8 13:21:19 server sshd[2375]: Accepted password for user1 from 192.168.1.12 port 4310 ssh2
Jul  8 13:21:19 server sshd[2375]: pam_unix(sshd:session): session opened for user user1 by (uid=0)</pre>
<p>login ด้วย user1 ครั้งที่ 2 ก็ได้</p>
<pre>Jul  8 13:21:39 server sshd[2400]: Accepted password for user1 from 192.168.1.12 port 4311 ssh2
Jul  8 13:21:39 server sshd[2400]: pam_unix(sshd:session): session opened for user user1 by (uid=0)</pre>
<p>ใช้คำสั่ง w เพื่อดูผู้ใช้ที่ login อยู่</p>
<pre>[user1@server ~]$ <strong>w</strong>
 13:21:49 up 14 min,  3 users,  load average: 0.07, 0.19, 0.25
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
admin    pts/0    192.168.1.12         13:19   35.00s  0.72s  0.18s sshd: admin [priv]
user1    pts/1    192.168.1.12         13:21   30.00s  0.20s  0.20s -bash
user1    pts/2    192.168.1.12         13:21    0.00s  0.25s  0.04s w</pre>
<p>login ด้วย user1 ครั้งที่ 3 จะไม่ได้แล้ว</p>
<pre>Jul  8 13:22:00 server sshd[2426]: Accepted password for user1 from 192.168.1.12 port 4312 ssh2
Jul  8 13:22:00 server sshd[2426]: <span style="color: #ff0000;"><strong>pam_limits(sshd:session): Too many logins (max 2) for user1
</strong></span>Jul  8 13:22:00 server sshd[2426]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Jul  8 13:22:00 server sshd[2426]: error: PAM: pam_open_session(): Permission denied</pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/05/limit_maximum_number_of_logins_for_user/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ล็อกอินผิดมากเกิน แบนซะด้วย fail2ban</title>
		<link>http://spalinux.com/2011/05/ban_failed_login_attempts_using_fail2ban</link>
		<comments>http://spalinux.com/2011/05/ban_failed_login_attempts_using_fail2ban#comments</comments>
		<pubDate>Sat, 07 May 2011 09:01:08 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[fail2ban]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1316</guid>
		<description><![CDATA[หากเซิร์ฟเวอร์ของคุณตั้งอยู่บนอินเตอร์เน็ต เพื่อให้บริการเว็บไซต์หรืออื่นๆ และคุณจำเป็นต้องเปิด SSH เพื่อสามารถ login เข้าไปตรวจสอบสถานะของเครื่องได้ คุณต้องเคยเจอปัญหานี้แน่นอน คือมีการพยายามเจาะระบบด้วยการ ssh เข้ามา ด้วย user, password ต่างๆ ที่คาดว่าจะมีในเครื่อง ตัวอย่างไฟล์ /var/log/secure แสดงถึงการพยายาม ssh แต่ไม่สำเร็จ May  2 16:39:27 server sshd[8309]: Invalid user john from x.x.x.x May  2 16:39:27 server sshd[8310]: input_userauth_request: invalid user john May  2 16:39:27 server sshd[8309]: pam_unix(sshd:auth): check pass; user unknown May  2 16:39:27 server sshd[8309]: pam_unix(sshd:auth): [...]]]></description>
			<content:encoded><![CDATA[<p>หากเซิร์ฟเวอร์ของคุณตั้งอยู่บนอินเตอร์เน็ต เพื่อให้บริการเว็บไซต์หรืออื่นๆ และคุณจำเป็นต้องเปิด SSH เพื่อสามารถ login เข้าไปตรวจสอบสถานะของเครื่องได้</p>
<p>คุณต้องเคยเจอปัญหานี้แน่นอน คือมีการพยายามเจาะระบบด้วยการ ssh เข้ามา ด้วย user, password ต่างๆ ที่คาดว่าจะมีในเครื่อง</p>
<p><span id="more-1316"></span></p>
<p>ตัวอย่างไฟล์ /var/log/secure แสดงถึงการพยายาม ssh แต่ไม่สำเร็จ</p>
<pre>May  2 16:39:27 server sshd[8309]: Invalid user john from x.x.x.x
May  2 16:39:27 server sshd[8310]: input_userauth_request: invalid user john
May  2 16:39:27 server sshd[8309]: pam_unix(sshd:auth): check pass; user unknown
May  2 16:39:27 server sshd[8309]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=x.x.x.x
May  2 16:39:27 server sshd[8309]: pam_succeed_if(sshd:auth): error retrieving information about user john
May  2 16:39:29 server sshd[8309]: Failed password for invalid user john from x.x.x.x port 3291 ssh2
May  2 16:39:29 server sshd[8310]: Received disconnect from x.x.x.x: 11: Bye Bye</pre>
<pre> </pre>
<p>การป้องกัน หรือคำแนะนำอย่างแรก ที่พึงกระทำคือ ตั้ง user, password ให้ยากต่อการคาดเดา แต่เท่านั้นอาจไม่เพียงพอ</p>
<p>บทความนี้ขอเสนอวิธีการป้องกันด้วย fail2ban ซึ่งจะช่วยแบน ip ที่พยายาม login แต่ไม่สำเร็จได้</p>
<p>หลักการทำงานคร่าวๆ คือ โปรแกรม fail2ban จะคอยตรวจสอบไฟล์ที่ตั้งไว้ โดยค้นหาคำหรือประโยคที่เกิดขึ้นในไฟล์ เมื่อมีการ failed attempts เกิดขึ้นถึงจำนวนครั้งที่กำหนด fail2ban จะทำการบางอย่างที่ตั้งไว้ เช่น รันคำสั่ง iptables เพื่อ DROP packets ได้</p>
<h4>ติดตั้งไฟล์ rpm</h4>
<p>ในที่นี้ทดสอบบน Fedora 14 ต้องติดตั้งไฟล์ rpm เพิ่มเติมดังนี้</p>
<pre>[root@fc14-x64 ~]# <strong>rpm -ivh gamin-python-0.1.10-8.fc14.x86_64.rpm
</strong>[root@fc14-x64 ~]# <strong>rpm -ivh shorewall-4.4.11.1-1.fc14.noarch.rpm
</strong>[root@fc14-x64 ~]# <strong>rpm -ivh fail2ban-0.8.4-25.fc14.noarch.rpm</strong></pre>
<p>เพื่อความชัดเจนในการทดสอบ จะรันคำสั่ง service iptables stop เพื่อเคลียร์ rule ของ iptables ทั้งหมดออกก่อน</p>
<pre>[root@fc14-x64 ~]# <strong>service iptables stop
</strong>iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]</pre>
<p>ใช้คำสั่ง iptables เพื่อแสดง rule ที่ใช้งานอยู่</p>
<pre>[root@fc14-x64 ~]# <strong>iptables -L -v -n
</strong>Chain INPUT (policy ACCEPT 46 packets, 3176 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain OUTPUT (policy ACCEPT 40 packets, 5272 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<p>ใช้คำสั่ง service เพื่อสตาร์ต fail2ban</p>
<pre>[root@fc14-x64 ~]# <strong>service fail2ban start
</strong>Starting fail2ban:                                         [  OK  ]</pre>
<p>ใช้คำสั่ง ps เพื่อดูโปรเซสของ fail2ban</p>
<pre>[root@fc14-x64 ~]# <strong>ps -ef | grep fail2ban
</strong>root      1151     1  0 23:32 ?        00:00:00 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -x</pre>
<p>ดูในไฟล์ /var/log/messages แสดงการเริ่มต้นทำงานของ fail2ban</p>
<pre>[root@fc14-x64 ~]# <strong>tail /var/log/messages</strong></pre>
<pre>May  6 23:35:32 fc14-x64 fail2ban.server : INFO   Changed logging target to SYSLOG for Fail2ban v0.8.4
May  6 23:35:32 fc14-x64 fail2ban.jail   : INFO   Creating new jail 'ssh-iptables'
May  6 23:35:32 fc14-x64 fail2ban.jail   : INFO   Jail 'ssh-iptables' uses Gamin
May  6 23:35:32 fc14-x64 fail2ban.filter : INFO   Added logfile = /var/log/secure
May  6 23:35:32 fc14-x64 fail2ban.filter : INFO   Set maxRetry = 5
May  6 23:35:32 fc14-x64 fail2ban.filter : INFO   Set findtime = 600
May  6 23:35:32 fc14-x64 fail2ban.actions: INFO   Set banTime = 600
May  6 23:35:32 fc14-x64 fail2ban.jail   : INFO   Jail 'ssh-iptables' started</pre>
<p>ดีฟอลต์คอนฟิกไฟล์ rpm ที่ได้มาจาก Fedora 14 จะตรวจสอบเฉพาะการพยายาม SSH โดยดูในไฟล์ /var/log/secure</p>
<p>fail2ban จะสร้าง rule และ chain ใหม่ขึ้นมา ใน iptables</p>
<pre>[root@fc14-x64 ~]# <strong>iptables -L -v -n
</strong>Chain INPUT (policy ACCEPT 92 packets, 7885 bytes)
 pkts bytes target     prot opt in     out     source               destination
<span style="color: #0000ff;"><strong>   53  4052 fail2ban-SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22</strong></span></pre>
<pre>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain OUTPUT (policy ACCEPT 84 packets, 8087 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain <strong><span style="color: #0000ff;">fail2ban-SSH</span> </strong>(1 references)
 pkts bytes target     prot opt in     out     source               destination
<span style="color: #0000ff;"><strong>   53  4052 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0</strong></span></pre>
<p> </p>
<h4>ไฟล์คอนฟิกของ fail2ban</h4>
<p>ไฟล์คอนฟิกของ fail2ban อยู่ใน /etc/fail2ban/</p>
<p>ไฟล์ /etc/fail2ban/jail.conf จะเป็นการกำหนดการทำงานของ fail2ban</p>
<p>คอนฟิกบางส่วนจากไฟล์ jail.conf</p>
<pre>[root@fc14-x64 ~]# <strong>cat /etc/fail2ban/jail.conf</strong>
...
[DEFAULT]
...
# "bantime" is the number of seconds that a host is banned.
<span style="color: #0000ff;">bantime  = 600</span></pre>
<pre># A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
<span style="color: #0000ff;">findtime  = 600
</span>...
[ssh-iptables]</pre>
<pre>enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, sender=fail2ban@mail.com]
logpath  = /var/log/secure
maxretry = 5</pre>
<p>คำอธิบายคร่าวๆ จากไฟล์ jail.conf คือ ให้ตรวจสอบ (filter) การ ssh โดยดูในไฟล์ (logpath) /var/log/secure ว่า ถ้ามีการ failed login เกิน (maxretry) ครั้ง ภายในเวลา (findtime) 600 วินาที ให้ทำการ (action) รัน iptables ด้วยออปชั่นในวงเล็บ</p>
<p>สามารถดูรายละเอียด filter ในไฟล์ /etc/fail2ban/filter.d/sshd.conf</p>
<pre>[root@fc14-x64 ~]# <strong>cat /etc/fail2ban/filter.d/sshd.conf
</strong>...
[Definition]</pre>
<pre>_daemon = sshd
...
failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from &lt;HOST&gt;\s*$
            ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from &lt;HOST&gt;\s*$
            ^%(__prefix_line)sFailed (?:password|publickey) for .* from &lt;HOST&gt;(?: port \d*)?(?: ssh\d*)?$
            ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM &lt;HOST&gt;\s*$
            ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from &lt;HOST&gt;\s*$
            ^%(__prefix_line)sUser \S+ from &lt;HOST&gt; not allowed because not listed in AllowUsers$
            ^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=&lt;HOST&gt;(?:\s+user=.*)?\s*$
            ^%(__prefix_line)srefused connect from \S+ \(&lt;HOST&gt;\)\s*$
            ^%(__prefix_line)sAddress &lt;HOST&gt; .* POSSIBLE BREAK-IN ATTEMPT!*\s*$
            ^%(__prefix_line)sUser \S+ from &lt;HOST&gt; not allowed because none of user's groups are listed in AllowGroups$</pre>
<p>คำอธิบายจากไฟล์คอนฟิก filter คือ ให้ตรวจสอบหาคำหรือประโยคที่ระบุไว้ใน failregex (regular expression)</p>
<p>ส่วน action ที่ทำ หลังจาก maxretry ดูได้ในไฟล์  /etc/fail2ban/action.d/iptables.conf</p>
<pre>[root@fc14-x64 ~]# <strong>cat /etc/fail2ban/action.d/iptables.conf
</strong>...
actionban = iptables -I fail2ban-&lt;name&gt; 1 -s &lt;ip&gt; -j DROP
...
actionunban = iptables -D fail2ban-&lt;name&gt; -s &lt;ip&gt; -j DROP</pre>
<p>คำอธิบาย คือการรันคำสั่ง iptables เพื่อสร้าง rule เพื่อจะ ban &lt;ip&gt; ที่พยายามเข้ามา</p>
<p>และเมื่อเกินเวลา (bantime) 600 วินาที แล้ว ก็รันคำสั่ง iptables เพื่อลบ rule ที่สร้างขึ้น อนุญาตให้ &lt;ip&gt; สามารถเข้ามาได้อีกครั้ง</p>
<h4>ทดสอบการ login fail</h4>
<p><span style="color: #ff0000;"><strong>คำเตือน </strong>การทดลองใช้ fail2ban ให้ลองบนเครื่องที่สามารถ console ได้  เพราะการคอนฟิกหรือลอง login fail จะทำให้คุณไม่สามารถ ssh เข้าเครื่องนั้นได้ ช่วงเวลาหนึ่ง</span></p>
<p>สมมุติให้ลอง ssh login fail ด้วย root จาก 192.168.1.12</p>
<p>ดูไฟล์ /var/log/secure ที่เกิดขึ้นบน server</p>
<pre>[root@fc14-x64 ~]#<strong> tail -f /var/log/secure
</strong>May  6 23:43:47 fc14-x64 unix_chkpwd[1340]: password check failed for user (root)
May  6 23:43:47 fc14-x64 sshd[1338]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.12  user=root
May  6 23:43:49 fc14-x64 sshd[1338]: Failed password for root from 192.168.1.12 port 34811 ssh2</pre>
<pre>May  6 23:43:56 fc14-x64 unix_chkpwd[1342]: password check failed for user (root)
May  6 23:43:58 fc14-x64 sshd[1338]: Failed password for root from 192.168.1.12 port 34811 ssh2</pre>
<pre>May  6 23:44:00 fc14-x64 unix_chkpwd[1343]: password check failed for user (root)
May  6 23:44:01 fc14-x64 sshd[1338]: Failed password for root from 192.168.1.12 port 34811 ssh2
May  6 23:44:01 fc14-x64 sshd[1339]: Connection closed by 192.168.1.12
May  6 23:44:01 fc14-x64 sshd[1338]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.12  user=root</pre>
<pre>May  6 23:44:16 fc14-x64 unix_chkpwd[1348]: password check failed for user (root)
May  6 23:44:16 fc14-x64 sshd[1346]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.12  user=root
May  6 23:44:19 fc14-x64 sshd[1346]: Failed password for root from 192.168.1.12 port 34812 ssh2</pre>
<pre>May  6 23:44:22 fc14-x64 unix_chkpwd[1349]: password check failed for user (root)
May  6 23:44:25 fc14-x64 sshd[1346]: Failed password for root from 192.168.1.12 port 34812 ssh2
May  6 23:44:25 fc14-x64 sshd[1347]: Connection closed by 192.168.1.12
May  6 23:44:25 fc14-x64 sshd[1346]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.12  user=root</pre>
<p>เมื่อ login fail เกินค่า maxretry ที่ตั้งไว้ ในที่นี้คือ 5 ครั้ง สังเกตในไฟล์ /var/log/messages  โปรแกรม fail2ban จะทำการ action ขึ้นมา เพื่อ ban 192.168.1.12</p>
<pre>[root@fc14-x64 ~]# <strong>tail /var/log/messages
</strong>May  6 23:44:27 fc14-x64 &lt;28&gt;<span style="color: #0000ff;">fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.1.12</span></pre>
<p>ใช้คำสั่ง iptables เพื่อตรวจสอบ rule ที่เพิ่มขึ้น</p>
<pre>[root@fc14-x64 ~]# <strong>iptables -L -v -n
</strong>Chain INPUT (policy ACCEPT 61 packets, 10699 bytes)
 pkts bytes target     prot opt in     out     source               destination
  453 37587 fail2ban-SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           <span style="color: #0000ff;"><strong>tcp dpt:22</strong></span></pre>
<pre>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain OUTPUT (policy ACCEPT 60 packets, 7044 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain fail2ban-SSH (1 references)
 pkts bytes target     prot opt in     out     source               destination
<span style="color: #0000ff;"><strong>    2   120 DROP       all  --  *      *       192.168.1.12            0.0.0.0/0
</strong></span>  451 37467 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0</pre>
<p>สังเกตว่า rule ที่สร้างขึ้น จะ DROP เฉพาะการ ssh (tcp 22) เท่านั้น แปลว่า ip ที่ถูก ban ไป จะไม่สามารถ ssh เข้าเครื่อง server ได้อีก แต่ยังสามารถเปิด web (tcp 80) หรืออื่นๆ ได้ตามปกติ</p>
<p>คอนฟิกในไฟล์ jail.conf เมื่อมีการ ban เกิดขึ้น จะมีการส่ง mail หา root ด้วย</p>
<p>ตัวอย่าง mail ที่ส่งให้ root</p>
<pre>From fail2ban@mail.com  Fri May  6 23:44:28 2011
Return-Path: &lt;fail2ban@mail.com&gt;
Date: Fri, 6 May 2011 23:44:27 +0700
Subject: [Fail2Ban] SSH: banned 192.168.1.12
From: Fail2Ban &lt;fail2ban@mail.com&gt;
To: <a href="mailto:root@fc14-x64.example.com">root@fc14-x64.example.com</a>
Status: R</pre>
<pre>Hi,</pre>
<pre>The IP 192.168.1.12 has just been banned by Fail2Ban after 5 attempts against SSH.
...</pre>
<p>เมื่อเวลาผ่านไป เกินเวลา bantime ในที่นี้ 600 วินาที  โปรแกรม fail2ban ก็จะปลดการ ban ออก ดูได้จากไฟล์ /var/log/messsages</p>
<pre>[root@fc14-x64 ~]# <strong>tail /var/log/messages
</strong>May  6 23:44:27 fc14-x64 &lt;28&gt;fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.1.12
May  6 23:54:28 fc14-x64 &lt;28&gt;<span style="color: #0000ff;">fail2ban.actions: WARNING [ssh-iptables] Unban 192.168.1.12</span></pre>
<p>ใช้คำสั่ง iptables เพื่อตรวจสอบ rule ที่ใช้งานอยู่ หลังจาก unban</p>
<pre>[root@fc14-x64 log]# <strong>iptables -L -v -n
</strong>Chain INPUT (policy ACCEPT 561 packets, 50572 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1753  141K fail2ban-SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22</pre>
<pre>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain OUTPUT (policy ACCEPT 501 packets, 50410 bytes)
 pkts bytes target     prot opt in     out     source               destination</pre>
<pre>Chain fail2ban-SSH (1 references)
 pkts bytes target     prot opt in     out     source               destination
 1751  141K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0</pre>
<p> </p>
<p>ลองนำไปใช้ดูครับ เพิ่มความปลอดภัยให้เครื่องได้อีกระดับ</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.fail2ban.org/" target="_blank">Fail2ban</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/05/ban_failed_login_attempts_using_fail2ban/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง OpenLDAP Server บน Fedora 13</title>
		<link>http://spalinux.com/2010/07/install_openldap_server_on_fedora_13</link>
		<comments>http://spalinux.com/2010/07/install_openldap_server_on_fedora_13#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:19:45 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[fedora 13]]></category>
		<category><![CDATA[openldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1126</guid>
		<description><![CDATA[การเปลี่ยนแปลงอย่างหนึ่งใน Fedora เวอร์ชั่นหลังๆ คือการเปลี่ยนวิธีการคอนฟิก OpenLDAP ซึ่งจะเป็นรูปแบบใหม่ที่มีมาตั้งแต่ OpenLDAP เวอร์ชั่น 2.3 เป็นต้นมา แต่ทาง Fedora เพิ่งเริ่มนำมาใช้ แบบเก่าไฟล์คอนฟิกหลักจะอยู่ในไฟล์ /etc/openldap/slapd.conf แต่แบบใหม่คอนฟิกจะถูกเก็บแยกเป็นไฟล์ LDIF เป็นโครงสร้างอยู่ในไดเร็คทอรี /etc/openldap/slapd.d/ และเมื่อรันเซอร์วิส ไฟล์เหล่านี้จะถูกอ่านเข้าไปใน LDAP เลย ซึ่งทำให้เราสามารถแก้ไขคอนฟิกเซิร์ฟเวอร์ ได้ เหมือนกับการแก้ไขข้อมูลอื่นๆ ใน LDAP รายละเอียดเพิ่มเติมหาอ่านได้จาก ข้อมูลอ้างอิง Configuring slapd เพื่อความสะดวก ทางทีมพัฒนา OpenLDAP ได้สร้างคำสั่ง slaptest เพื่อใช้ในการเปลี่ยนคอนฟิกแบบเก่าไฟล์เดียว ให้เป็นรูปแบบใหม่ได้ ในบทความนี้จะแสดงขั้นตอนการติดตั้งและคอนฟิก OpenLDAP บนเครื่อง Fedora 13 (x86_64) ติดตั้ง openldap ใช้คำสั่ง rpm เพื่อตรวจสอบการติดตั้ง openldap ว่ามีอยู่แล้วหรือไม่ [root@fc13-64a ~]# rpm [...]]]></description>
			<content:encoded><![CDATA[<p>การเปลี่ยนแปลงอย่างหนึ่งใน Fedora เวอร์ชั่นหลังๆ คือการเปลี่ยนวิธีการคอนฟิก OpenLDAP ซึ่งจะเป็นรูปแบบใหม่ที่มีมาตั้งแต่ OpenLDAP เวอร์ชั่น 2.3 เป็นต้นมา แต่ทาง Fedora เพิ่งเริ่มนำมาใช้</p>
<p>แบบเก่าไฟล์คอนฟิกหลักจะอยู่ในไฟล์ /etc/openldap/slapd.conf แต่แบบใหม่คอนฟิกจะถูกเก็บแยกเป็นไฟล์ LDIF เป็นโครงสร้างอยู่ในไดเร็คทอรี /etc/openldap/slapd.d/ และเมื่อรันเซอร์วิส ไฟล์เหล่านี้จะถูกอ่านเข้าไปใน LDAP เลย ซึ่งทำให้เราสามารถแก้ไขคอนฟิกเซิร์ฟเวอร์ ได้ เหมือนกับการแก้ไขข้อมูลอื่นๆ ใน LDAP</p>
<p>รายละเอียดเพิ่มเติมหาอ่านได้จาก ข้อมูลอ้างอิง Configuring slapd</p>
<p>เพื่อความสะดวก ทางทีมพัฒนา OpenLDAP ได้สร้างคำสั่ง slaptest เพื่อใช้ในการเปลี่ยนคอนฟิกแบบเก่าไฟล์เดียว ให้เป็นรูปแบบใหม่ได้</p>
<p>ในบทความนี้จะแสดงขั้นตอนการติดตั้งและคอนฟิก OpenLDAP บนเครื่อง Fedora 13 (x86_64)</p>
<p><span id="more-1126"></span></p>
<h4>ติดตั้ง openldap</h4>
<p>ใช้คำสั่ง rpm เพื่อตรวจสอบการติดตั้ง openldap ว่ามีอยู่แล้วหรือไม่</p>
<pre>[root@fc13-64a ~]# <strong>rpm -qa | grep openldap
</strong>openldap-2.4.21-4.fc13.x86_64</pre>
<p>เพื่อจะคอนฟิกเป็นเซิร์ฟเวอร์ได้ ต้องติดตั้งไฟล์ rpm เพิ่มเติม บางไฟล์หาได้จากแผ่นดีวีดีติดตั้ง</p>
<pre>[root@fc13-64a ~]# <strong>mount /dev/scd0 /media
</strong>mount: block device /dev/sr0 is write-protected, mounting read-only
[root@fc13-64a ~]# <strong>cd /media/Packages/</strong></pre>
<pre>[root@fc13-64a Packages]# <strong>rpm -i libtool-ltdl-2.2.6-20.fc13.x86_64.rpm
</strong>[root@fc13-64a Packages]# <strong>rpm -i openldap-clients-2.4.21-4.fc13.x86_64.rpm</strong></pre>
<p>ดาวน์โหลดไฟล์เพิ่มเติมจาก fc13 Everything แล้วติดตั้ง</p>
<pre>[root@fc13-64a Everything]# <strong>rpm -i openldap-servers-2.4.21-4.fc13.x86_64.rpm</strong></pre>
<p>ไฟล์คอนฟิกดีฟอลต์ของ OpenLDAP จะถูกติดตั้งอยู่ใน /etc/openldap/</p>
<pre>[root@fc13-64a ~]# <strong>cd /etc/openldap/</strong></pre>
<pre>[root@fc13-64a openldap]# <strong>ls -l
</strong>total 24
drwxr-xr-x. 2 root root 4096 Feb 24 16:19 cacerts
-rw-r--r--. 1 root root  245 Feb 24 16:19 ldap.conf
drwxr-xr-x  3 root root 4096 Jul 16 20:37 schema
-rw-r-----  1 root ldap 4153 Feb 24 16:19 slapd.conf.bak
drwx------  3 ldap ldap 4096 Jul 16 20:37 slapd.d</pre>
<h4>รันเซอร์วิส</h4>
<p>ใช้คำสั่ง service เพิ่มรัน slapd (OpenLDAP server)</p>
<pre>[root@fc13-64a ~]# <strong>service slapd start
</strong>/var/lib/ldap/__db.004<span style="color: #ff0000;"> is not owned by "ldap" </span>             [WARNING]
/var/lib/ldap/__db.001 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.002 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.006 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.005 is not owned by "ldap"              [WARNING]
/var/lib/ldap/alock is not owned by "ldap"                 [WARNING]
/var/lib/ldap/__db.003 is not owned by "ldap"              [WARNING]
ln: accessing `/var/run/openldap/slapd.pid': No such file or directory</pre>
<p>มีข้อผิดพลาดฟ้องเรื่อง permission ไม่ถูกต้อง</p>
<pre>[root@fc13-64a ~]# <strong>ls -l /var/lib/ldap/
</strong>total 884
-rw------- 1 <span style="color: #ff0000;">root root</span>   2048 Jul 16 20:37 alock
-rw------- 1 root root  24576 Jul 16 20:37 __db.001
-rw------- 1 root root 212992 Jul 16 20:37 __db.002
-rw------- 1 root root 270336 Jul 16 20:37 __db.003
-rw------- 1 root root 163840 Jul 16 20:37 __db.004
-rw------- 1 root root 802816 Jul 16 20:37 __db.005
-rw------- 1 root root  32768 Jul 16 20:37 __db.006</pre>
<p>ใช้คำสัง chown เพื่อเปลี่ยนเจ้าของไฟล์ (owner)</p>
<pre>[root@fc13-64a ldap]# <strong>chown ldap.ldap *
</strong>[root@fc13-64a ldap]# <strong>ls -l
</strong>total 884
-rw------- 1 <span style="color: #0000ff;">ldap ldap   </span>2048 Jul 16 20:37 alock
-rw------- 1 ldap ldap  24576 Jul 16 20:37 __db.001
-rw------- 1 ldap ldap 212992 Jul 16 20:37 __db.002
-rw------- 1 ldap ldap 270336 Jul 16 20:37 __db.003
-rw------- 1 ldap ldap 163840 Jul 16 20:37 __db.004
-rw------- 1 ldap ldap 802816 Jul 16 20:37 __db.005
-rw------- 1 ldap ldap  32768 Jul 16 20:37 __db.006</pre>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิสอีกครั้ง</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd start
</strong>Starting slapd:                                            [  OK  ]</pre>
<p>ใช้คำสั่ง ps เพื่อตรวจสอบ process</p>
<pre>[root@fc13-64a ldap]# <strong>ps -ef | grep ldap
</strong>ldap     22636     1  0 21:18 ?        00:00:00 /usr/sbin/slapd -h  ldap:/// -u ldap</pre>
<p>ใช้คำสั่ง service เพื่อปิดเซอร์วิส</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<p>แล้วทดลองรันเซอร์วิสอีกครั้ง จะมีข้อความฟ้องเรื่อง performance</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd start
</strong>Checking configuration files for slapd:                    [WARNING]
<span style="color: #ff0000;">bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=my-domain,dc=com".
</span>config file testing succeeded
Starting slapd:                                            [  OK  ]</pre>
<p>ปิดเซอร์วิสอีกครั้ง</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<p>เพื่อปรับปรุงเรื่อง performance ต้องสร้างไฟล์ DB_CONFIG  จากตัวอย่างไฟล์ใน /usr/share/doc/openldap-servers-2.4.21/</p>
<pre>[root@fc13-64a ldap]# <strong>cp /usr/share/doc/openldap-servers-2.4.21/DB_CONFIG.example DB_CONFIG
</strong>[root@fc13-64a ldap]# <strong>chown ldap.ldap DB_CONFIG
</strong>[root@fc13-64a ldap]# <strong>chmod 600 DB_CONFIG</strong></pre>
<p>ทดสอบการเปิด/ปิด เซอร์วิส ครั้งแรกจะมีฟ้องว่า มีการปรับเปลี่ยนคอนฟิก แล้วหลังจากนั้นก็สามารถรันได้ตามปกติ</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd start
</strong>Checking configuration files for slapd:                    [WARNING]
<span style="color: #0000ff;">bdb_db_open: DB_CONFIG for suffix "dc=my-domain,dc=com" has changed.
Performing database recovery to activate new settings.
</span>bdb_db_open: database "dc=my-domain,dc=com": recovery skipped in read-only mode. Run manual recovery if errors are encountered.
config file testing succeeded
Starting slapd:                                            [  OK  ]</pre>
<pre>[root@fc13-64a ldap]# <strong>service slapd stop</strong>
Stopping slapd:                                            [  OK  ]</pre>
<pre>[root@fc13-64a ldap]# <strong>service slapd start</strong>
Starting slapd:                                            [  OK  ]</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2009/05/install_openldap_server_on_fedora_10">ติดตั้ง OpenLDAP Server บน Fedora 10</a></li>
<li><a href="http://www.openldap.org/doc/admin24/slapdconf2.html" target="_blank">OpenLDAP Software 2.4 Administrator&#8217;s Guide: Configuring slapd</a></li>
<li><a href="http://www.mirror.in.th/osarchive/fedora/releases/13/Everything/x86_64/os/Packages/" target="_blank">Fedora 13 x86_64 Everything</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/07/install_openldap_server_on_fedora_13/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

