XiZi's Blog

Ubuntu 配置 vsftp+mysql

1、安装vsftpd

sudo apt-get install vsftpd

 2、安装pam的mysql验证模块"pam_mysql.so"

sudo apt-get install libpam-mysql

3、配置vsftpd的PAM验证文件

vim /etc/pam.d/vsftpd

   Here is an example,注释掉原有的,添加最下面两行 

# Standard behaviour for ftpd(8).
# auth  required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own.  Do not enable
# pam_ftp.so.

# Standard blurb.
#@include common-session

#@include common-auth
#auth   required        pam_shells.so

auth required pam_mysql.so user=yoursqluser passwd= host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=passwd crypt=0 sqllog=1 logtable=log logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logtimecolumn=time verbose=1
account required pam_mysql.so user=yoursqluser  passwd=p@ssw0rd  host=localhost db=vsftpd table=user  usercolumn=name passwdcolumn=passwd crypt=0 sqllog=1 logtable=log logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logtimecolumn=time verbose=1
p@ssw0rd

#红色部分请根据自己的实际情况修改

4、修改vsftpd的配置文件

vim vim /etc/vsftpd.conf

Here is an example,开启了ipv6的监听。 

#去掉了所有的注释行
# listen=YES 这里注释掉是因为此项与listen_ipv6只能选一项,开启ipv6后自动侦听ipv4
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftp
anon_world_readable_only=NO
virtual_use_local_privs=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
 

 5、确定你对ftp目录的写权限

sudo chown -R ftp\: /home/ftp/

6、最后重启vsftpd服务,看看服务器好没好用?

sudo /etc/init.d/vsftpd restart

好了,可以看看你的服务器是不是好了?

root@www:/home# ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.7)
Name (localhost:ado): admin
331 Please specify the password.
Password:       //这里输入密码但看不见
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 109      1001           76 May 07 02:07 2.txt
drwxr-xr-x    2 109      1001         4096 May 07 01:10 a directory
-rwxr-xr-x    1 109      1001         1482 May 07 02:07 bridge
drwxr-xr-x    3 109      1001         4096 May 07 02:07 icc32
-rwx------    1 109      1001     78771302 May 07 02:08 l_fc_p_10.1.015.tar.gz
-rw-r--r--    1 109      1001          323 May 07 01:36 ls.txt
226 Directory send OK.
ftp> mkdir test
257 "/test" created
ftp> rm test
250 Remove directory operation successful.
ftp>exit
root@www:/home#

 

 P.S.

   mysql 数据库的建立

#创建管理vsftpd用户的数据库和表,并插入测试帐号
#mysql -u root -p123456
CREATE DATABASE ftp;
USE ftp;
CREATE TABLE user(name CHAR(20) BINARY,passwd CHAR(20) BINARY);
INSERT INTO user (name,passwd) VALUES ('test1','12345');
INSERT INTO user (name,passwd) VALUES ('test2','54321');
GRANT SELECT on ftp.user to ftp@localhost identified BY '123456';
flush PRIVILEGES;
quit
 

 配置过程参考:菜鸟ubuntu8.04桌面版配置vsftp+mysql+pam 无法使用Ubuntu 8.04 Desktop上的vsftp+mysql+pam_mysql

 

Ubuntu 中管理服务

添加一个服务

sudo update-rc.d 服务名 defaults 99
 

 

删除一个服务

sudo update-rc.d 服务名 remove

 

临时重启一个服务

/etc/init.d/服务名 restart

 

临时关闭一个服务

/etc/init.d/服务名 stop

 

临时启动一个服务

/etc/init.d/服务名 start

Ubuntu也提供了另外一个简单的命令来实现管理。但首先服务必须已在/etc/init.d目录中存在。如:

添加一个服务: sudo update-rc.d ServiceName defaults

删除一个服务: sudo update-rc.d ServiceName remove

还可以安装另外一个比较强的工具: sudo apt-get install sysv-rc-conf sysvconfig

启动: sudo sysv-rc-conf 它可心配置各服务在各级别上的启动情况.

随时想启动某个服务, 可以这样: sudo /etc/init.d/ServiceName start

比如我要远程登录, 要用ssh服务: sudo /etcinit.d/ssh start (别的系统可能是sshd)

使用工具 sysv-rc-conf
  sudo apt-get install sysv-rc-conf
  sudo sysv-rc-conf
  用空格键开启或关闭,标记X的为开启,设置完按q退出

  下面简单介绍一下这几种运行等级:

  runlevel 1:为单用户模式保留,对应/etc/rc1.d目录中的脚本。该运行等级通常在恢复系统时使用。
  runlevel 2~5:应用于多用户模式,对应 /etc/rc2.d …… /etc/rc5.d目录中的脚本,通常可以自由定制。
  runlevel 0:关机进程,对应 /etc/rc0.d
  runlevel 6:重启进程,对应 /etc/rc6.d
  runlevel S:开机进程中最先的运行等级,对应 /etc/rcS.d中的脚本
 

装载:ubuntu下apache ssl 配制方法

 

基于的Ubuntu版本Edgy,在Ubuntu下面安装配置Apache都比较简单。相应的配置文件位置如下:
默认站点在 /var/www/

配置文件在 /etc/apache2/

日志在 /var/log/apache/

启动脚本是 /usr/sin/apache2ctl 或者 /etc/init.d/apache2


1、安装Apache

$sudo apt-get install apache2


2、开启SSL模块

$sudo a2enmod ssl


3、创建证书

可以使用apache内置的工具创建默认的证书,通过-days指定有效期。

$sudo apache2-ssl-certificate


另外我们可以使用openssl来创建

$sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

注:在要求输入Common Name (eg, YOUR name) 时,输入你的主机名。


4、编辑SSL的配置

我们可以将当前的默认站点配置文件拷贝一份,然后进行修改

#vi /etc/apache2/sites-enabled/001-ssl

把端口改为443

加入SSL认证配置

其它的根据需要自己定制 与普通配置无异 

ameVirtualHost *:443
ServerSignature On
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
ServerAdmin webmaster@localhost
#[......]
 
 

修改普通http方式的配置

#vi /etc/apache2/sites-enabled/000-default

把端口改为80 

ameVirtualHost *:80
ServerAdmin webmaster@localhost
#[......]

 

编辑Apache端口配置,加入443端口(SSL的)

>#vi /etc/apache2/ports.conf
Listen 80
Listen 443 

重新载入Apache的配置

$sudo /etc/init.d/apache2 force-reload

或者重新启动Apache2

$sudo /etc/init.d/apache2 restart

 

First: apache svn mysql 配置 on Ubuntu

 dav_svn.conf  的配置:

# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
#
# NOTE: for a setup with multiple vhosts, you will want to do this
# configuration in /etc/apache2/sites-available/*, not here.

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
# Note, a literal /svn should NOT exist in your document root.
  Auth_MySQL_Info localhost mysqluser userpassword
  Auth_MySQL_General_DB svndbinmysql

<Location /svn>
  DAV svn
  SVNParentPath /home/.svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /dev/null
  AuthBasicAuthoritative off
  AuthMYSQL on
  AuthMySQL_Authoritative on
  AuthMySQL_Password_Table user_info
  AuthMySQL_Group_Table user_info
  AuthMySQL_Empty_Passwords off
  AuthMySQL_Encryption_Types Plaintext
  Require valid-user
</Location>



 




Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee