目的
1)支持SFTP协议
2)不采用系统帐号验证方式,改为数据库MySQL验证
3)数据库中不保存密码,只保存经过sha256算法加密过的可打印16位小写字符串,系统中还需保存一个salt文件
4)数据库中指定用户目录,proFTPd能够动态创建用户目录
修改ssh服务端口号为21
修改文件中的配置/etc/ssh/sshd_config
然后重新启动ssh服务
sudo /etc/init.d/ssh restart
这不会影响ssh的使用,客户端需要用-p参数指明端口号
创建ftp系统帐号
sudo groupadd ftp
sudo useradd -u 1005 -s /bin/false -d /bin/null -c "proftpd user" -g ftp ftpuser
sudo passwd ftp
依赖库
确保UBuntu系统中已经有/usr/include/mysql/mysql.h和/usr/lib/libmysqlclient.a
获得源代码编译安装
注意,系统中不能存在其他占用22端口的程序。
cd /usr/src
sudo wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3rc3.tar.gz
sudo tar xvzf proftpd-1.3.3rc3.tar.gz
cd proftpd-1.3.3rc3
install_user=ftp install_group=ftp sudo ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run --mandir=/usr/local/man --without-pam --disable-auth-pam --enable-openssl --with-modules=mod_ratio:mod_readme:mod_sftp:mod_sql:mod_sql_passwd:mod_sql_mysql --with-includes=/usr/include/mysql --with-libraries=/usr/lib
sudo make
sudo make install
编译成功后,当前目录和/usr/sbin/下都有proftpd程序。
修改配置
修改配置文件/etc/proftd.conf文件,在文件开头添加如下配置
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
RootLogin off
RequireValidShell off
DefaultRoot ~
IdentLookups off
UseReverseDns off
CreateHome on
<IfModule mod_sql_passwd.c>
SQLPasswordEngine on
SQLPasswordEncoding hex
SQLPasswordSaltFile /home/chenshu/salt
</IfModule>
<IfModule mod_sql.c>
# Other mod_sql configuration
here
SQLBackend mysql
SQLAuthTypes
SHA256
SQLAuthenticate users*
SQLConnectInfo databaseName
@IP
:3306 username
password
30
SQLDefaultUID 1003
SQLDefaultGID 1005
SQLUserInfo users login password_hash NULL NULL homedir
NULL
</IfModule>
<IfModule mod_sftp.c>
SFTPEngine on
SFTPLog /etc/sftp.log
SFTPAuthMethods password
# Host keys, for server host
authentication
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
</IfModule>
#
Port 21 is the standard FTP
port.
Port 22
创建数据表
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`login` varchar(16) NOT NULL,
`password_hash` varchar(80) NOT NULL,
`homedir` varchar(1024) NOT NULL,
PRIMARY KEY (`id`)
)
制造数据:
下面是Ruby代码:
require 'digest/sha2'
puts Digest::SHA256.hexdigest("770328" + "7wjCeqX/")
"770328"是用户密码
"7wjCeqX/"是salt,也应该保存在/home/chenshu/salt文件中。请不要在文件中添加换行符。
算出的字符串,保存到password_hash列中。
homedir字段保存用户目录,如果第一次登录时没有,会自动创建。
最后启动服务:
chenshu@chenshu-desktop:/usr/sbin$ sudo ./proftpd
测试,通过。
分享到:
相关推荐
很详细的 Ubuntu 9.10 图解安装教程
先说一下安装环境,我的电脑分为4个盘:C(NTFS格式,Windows XP系统)、D、E、F(这三个是FAT32格式),我把Ubuntu9.10装在E盘,E盘事先被清空。 第一步:把ubuntu-9.10-desktop-i386.iso 文件拷贝到非安装盘,比如...
ubuntu 智能拼音安装方法(个人比较中意这个输入法)
Ubuntu 9.10 安装 Mediawiki 脚本
Ubuntu 9.10安装Oracle 10g手记
ubuntu9.10的用户指南汉化包,deb格式.
UBUNTU 9.10安装最新正式版千千静听(5.5.2)
Win 7 与 Ubuntu9.10系统安装顺序 (1)Win7 (2)Ubuntu9.10,注意在安装步骤第7步的时候,点击高级按钮,选择安装启动器引导设备的位置为你手动分区的那个光盘。 (3)登录win7(此时系统直接进入win7的),将此...
硬盘安装 windows 7 和 ubuntu 9.10 双系统 Windows 7 和 ubuntu 都已经发布了,想体验一下。 Windows 7 已经安装了,本来想用 wubi 安装 ubuntu ,担心 ubuntu 系统性能不好,使用虚拟机安装吧,也是担心同样的...
Ubuntu9.10安装图文教程(单双系统).pdf
ubuntu910界面汉化安装包,deb格式。由于包的相互依赖,需用如下命令安装: #dpkg -i language-pack-gnome-zh-hans_1%3a9.10+20091022_all.deb language-pack-gnome-zh-hans-base_1%3a9.10+20091022_all.deb #dpkg -...
Linux操作系统_Ubuntu_9.10_图解安装教程
Ubuntu安装配置指南 作者:Jandy 当前版本:9.10-1.0.091101 目录 准备工作 准备硬盘空间 安装系统 速配指南 更新历史 包括Ubuntu的下载、安装、中文配置、上网、软件下载更新等一系列操作指南,很适合新手...
步骤很详细,我本人已经安装成功,初次安装的新手,找上面的操作,保证OK!
亲自实践的完整的ORACLE10安装过程
安装 Ubuntu 9.10 全过程视频教程
ubuntu910的ibus输入法,由于附件大小的限制,分开成两个资源上传.
ubuntu9.10的源,用于更新; Archive.ubuntu.com更新服务器(欧洲,此为官方源,电信网通用户使用): deb http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse deb ...
用虚拟机在移动硬盘上安装Ubuntu 9.10 视屏
Ubuntu 9.10下安装SimpleScalar v3.0的安装指南。