Created
May 14, 2014 14:35
-
-
Save vangog/39c4f794a97c16649da8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Install proftpd with synaptic or with this command : | |
| sudo apt-get install proftpd | |
| #Add this line in /etc/shells file (sudo gedit /etc/shells to open the file): | |
| /bin/false | |
| #Create a /home/FTP-shared directory : | |
| cd /home | |
| sudo mkdir FTP-shared | |
| #Create a user named userftp which will be used only for ftp access. This user don't need a valid shell (more secure) #therefore select /bin/false shell for userftp and /home/FTP-shared as home directory (property button in user and group #window). | |
| #To make this section clearer, i give you the equivalent command line to create the user, but it would be better to use the #GUI (System > Administration > User & Group) to create the user since users here often got problems with the user creation #and the password (530 error) with the command line, so i really advice to use the GUI : | |
| sudo useradd userftp -p your_password -d /home/FTP-shared -s /bin/false | |
| sudo passwd userftp | |
| #In FTP-shared directory create a download and an upload directory : | |
| cd /home/FTP-shared/ | |
| sudo mkdir download | |
| sudo mkdir upload | |
| #Now we have to set the good permissions for these directories : | |
| cd /home | |
| sudo chmod 755 FTP-shared | |
| cd FTP-shared | |
| sudo chmod 755 download | |
| sudo chmod 777 upload | |
| #OK, now go to the proftpd configuration file : | |
| sudo gedit /etc/proftpd/proftpd.conf | |
| #and edit your proftpd.conf file like that if it fit to your need : | |
| ===================================================================================================================== | |
| # To really apply changes reload proftpd after modifications. | |
| AllowOverwrite on | |
| AuthAliasOnly on | |
| # Choose here the user alias you want !!!! | |
| UserAlias sauron userftp | |
| ServerName "ChezFrodon" | |
| ServerType standalone | |
| DeferWelcome on | |
| MultilineRFC2228 on | |
| DefaultServer on | |
| ShowSymlinks off | |
| TimeoutNoTransfer 600 | |
| TimeoutStalled 100 | |
| TimeoutIdle 2200 | |
| DisplayChdir .message | |
| ListOptions "-l" | |
| RequireValidShell off | |
| TimeoutLogin 20 | |
| RootLogin off | |
| # It's better for debug to create log files ;-) | |
| ExtendedLog /var/log/ftp.log | |
| TransferLog /var/log/xferlog | |
| SystemLog /var/log/syslog.log | |
| #DenyFilter \*.*/ | |
| # I don't choose to use /etc/ftpusers file (set inside the users you want to ban, not useful for me) | |
| UseFtpUsers off | |
| # Allow to restart a download | |
| AllowStoreRestart on | |
| # Port 21 is the standard FTP port, so you may prefer to use another port for security reasons (choose here the port you want) | |
| Port 1980 | |
| # To prevent DoS attacks, set the maximum number of child processes | |
| # to 30. If you need to allow more than 30 concurrent connections | |
| # at once, simply increase this value. Note that this ONLY works | |
| # in standalone mode, in inetd mode you should use an inetd server | |
| # that allows you to limit maximum number of processes per service | |
| # (such as xinetd) | |
| MaxInstances 8 | |
| # Set the user and group that the server normally runs at. | |
| User nobody | |
| Group nogroup | |
| # Umask 022 is a good standard umask to prevent new files and dirs | |
| # (second parm) from being group and world writable. | |
| Umask 022 022 | |
| PersistentPasswd off | |
| MaxClients 8 | |
| MaxClientsPerHost 8 | |
| MaxClientsPerUser 8 | |
| MaxHostsPerUser 8 | |
| # Display a message after a successful login | |
| AccessGrantMsg "welcome !!!" | |
| # This message is displayed for each access good or not | |
| ServerIdent on "you're at home" | |
| # Lock all the users in home directory, ***** really important ***** | |
| DefaultRoot ~ | |
| MaxLoginAttempts 5 | |
| #VALID LOGINS | |
| <Limit LOGIN> | |
| AllowUser userftp | |
| DenyALL | |
| </Limit> | |
| <Directory /home/FTP-shared> | |
| Umask 022 022 | |
| AllowOverwrite off | |
| <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> | |
| DenyAll | |
| </Limit> | |
| </Directory> | |
| <Directory /home/FTP-shared/download/*> | |
| Umask 022 022 | |
| AllowOverwrite off | |
| <Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD> | |
| DenyAll | |
| </Limit> | |
| </Directory> | |
| <Directory /home/FTP-shared/upload/> | |
| Umask 022 022 | |
| AllowOverwrite on | |
| <Limit READ RMD DELE> | |
| DenyAll | |
| </Limit> | |
| <Limit STOR CWD MKD> | |
| AllowAll | |
| </Limit> | |
| </Directory> | |
| ===================================================================================================================== | |
| #Ok you have done proftpd configuration. Your server is on port 1980 (in this exemple) and the access parameters are | |
| #user : sauron | |
| #password : the one you've set for userftp | |
| #To start/stop/restart your server : | |
| sudo /etc/init.d/proftpd start | |
| sudo /etc/init.d/proftpd stop | |
| sudo /etc/init.d/proftpd restart | |
| #To perform a syntax check of your proftpd.conf file : | |
| sudo proftpd -td5 | |
| #To know who is connected on your server in realtime use "ftptop" command (use "t" caracter to swich to rate display), you #can also use the "ftpwho" command. | |
| #other informations here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment