VSFTPD+MYSQL编译安装
莫奕
|
1#
莫奕 发表于 2006-08-26 10:49
VSFTPD+MYSQL编译安装
一、编译安装MYSQL
1、 上传源包到/usr/local/mysql-5.0.24.tar.tar 2、 tar zxvf mysql-5.0.24.tar.tar 3、 cd /usr/local/mysql-5.0.24 4、 groupadd mysql 5、 useradd -g mysql mysql 6、 ./configure --prefix=/usr/local/mysql 7、 make 8、 make install 9、 cp support-files/my-medium.cnf /etc/my.cnf 10、cd /usr/local/mysql 11、bin/mysql_install_db --user=mysql 12、chown -R root . 13、chown -R mysql var 14、chgrp -R mysql . 15、bin/mysqld_safe --user=mysql & 二、编译安装VSFTPD 1、上传源包到 /usr/local/vsftpd-2.0.4.tar.tar 2、tar zxvf vsftpd-2.0.4.tar.tar 3、cd /usr/local/vsftpd-2.0.4 4、vi builddefs.h内容如下 #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #define VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM (这行是关键) #define VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 5、make 6、ls -l vsftpd -rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd //可执行程序已被编译成功 7、创建必要的帐号,目录: # useradd nobody //可能你的系统已经存在此帐号,那就不用建立 # mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立 # mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立 # useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin 8、安装vsftp配置文件,可执行程序,man等: # install -m 755 vsftpd /usr/local/sbin/vsftpd # install -m 644 vsftpd.8 /usr/share/man/man8 # install -m 644 vsftpd.conf.5 /usr/share/man/man5 # install -m 644 vsftpd.conf /etc/vsftpd/vsftpd.conf 如果该步出错(install: cannot create regular file `/etc/vsftpd/vsftpd.conf': No such file or directory )是因为没有/etc/vsftpd目录,自己建一下就可以了。 mkdir /etc/vsftpd 9、编译/etc/vsftpd/vsftpd.conf在最后加入一行 listen=YES 10、启动FTP服务 /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf & 此时已经可以匿名登录FTP了,这样就安装完成了。 (如果直接/usr/local/sbin/vsftpd 来启动的话,默认会调用/etc/vsftpd.conf配置文件的内容,请注意!) 三、建MYSQL的启动帐号 1 、useradd -d /home/ftpsite virtual 2、cp /etc/hosts /home/ftpsite 3、chown virtual.virtual /home/ftpsite/hosts 四、建库文件 1、mysql 2、create database vsftpd; 3、use vsftpd; 4、create table users (id int AUTO_INCREMENT NOT NULL,name char(16) binary NOT NULL,passwd char(48) binary NOT NULL,primary key(id)); 5、create table logs (msg varchar(255), user char(16), pid int, host char(32), rhost char(32), logtime timestamp ); 6、quit 7、mysql 8、grant select on vsftpd.users to virtual@localhost identified by '123456'; grant insert on vsftpd.logs to virtual@localhost identified by '123456'; 9、use vsftpd 10、insert into users (name,passwd) values('tom','foo'); insert into users (name,passwd) values('jerry','bar'); 11、select * from users; 如果能看到表内容就表示正常了。 五、安装PAM包 1、把源包考到 /usr/local/pam_mysql-0.7RC1.tar.gz 2、tar zxvf pam_mysql-0.7RC1.tar.gz 3、cd pam_mysql-0.7RC1 4、./configure --with-openssl --with-mysql=/usr/lib/mysql 5、make 6、make install 7、配置/pam.d/vsftpd 内容如下(注意一下实际pam_mysql.so的路径,进行相应更改.) auth required /lib/security/pam_mysql.so user=virtual passwd=123456 host=/tmp/mysql.sock db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1 account required /lib/security/pam_mysql.so user=virtual passwd=123456 host=/tmp/mysql.sock db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1 说明:如果MYSQL安装好以后,要修改MYSQL某个数据库的启动用户密码的话,只要做如下两步操作: 1)修改/etc/pam.d/vsftpd内容.把2处类似passwd=123456这样的密码改成你要设置的密码. 2)进入mysql后,运行 grant select on vsftpd.users to virtual@localhost identified by 'yourpasswd'; grant insert on vsftpd.logs to virtual@localhost identified by 'yourpasswd'; 第1)步与第2)步的密码要一致. 3)重启MYSQL. 六、配置vsftpd /etc/vsftpd/vsftpd.conf内容如下 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 chroot_local_user=YES guest_enable=YES guest_username=virtual listen=YES listen_port=21 pasv_enable=YES pasv_min_port=30000 pasv_max_port=30999 anon_world_readable_only=NO virtual_use_local_privs=YES pam_service_name=vsftpd 七、高级配置VSFTPD 在/etc/vsftpd/vsftpd.conf 基础上加入 anon_max_rate=30000 '限制虚拟帐号下载速率 local_max_rate=30000 '限制本地帐号下载速率 max_per_ip=2 '同时只能有2线程在下载 dirlist_enable=NO '关闭帐号登录后的ls功能 修改 anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO |