Ubuntu配置记录-3:安装网络服务(未完)

一、安装Web服务器

1、Apache

首先是安装Apache,输入

sudo apt-get install apache2

安装后的Apache就已经直接可以运行了,可以输入http://127.0.0.1查看效果。 之后是根据自己需要配置了 Apache的配置文件在/etc/apache2/apache2.conf中 Apache的默认站点配置文件在/etc/apache2/sites-enabled/000-default中 Apache的默认站点目录在/var/www/中 要为站点建立子目录,可以在/var/www/下建立相应的目录,也可以在/etc/apache2/sites-enabled创建专用的配置文件。

 

接下来是设置虚拟站点。我是直接在/etc/apache2/sites-enabled下创建专用的配置文件的。

 

在其中任意创建一个文件,然后写入别名站点信息:

Alias /test/ "/home/www/"

Alias的作用是为地址创建别名。假设主机地址是localhost,那么http://localhost/test/就会被Apache映射到/home/www目录下

注意:要确保Apache对目标目录至少有读取权限,最好是有读写权限。一个简单的方法是用“sudo chmod 777 目录名”来开放权限,但是更好的方法是将此目录的所有者设为www-data(Apache所使用的账号)或者将组设为www-data并用chmod 775或者chmod 771。

接着就是写入权限设置了,使用<Directory />段来配置:

<Directory "/home/www/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

相关选项的含义如下:


Options: 提供一系列权限选项,有Indexes(允许列出目录)、MultiViews(多种内容显示方法)、FollowSymLinks(使用符号链接)。其 中Indexes是非常危险的,如果不是作为调试或者个人使用,最好去除。FollowSymLinks应该是指能把Linux的符号链接当作一个正常的 文件吧,没仔细研究。


AllowOverride:是否启用.htaccess配置文件。

 

Order:控制默认的访问状态与Allow和Deny指令生效的顺序。

AllowDeny:设置授权和禁止列表,格式为 Allow(Deny) from all|host|env=env-variable [host|env=env-variable] ...。一般主要用All和host,其中host可以有以下几种用法:

一个(部分)域名

示例:

Allow from apache.org
Allow from .net example.edu

主机名与给定字符串匹配或者以给定字符串结尾的主机允许访问。只有完整的名字组成部分才被匹配,因此上述例子将匹配foo.apache.org但不能匹配fooapache.org 。这样的配置将导致Apache不管HostnameLookups指令是如何设置的,对一个对客户IP地址都要执行两次DNS查询:一次正查询保证IP没有伪造,一次反查询保证主机名没有伪造。只有两次查询的结果都吻合,并且主机名能够被匹配,访问才被允许。

完整的IP地址

示例:

Allow from 10.1.2.3
Allow from 192.168.1.104 192.168.1.205

;允许拥有这些IP地址的主机进行访问。

部分IP地址

示例:

Allow from 10.1
Allow from 10 172.20 192.168.2

IP地址的开始1到3个字节,用于子网限制。

网络/掩码对

示例:

Allow from 10.1.0.0/255.255.0.0

一个网络"a.b.c.d"和一个掩码"w.x.y.z",用于更精确的子网限制。

网络/nnn无类别域间路由规格(CIDR specification)

示例:

Allow from 10.1.0.0/16

同前一种情况相似,除了掩码由nnn个高位字节构成。

注意以上例子中的后三个匹配完全相同的一组主机。

IPv6地址和IPv6子网可以像下面这样指定:

Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10

安装PHP

安装PHP很简单,直接用apt-get就行:

sudo apt-get install php5

安装后自动与Apache集成,不用进行额外设置,很方便。

安装MySQL

首先安装MySQL:

sudo apt-get install mysql-server

安装过程中会要求设置root账号。 然后是安装PHP对MySQL的支持:

sudo apt-get install php5-mysql
安装SSH服务

安装:

sudo apt-get install openssh-*

安完就能用了

要重启ssh,可以使用这个命令

sudo /etc/init.d/ssh restart

 

 

要启动和停止ssh,只要把restart换成start和stop就行了

安装vsftpd

安装:

sudo apt-get install vsftpd

为了使用虚拟帐户,还要安装Berkeley Database Utilities:

sudo apt-get install db4.6-util

编辑配置文件:

sudo gedit /etc/vsftpd.conf

内容如下:

# 开启监听模式
listen=YES
# 允许列出文件
dirlist_enable=YES
# 本地用户登录后的要目录位置为home目录
local_root=
# 允许匿名用户
anonymous_enable=YES
# 允许本地用户登录
local_enable=YES
# 默认不允许上传文件
write_enable=NO
# 上传的文件的权限设为644
local_umask=022
# 定义用户个人配置文件所在的目录
user_config_dir=/etc/vsftpd/vsftpd_user_dir
# 允许使用目录欢迎信息文件
dirmessage_enable=YES
# 启用默认数据链接端口
connect_from_port_20=YES
# 禁止用户访问local_root之上的目录,将local_root作为用户的根目录
chroot_local_user=YES
# 启用虚拟用户
guest_enable=YES
# 虚拟用户所使用的本地账号
guest_username=tigersoldier
# 赋予虚拟用户和本地对应账号相同的权限
virtual_use_local_privs=YES
# PAM服务名,用于虚拟用户验证
pam_service_name=vsftpd
#########################################
# 一些其他我不关心也不了解的默认选项
#
# 上传下载日志
xferlog_enable=YES
# 空目录,作为限制目录使用
secure_chroot_dir=/var/run/vsftpd
# SSL的RSA密钥
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

建立相关配置目录:

sudo mkdir -p /etc/vsftpd/vsftpd_user_dir/

 创建编辑虚拟用户文件

sudo gedit /etc/vsftpd/login.txt

内容为一行用户名一行密码,如

upload
up
anim
manga

就创建了两个虚拟用户,一个是upload,密码为up;另一个是anim,密码为manga

生成账号文件对应的db文件,要用上刚才安装的Berkeley Database Utilities:

sudo db4.6_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db

编辑vsftpd的pam服务,用于账号验证:

sudo gedit /etc/pam.d/vsftpd

注意服务的文件名是由vsftpd.conf的pam_service_name决定的

把服务替换成如下内容

auth    required    /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required    /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  

这个文件原来可能有其他内容,必须去掉,不然会产生认证冲突无法登录

要注意的是,这样做之后就无法用本地账号登录了,如果在配置里没有开启virtual_use_local_privs,虚拟账号的权限等同于匿名用户

为每个账号作特别配置:

账号配置文件要放在vsftpd.conf的user_config_dir段所指定的目录下,在这里是/etc/vsftpd/vsftpd_user_dir

以upload账号为例,编辑文件

sudo gedit /etc/vsftpd/vsftpd_user_dir/upload

格式与vsftpd的配置文件相同,不过只能设置与用户相关的选项。在这里设置上传权限和根目录:

local_root=/home/ftp/upload
write_enable=YES
#anon_upload_enable=YES

注意anon_upload_enable,如果没有配置virtual_use_local_privs=YES,则虚拟账号相当于匿名用户,所以只设write_enable是不够的

研究中……

linux Comments(11) 2008年4月04日 03:53