Nhấp vào nút cấu hình SHARES ở gần phía trên của trang để nạp một trang cho phép bạn cấu hình các cây thư mục samba như hình.
Hệ điều hành mã nguồn mở
Trang 97
Hình 19.6: Phần share.
Để thêm một cây thư mục vào danh sách các chia sẻ samba, bạn nhập vào tên mà bạn muốn dùng cho việc chia sẻ trên hệ thống mạng, bạn nhập vào tên chia sẻ ở hộp thoại Create share và nhấp vào nút Create share. Một số cách tùy chọn mới xuất hiện như hình trên.
Để cấu hình việc chia sẻ mới, bạn thực hiện các bước sau:
Nhập vào một mô tả cho việc chia sẻ trong hộp nhập liệu Command.
Nhập vào cây thư mục mà bạn muốn kèm theo việc chia sẻ này trong hộp nhập liệu path. Nếu chia sẻ này là chỉ đọc, chọn yes từ danh sách sổ xuống Readonly, nếu không chọn No. Nếu chia sẻ này có thể được truy cập cho người dùng khách (guest) nghĩa là người dùng windows sẽ không phải nhập vào thông tin tài khoản để truy cập chọn Yes từ danh sách guest sổ xuống nếu không chọn No.
Sau khi thực hiện xong việc cấu hình chia sẻ, nhấp nút Commit changes để lưu trữ việc cấu hình của chia sẻ này. Để tạo thêm các chia sẻ khác, bạn nhập tên chia sẻ mà bạn muốn tạo trong hộp nhập liệu Create share và lập lại toàn bộ quá trình chia sẻ như trên.
Khởi động và tự khởi động dịch vụ samba swat.
Để khởi tạo samba sau khi bạn cấu hình nó, nhấp vào nút status một trang chứa thông tin trạng thái được hiển thị, nhấp vào nút Restart smbd và nmbd để khởi động lại các thay đổi cấu hình mà bạn đã tạo như hình sau:
Hệ điều hành mã nguồn mở
Trang 98
Hình 19.7: Phần status. 19.3.6 Tạo các tài khoản trên samba-swat.
Nhấp vào nút password. Một trang mới được hiển thị chứa các công cụ để làm việc với các tài khoản người dùng như hình:
Hình 19.8: Tạo user cho samba.
Để thêm một người dùng, bạn nhập vào tài khoản đã có của người dùng trong linux trong hộp thoại nhập liệu server Password Management User Name. Sau đó, bạn nhập vào một mật mã của dịch vụ tập tin windows cho người sử dụng trong hộp thoại nhập liệu New Password và nhập nó lại lần nữa trong hộp thoại Re-type New password. Sau đó nhấn vào nút Add New User để thêm người dùng
Hệ điều hành mã nguồn mở
Trang 99 đó vào. Người dùng có thể dùng username Linux của họ và mật mã mới để truy cập chia sẻ non- guest từ máy windows trên hệ thống mạng.
Chú ý: để xóa một tài khoản người dùng, thì nhập vào tên của người dùng trong hộp nhập liệu user name và nhấp nút delete user.
19.3.7 Xem tập tin cấu hình smb.
Sau khi chúng ta cấu hình xong các chia sẽ có thể nhấp vào view để xem lại các cấu hình của chúng ta vừa thực hiện.
19.3.8 Đổi port truy cập mặc định cho samba-swat.
Bước 1: dung vi để Edit file cấu hình /etc/services. Sau đó tìm dòng Swat 901/TCP Sửa lại thành:
Swat port cần đổi thành/TCP
Bước 2: dung vi để Edit file cấu hình /etc/xinetd.d/Swat sau dó sửa thành: service swat
{
disable = no
port = port cần chuyển thành socket_type = stream wait = no only_from = 172.29.14.149 localhost user = root server = /usr/sbin/swat log_on_failure += USERID }
19.4 Cài đặt và triển khai hệ thống Domain sử dụng Samba
Cấu hình PCD với Samba+OpenLDAP. Hệ thống LDAP server chạy trên mạng LAN tương tự như một hệ thống PDC cần LDAP Client
Thiết lập cho OpenLDAP
[root@dir~]# wget http://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/samba-3.5.4- 68.el6.x86_64.rpm
[root@dir ~]# mkdir tmp [root@dir ~]# cd tmp
[root@dir tmp]# rpm2cpio ~/samba-3.5.4-68.el6.x86_64.rpm | cpio -id
[root@dir tmp]# cp./etc/openldap/schema/samba.schema /etc/openldap/schema/ [root@dir tmp]# vi schema_convert.conf # create new include /etc/openldap/schema/core.schema include /etc/openldap/schema/collective.schema include /etc/openldap/schema/corba.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema
Hệ điều hành mã nguồn mở
Trang 100 include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/samba.schema [root@dir tmp]# mkdir ldif_output
[root@dir tmp]# slapcat -f schema_convert.conf -F./ldif_output -n0 -s "cn={12} samba, cn=schema, cn=config" >./cn=samba.ldif
[root@dir tmp]# vi cn=samba.ldif # line 1,3: change ( remove "{12}" ) dn: cn=samba,cn=schema,cn=config objectClass: olcSchemaConfig cn: samba
# remove these lines below ( placed at the bottom ) structuralObjectClass: olcSchemaConfig entryUUID: 761ed782-e76d-102f-94de-7784c8a781ec creatorsName: cn=config createTimestamp: 20110320184149Z entryCSN: 20110320184149.954974Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20110320184149Z
[root@dir tmp]# ldapadd -Y EXTERNAL -H ldapi:/// -f cn=samba.ldif SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0
adding new entry "cn=samba,cn=schema,cn=config" [root@dir tmp]# vi samba_indexes.ldif # create new dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: uidNumber eq olcDbIndex: gidNumber eq olcDbIndex: loginShell eq olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub olcDbIndex: uniqueMember eq,pres olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq olcDbIndex: sambaGroupType eq olcDbIndex: sambaSIDList eq olcDbIndex: sambaDomainName eq olcDbIndex: default sub
[root@dir tmp]# ldapmodify -Y EXTERNAL -H ldapi:/// -f samba_indexes.ldif SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config" [root@dir tmp]# cd
[root@dir ~]# rm -rf tmp
[root@dir ~]# /etc/rc.d/init.d/slapd restart Stopping slapd:
[ OK ]
Starting slapd: [ OK ]
Cấu hình samba, hệ thống PDC Samba cần ít nhất một LDAP client: [root@lan ~]# yum --enablerepo=epel -y install smbldap-tools
Hệ điều hành mã nguồn mở
Trang 101 # install from EPEL
[root@lan ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@lan ~]# cp /usr/share/doc/smbldap-tools-*/smb.conf /etc/samba/smb.conf [root@lan ~]# vi /etc/samba/smb.conf
workgroup = ServerWorld ldap passwd sync = yes Dos charset = CP932 Unix charset = UTF-8 passdb backend = ldapsam: ldap://10.0.0.39/
ldap admin dn =cn=admin,dc=server,dc=world ldap suffix = dc=server,dc=world
ldap group suffix = ou=groups ldap user suffix = ou=people
delete group script = /usr/sbin/smbldap-groupdel "%g"
set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' admin users =domain-admin
ldap ssl = no
[root@lan ~]# mkdir /home/netlogon [root@lan ~]# /etc/rc.d/init.d/smb restart Shutting down SMB services:
[ OK ]
Starting SMB services: [ OK ]
[root@lan ~]# /etc/rc.d/init.d/nmb restart Shutting down NMB services: [ OK ] Starting NMB services:[ OK ] [root@lan ~]# smbpasswd -W
Setting stored password for "cn=admin,dc=server,dc=world" In secrets.tdb New SMB password:
Retype new SMB password:
[root@lan ~]# perl /usr/share/doc/smbldap-tools-*/configure.pl smbldap-tools script configuration
Samba Configuration File Path [/etc/samba/smb.conf] > logon drive [H:] >
[root@lan ~]# smbldap-populate entry dc=server,dc=world already exist.
entry ou=people,dc=server,dc=world already exist. entry ou=groups,dc=server,dc=world already exist. adding new entry: ou=Computers,dc=server,dc=world adding new entry: ou=Idmap,dc=server,dc=world
adding new entry: uid=root,ou=people,dc=server,dc=world adding new entry: uid=nobody,ou=people,dc=server,dc=world
adding new entry: cn=Domain Admins,ou=groups,dc=server,dc=world adding new entry: cn=Domain Users,ou=groups,dc=server,dc=world adding new entry: cn=Domain Guests,ou=groups,dc=server,dc=world adding new entry: cn=Domain Computers,ou=groups,dc=server,dc=world adding new entry: cn=Administrators,ou=groups,dc=server,dc=world adding new entry: cn=Account Operators,ou=groups,dc=server,dc=world adding new entry: cn=Print Operators,ou=groups,dc=server,dc=world adding new entry: cn=Backup Operators,ou=groups,dc=server,dc=world adding new entry: cn=Replicators,ou=groups,dc=server,dc=world
entry sambaDomainName=ServerWorld,dc=server,dc=world already exist. Updating it... entry sambaDomainName=ServerWorld,dc=server,dc=world already exist. Updating it...
Hệ điều hành mã nguồn mở
Trang 102 Bài 20: Thực hành 7: triển khai hệ thống Samba trong mạng LAN (4 tiết)
Hệ điều hành mã nguồn mở
Trang 103 Bài 21: Cài đặt và cấu hình dịch vụ webserver (3 tiết)
21.1 Cài đặt và cấu hình dịch vụ dịch vụ wed server.
21.1.1 Giới thiệu.
Apache: web server phổ biến nhất, chiếm 2/3 tổng số web server hiện nay (theo thống kê của Netcraft, http://www.netcraft.com).
Apache là một phần mềm có hiều tính năng mạnh và linh hoạt dùng để làm Webserver. Hỗ trợ đầy đủ những giao thức HTT trước đây như HTTP/1.1.
Có thể cấu hình và mở rông với những module của công ty thứ 3. Cung cấp source code đầy đủ với license không hạn chế.
Chạy trên nhiều hệ điều hành như Windows NT/9x, Netware 5.x, OS/2 và trên hầu hết các hệ điều hành Unix.
Để sử dụng Fedora Core như một web server, bạn thực hiện theo các bước sau: Cài đặt Apache.
Cài đặt công cụ system-config-httpd để cấu hình Apache web server
Cấu hình Linux để tự động khởi động Apache web server khi khởi động hệ thống. Cấu hình firewall của Linux để cho phép trao đổi các yêu cầu của web.
21.1.2 Cài đặt.
Có hai cách để cài đặt Apache: Cài đặt từ nguồn:
Chúng ta có thể download gói tin httpd-2.2.3.tar.gz từ trên mạng. Nếu sử dụng gói.gz thì dùng lệnh: tar xvzf httpd-***.tar.gz để giải nén. Vào thư mục vừa giải mã, sau đó sử dụng các lệnh để cài đặt:
#./configure #make #make install Cài đặt từ đĩa CD:
Dùng câu lệnh sau để cài đặt Apache từ đĩa CD:
#rpm -ivh /media/CentOS/httpd-2.2.3-31.el5.centos.i386.rpm
21.1.3 Cấu hình.
Khởi động dịch vụ.
Mặc định thì dịch vụ Apache chưa được kích hoạt. Để khởi động, sử dụng công cụ hoặc dùng dòng lệnh:
# service httpd start
Để chắc chắn là Apache sẽ khởi động mỗi lần hệ thống boot, hãy enable dịch vụ Apach bằng câu lệnh:
Hệ điều hành mã nguồn mở
Trang 104 #chkconfig httpd on
Khi thay đổi cấu hình của Apache, bạn phải reload lại Apache bằng dòng lệnh: # service httpd reload
Kiểm tra Apache.
Dùng trình duyệt web có sẵn trong Linux như Firefox, truy cập vào địa chỉ http://localhost, bạn sẽ thấy trang web hiện ra như sau:
Hình 21.1: Kiểm tra hoạt động của apache.
Bạn có thể truy cập vào trang web trên server từ xa thông qua địa chỉ IP của server (ví dụ như http://192.168.1.1/), hoặc nếu như dịch vụ DNS có hổ trợ thì bạn có thể truy cập thông qua hostname của server (ví dụ như http://linuxgroup.com/)
Các tham số trong tập tin cấu hình httpd.conf. Global Environment.
ServerRoot: nơi đặt tập tin cấu hình
Cú pháp: ServerRoot <đường_dẫn_thư_mục> Ví dụ: ServerRoot “/etc/httpd”
Listen: quy định địa chỉ IP hoặc cổng mà web server nhận kết nối từ client. Cú pháp: Listen <IP:port>
Ví dụ: Listen 8080 #cổng 80 ở tất cả các card mạng. Listen 192.168.5.6:8080 #công 8080 của 1 card mạng.
TimeOut <time>: qui định thời gian sống của một kết nối (tính bằng giây). Ví dụ: TimeOut 300
KeepAlive <On/Off>: cho phép hoặc không cho phép client gửi được nhiều yêu cầu dựa trên một kết nối với web server
Hệ điều hành mã nguồn mở
Trang 105 Ví du: KeepAlive On
MaxKeepAliveRequest <số_request>: số tối đa của request trên một kết nối (nếu cho phép nhiều Request trên một kết nối)
Ví du: MaxKeepAliveRequest 100
KeepAliveTimeOut <time>: qui định thời gian để chờ cho một Request kế tiếp từ cùng một client trên cùng một kết nối (được tinh bằng giây)
Ví dụ: KeepAliveTimeOut 15
MaxClients <number>: qui định số yêu cầu tối đa từ các client gửi đồng thời đến server Ví du: MaxClients 256
BindAddress <IP/*>: qui định địa chỉ card mạng để chạy Apache trên server. Sử dụng dấu “ * ” để có thể sử dụng tất cả các địa chỉ có trên máy.
Ví dụ: BindAddress 192.168.5.5 Mặc định là: BindAddress * Main' server configuration. User apache
Group apache
ServerAdmin < email>: địa chỉ email của người quản trị website Ví dụ: ServerAdmin root@linuxgroup.com
ServerName <name/IP> tên hoặc địa chỉ của Ví du: ServerName www.linuxgroup.com DocumentRoot <path>: nơi đặt dữ liệu web Ví dụ: DocumentRoot /var/www/html
# cấu hình server mặc định (xem DocumentRoot) <directory></directory>var/www/html"> Options Indexes FollowSymLinks AllowOverride AuthConfig Limit # cho phép mọi người xem trang web chính Order allow,deny
Allow from all <ifmodule>
# không sử dụng: UserDir disable
# trường hợp sử dụng: chỉ định nơi đặt dữ liệu # UserDir public_html
</ifmodule>
+ ServerSignature Off: không hiển thị thông tin về server + AddDefaultCharset UTF-8: bộ mã mặc định
+ DirectoryIndex <danh_sách_tập_tin>: các tập tin mặc định khi truy cập tên website. Ví dụ: DirectoryIndex index.html index.html index.php index.cgi
+ ErrorLog <vị_trí_tập_tin_log>: chỉ định tập tin để server ghi vào bất kỳ những lỗi mà nó gặp phải.
Hệ điều hành mã nguồn mở
Trang 106 Ví dụ: ErrorLog logs/error_log
+ Nếu đường dẫn không có dấu / thì vị trí tập tin log liên quan đến ServerRoot
+ Alias <đường_dẫn_http> <đường_dẫn_cục_bộ>: ánh xạ đường dẫn cục bộ (không nằm trong DocumentRoot) thành đường dẫn http
Ví dụ: Alias /manual /var/www/manual
+ Để giới hạn việc truy cập củangười dùng, ta có thể kết hợp với các khai báo Directory như ví dụ sau:
Alias /manual /var/www/manual <Directory /var/www/manual> AuthType Basic
AuthName intranet
AuthUserFile /etc/httpd/passwd Require user <user cần chứng thực> Allow from linuxgroup.com </Directory>
+ UserDir: cho phép người dùng tạo Homepage của minh lên server Ví dụ: UserDir www
<Directory /home/mimi/www> Order deny,allow Allow from all </Directory>
+ Trong thư mục home directory của người dùng mimi tạo thư mục www. Khi đó cú pháp truy cập từ web browser là http://www.linuxgroup.com/~mimi
Virtual Hosts:
Là tinh năng của Apache giúp ta duy trì nhiều hơn một web server trên một máy tính.
Named-based Virtual Hosts: server dựa vào HTTP header của client để biết được hostname. Sử dụng kỹ thuật này một địa chỉ IP có thể có nhiều tên miền khác nhau.
Ví dụ: Tạo ra 2 web server www.domain1.linuxgroup.com www.domain2.linuxgroup.com
trên một máy tính có IP 192.168.5.5 như sau: # cho http (cổng 8080) NameVirtualHost *:8080 <virtualhost 192.168.5.5> ServerName www.domain1.linuxgroup.com DocumentRoot /var/www/domain1 ServerAdmin domain1@linuxgroup.com ErrorLog /var/log/httpd/A/error_log
CustomLog /var/log/httpd/A/access_log combined <directory></directory>var/www/domain1"> AllowOverride AuthConfig Limit
</virtualhost>
<virtualhost 192.168.5.5>
Hệ điều hành mã nguồn mở
Trang 107 # gõ http://domain2.linuxgroup.com sẽ chuyển đến
http://www.domain2.linuxgroup.com
ServerAlias domain2.linuxgroup.com *.domain2.linuxgroup.com DocumentRoot /var/www/domain2
ServerAdmin domain2@linuxgroup.com ErrorLog /var/log/httpd/B/error_log
CustomLog /var/log/httpd/B/access_log combined <directory></directory>var/www/domain2">
AllowOverride AuthConfig FileInfo Limit Options </virtualhost>
+ Lưu ý: Phải cấu hình DNS phân giải 2 tên miền www.domain1.linuxgroup.com
www.domain2.linuxgroup.com về cùng một địa chỉ 192.168.5.5 Cấu hình SSL/TLS.
Tiếp theo, khai báo IP và port trong httpd.conf # cho https (cổng 443)
NameVirtualHost 192.168.5.15:443 # trang web https://www.A-domain.name # tham khảo file /etc/httpd/conf.d/ssl.conf
<virtualhost> ServerName www.A-domain.name DocumentRoot /var/www/html ServerAdmin webmaster@A-domain.name ErrorLog /var/log/httpd/A/error_log CustomLog /var/log/httpd/access_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL <files> SSLOptions +StdEnvVars </files> <directory></directory>var/www/cgi-bin"> SSLOptions +StdEnvVars SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key </virtualhost> Cấu hình truy cập.
Apache sử dụng đường dẫn thư mục để kiểm soát sự truy cập vào thư mục trên hệ thống máy tình của bạn. Thư mục root được cấu hình đầu tiên:
<Directory />
Options FollowSymLinks AllowOverride None </Directory>
Chỉ dẫn Option gồm các trạng thái: nó chỉ rõ quền của các thư mục này. Trong trường hợp này, tất cả các sự truy cập vào thư mục root và các thư mục con, toàn bộ hệ thống ngăn cấm truy cập vào các đường dẫn.
Hệ điều hành mã nguồn mở
Trang 108 Thư mục chứa trong thư mục /var/www/html và các thư mục con của nó:
<Directory "/var/www/html"> Options Indexes FollowSymLink AllowOverride None
Order Allow,Deny Allow from all </Directory>
Các giá trị của Option được lựa chọn trong danh sách sau: All: Mặc định, cho phép mọi sự truy cập cho Multiview. ExecCGI: Cho phép thực thi các đoạn Script.
FollowSymLinks, SymLinksIfOwnerMatch: Nếu FollowSynLinks đuợc định nghĩa Apache sẽ theo ký hiệu lêin kết dẫn tới hoặc từ thư mục nào. Nếu SymLinksIfOwnerMatch đựơc định nghĩa, các liên kết và các đường phải thuộc vào cùng user.
Includes, IncludesNoExec: Một file có thế bao gồm (Includes) một file khác, có hoặc không có khả năng (Includes và IncludesNoExec, theo thứ tự) để thực thi các file khác. Các file sử dụng đặc điểm này phải có tên file với phần mở rộng là.shtml và có thể bao gồm các chỉ dẫn ví dụ như <!-- #include virtual="footer.html" --> hoặc <!--#exec cmd="/usr/bin/cal" --> để thêm file footer.html hoặc xuất ra dòng lệnh, theo thứ tự.
Indexes: Một trang Index.html thường được đáp ứng như một chỉ mục cho thư mục. Cài đặt và cấu hình Mysql và php.
Bạn đưa đĩa cd cài đặt CentOS 5.4 vào ổ cd Mount đĩa cd bằng lệnh: mount /dev/cdrom /media/ Sử dụng lệnh rpm cài đặt các gói sau:
Cài đặt mysql: rpm -ivh mysql-bench-4.11.1-2.rpm rpm -ivh mysql-4.11.1-2.rpm rpm -ivh mysqlclient10-3.23.58-6.rpm rpm -ivh mysql-server-4.11.1-2.rpm Cài đặt php: rpm -ivh php-mysql-5.0.4-10.rpm rpm -ivh php-5.0.4-10.rpm rpm -ivh php-ldap-5.0.4-10.rpm rpm -ivh php-pear-5.0.4-10.rpm Cấu hình mysql:
Tạo nhóm (nhóm này có tên là mysql)