一、建立samba共享,共享目录为/data,要求:
1)共享名为shared,工作组为MYDATA,可以被浏览;
2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
3)添加samba用户gentoo,centos和ubuntu,密码均为 “samba”;
4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
5)此samba共享服务仅允许来自于192.168.1.0/24网络的主机访问;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<code># 说明,以下所有的配置都是在同一它机器中完成的,CentOS6.5系统</code>
<code># 一、安装软件</code>
<code> </code><code>yum </code><code>install</code> <code>samba -y </code>
<code># 二、准备用户</code>
<code> </code><code>groupadd develop</code>
<code> </code><code>useradd</code> <code>-G develop gentoo</code>
<code> </code><code>useradd</code> <code>-G develop centos</code>
<code> </code><code>useradd</code> <code>ubuntu</code>
<code> </code><code>echo</code> <code>"gentoo"</code> <code>| </code><code>passwd</code> <code>gentoo --stdin</code>
<code> </code><code>echo</code> <code>"centos"</code> <code>| </code><code>passwd</code> <code>centos --stdin</code>
<code> </code><code>echo</code> <code>"ubuntu"</code> <code>| </code><code>passwd</code> <code>ubuntu --stdin</code>
<code> </code><code>echo</code> <code>-e </code><code>"samba\nsamba"</code> <code>| smbpasswd -a gentoo -s </code>
<code> </code><code>echo</code> <code>-e </code><code>"samba\nsamba"</code> <code>| smbpasswd -a centos -s </code>
<code> </code><code>echo</code> <code>-e </code><code>"samba\nsamba"</code> <code>| smbpasswd -a ubuntu -s </code>
<code> </code><code>setfacl -m g:develop:rwx </code><code>/data/</code>
<code> </code><code># 三、samba服务器配置,主要参数如下:</code>
<code># 配置文件时 /etc/samba/smb.conf</code>
<code>[global]</code>
<code> </code><code>workgroup = MYDATA</code>
<code> </code><code>server string = Samba Server Version %</code><code>v</code>
<code> </code><code>log </code><code>file</code> <code>= </code><code>/var/log/samba/log</code><code>.%m</code>
<code> </code><code>max log size = 50</code>
<code> </code><code>idmap config * : backend = tdb</code>
<code> </code><code>hosts allow = 192.168.1.</code>
<code> </code><code>cups options = raw </code>
<code>[homes]</code>
<code> </code><code>comment = Home Directories</code>
<code> </code><code>read</code> <code>only = No</code>
<code> </code><code>browseable = No </code>
<code>[printers]</code>
<code> </code><code>comment = All Printers</code>
<code> </code><code>path = </code><code>/var/spool/samba</code>
<code> </code><code>printable = Yes</code>
<code> </code><code>print ok = Yes</code>
<code>[shared]</code>
<code> </code><code>comment = Public Share</code>
<code> </code><code>path = </code><code>/data</code>
<code> </code><code>guest ok = Yes</code>
<code># 四、启动服务</code>
<code>/etc/init</code><code>.d</code><code>/nmb</code> <code>start;</code><code>/etc/init</code><code>.d</code><code>/smb</code> <code>start</code>
<code># 五、测试结果</code>
<code># 可以使用 smbclient -L 192.168.1.77 -U centos 来查看共享的文件</code>
<code># ubutu 没有权限建立文件夹(windoes为测试客户端)</code>
<a href="http://s3.51cto.com/wyfs02/M00/46/3F/wKioL1PwhODzTEh1AAEP6XvSCMQ264.jpg" target="_blank"></a>
<code># centos 具有权限创建目录</code>
二、架设FTP服务器,要求:
1)可以让匿名用户访问;
2)通过基于mysql的虚拟用户为ftp1和ftp2提供文件共享服务;且ftp1可以上传文件、创建目录、删除文件和下载文件,但ftp2只能下载文件;
3)FTP服务仅允许192.168.1.0/24中的主机访问;
4)开启ftp服务的传输日志,日志文件为/var/log/vsftpd.log;
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<code># 一、安装所需的软件</code>
<code># 注意:pam_mysql 是epel源提供的,也可自己源码编译安装</code>
<code> </code><code>yum </code><code>install</code> <code>vsftpd mysql mysql-server pam_mysql -y</code>
<code># 二、创建虚拟用户所用的数据库和表</code>
<code>mysql> CREATE DATABASE vsftpd;</code>
<code>mysql> USE vsftpd;</code>
<code>Database changed</code>
<code>mysql> CREATE TABLE ftpuser (</code>
<code> </code><code>-> </code><code>id</code> <code>TINYINT PRIMARY KEY AUTO_INCREMENT,</code>
<code> </code><code>-> user VARCHAR(30) BINARY NOT NULL, </code>
<code> </code><code>-> password CHAR(48) BINARY NOT NULL</code>
<code> </code><code>-> );</code>
<code>mysql> GRANT SELECT ON vsftpd.* TO </code><code>ftp</code><code>@</code><code>'localhost'</code> <code>IDENTIFIED BY </code><code>'ftp'</code><code>;</code>
<code>mysql> INSERT INTO ftpuser(user,password) VALUES(</code><code>'ftp1'</code><code>,PASSWORD(</code><code>'ftp1'</code><code>));</code>
<code>mysql> INSERT INTO ftpuser(user,password) VALUES(</code><code>'ftp2'</code><code>,PASSWORD(</code><code>'ftp2'</code><code>));</code>
<code># 三、创建虚拟用户对应的系统用户和家目录</code>
<code> </code><code>useradd</code> <code>-s </code><code>/sbin/nologin</code> <code>-d </code><code>/var/ftproot/</code> <code>vuser</code>
<code> </code><code>chmod</code> <code>og+x </code><code>/var/ftproot/</code>
<code># 四、编辑配置文件</code>
<code># cat /etc/vsftpd/vsftpd.conf | grep "^[^#]"</code>
<code>anonymous_enable=YES</code>
<code>local_enable=YES</code>
<code>write_enable=YES</code>
<code>local_umask=022</code>
<code>dirmessage_enable=YES</code>
<code>xferlog_enable=YES</code>
<code>connect_from_port_20=YES</code>
<code>xferlog_file=</code><code>/var/log/vsftpd</code><code>.conf</code>
<code>xferlog_std_format=YES</code>
<code>listen=YES</code>
<code>pam_service_name=vsftpd-mysql</code>
<code>guest_enable=YES</code>
<code>guest_username=vuser</code>
<code>user_config_dir=</code><code>/etc/vsftpd/vuser</code>
<code>userlist_enable=YES</code>
<code>tcp_wrappers=YES</code>
<code># 五、创建用户认证文件、虚拟用户权限限制文件</code>
<code># 用户认证文件参数可参照 /usr/share/doc/pam_mysql-0.7/README</code>
<code>#创建 /etc/pam.d/vsftpd-mysql 文件,文件内容如下:</code>
<code>auth required </code><code>/lib/security/pam_mysql</code><code>.so user=</code><code>ftp</code> <code>passwd</code><code>=</code><code>ftp</code> <code>host=localhost db=vsftpd table=ftpuser usercolumn=user passwdcolumn=password crypt=2</code>
<code>account required </code><code>/lib/security/pam_mysql</code><code>.so user=</code><code>ftp</code> <code>passwd</code><code>=</code><code>ftp</code> <code>host=localhost db=vsftpd table=ftpuser usercolumn=user passwdcolumn=password crypt=2</code>
<code>mkdir</code> <code>/etc/vsftpd/vuser</code>
<code>touch</code> <code>/etc/vsftpd/vuser/ftp1</code> <code>/etc/vsftpd/vuser/ftp2</code>
<code># cat /etc/vsftpd/vuser/ftp1 </code>
<code>anon_mkdir_write_enable=YES</code>
<code>anon_upload_enable=YES</code>
<code># cat /etc/vsftpd/vuser/ftp2</code>
<code>anon_mkdir_write_enable=NO</code>
<code>anon_upload_enable=NO</code>
<code># 六、添加防火墙规则</code>
<code> </code><code>iptables -t filter -A INPUT -s 192.168.1.0</code><code>/24</code> <code>-p tcp --dport 21 -j ACCEPT</code>
<code> </code><code>iptables -t filter -A INPUT -p tcp --dport 21 -j DROP </code>
<code> </code><code>iptables -t filter -A OUTPUT -s 192.168.1.77 -p tcp --sport 21 -j ACCEPT</code>
<code> </code>
<code># 七、测试结果</code>
<code># ftp1用户允许上传</code>
<a href="http://s3.51cto.com/wyfs02/M00/46/3E/wKiom1PwkG7zX1fWAAG74EZNnWw529.jpg" target="_blank"></a>
<code> </code><code># ftp2 不允许上传</code>
<a href="http://s3.51cto.com/wyfs02/M01/46/3F/wKioL1PwhaLRvXOsAAEuJmdJAnY229.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/46/3D/wKiom1PwhIvguENvAAE7ZpL3vrY716.jpg" target="_blank"></a>
三、两台web服务器,共享关系型数据库,共享NFS服务器,利用DNS记录轮询提供负载均衡,实现wordpress;
试验拓扑图如下:
<a href="http://guoting.blog.51cto.com/attachment/201408/17/8886857_1408270384BfJ1.jpg" target="_blank"></a>
在192.168.1.77:
<code>一、配置DNS服务</code>
<code> </code><code>yum </code><code>install</code> <code>bind -y </code><code># 安装软件</code>
<code># cat /etc/named.conf 配置文件 </code>
<code>options {</code>
<code> </code><code>directory </code><code>"/var/named"</code><code>;</code>
<code>}; </code>
<code>logging {</code>
<code> </code><code>channel default_debug {</code>
<code> </code><code>file</code> <code>"data/named.run"</code><code>;</code>
<code> </code><code>severity dynamic;</code>
<code> </code><code>};</code>
<code>zone </code><code>"."</code> <code>IN {</code>
<code> </code><code>type</code> <code>hint;</code>
<code> </code><code>file</code> <code>"named.ca"</code><code>;</code>
<code>include </code><code>"/etc/named.rfc1912.zones"</code><code>;</code>
<code># 在 "/etc/named.rfc1912.zones"添加:</code>
<code>zone </code><code>"wordpress.org"</code> <code>IN {</code>
<code> </code><code>type</code> <code>master;</code>
<code> </code><code>file</code> <code>"wordpress.org.zone"</code><code>;</code>
<code>};</code>
<code># 创建对应的库解析文件</code>
<code>touch</code> <code>wordpress.org.zone</code>
<code>chown</code> <code>.named wordpress.org.zone </code>
<code># cat /var/named/wordpress.org.zone </code>
<code>$TTL 3600</code>
<code>@ IN SOA ns.wordpress.org. admin.wordpress.org. (</code>
<code> </code><code>20140616</code>
<code> </code><code>2H</code>
<code> </code><code>5M</code>
<code> </code><code>1H</code>
<code> </code><code>1D</code>
<code>)</code>
<code>@ IN NS ns</code>
<code>ns IN A 192.168.1.77</code>
<code>www IN A 192.168.1.66</code>
<code>www IN A 192.168.1.99</code>
<code>###################################################</code>
<code>/etc/init</code><code>.d</code><code>/named</code> <code>start </code><code># 启动服务</code>
<code>##################### 测试结果如下:</code>
<a href="http://s3.51cto.com/wyfs02/M01/46/40/wKioL1Pwkg_zEtVdAAE7ZpL3vrY271.jpg" target="_blank"></a>
<code>二、配置nfs服务: </code>
<code> </code><code>yum </code><code>install</code> <code>nfs-utils -y </code><code># 安装软件 </code>
<code> </code><code>mkdir</code> <code>/wpdata</code> <code># 创建共享目录</code>
<code># cat /etc/exports </code>
<code>/wpdata</code> <code>192.168.1.0</code><code>/24</code><code>(rw,no_root_squash) </code>
<code>setfacl -m u:48:rwx </code><code>/wpdata/</code> <code># (id 48是apache用户的id号)</code>
<code>/etc/init</code><code>.d</code><code>/nfs</code> <code>start </code><code># 启动服务 </code>
<code>三、配置数据库: </code>
<code>yum </code><code>install</code> <code>mysql mysql-server -y </code><code># 安装软件# 创建 wordpress 工作用到的账户和数据库mysql> </code>
<code>mysql> CREATE DATABASE wp;</code>
<code>mysql> GRANT ALL ON wp.* TO wordpress@</code><code>'192.168.1.%'</code> <code>IDENTIFIED BY </code><code>'wordpress'</code><code>;</code>
<code>mysql> FLUSH PRIVILEGES;</code>
在192.168.1.66:
<code>yum </code><code>install</code> <code>php httpd php-mysql -y </code>
<code># 二、编辑配置文件,添加以下内容</code>
<code># 配置文件 /etc/httpd/conf/httpd.conf </code>
<code>#DocumentRoot "/var/www/html"</code>
<code>NameVirtualHost *:80</code>
<code><VirtualHost *:80></code>
<code> </code><code>ServerAdmin [email protected]</code>
<code> </code><code>DocumentRoot </code><code>/web/vhosts/wordpress</code>
<code> </code><code>ServerName www.wordpress.org</code>
<code> </code><code>ErrorLog logs</code><code>/wordpress</code><code>.org-error_log</code>
<code> </code><code>CustomLog logs</code><code>/wordpress</code><code>.org-access_log common</code>
<code><</code><code>/VirtualHost</code><code>></code>
<code># 三、创建虚拟主机站点并挂载数据目录、做好安装wordpress前的准备</code>
<code> </code><code>mkdir</code> <code>/web/vhosts/wordpress</code> <code>-p</code>
<code> </code><code>mount</code> <code>-t nfs 192.168.1.77:</code><code>/wpdata</code> <code>/web/vhosts/wordpress/</code> <code>-o rsize=4096,wsize=4096</code>
<code> </code><code>unzip </code><code>/root/wordpress-3</code><code>.3.1-zh_CN.zip -d </code><code>/web/vhosts/wordpress/</code>
<code> </code><code>chown</code> <code>apache.apache </code><code>/web/vhosts/wordpress/wordpress/</code> <code>-R </code>
<code> </code><code>cp</code> <code>/web/vhosts/wordpress/wordpress/wp-config-sample</code><code>.php </code><code>/web/vhosts/wordpress/wordpress/wp-config</code><code>.ph</code>
<code># 修改配置文件 /web/vhosts/wordpress/wordpress/wp-config.php 以下内容,与数据库对应</code>
<code>define(</code><code>'DB_NAME'</code><code>, </code><code>'wp'</code><code>); </code>
<code>define(</code><code>'DB_USER'</code><code>, </code><code>'wordpress'</code><code>); </code>
<code>define(</code><code>'DB_PASSWORD'</code><code>, </code><code>'wordpress'</code><code>); </code>
<code>define(</code><code>'DB_HOST'</code><code>, </code><code>'192.168.1.77'</code><code>);</code>
<code># 四、安装wordpress:</code>
<code>/etc/init</code><code>.d</code><code>/httpd</code> <code>start </code><code>#启动服务</code>
<code># 在安装的客户端,提供解析主机名的配置</code>
<a href="http://guoting.blog.51cto.com/attachment/201408/17/8886857_1408270391IDdu.jpg" target="_blank"></a>
<code># 安装完成后,记得的192.168.1.77上将root的权限去掉</code>
<code>/wpdata</code> <code>192.168.1.0</code><code>/24</code><code>(rw)</code>
<code> </code><code>exportfs -ar </code><code># 重新导出</code>
在192.168.1.99:
<code># 这里配置比较简单,只需要以下几个步骤</code>
<code>scp</code> <code>192.168.1.66:</code><code>/etc/httpd/conf/httpd</code><code>.conf </code><code>/etc/httpd/conf/httpd</code><code>.conf</code>
<code>mkdir</code> <code>/web/vhosts/wordpress</code> <code>-p</code>
<code>mount</code> <code>-t nfs 192.168.1.77:</code><code>/wpdata</code> <code>/web/vhosts/wordpress/</code> <code>-o rsize=4096,wsize=4096</code>
<code>/etc/init</code><code>.d</code><code>/httpd</code> <code>start</code>
完成这些后,开始测试:
# 在192.168.1.99服务器上上传文章
<a href="http://guoting.blog.51cto.com/attachment/201408/17/8886857_1408270396DuLR.jpg" target="_blank"></a>
# 在192.168.1.66 服务器上上查看:
<a href="http://guoting.blog.51cto.com/attachment/201408/17/8886857_1408270402qmxE.jpg" target="_blank"></a>
测试成功后,使用我们自己的DNS服务器,来实现简单的DNS轮询的负载均衡。
# 访问客户端是windows主机,将dns服务器的指向我们配置好的地址
<a href="http://guoting.blog.51cto.com/attachment/201408/17/8886857_1408270405EIFH.jpg" target="_blank"></a>
# 测试,可以正常访问
<a href="http://guoting.blog.51cto.com/attachment/201408/17/8886857_1408270409mH6M.jpg" target="_blank"></a>
over.
本文转自 羊木狼 51CTO博客,原文链接:http://blog.51cto.com/guoting/1541310,如需转载请自行联系原作者