一、建立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网络的主机访问;
# 说明,以下所有的配置都是在同一它机器中完成的,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
# 五、测试结果 # 可以使用 smbclient -L 192.168.1.77 -U centos 来查看共享的文件
# ubutu 没有权限建立文件夹(windoes为测试客户端)
# centos 具有权限创建目录
二、架设FTP服务器,要求:
1)可以让匿名用户访问;
2)通过基于mysql的虚拟用户为ftp1和ftp2提供文件共享服务;且ftp1可以上传文件、创建目录、删除文件和下载文件,但ftp2只能下载文件;
3)FTP服务仅允许192.168.1.0/24中的主机访问;
4)开启ftp服务的传输日志,日志文件为/var/log/vsftpd.log;
# 说明,以下所有的配置都是在同一它机器中完成的,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用户允许上传
# ftp2 不允许上传
三、两台web服务器,共享关系型数据库,共享NFS服务器,利用DNS记录轮询提供负载均衡,实现wordpress;
试验拓扑图如下:
在192.168.1.77:
一、配置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 # 启动服务 ##################### 测试结果如下:
二、配置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:
# 一、安装软件 yum install php httpd php-mysql -y # 二、编辑配置文件,添加以下内容 # 配置文件 /etc/httpd/conf/httpd.conf #DocumentRoot "/var/www/html" NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] 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 #启动服务 # 在安装的客户端,提供解析主机名的配置
# 安装完成后,记得的192.168.1.77上将root的权限去掉 # cat /etc/exports /wpdata 192.168.1.0/24(rw) exportfs -ar # 重新导出
在192.168.1.99:
# 这里配置比较简单,只需要以下几个步骤 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.