- 论坛徽章:
- 0
|
译了一点点,希望大家努力,把它变成一个完美的文档。我一个人做不来啊。
一个FTP服务器,允许管理员管理网站,也允许匿名用户,使用的是虚拟机。
安装:
proftpd-1.2.xx
proftpd-anonymous-1.2.xx
配置
/etc/proftpd.conf
以下:
# 服务器名字
ServerName "Server Alex.fr"
# ProFTPd 管理员邮箱
ServerAdmin ftp@alex.fr
# "standalone" 单独的服务开启FTP使用 /etc/init.d/proftpd start
# 这个大家都明白意思吧
###################################
ServerType standalone
#由于有虚拟机,设置默认的服务器为开启状态。
DefaultServer on
# 启用上传断点续传。
# 很有用的功能。
AllowStoreRestart on
# 应该是下载断点续传吧。偶不懂法语啊。
AllowRetrieveRestart on
# Pour éviter d'etre vulnérable aux attaques de type DoS laisser le nombre de processus enfants a 30 maximum
# Ce paramètre n'est valable que si vous fonctionnez en mode "standalone"
# Si vous etes en mode "inetd" vous devrez configurer le nombre de processus enfants maximum dans le server xinetd
MaxInstances 30
# Permet au serveur de rechercher lui meme dans /etc/passwd la validité des mots de passe (Utile pour NIS)
# Laisser par défaut sur "off"
PersistentPasswd off
# Active un arrangement des lignes pour plus de compatibilité
MultilineRFC2228 on
# Oblige proftpd a toujours fournir l'ip Public.
# dans le cas d'une gateway NAT ou un port forwarder
#MasqueradeAddress (votre IP Pubic)
# Définit les ports que ProFTPd va utiliser pour son allocation dynamique.
# Il vous suffit de router les ports en question vers votre serveur ProFTPd.
# Vous définirez ces règles sur votre routeur ou gateway (FW)
#PassivePorts 50000 50010
# Evite le blocage de ProFTP pendant le temps de réponse de résolution DNS
UseReverseDNS off
# Tout ce qui est défini dans <Global>; s'applique a l'ensemble du contexte de configuration, meme VirtualHost
<Global>;
# 为FTP设置用户和群组
User nobody
Group nogroup
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022 022
# Force l'option de directory listings (NLST, LIST et STAT) a -l
LsDefaultOptions "-l"
# Autorise le remplacement d'anciens fichiers par des nouveaux, si l'utilisateur a le droit en écriture bien sur.
<Directory />;
AllowOverwrite on
</Directory>;
# Permet de ne pas donner d'information sur le serveur
DeferWelcome off
# On indique au serveur FTP d'utiliser ou non le fichier /etc/ftpusers pour savoir qui a le droit de se connecter.
# Par défaut ce fichier est utilisé par ProFTP
UseFtpUsers on
# Le premier message qui sera affiché quand quelqu'un se connectera
ServerIdent on "Server FTP ready"
# Message d'accueil
AccessGrantMsg "Bienvenue %u sur Alex.fr"
# Autorise le téléchargement ou upload distant directement depuis un autre serveur FTP sans passer par le PC de l'user.
AllowForeignAddress on
# Permet de déconnecter le client au bout de "x" secondes :
# s'il n'y a aucune activité de son coté.
TimeoutIdle 600
# s'il n'y a aucune activité entre la saisie du login et du passwd
TimeoutLogin 300
# s'il n'opére aucun transfert
TimeoutNoTransfer 300
# s'il a stoppé le transfert
TimeoutStalled 3600
# Autorise seulement les noms de fichiers normaux (caractères alphanumeric) et non des codes shell
PathAllowFilter "[a-zA-Z0-9]"
# Refuse l'upload de fichiers .ftpaccess ou .htaccess
PathDenyFilter "(\.ftp)|(\.ht)[a-z]+$"
# N'autorise pas de passer des printf-Formats
AllowFilter "^[a-zA-Z0-9@~ /,_.-]*$"
DenyFilter "%"
# Cache les liens symboliques
ShowSymlinks off
</Global>;
# Permet de prendre en compte le fichier suivant.
Include /etc/proftpd-virtualhost.conf
配置文件 /etc/proftpd-virtualhost.conf
# 给管理员用户的虚拟机
<VirtualHost ftpadmin.alex.fr>;
ServerName "Server FTP Admin"
# 给管理员开一个新的端口,端口号自定。
Port 2100
# 最大允许密码尝试次数(防止密码猜测)
MaxLoginAttempts 2
# 要求使用合规的shell.即用户要可以登陆的。用户的shell不能是/bin/nologin之类
RequireValidShell on
# 只允许webmaster 登陆此虚拟机。
<Limit LOGIN>;
Order Allow,Deny
AllowUser webmaster
Deny from all
</Limit>;
AccessGrantMsg "Bienvenue %u sur le Serveur FTP Admin"
# Autorise seulement ces deux commandes dans /
<Directory />;
<Limit CWD DIRS>;
AllowAll
</Limit>;
<Limit ALL>;
DenyAll
</Limit>;
</Directory>;
# Refuse toutes les commandes dans /var/www/html/webmail
<Directory /var/www/html/webmail>;
<Limit ALL>;
DenyAll
</Limit>;
</Directory>;
# Autorise toutes les commandes dans /var/www/html
<Directory /var/www/html>;
<Limit ALL>;
AllowAll
</Limit>;
</Directory>;
# Autorise toutes les commandes dans /var/www/cgi-bin
<Directory /var/www/cgi-bin>;
<Limit ALL>;
AllowAll
</Limit>;
</Directory>;
# Autorise toutes les commandes dans /var/log/apache
<Directory /var/log/apache>;
<Limit ALL>;
AllowAll
</Limit>;
</Directory>;
</VirtualHost>;
# 为匿名用户设置虚拟机。
<VirtualHost ftp.alex.fr>;
ServerName "Server FTP Public"
Port 21
Umask 027
# 匿名不用密码验证
IdentLookups off
# Refuse la connexion des Utilisateurs disposant d'un login. Pour autoriser seulement les connexions Amonymous
<Limit LOGIN>;
DenyAll
</Limit>;
# 设定最大连接的用户数
MaxClients 10 "Sorry, max %m users -- try again later"
AccessGrantMsg "Bienvenue %u sur le Serveur FTP Public"
#设定要包含文件的
Include /etc/proftpd-anonymous.conf
</VirtualHost>;
###################################################################################
###################################################################################
配置文件 /etc/proftpd-anonymous.conf :
# Connecte les Anonymous vers /var/ftp/pub
<Anonymous ~ftp/pub>;
User ftp
Group ftp
# Fait d'anonymous un alias a ftp, en se logant sous anonymous, ils sont appelés ftp
UserAlias anonymous ftp
# Ignore la vérification d'un shell pour anonymous
RequireValidShell off
# Permet de ne pas rechercher dans le systeme, le mot de passe
AnonRequirePassword off
# Pour qu'un message soit affiché a la connexion vous pouvez créer un fichier 'welcome.msg' a la racine (ici ~ftp/pub)
DisplayLogin welcome.msg
# Pour signaler que le client est remonté a la racine vous pouvez créer un fichier '.message' qui s'affichera
DisplayFirstChdir message
# Permet de cacher tous les fichiers appartenant a "root"
HideUser root
HideGroup root
<Limit LOGIN>;
AllowAll
</Limit>;
# Limite les commandes suivantes :
#de renommer, de supprimer des fichiers des répertoires, changer les permissions, ...
<Limit RNFR RNTO DELE RMD CHMOD SITE_CHMOD SITE XCUP WRITE XRMD XPWD>;
DenyAll
</Limit>;
# Autorise l'upload vers le répertoire uploads uniquement
<Directory uploads/*>;
<Limit READ>;
DenyAll
</Limit>;
# Autorise le storage de fichiers et création de répertoires mais pas l'effacement
<Limit STOR MKD>;
AllowAll
</Limit>;
</Directory>;
</Anonymous>;
文件 /etc/ftpusers 的内容如下:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody |
|