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