设为首页 收藏本站
查看: 1661|回复: 0

[经验分享] unix安装配置ftp server(安装配置一个proftpd的实例)

[复制链接]

尚未签到

发表于 2016-6-10 13:25:35 | 显示全部楼层 |阅读模式
目的:

安装配置一个proftpd,达到以下要求
1不允许匿名访问。
2开放一个帐号,只有在upload目录有上传权限,可以续传,不能改名和删除。

操作:
0切换到root帐户
suroot//输入root的密码。



1下载proftpd
地址:www.proftpd.org。这里我们下载了1.2.9版本
wgetftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz



2安装proftpd
切换到下载目录,假设为/tmp/proftpd,然后
tarzxvfproftpd-1.2.9.tar.gz//解压

cdproftpd-1.2.9

./configure--prefix=/var/proftpd--sysconfdir=/etc//设置安装目录/var/proftpd,配置文件目录/etc

make

makeinstall



3新建ftp专用帐号
就是上面目的中提到的那个专用帐号,这里以skate/skate(u/p)为例。
groupaddskate

useraddskate-gskate-d/var/ftp-s/sbin/nologin//设置/var/ftp目录为ftp的目录

passwdskate//设置skate用户的密码

mkdir/var/ftp/upload

chownskate.skate/var/ftp/upload//设置upload目录skate用户可写



4设置proftpd
proftpd的配置文件就一个,就是/etc/proftpd.conf
vi/etc/proftpd.conf//打开proftpd.conf




####具体配置如下######

ServerName"Testftpserver..."

ServerTypestandalone

DefaultServeron

#端口

Port21

Umask022

#最大线程数

MaxInstances30

Userskate

Groupskate


#DNS反查

UseReverseDNSoff

IdentLookupsoff

#最大尝试连接次数

MaxLoginAttempts3

#每用户线程

MaxClientsPerHost2

#最大用户数

MaxClients20


DirFakeUserOnskate

DirFakeGroupOnskate

DeferWelcomeOn

#日志文件位置

SystemLog/var/log/proftpd.log

ServerIdentoff


#限制skate组的skate用户登录时不能切换到其他目录(只能呆在他的home目录)

DefaultRoot~skate,skate


#设置只允许192.168.0的用户登录

#<limitLOGIN>;

#Orderallow,deny

#Allowfrom192.168.0.

#Denyfromall

#</limit>;


#设置只允许skate用户登录,否则系统用户也可以登录ftp

#<limitLOGIN>;

#Orderallow,deny

#DenyUser!skate

#</limit>;



#开起全盘的写权限

<Directory/>;

AllowOverwriteon

AllowStoreRestarton

#允许FXP

#AllowForeignAddresson

<LimitAll>;

AllowAll

</Limit>;

</Directory>;


#设置skate用户在upload的限制

#DELE删除权限

#RNFRRNTO重命名权限

#RMDXRMD移动目录权限

<Directory/var/ftp/upload>;

<LimitDELERNFRRNTORMDXRMD>;

DenyUserskate

</Limit>;

</Directory>;

#####结束######




编辑完以后按Esc,然后输入:x保存。

5启动服务
编辑一个启动脚本(这个是proftpd自带的,做了一点小修改)
vi/etc/rc.d/init.d/proftpd


#####脚本内容开始########

#!/bin/sh

#

#StartupscriptforProFTPD

#

#chkconfig:3458515

#description:ProFTPDisanenhancedFTPserverwith\

#afocustowardsimplicity,security,andeaseofconfiguration.\

#ItfeaturesaveryApache-likeconfigurationsyntax,\

#andahighlycustomizableserverinfrastructure,\

#includingsupportformultiple'virtual'FTPservers,\

#anonymousFTP,andpermission-baseddirectoryvisibility.

#processname:proftpd

#config:/etc/proftpd.conf

#

#By:OsmanElliyasa<osman@Cable.EU.org>;

#$Id:proftpd.init.d,v1.72002/12/0721:50:27jwmExp$


#Sourcefunctionlibrary.

./etc/rc.d/init.d/functions


if[-f/etc/sysconfig/proftpd];then

./etc/sysconfig/proftpd

fi


#下面这行设置环境变量,注意设置好你的proftpd的安装目录

PATH="$PATH:/usr/local/sbin:/var/proftpd/bin:/var/proftpd/sbin"


#Seehowwewerecalled.

case"$1"in

start)

echo-n"Startingproftpd:"

daemonproftpd$OPTIONS

echo

touch/var/lock/subsys/proftpd

;;

stop)

echo-n"Shuttingdownproftpd:"

killprocproftpd

echo

rm-f/var/lock/subsys/proftpd

;;

status)

statusproftpd

;;

restart)

$0stop

$0start

;;

reread)

echo-n"Re-readingproftpdconfig:"

killprocproftpd-HUP

echo

;;

suspend)

hashftpshut>;/dev/null2>;&1

if[$?=0];then

if[$#-gt1];then

shift

echo-n"Suspendingwith'$*'"

ftpshut$*

else

echo-n"SuspendingNOW"

ftpshutnow"Maintananceinprogress"

fi

else

echo-n"Nowaytosuspend"

fi

echo

;;

resume)

if[-f/etc/shutmsg];then

echo-n"Allowingsessionsagain"

rm-f/etc/shutmsg

else

echo-n"Wasnotsuspended"

fi

echo

;;

*)

echo-n"Usage:$0{start|stop|restart|status|reread|resume"

hashftpshut

if[$?=1];then

echo'}'

else

echo'|suspend}'

echo'suspendacceptsadditionalargumentswhicharepassedtoftpshut(8)'

fi

exit1

esac


if[$#-gt1];then

shift

$0$*

fi


exit0

#######脚本结束#########



按Esc,输入:x保存。

修改权限,然后添加到系统服务并启动

chmod+x/etc/rc.d/init.d/proftpd

chkconfig--addproftpd

serviceproftpdstart
  
以后可以用serviceproftpdrestart来重起proftpd。

6一点体会
看proftpd的文档翻译过的一句话:Finally,aspecialcommandisallowedwhichcanbeusedtocontrolloginaccess:LOGINConnectionorloginto

theserver.Applyinga<Limit>;tothispseudo-commandcanbeusedtoallowordenyinitialconnectionorlogintothecontext.Ithasno

effect,andisignored,whenusedinacontextotherthanserverconfig,<VirtualHost>;or<Anonymous>;(i.e.usingitina<Directory>;context

ismeaningless).

翻译下:最后,有一个用来限制登陆的特殊命令,就是LOGIN。在<limit>;中用这个,可以禁止或者允许连接进来。但是,如果不在Serverconfig,<VirtualHost>;

或者<Anonymous>;中使用的话,他将失去效用,或者说被忽略掉(比如在<Directory>;中使用就是无效的)。

proftpd感觉还是比vsftp功能配置上好用一点,主要掌握好<limit>;段基本上应用来说就没有问题了。
proftpd文档地址http://www.proftpd.org/docs/。
  
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-228712-1-1.html 上篇帖子: JAVA实现FTP服务器文件的上传,下载,删除功能 下篇帖子: 用JAVA FTP两台服务器实时传输数据,发现他是鸡肋。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表