Basic Linux

4,676 views

Published on

Published in: Technology, News & Politics
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
4,676
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
89
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Basic Linux

  1. 1. Training Basic Linux Mr.Kriangsak Namkot [email_address] [email_address] http://www.jodoi.com http://www.doi.in.th
  2. 2. การติดตั้ง Linux
  3. 3. การติดตั้ง Linux
  4. 4. การติดตั้ง Linux
  5. 5. การติดตั้ง Linux
  6. 6. การติดตั้ง Linux
  7. 7. การติดตั้ง Linux
  8. 8. การติดตั้ง Linux
  9. 9. การติดตั้ง Linux
  10. 10. การติดตั้ง Linux
  11. 11. การติดตั้ง Linux
  12. 12. การติดตั้ง Linux
  13. 13. การติดตั้ง Linux
  14. 14. การติดตั้ง Linux
  15. 15. การติดตั้ง Linux
  16. 16. การติดตั้ง Linux
  17. 17. การติดตั้ง Linux
  18. 18. การติดตั้ง Linux
  19. 19. การติดตั้ง Linux
  20. 20. การติดตั้ง Linux
  21. 21. การติดตั้ง Linux
  22. 22. การติดตั้ง Linux
  23. 23. การติดตั้ง Linux
  24. 24. Linux Kernel <ul><li>Kernel เป็นส่วนที่ทำหน้าที่ควบคุมการทำงานในระดับล่างคือส่วนที่เป็น Hardware ทั้งหมด รวมถึงการจัดสรรทรัพยากรด้วย </li></ul>Kernel Hardware Kernel
  25. 25. Linux Shell <ul><li>เป็นตัวเชื่อมระหว่างผู้ใช้งานกับส่วนของ kernel เมื่อเทียบกับ dos แล้วก็คือ command.com โดย shell จะทำหน้าที่รับคำสั่งจากผู้ใช้มาตีความหมาย </li></ul>Kernel Kernel Hardware Kernel Shell
  26. 26. หลักการทำงานของ Linux <ul><li>อุปกรณ์ทุกอย่าง Linux จะมองเป็นไฟล์ </li></ul><ul><li>Config ของระบบและของโปรแกรมต่างๆ ก็จะมองเป็นไฟล์ </li></ul><ul><li>ข้อมูลทุกอย่างมีลักษณะ Case Sensitive </li></ul>
  27. 27. โครงสร้าง File ใน Linux <ul><li>/ Root Partition </li></ul><ul><ul><li>/bin เก็บ Binary File ในการ Run คำสั่งต่างๆ </li></ul></ul><ul><ul><li>/boot เก็บไฟล์สำคัญในการ Boot ระบบ </li></ul></ul><ul><ul><li>/dev เก็บข้อมูลอุปกรณ์ต่างๆ </li></ul></ul><ul><ul><li>/mnt เก็บข้อมูลอุปกรณ์ที่ Mount ไว้ </li></ul></ul><ul><ul><li>/etc เก็บ Config ของ Application ต่างๆ </li></ul></ul><ul><ul><li>/home เก็บข้อมูลของ User แต่ละคน </li></ul></ul><ul><ul><li>/lib เก็บ Libraries Files ต่างๆ ของระบบ </li></ul></ul><ul><ul><li>/root เก็บข้อมูลของ Root </li></ul></ul><ul><ul><li>/var เก็บ System Log, Application log, เก็บ Mail ฯลฯ </li></ul></ul>
  28. 28. การรู้จัก Hardware ของ Linux <ul><li>/dev/fd0 ฟลอปปีไดรฟ์ตัวแรก ( ไดรฟ์ A: ) </li></ul><ul><li>/dev/fd1 ฟลอปปีไดรฟ์ตัวที่สอง ( ไดรฟ์ B: ) </li></ul><ul><li>/dev/hda1/ พาร์ติชันที่ 1 ของฮาร์ดิสก์ตัวแรกชนิด IDE </li></ul><ul><li>/dev/hda2/ พาร์ติชันที่ 2 ของฮาร์ดิสก์ตัวแรกชนิด IDE </li></ul><ul><li>/dev/hda3/ พาร์ติชันที่ 2 ของฮาร์ดิสก์ตัวแรกชนิด IDE </li></ul><ul><li>/dev/hda4/ พาร์ติชันที่ 2 ของฮาร์ดิสก์ตัวแรกชนิด IDE </li></ul><ul><li>/dev/hda5 / logical พาร์ติชันที่ 1 ของฮาร์ดิสก์ตัวแรกชนิด IDE </li></ul>
  29. 29. การรู้จัก Hardware ของ Linux ( ต่อ ) <ul><li>/dev/hdb1/ พาร์ติชันที่ 1 ของฮาร์ดิสก์ตัวที่สองชนิด IDE </li></ul><ul><li>/dev/hdb2/ พาร์ติชันที่ 2 ของฮาร์ดิสก์ตัวที่สองชนิด IDE </li></ul><ul><li>/dev/hdb3/ พาร์ติชันที่ 2 ของฮาร์ดิสก์ตัวที่สองชนิด IDE </li></ul><ul><li>/dev/hdb4/ พาร์ติชันที่ 2 ของฮาร์ดิสก์ตัวที่สองชนิด IDE </li></ul><ul><li>/dev/hdb5 / logical พาร์ติชันที่ 1 ของฮาร์ดิสก์ตัวที่สองชนิด IDE </li></ul>
  30. 30. การรู้จัก Hardware ของ Linux ( ต่อ ) <ul><li>/dev/cdrom CD-ROM Drive </li></ul><ul><li>หรือ /dev/hdc, /dev/hdd แล้วแต่ Disk Partition </li></ul><ul><li>/dev/sda/ SCSI Primary Master </li></ul><ul><li>/dev/sdb/ SCSI Primary Slave </li></ul><ul><li>/dev/sdc/ SCSI Secondary master </li></ul><ul><li>/dev/sdd/ SCSI Secondary Slave </li></ul>
  31. 31. Linux basic command <ul><li>การเข้าใช้งานระบบ (login) ต้องใส่ Username และ Password ซึ่งขณะที่เราพิมพ์ password จะไม่เห็นข้อความ </li></ul><ul><li>Shell $ สำหรับบุคคลทั่วไปที่ Login เข้ามา </li></ul><ul><li>Shell # สำหรับผู้ Login เป็น Root ซึ่งเป็นผู้ดูแลระบบ </li></ul><ul><li>คำสั่ง “ pwd” ใช้เพื่อแสดง directory ปัจจุบัน </li></ul><ul><li>** ไม่ควรปิดเครื่องโดยไม่ทำการ Shutdown </li></ul>
  32. 32. การปิดเครื่องอย่างถูกวิธี <ul><li>การ shutdown </li></ul><ul><li>#shutdown –h now </li></ul><ul><li>การ restart </li></ul><ul><li>#shutdown –r now </li></ul><ul><li>#shutdown –r +5 ( เครื่องจะ restart ในอีก 5 นาที ) </li></ul><ul><li>#reboot </li></ul><ul><li>** ไม่ควรปิดเครื่องโดยไม่ทำการ Shutdown ** </li></ul>
  33. 33. การเปลี่ยน Directory <ul><li>การเปลี่ยน Directory </li></ul><ul><li># cd <Directory> </li></ul><ul><li>Directory </li></ul><ul><li>. หมายถึง Current Directory </li></ul><ul><li>.. หมายถึง Parent Directory </li></ul><ul><li>/ หมายถึง Directory ราก (Root Directory) </li></ul><ul><li>~ หมายถึง Home Directory (/home/) </li></ul>
  34. 34. การดูไฟล์ข้อมูล <ul><li>ดูไฟล์ข้อมูล # ls ( ใช้ * เป็น Wildcard ได้ ) </li></ul><ul><li>ดูไฟล์ข้อมูลพร้อมรายละเอียด # ls -al </li></ul><ul><li>rwxr-xr-x 1 jodoi user 37 45 Apr 19 21:12 wut.txt </li></ul><ul><ul><li>Permission ของไฟล์ -rwxr-xr-x </li></ul></ul><ul><ul><li>จำนวน link 1 </li></ul></ul><ul><ul><li>Owner jodoi </li></ul></ul><ul><ul><li>Group user </li></ul></ul><ul><ul><li>ขนาด 37 bytes </li></ul></ul><ul><ul><li>วันที่ๆ แก้ไขล่าสุด 45 Apr 19 21:12 </li></ul></ul><ul><ul><li>ชื่อไฟล์ wut.txt </li></ul></ul>
  35. 35. การดูไฟล์ข้อมูล ( ต่อ ) <ul><li>ดูประเภทไฟล์ข้อมูล # file < ชื่อไฟล์ > </li></ul><ul><li>ดูเนื้อหาของไฟล์ # cat < ชื่อไฟล์ > </li></ul><ul><li>ดูเนื้อหาของไฟล์เป็นหน้า # more < ชื่อไฟล์ > </li></ul><ul><li>ดูการเปลี่ยนแปลงของไฟล์ # tail –f < ชื่อไฟล์ > </li></ul>
  36. 36. การกำหนดสิทธิของไฟล์ข้อมูล <ul><li>chmod ใช้ในการกำหนด Permission ของไฟล์ </li></ul><ul><li>-rwx r-x r-x หมายถึง </li></ul><ul><ul><li>rwx สำหรับ Owner ( อ่านได้ , เขียนได้ , Execute ได้ ) -> 1 1 1 </li></ul></ul><ul><ul><li>r-x สำหรับ Group ( อ่านได้ , เขียนไม่ได้ , Execute ได้ ) -> 1 0 1 </li></ul></ul><ul><ul><li>r-x สำหรับ Other ( อ่านได้ , เขียนไม่ได้ , Execute ได้ ) -> 1 0 1 </li></ul></ul><ul><li>แปลงเป็นเลขฐานสิบ rwxr-xr-x -> 111 101 101 -> 755 </li></ul><ul><li>ในการสั่งให้ไฟล์มี Permission เป็น rwxr-xr-x สามารถทำได้โดยใช้คำสั่ง chmod 755 < ชื่อไฟล์ > </li></ul>
  37. 37. การกำหนดความเป็นเจ้าของไฟล์ข้อมูล <ul><li>เปลี่ยน Owner ของไฟล์ ด้วยคำสั่ง chown ตัวอย่างเช่น </li></ul><ul><ul><li>chown samart file1.txt </li></ul></ul><ul><li>เปลี่ยน Group ของไฟล์ ด้วยคำสั่ง chgrp ตัวอย่างเช่น </li></ul><ul><ul><li>chgrp samart file1.txt </li></ul></ul><ul><li>เปลี่ยนทั้ง Owner และ Group ในคราวเดียว ด้วยคำสั่ง chown </li></ul><ul><ul><li>chown root.root file1.txt </li></ul></ul>
  38. 38. การทำสำเนาไฟล์ข้อมูล <ul><li>cp [option] <source file1> [source file2] […] <destination file/dir> </li></ul><ul><li>Options </li></ul><ul><ul><li>-p Preserve permission, owner </li></ul></ul><ul><ul><li>-r Recursive </li></ul></ul><ul><ul><li>-v แสดงชื่อไฟล์ขณะที่ copy ด้วย </li></ul></ul><ul><ul><li>-f force overwriting </li></ul></ul><ul><li>ตัวอย่าง cp xxx.txt yyy.txt </li></ul>
  39. 39. การทำ Link ถึงไฟล์ข้อมูล <ul><li>คล้าย การสร้าง shortcut ของ Microsoft Windows </li></ul><ul><li>มีสองประเภทคือ Hard link และ Soft link </li></ul><ul><ul><li>Hard link: ln file1 file2 ไฟล์ 2 จะอ้างไปยัง physical address ของไฟล์ 1 เลย </li></ul></ul><ul><ul><li>Softlink: ln -s file1 file2 ไฟล์ 2 จะอ้างไปยังชื่อของไฟล์ 1 ถ้าเปลี่ยนชื่อของไฟล์ 1 ไฟล์ 2 ก็จะกลายเป็น link ที่ผิดพลาดไป </li></ul></ul><ul><li>ลอง ln -s /usr/bin/X11/xpaint /bin/xpaint </li></ul><ul><li>จากนั้นลอง ls -l /bin/xpaint จะพบ xpaint อยู่ใน bin </li></ul>
  40. 40. การย้ายไฟล์ข้อมูล <ul><li>mv [option] <source1> [source2] […] <destination> </li></ul><ul><li>ตัวอย่าง mv file1.txt file2.txt </li></ul><ul><li>ลองใช้คำสั่ง mv เพื่อย้ายไดเรกทอรี /tmp มายัง Home directory ของท่าน และลองใช้คำสั่ง mv เพื่อย้ายกลับ </li></ul>
  41. 41. การลบไฟล์ข้อมูล <ul><li>rm [options] <files>… เช่น rm file1.txt </li></ul><ul><li>Options: </li></ul><ul><ul><li>-f ลบเลยโดยไม่ต้องถามยืนยัน </li></ul></ul><ul><ul><li>-i ให้ถามยืนยันอีกครั้งว่า y หรือ n </li></ul></ul><ul><ul><li>-r ลบทั้งไฟล์และไดเรอทอรี่ย่อยที่อยู่ภายใน </li></ul></ul><ul><li>คำถาม คำสั่ง rm -rf / หมายความว่าอย่างไร </li></ul><ul><li>ลบ Directory # rmdir < ชื่อ Directory> </li></ul><ul><li>ลบ Directory รวมทั้งไฟล์และ Directory ย่อยทั้งหมด </li></ul><ul><li>rm –rf < ชื่อ Directory> </li></ul>
  42. 42. การส่งต่อคำสั่ง <ul><li>Linux สามารถให้เราส่งต่อผลของคำสั่งได้ โดยใช้ ไปป์ (|) </li></ul><ul><li>เช่นให้ทดลองใช้คำสั่ง # ls –al |more </li></ul><ul><li>ส่วนใหญ่จะใช้กับคำสั่ง grep ซึ่งช่วยในการค้นหาข้อความ </li></ul><ul><li>เช่นให้ทดลองใช้คำสั่ง # ls –al |grep in จาก root dir (/) </li></ul>
  43. 43. การค้นหาข้อความ <ul><li>หากต้องการหาบรรทัดที่มีคำว่า telnet ในไฟล์ /etc/inetd.conf </li></ul><ul><ul><li>cat /etc/inetd.conf |grep telnet หรือ grep telnet /etc/inetd.conf </li></ul></ul><ul><li>ต้องการให้แสดงทุกบรรทัด ยกเว้นบรรทัดที่มีคำว่า telnet </li></ul><ul><ul><li>cat /etc/inetd.conf |grep -v telnet หรือ </li></ul></ul><ul><ul><li>grep -v telnet /etc/inetd.conf </li></ul></ul><ul><li>ต้องการให้แสดงบรรทัดที่ขึ้นต้นด้วย root ในไฟล์ /etc/passwd </li></ul><ul><ul><li>cat /etc/passwd |grep “^root” หรือ </li></ul></ul><ul><ul><li>grep “^root” /etc/passwd </li></ul></ul>
  44. 44. การค้นหาไฟล์ข้อมูล <ul><li>คำสั่ง locate (Package ชื่อ slocate) </li></ul><ul><li>ก่อนจะใช้คำสั่ง locate ต้องมีการ Update Files Database โดยใช้คำสั่ง </li></ul><ul><li># updatedb </li></ul><ul><li>เสร็จแล้วลองใช้คำสั่ง #locate httpd </li></ul>
  45. 45. การใช้คำสั่ง tar รวบรวมข้อมูล <ul><li>รูปแบบ # tar [options] files </li></ul><ul><li>คำสั่งที่มีการใช้งานกันบ่อยคือ </li></ul><ul><ul><li>tar xvfz < ไฟล์ .tar.gz> [destination] ใช้แตกไฟล์ .tar.gz </li></ul></ul><ul><ul><li>tar xvf < ไฟล์ .tar> [destination] ใช้แตกไฟล์ .tar </li></ul></ul><ul><ul><li>tar cvfz < ชื่อไฟล์ที่จะเก็บ > [destination] </li></ul></ul><ul><ul><ul><li>เช่น tar cvfz backup.tar.gz /var/log/ </li></ul></ul></ul>
  46. 46. การ Add/Delete User , สลับใช้งาน <ul><li>Add User ( ข้อมูลจะอยู่ใน /etc/passwd) </li></ul><ul><li>#useradd < ชื่อ User> เช่น #useradd samart </li></ul><ul><li>หมายเหตุ ใน Debian Linux ควรใช้ adduser เช่น # adduser test1 </li></ul><ul><li>Delete User </li></ul><ul><li>#userdel < ชื่อ User> เช่น #userdel samart </li></ul><ul><li>หมายเหตุ ใน Debian Linux ควรใช้ deluser เช่น # deluser test1 </li></ul><ul><li>สลับการใช้งานระหว่าง User </li></ul><ul><li>#su - < ชื่อ User> </li></ul><ul><li>สลับการใช้งานระหว่างหน้าจอ </li></ul><ul><li>กด ALT+F2…F12 เพื่อเรียกใช้ Virtual Console </li></ul>
  47. 47. การเปลี่ยนรหัสผ่าน และการตั้งรหัสผ่าน <ul><li>เปลี่ยน Root Password ( ข้อมูลจะอยู่ใน /etc/shadow) </li></ul><ul><li># passwd enter old password : </li></ul><ul><li>enter new password : </li></ul><ul><li>reenter new password หมายเหตุ จะไม่แสดงผลเมื่อทำการพิมพ์ </li></ul><ul><li>เปลี่ยน User Password </li></ul><ul><li># passwd < ชื่อ User> </li></ul>
  48. 48. การตั้งค่าวัน , เวลา <ul><li>ดูค่าวัน , เวลาของระบบ </li></ul><ul><li> # date </li></ul><ul><li>รูปแบบคำสั่ง # date MMDDhhmmYYYY </li></ul><ul><li>เช่น วันนี้วันที่ 16/02/2004 เวลา 15 : 43 </li></ul><ul><li>ใช้คำสั่ง # date 021615432004 เป็นต้น </li></ul><ul><li>- ใช้ ntpdate ช่วยในการ set time </li></ul><ul><li>#ntpdate -b clock.nectec.or.th </li></ul>
  49. 49. การ Monitor ระบบ <ul><li>ดู Process # ps –ef </li></ul><ul><li>Kill Process # kill -9 <ps no.> </li></ul><ul><li>Restart Process # kill -1 <PID> </li></ul><ul><li>ดู User ที่ Login อยู่ในระบบ # w </li></ul><ul><li>ดูการใช้งาน Resources ต่างๆ # top </li></ul><ul><li>ดูขนาด Partion ทุก Partition # df –kh </li></ul><ul><li>ดูขนาด Folder # du –kh </li></ul><ul><li>ดูเวอร์ชั่นของ Kernel # uname -a </li></ul>
  50. 50. ขอความช่วยเหลือด้วยคำสั่ง man <ul><li>ลองใช้คำสั่ง man ls จะแสดงรายละเอียดวิธีการใช้คำสั่ง ls </li></ul><ul><li>หากทราบแค่ keyword ยังไม่ทราบกระทั่งชื่อคำสั่ง เช่น อยากรู้คำสั่งที่ใช้ในการทำการ copy ให้พิมพ์ว่า man -k copy จะแสดงรายชื่อของคำสั่งที่เกี่ยวข้องกับการ copy </li></ul><ul><li>update ฐานข้อมูลของ man -k โดยการใช้คำสั่ง makewhatis ( ต้องเป็น root) </li></ul><ul><li>หรือหากทราบคำสั่ง แต่ไม่ทราบ syntax ให้ลองพิมพ์ คำสั่ง แล้วตามด้วย -- help ก็จะมีตัวช่วยอย่างย่อขึ้นมาให้ เช่น # ls --help </li></ul>
  51. 51. Basic text mode editor (vi) <ul><li>ใช้ Editor vi เป็นพื้นฐานของการใช้งาน สำคัญมาก </li></ul><ul><li>ใช้ vi ตามด้วยชื่อไฟล์ ที่ต้องการแก้ไข หรือต้องการสร้าง </li></ul><ul><li>เช่น vi helloworld.c </li></ul><ul><li>จะมีเครื่องหมาย ~ ในแต่ละบรรทัด </li></ul>
  52. 52. การใช้ vi จัดการไฟล์ ( ต่อ ) <ul><li>การเพิ่มข้อความ </li></ul>Esc a A i O o “ a” แทรกข้อความหลังเคอร์เซอร์ “ A” ใส่ข้อความใหม่ ท้ายของ บรรทัด “ i” ใส่ข้อความใหม่หน้าเคอร์เซอร์ “ O” แทรกบรรทัด 1 บรรทัดบนตำแหน่งเคอร์เซอร์ “ o” แทรกบรรทัด 1 บรรทัดใต้ตำแหน่งเคอร์เซอร์
  53. 53. การใช้ vi จัดการไฟล์ ( ต่อ ) <ul><li>การลบ </li></ul><ul><li>dw ลบข้อความ 1 คำ </li></ul><ul><li>dd ลบข้อความทั้งบรรทัด </li></ul><ul><li>x ลบตัวอักษรที่เคอร์เซอร์ </li></ul><ul><li>D ลบตัวอักษรตั้งแต่เคอร์เซอร์อยู่จนสุดบรรทัด </li></ul><ul><li>การค้นหาคำ </li></ul><ul><li>พิมพ์ / แล้วตามด้วยคำที่ต้องการค้นหา เช่น /system </li></ul><ul><li>ให้ค้นหาต่อไป กด n ไปเรื่อยๆ </li></ul>
  54. 54. การใช้ vi จัดการไฟล์ ( ต่อ ) <ul><li>การควบคุมเคอร์เซอร์ ที่ Mode คำสั่ง </li></ul><ul><li>h เลือนไปทางซ้าย ( หรือปุ่มลูกศรชี้ซ้าย ) </li></ul><ul><li>J เลือนลงล่าง ( หรือปุ่มลูกศรชี้ลงล่าง ) </li></ul><ul><li>K เลือนขึ้นบน ( หรือปุ่มลูกศรชี้ขึ้นบน ) </li></ul><ul><li>l เลือนไปทางขวา ( หรือปุ่มลูกศรชี้ขวา ) </li></ul>
  55. 55. การใช้ vi จัดการไฟล์ ( ต่อ ) <ul><li>การเก็บข้อมูลและออกจาก vi </li></ul><ul><li>:w การเขียนไฟล์ </li></ul><ul><li>:w new_files การ Save เป็นชื่อใหม่ </li></ul><ul><li>:wq การ Save ไฟล์แล้วออกจาก vi </li></ul><ul><li>:wq! การ Save ไฟล์แล้วออกจาก vi โดยไม่มี </li></ul><ul><li>เงื่อนไข </li></ul><ul><li>:q! ออกจาก vi โดยไม่มีการ save ไฟล์ </li></ul>
  56. 56. Well-Known Port <ul><li>ECHO Server ---> TCP/7 </li></ul><ul><li>DISCARD Server ---> TCP/9 </li></ul><ul><li>DAYTIME Server ---> TCP/13 </li></ul><ul><li>CHARGET Server ---> TCP/19 </li></ul><ul><li>FTP Server ---> TCP/21 </li></ul><ul><li>SSH Server ---> TCP/22 </li></ul><ul><li>Telnet Server ---> TCP/23 </li></ul><ul><li>SMTP Server ---> TCP/25 </li></ul><ul><li>DNS Server ---> TCP/53 and UDP/53 </li></ul><ul><li>DHCP Server ---> UDP/68 </li></ul><ul><li>Web Server ---> TCP/80 (HTTP) </li></ul><ul><li>Secure Web Server ---> TCP/443 (HTTPS) </li></ul><ul><li>POP3 Server ---> TCP/110 </li></ul><ul><li>IMAP Server ---> TCP/143 </li></ul><ul><li>SNMP Server ---> UDP/161 </li></ul><ul><li>LDAP Server ---> TCP/389 </li></ul><ul><li>Web Proxy Server ---> TCP/3128 or TCP/8080 </li></ul>
  57. 57. iptables Firewall <ul><li># iptables -L –n </li></ul><ul><li>Chain INPUT (policy ACCEPT) </li></ul><ul><li>target prot opt source destination </li></ul><ul><li>Chain FORWARD (policy ACCEPT) </li></ul><ul><li>target prot opt source destination </li></ul><ul><li>Chain OUTPUT (policy ACCEPT) </li></ul><ul><li>target prot opt source destination </li></ul><ul><li>TABLES in IPTABLES </li></ul><ul><li>[1] filter </li></ul><ul><li>[2] nat </li></ul><ul><li># iptables -t filter -L -n </li></ul><ul><li># iptables -t nat -L –n </li></ul><ul><li>ERASE existing ruleset </li></ul><ul><li># iptables -F INPUT </li></ul><ul><li># iptables -F OUTPUT </li></ul>
  58. 58. <ul><li>set defaut policy </li></ul><ul><li># iptables -P INPUT DROP </li></ul><ul><li># iptables -P OUTPUT ACCEPT </li></ul><ul><li>set stateful connection tracking (allow REPLY to come back) </li></ul><ul><li># iptables -P INPUT DROP </li></ul><ul><li># iptables -P OUTPUT ACCEPT </li></ul><ul><li># ping 192.168.100.254 </li></ul><ul><li># iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT </li></ul><ul><li># ping 192.168.100.254 </li></ul>iptables Firewall
  59. 59. <ul><li>Ex SELECTIVELY PERMIT some connection </li></ul><ul><li>e.g. TCP/22 from 192.168.1.0/24 </li></ul><ul><li>LIST the following information </li></ul><ul><li> [0] FROM WHAT INTERFACE? </li></ul><ul><li>[1] FROM WHAT IP? </li></ul><ul><li>[2] TO WHICH PROTOCOL? </li></ul><ul><li>[3] TO WHICH PORT? </li></ul><ul><li>LIST the following information </li></ul><ul><li> [0] FROM WHAT INTERFACE? eth0 </li></ul><ul><li>[1] FROM WHAT IP? 192.168.1.0/24 </li></ul><ul><li>[2] TO WHICH PROTOCOL? TCP </li></ul><ul><li>[3] TO WHICH PORT? 22 </li></ul><ul><li># iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT </li></ul>iptables Firewall
  60. 60. <ul><li>Ex SELECTIVELY PERMIT some connection </li></ul><ul><li>e.g. TCP/80 from 192.168.1.0/24 </li></ul><ul><li>LIST the following information </li></ul><ul><li> [0] FROM WHAT INTERFACE? </li></ul><ul><li>[1] FROM WHAT IP? </li></ul><ul><li>[2] TO WHICH PROTOCOL? </li></ul><ul><li>[3] TO WHICH PORT? </li></ul><ul><li>LIST the following information </li></ul><ul><li> [0] FROM WHAT INTERFACE? eth0 </li></ul><ul><li>[1] FROM WHAT IP? any </li></ul><ul><li>[2] TO WHICH PROTOCOL? TCP </li></ul><ul><li>[3] TO WHICH PORT? 80,443 </li></ul><ul><li># iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT </li></ul><ul><li># iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT </li></ul>iptables Firewall
  61. 61. <ul><li>RESET iptables ruleset </li></ul><ul><li># iptables -F INPUT </li></ul><ul><li># iptables -F OUTPUT </li></ul><ul><li># iptables -P INPUT ACCEPT </li></ul><ul><li># iptables -P OUTPUT ACCEPT </li></ul><ul><li># iptables -t nat -F POSTROUTING </li></ul><ul><li>Reading iptables rules </li></ul><ul><li># iptables -L –n </li></ul><ul><li># iptables-save </li></ul>iptables Firewall
  62. 62. <ul><li>Transparent Proxy </li></ul><ul><li>Squid = TCP/3128 or TCP/8080 </li></ul><ul><li># vi /etc/squid/squid.conf </li></ul><ul><li>... </li></ul><ul><li>httpd_accel_host virtual </li></ul><ul><li>httpd_accel_port 80 </li></ul><ul><li>httpd_accel_with_proxy on </li></ul><ul><li>httpd_accel_uses_host_header on </li></ul><ul><li>... </li></ul><ul><li># /etc/init.d/squid restart </li></ul><ul><li># iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 </li></ul>iptables Firewall
  63. 63. Internet Gateway Server <ul><li>1. เปิด IP Forward </li></ul><ul><li>[ root@doiserver root ] # vi / etc / sysctl . conf </li></ul><ul><li>~ </li></ul><ul><li># Controls IP packet forwarding </li></ul><ul><li>net.ipv4.ip_forward = 0 ( แก้จาก 0 เป็น 1 ) </li></ul><ul><li>~ </li></ul><ul><li>:wq! </li></ul><ul><li>[root@doiserver root]# service network restart </li></ul><ul><li>[ root@doiserver root ] # cat / proc / sys / net / ipv4 / ip_forward </li></ul><ul><li>1 ( ผลที่ได้ต้องเท่ากับ 1 ) </li></ul>
  64. 64. <ul><li>2. ปิด Firewall ของระบบ </li></ul><ul><li>[ root@doiserver root ] # setup </li></ul>Internet Gateway Server
  65. 65. <ul><li>3. Set กลุ่ม IP ที่ให้ Forward Packet ได้ </li></ul><ul><li>[root@doiserver root]# iptables -A FORWARD -s 192.168.200.240/28 -j ACCEPT </li></ul><ul><li>[root@doiserver root]# iptables -A FORWARD -d 192.168.200.240/28 -j ACCEPT </li></ul><ul><li>[root@doiserver root]# iptables -A FORWARD -j DROP </li></ul><ul><li>[ root@doiserver root ] # service iptables save </li></ul><ul><li>[root@doiserver root]# service iptables restart </li></ul><ul><li>[root@doiserver root]# iptables -L </li></ul><ul><li>Chain FORWARD (policy ACCEPT) </li></ul><ul><li>target prot opt source destination </li></ul><ul><li>ACCEPT all -- 192.168.200.240/28 anywhere </li></ul><ul><li>ACCEPT all -- anywhere 192.168.200.240/28 </li></ul><ul><li>DROP all -- anywhere anywhere </li></ul>Internet Gateway Server
  66. 66. Squid Proxy <ul><li>[ root@doiserver root ] # vi / etc / squid / squid . conf </li></ul><ul><li>~ </li></ul><ul><li># http_port 3128 ( กำหนด port ให้ proxy ) </li></ul><ul><li>http_port 8080 </li></ul><ul><li># cache_mem 8 MB ( กำหนดให้ squid ใช้ mem สูงสุดตามต้องการ ) </li></ul><ul><li>cache_mem 100 MB </li></ul><ul><li># cache_dir ufs / var / spool / squid 100 16 256 ( ให้ squid เก็บข้อมูลแบบ ufs โดยเก็บไว้ที่ /var/spool/squid ใช้พื้นที่ 100 MB แบ่งเป็น 16 Dir หลัก และ 256 Dir ย่อย ) </li></ul><ul><li>cache_dir ufs / var / spool / squid 1000 128 256 </li></ul><ul><li># cache_access_log / var / log / squid / access . log ( เก็บ log ไว้ที่ใด ) </li></ul><ul><li>cache_access_log / var / log / squid / access . log </li></ul>
  67. 67. <ul><li>#acl our_networks src 192.168.1.0/24 192.168.2.0/24 </li></ul><ul><li>( กำหนด IP ให้ our_networks ) </li></ul><ul><li>acl our_networks src 192.168.200.240/28 </li></ul><ul><li>#http_access allow our_networks ( อนุญาตให้ ip ใน our_networks ใช้งาน squid ได้ ) </li></ul><ul><li>http_access allow our_networks </li></ul><ul><li># TAG : visible_hostname ( กำหนดชื่อ proxy ) </li></ul><ul><li>visible_hostname doiserver </li></ul><ul><li>~ </li></ul><ul><li>[root@doiserver root]# squid -z </li></ul><ul><li>2007/05/21 14:52:19| Creating Swap Directories </li></ul>Squid Proxy
  68. 68. <ul><li>[root@doiserver root]# service squid start </li></ul><ul><li>[ root@doiserver root ] # netstat - tanp |grep 8080 </li></ul><ul><li>tcp 0 0 0.0.0.0:8080 0.0.0.0 :* LISTEN 15382 / </li></ul><ul><li>[ root@doiserver root ] # tail - f / var / log / squid / access . log </li></ul><ul><li>1179734358.606 2334 192.168.200.246 TCP_MISS / 200 15520 GEThttp :// www . jodoi . com / - DIRECT / 72.29.87.198 text / html </li></ul><ul><li>1179734359.100 842 192.168.200.246 TCP_MISS / 200 1770 GET http :// www . jodoi . com / pic / new . gif - DIRECT / 72.29.87.198 image / gif </li></ul><ul><li>1179734359.407 793 192.168.200.246 TCP_MISS / 200 14528 GET http :// www . jodoi . com / pic / puket57_1 . jpg - DIRECT / 72.29.87.198 image / jpeg </li></ul><ul><li>1179734359.742 1124 192.168.200.246 TCP_MISS / 200 3100 GET http :// www . jodoi . com / pic / more . bmp - DIRECT / 72.29.87.198 image / bmp </li></ul>Squid Proxy
  69. 69. Web Server <ul><li>[root@doiserver root]# vi /etc/httpd/conf/httpd.conf </li></ul><ul><li>~ </li></ul><ul><li>Listen 80 </li></ul><ul><li>DocumentRoot &quot;/var/www/html“ </li></ul><ul><li>~ </li></ul><ul><li>[root@doiserver root]# service httpd start </li></ul><ul><li>[ root@doiserver root ] # netstat - tanp |grep 80 </li></ul><ul><li>tcp 0 0 0.0.0.0:80 0.0.0.0 :* LISTEN 15599 / httpd </li></ul>
  70. 70. <ul><li>http :// 192.168.200.249 / </li></ul>Web Server

×