This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ระบบจดการไฟลเซรฟเวอร File Server Management System
Arnut Ruttanatirakul [4] กลาวไววา CentOS ลนกซ เปนระบบปฏบตการลนกซดสทรบวช �นหน�ง ท�นยมใชอยางกวางขวางและฟร คาวา “CentOS” ยอมาจาก Community ENTerprise Operating System ซ�งเปนลนกซท�พฒนามาจากตนฉบบ RedHat Enterprise Linux (RHEL) โดยท� CentOS ไดนาเอาซอรสโคดตนฉบบของ RedHat มาทาการคอมไพลใหมโดยการพฒนายงเนนพฒนาเปนซอฟตแวร Open Source ท�ถอลขสทธ @แบบ GNU General Public License (GPL)
มตนแบบจาก RedHat ท�มความแขงแกรงสง (ปจจบนเนนพฒนาในเชงการคา) การตดต -งแพกเกจยอยภายในสามารถใชไดท -ง RPM, TAR, APT หรอใชคาส �ง YUM ในการอปเดทซอฟตแวรแบบอตโนมต ซ�งแพกเกจ (package) ยอยท�มอยกสามารถนามาใชทาเซรฟเวอรสาหรบองคกรไดหลากหลาย อาท เชน Web Server (APACHE), FTP Server (ProFTPd/VSFTPd), DNS Server (BIND), Database Server (MySQL/PostgreSQL), Mail Server (Sendmail/Postfix/Dovecot), File and Printer Server (SAMBA), DHCP Server (DHCPd), Streaming Server, RADIUS Server (FreeRADIUS), Control Panel (ISPConfig) เปนตน ดงรปท� 2.2
Attribute Name Description Data type Primary Key/Foreign Key auID ลาดบขอมลในตาราง INT Primary Key auDate วนท&ใช DATE auTime เวลาใช TIME auUser ช&อผใชงาน VARCHAR(255) auPID Process ID ลนกซ INT auIP IP Address ขณะใช VARCHAR(15) auNdrv ไดรฟท&ใช VARCHAR(12) auDid ลกษณะการใช VARCHAR(10) ตารางท� 3.5 ตารางขอมลการใชงานในระบบไฟลเซรฟเวอร สวนท& 2
Attribute Name Description Data type Primary Key/Foreign Key paID ลาดบขอมลในตาราง INT Primary Key paDes เสนทางไดรฟท&ใช LONGTEXT
27
3.2.5 ตวอยางขอมลแสดงบน Web Application ตารางท� 3.6 ตารางแสดงขอมล user ในระบบไฟลเซรฟเวอร User Name Group root root, bin, wheel, daemon, sys, adm, disk msit01 msit01, msit msne01 msne01, msne miss01 miss01, miss teach01 teach01, teach guest01 guest01, guests จากตารางท& 3.6 ไดดงขอมลจากตารางท& 3.1, 3.2 และ 3.3 มาใช ดงน User Name เปนการนาขอมลจาก Usr Group เปนการนาขอมลจาก Grp ตารางท� 3.7 ตารางแสดงขอมลการใชงานระบบไฟลเซรฟเวอร ลาดบ วนท� เวลา ผใช PID ผานIP Drive สถานะ folder/file
4.1 โครงสรางหนาระบบจดการไฟลเซรฟเวอร จากการท�ไดพฒนาระบบจดการไฟลเซรฟเวอรและไดออกแบบใหสามารถจดการไดโดยผาน Web Application ซ�งทางานอยภายใตเคร�องเดยวกนกบเคร�องท�ใหบรการไฟลเซรฟเวอรน 8น จะตองอาศยการตดต 8งโปรแกรมเพ�มเตม ดงน8 • ตดต 8งโปรแกรม APACHE เพ�อบรการ Web Server สาหรบการเขยน Web Application • ตดต 8งโปรแกรม MySQL เพ�อเปนฐานขอมลหลก ไวแสดงผลบน Web Application • ตดต 8งโปรแกรมภาษา PHP เพ�อใหดงฐานขอมลหลกแสดงผลบน Web Application
รปท� 4.1 โครงสรางหนาระบบจดการไฟลเซรฟเวอร
ท 8งน8ในระบบจดการไฟลเซรฟเวอรไดใชรปแบบขอภาษา HTML เปนโครงพ8นฐานเขยนหนาเวบไซต โดยมรายละเอยดดงตอไปน8
เน�องจากการสารองขอมลแบบ tar backup จะสารองขอมลแบบ 1 วน ตอ 1 ไฟล จงอาจทาใหใชพ8นท� Hard Disk ส8นเปลองมากในการจดเกบ เพ�อปองกนปญหาดงกลาวน8 จงไดออกแบบใหมหนาลบไฟล tar เพ�มเตม ดงรปท� 4.38 เพ�อใหสามารถบรหารจดการพ8นท� Harddisk หากไฟล tar ท�มอยไมมการใชงานหรอเปนรนท�เกามากแลว
45
รปท� 4.39 แสดงหนาจดการกขอมลดวย tar backup
ในสวนของการทดสอบกขอมลผานระบบ tar backup กใหผลเปนท�นาพอใจเชนเดยวกนกบการทดสอบ rsync backup โดยการสารองขอมลระหวาง rsync กบ tar น 8น มขอแตกตางกนท� rsync จะสารองขอมลแบบไดเรคทอร�กบไดเรคทอร� ขณะท� tar จะสารองขอมลแบบ 1 วน ตอ 1 ไฟล ท 8งน8การเกบสารองขอมลในแบบ tar จะมความยดหยนมากกวาในการกคนไฟลขอมลท�เปนไฟลงานเกา ๆ ได ดงรปท� 4.39
เอกสารอางอง [1] วกพเดย สารานกรมเสร. ลนกซ. [Online]. Available: https://th.wikipedia.org/wiki/ลนกซ [2] ธรภทร มนตรศาสตร. เลอกลนกซดสทรบวช �นใหเหมาะกบตวคณ. [Online]. Available: http://www.itdestination.com/articles/linux-distro/ [3] Machtelt Garrels. Chapter 3 About files and the file system. [Online]. Available: http://tldp.org/LDP/intro-linux/html/sect_03_01.html [4] Arnut Ruttanatirakul. CentOS Linux เซรฟเวอรทางเลอกสาหรบองคกร. [Online]. Available: http://www.arnut.com/b/CentOS [5] นนาถ วนาพรรณ, คมอ Windows Server 2003 R2. กรงเทพฯ: โปรวช �น, 2550, pp.187-247. [6] TechNet Microsoft Site. Active Directory Collection. [Online]. Available: http://technet.microsoft.com/en-us/library/cc780036(v=ws.10).aspx [7] ฝายพฒนาและบรการเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยอบลราชธาน. [Online]. Available: http://scinet.sci.ubu.ac.th/document/joinDomain/index.cfm [8] Windows IT Pro Website. How does Windows learn about a user's group memberships if the Kerberos logon process involves different Windows domains? [Online]. Available: http://windowsitpro.com/security/q-how-does-windows-learn-about-users-group-memberships-if-kerberos-logon-process-involves-d [9] ภวดล ดานระหาญ. Samba Security. [Online]. Available: http://hospital.moph.go.th/sapphaya/DownLoad/Download/Samba%20Security.htm [10] Gerhard Mourani and OpenDocs, LLC. Chapter 31 Software -Server/File Sharing-Network. [Online]. Available: http://www.faqs.org/docs/securing/chap29sec280.html [11] Jelmer R. Vernooij, John H. Terpstra and Gerald (Jerry) Carter (12th April 2005). The official Samba-3 HOWTO and Reference Guide. [Online]. pp.353-360. Available: http://www.klevze.si/samba/docs/Samba-HOWTO-Collection.pdf [12] The Samba Team. Chapter 23 Stackable VFS modules Part III. Advanced Configuration. [Online]. Available: http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/VFS.html [13] บณฑต จามรภต. คมภร Ubuntu Linux Server เลม 2. กรงเทพฯ: Bandhit Press, 2553, pp.158-202. [14] วกพเดย สารานกรมเสร. อะแพช เวบเซรฟเวอร. [Online]. Available: http://th.wikipedia.org/wiki/อะแพช_เวบเซรฟเวอร [15] วกพเดย สารานกรมเสร. มายเอสควเอล. [Online]. Available: https://th.wikipedia.org/wiki/มายเอสควเอล [16] PHP Site. History of PHP. [Online]. Available: http://www.php.net/manual/en/history.php
รปท� ก.5 แสดงหนา Choose a Tool ในแบบ Text Mode ของลนกซ
เม#อใสคาส #งแลวจะพบหนา ‘Choose a Tool’ ดงรปท# ก.5 ใหเลอกไปท# Network configuration
ก-4
รปท� ก.6 หนา setup สวน Network configuration
จากรปท# ก.6 เลอก Edit Devices > แลวเลอก Device (eth0) > set คา IP ของเคร#องเซรฟเวอร จากน 2น Save > Save&Quit > Quit แลวทาข 2นตอนตอไป เม#อต 2งคาเรยบรอยแลวใหทาการเร#มระบบ Network ดวยคาส #ง # service network restart ปดระบบความปลอดภยของระบบปฏบตการ
เพ#อใหการทดสอบเปนไปอยางราบร#น จงตองทาการปดระบบความปลอดภยของระบบปฏบตการ โดยส#งท#ตองปด มดงน2 ปดระบบ firewall ดวยคาส #ง # service iptables stop # iptables -L # service iptables save ปดการทางาน SELINUX โดยแกคาในไฟล /etc/selinux/config # vi /etc/selinux/config เม#อเปดไฟล config แลว ใหแกไข SELINUX=disabled ตามคาดานลาง แลวบนทกไฟล # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled.
ก-5
SELINUX=disabled # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted ปด GUI โหมดของระบบปฏบตการ ทาการต 2งคาระบบปฏบตการใหเเร#มระบบแบบ Text Mode หรอ TUI (Text Unit Interface) เม#อเปดเคร#อง โดยใหแกไขในไฟล /etc/inittab โดยเปล#ยนจาก โหมด Graphic Mode หรอ GUI (Graphic Unit Interface) ดงน2 # vi /etc/inittab เม#อเขามาในไฟล inittab แลวใหหาบรรทดท#เขยนวา “id:5:initdefault:” แลวแกไขใหเปน “id:3:initdefault:” จากน 2นทาการบนทกไฟล
จากน 2นทาการต 2งคาโปรแกรมแซมบา ใหเปน Primary Domain Controller (PDC) โดยต 2งช#อ Domain ของแซมบาวา server โดยแกคาในไฟล /etc/samba/smb.conf โดยใสคาดงตอไปน2 # This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example
ก-6
# # For a step to step guide on installing, configuring and using samba, # read the Samba-HOWTO-Collection. This may be obtained from: # http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf # # Many working examples of smb.conf files can be found in the # Samba-Guide which is generated daily and can be downloaded from: # http://www.samba.org/samba/docs/Samba-Guide.pdf # # Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # # NOTE: Whenever you modify this file you should run the command "testparm" # to check that you have not made any basic syntactic errors. # #--------------- # SELINUX NOTES: # # If you want to use the useradd/groupadd family of binaries please run: # setsebool -P samba_domain_controller on # # If you want to share home directories via samba please run: # setsebool -P samba_enable_home_dirs on # # If you create a new directory you want to share you should mark it as # "samba-share_t" so that selinux will let you write into it. # Make sure not to do that on system directories as they may already have # been marked with othe SELinux labels. # # Use ls -ldZ /path to see which context a directory has # # Set labels only on directories you created!
ก-7
# To set a label use the following: chcon -t samba_share_t /path # # If you need to share a system created directory you can use one of the # following (read-only/read-write): # setsebool -P samba_export_all_ro on # or # setsebool -P samba_export_all_rw on # # If you want to run scripts (preexec/root prexec/print command/...) please # put them into the /var/lib/samba/scripts directory so that smbd will be # allowed to run them. # Make sure you COPY them and not MOVE them so that the right SELinux context # is applied, to check all is ok use restorecon -R -v /var/lib/samba/scripts # #=============== Global Settings ============== [global] # ----------------------- Network Related Options ------------------------- # # workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH # # server string is the equivalent of the NT Description field # # netbios name can be used to specify a server name not tied to the hostname # # Interfaces lets you configure Samba to use multiple interfaces # If you have multiple network interfaces then you can list the ones # you want to listen on (never omit localhost) # # Hosts Allow/Hosts Deny lets you restrict who can connect, and you can # specifiy it as a per share option as well # ; workgroup = MYGROUP
ก-8
workgroup = SERVER ; server string = Samba Server Version %v server string = SERVER %v ; netbios name = MYSERVER ;netbios name = FSERVER netbios name = smbpro ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 interfaces = lo eth0 eth1 ; hosts allow = 127. 192.168.12. 192.168.13. ; hosts allow = 127. 192.168.226. # --------------------------- Logging Options ----------------------------- # # Log File let you specify where to put logs and how to split them up. # # Max Log Size let you specify the max size log files should reach # logs split per machine ; log file = /var/log/samba/%m.log # max 50KB per log file, then rotate ; max log size = 50 # ----------------------- Standalone Server Options ------------------------ # # Security can be set to user, share(deprecated) or server(deprecated) # # Backend to store user information in. New installations should # use either tdbsam or ldapsam. smbpasswd is available for backwards # compatibility. tdbsam requires no further configuration. ; security = user ; passdb backend = tdbsam
ก-9
# ----------------------- Domain Members Options ------------------------ # # Security must be set to domain or ads # # Use the realm option only with security = ads # Specifies the Active Directory realm the host is part of # # Backend to store user information in. New installations should # use either tdbsam or ldapsam. smbpasswd is available for backwards # compatibility. tdbsam requires no further configuration. # # Use password server option only with security = server or if you can't # use the DNS to locate Domain Controllers # The argument list may include: # password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] # or to auto-locate the domain controller/s # password server = * ; security = domain ; passdb backend = tdbsam ; realm = MY_REALM ; password server = <NT-Server-Name> # ----------------------- Domain Controller Options ------------------------ # # Security must be set to user for domain controllers # # Backend to store user information in. New installations should # use either tdbsam or ldapsam. smbpasswd is available for backwards # compatibility. tdbsam requires no further configuration. # # Domain Master specifies Samba to be the Domain Master Browser. This
ก-10
# allows Samba to collate browse lists between subnets. Don't use this # if you already have a Windows NT domain controller doing this job # # Domain Logons let Samba be a domain logon server for Windows workstations. # # Logon Scrpit let yuou specify a script to be run at login time on the client # You need to provide it in a share called NETLOGON # # Logon Path let you specify where user profiles are stored (UNC path) # # Various scripts can be used on a domain controller or stand-alone # machine to add or delete corresponding unix accounts # security = user ; passdb backend = tdbsam domain master = yes domain logons = yes # the login script name depends on the machine name ; logon script = %m.bat # the login script name depends on the unix user used logon script = %u.bat ; logon path = \\%L\Profiles\%u # disables profiles support by specifing an empty path ; logon path = add user script = /usr/sbin/useradd "%u" -n -g users add group script = /usr/sbin/groupadd "%g" add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u" delete user script = /usr/sbin/userdel "%u" delete user from group script = /usr/sbin/userdel "%u" "%g" delete group script = /usr/sbin/groupdel "%g"
ก-11
# logs split per user log file = /var/log/samba/%U.log # logs split per machine ; log file = /var/log/samba/%m.log ; log file = /var/log/samba/log.%m # all log information in one file ; log file = /var/log/samba/smblog.txt log level = 2 # max 50KB per log file, then rotate max log size = 50000 # ----------------------- Browser Control Options ---------------------------- # # set local master to no if you don't want Samba to become a master # browser on your network. Otherwise the normal election rules apply # # OS Level determines the precedence of this server in master browser # elections. The default value should be reasonable # # Preferred Master causes Samba to force a local browser election on startup # and gives it a slightly higher chance of winning the election local master = no ; os level = 33 os level = 65 ; preferred master = yes preferred master = yes #----------------------------- Name Resolution ------------------------------- # Windows Internet Name Serving Support Section: # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both # # - WINS Support: Tells the NMBD component of Samba to enable it's WINS Server #
ก-12
# - WINS Server: Tells the NMBD components of Samba to be a WINS Client # # - WINS Proxy: Tells Samba to answer name resolution queries on # behalf of a non WINS capable client, for this to work there must be # at least one WINS Server on the network. The default is NO. # # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. wins support = yes ; wins server = w.x.y.z wins proxy = yes dns proxy = yes # --------------------------- Printing Options ----------------------------- # # Load Printers let you load automatically the list of printers rather # than setting them up individually # # Cups Options let you pass the cups libs custom options, setting it to raw # for example will let you use drivers on your Windows clients # # Printcap Name let you specify an alternative printcap file # # You can choose a non default printing system using the Printing option load printers = yes cups options = raw ; printcap name = /etc/printcap #obtain list of printers automatically on SystemV ; printcap name = lpstat ; printing = cups
ก-13
# --------------------------- Filesystem Options --------------------------- # # The following options can be uncommented if the filesystem supports # Extended Attributes and they are enabled (usually by the mount option # user_xattr). Thess options will let the admin store the DOS attributes # in an EA and make samba not mess with the permission bits. # # Note: these options can also be set just per share, setting them in global # makes them the default for all shares ; map archive = no ; map hidden = no ; map read only = no ; map system = no ; store dos attributes = yes # ---------------------- Additional from Admin ------------------------ vfs objects = full_audit recycle ;vfs full_audit full_audit:prefix = %u %d %I %S ;full_audit:prefix = %T %u %d %I %S full_audit:failure = connect full_audit:success = connect disconnect opendir mkdir rmdir closedir close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath full_audit:facility = local5 full_audit:priority = notice ;vfs recycle recycle:repository = /recycled/%U recycle:exclude = ~* *.tmp *.temp Thumbs.db recycle:keeptree = yes
ก-14
recycle:versions = yes recycle:maxsize = 5000000000 recycle:directory_mode = 777 recycle:subdir_mode = 777 hide dot files = yes # --------------- End of Additional from Admin ------------------ #========= Share Definitions ========== [homes] comment = Home Directories browseable = no writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes # Un-comment the following and create the netlogon directory for Domain Logons [netlogon] comment = Network Logon Service path = /whole/netlogon guest ok = yes browseable = no writable = no share modes = no
ก-15
# Un-comment the following to provide a specific roving profile share # the default is to use the user's home directory ; [Profiles] ; path = /var/lib/samba/profiles ; browseable = no ; guest ok = yes # A publicly accessible directory, but read only, except for people in # the "staff" group [public] comment = Public for all sharing ; path = /home/samba path = /whole/public guest ok = yes writable = yes directory mask = 0777 create mask = 0777 ; printable = no ; write list = +staff ;write list = @mut #========= End STD Share ======== [whole] comment = all of data. path = /whole valid users = root write list = @root [teach] comment = all of data. path = /whole/teach valid users = @teach
ก-16
write list = @teach force group = teach directory mask = 0770 create mask = 0770 [msit] comment = all of data. path = /whole/msit valid users = @msit write list = @msit force group = msit directory mask = 0770 create mask = 0770 [miss] comment = all of data. path = /whole/miss valid users = @miss write list = @miss force group = miss directory mask = 0770 create mask = 0770 [msne] comment = all of data. path = /whole/msne valid users = @msne write list = @msne force group = msne directory mask = 0770 create mask = 0770 [www] comment = website project.