dns,lamp,文件共享服务为基础的三个示例

一、建立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为测试客户端)

dns,lamp,文件共享服务为基础的三个示例

1
# centos 具有权限创建目录

dns,lamp,文件共享服务为基础的三个示例

二、架设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用户允许上传

dns,lamp,文件共享服务为基础的三个示例

1
 # ftp2 不允许上传

dns,lamp,文件共享服务为基础的三个示例


三、两台web服务器,共享关系型数据库,共享NFS服务器,利用DNS记录轮询提供负载均衡,实现wordpress;

试验拓扑图如下:

dns,lamp,文件共享服务为基础的三个示例

在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 # 启动服务
 
##################### 测试结果如下:

dns,lamp,文件共享服务为基础的三个示例

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 #启动服务
# 在安装的客户端,提供解析主机名的配置

dns,lamp,文件共享服务为基础的三个示例

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服务器上上传文章

dns,lamp,文件共享服务为基础的三个示例

# 在192.168.1.66 服务器上上查看:

dns,lamp,文件共享服务为基础的三个示例

测试成功后,使用我们自己的DNS服务器,来实现简单的DNS轮询的负载均衡。

# 访问客户端是windows主机,将dns服务器的指向我们配置好的地址

dns,lamp,文件共享服务为基础的三个示例

# 测试,可以正常访问

dns,lamp,文件共享服务为基础的三个示例


    over.











本文转自 羊木狼 51CTO博客,原文链接:http://blog.51cto.com/guoting/1541310,如需转载请自行联系原作者
上一篇:龙芯go之路(二)-安装opencv-go


下一篇:龙芯派2代开发日记-安装opencv2-交叉编译py3.8