{"id":653,"date":"2012-04-01T03:55:09","date_gmt":"2012-04-01T01:55:09","guid":{"rendered":"http:\/\/www.shukko.com\/x3\/?p=653"},"modified":"2012-04-01T03:55:09","modified_gmt":"2012-04-01T01:55:09","slug":"debian-how-to-install-secure-pure-ftp-server-chrooted-with-virtual-users","status":"publish","type":"post","link":"https:\/\/www.shukko.com\/x3\/2012\/04\/01\/debian-how-to-install-secure-pure-ftp-server-chrooted-with-virtual-users\/","title":{"rendered":"DEBIAN: How-to install secure pure ftp server chrooted with virtual users"},"content":{"rendered":"<p><code><br \/>\naptitude install pure-ftpd<br \/>\nnano \/etc\/pure-ftpd.conf<br \/>\n---------<br \/>\nChrootEveryone              yes<br \/>\nBrokenClientsCompatibility  no<br \/>\nMaxClientsNumber            10<br \/>\nDaemonize                   yes<br \/>\nMaxClientsPerIP             5<br \/>\nVerboseLog                  no<br \/>\nDisplayDotFiles             no<br \/>\nAnonymousOnly               no<br \/>\nNoAnonymous                 yes<br \/>\nSyslogFacility              ftp<br \/>\nDontResolve                 yes<br \/>\nMaxIdleTime                 15<br \/>\nPureDB                        \/etc\/pureftpd.pdb<br \/>\nLimitRecursion              2000 8<br \/>\nAnonymousCanCreateDirs      no<br \/>\nMaxLoad                     4<br \/>\nUserRatio                 5 10<br \/>\nAntiWarez                   no<br \/>\nUserBandwidth             200<br \/>\nUmask                       133:022<br \/>\nMinUID                      100<br \/>\nAllowUserFXP                no<br \/>\nAllowAnonymousFXP           no<br \/>\nProhibitDotFilesWrite       yes<br \/>\nProhibitDotFilesRead        yes<br \/>\nAutoRename                  no<br \/>\nAnonymousCantUpload         yes<br \/>\nAltLog                     stats:\/var\/log\/pureftpd.log<br \/>\nNoChmod                     yes<br \/>\nCreateHomeDir               yes<br \/>\nQuota                       2000:500<br \/>\nMaxDiskUsage               80<br \/>\nCustomerProof              yes<br \/>\nPerUserLimits            3:20<br \/>\nIPV4Only                 yes<br \/>\n------------<br \/>\nnano \/etc\/default\/pure-ftpd-common    >><br \/>\n                                   STANDALONE_OR_INETD=standalone ,<br \/>\n                                   VIRTUALCHROOT=true<\/p>\n<p>nano \/etc\/pure-ftpd\/conf\/PureDB       >>     \/etc\/pure-ftpd\/pureftpd.pdb<\/p>\n<p>cd \/etc\/pure-ftpd\/auth<\/p>\n<p>ln -s \/etc\/pure-ftpd\/conf\/PureDB 50pure<\/p>\n<p>sudo groupadd ftpgroup<\/p>\n<p>sudo useradd -g ftpgroup -d \/dev\/null -s \/etc ftpuser<\/p>\n<p>Create our first virtual user<\/p>\n<p>pure-pw useradd joe -u ftpuser -g ftpgroup -d \/home\/pubftp\/joe<\/p>\n<p>We will have to type his password twice, and we are almost ready to go.<\/p>\n<p>Save the password file, I mean create the pure-ftp password database run this command:<\/p>\n<p>pure-pw mkdb<\/p>\n<p>Do this each time you make changes to the password file.<\/p>\n<p>\/etc\/init.d\/pure-ftpd start<\/p>\n<p>Some other tips<\/p>\n<p>    To list users<\/p>\n<p>    pure-pw list<br \/>\n    To see some user's information<\/p>\n<p>    pure-pw show joe<br \/>\n    Where joe is the user you want to list his info.<br \/>\n    To change a password<\/p>\n<p>    pure-pw passwd joe<br \/>\n    Be sure to update the database by running:<\/p>\n<p>    pure-pw mkdb<\/p>\n<p><\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>aptitude install pure-ftpd nano \/etc\/pure-ftpd.conf &#8212;&#8212;&#8212; ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 10 Daemonize yes MaxClientsPerIP 5 VerboseLog no DisplayDotFiles no AnonymousOnly no NoAnonymous yes SyslogFacility ftp DontResolve yes MaxIdleTime 15 PureDB \/etc\/pureftpd.pdb LimitRecursion 2000 8 AnonymousCanCreateDirs no MaxLoad 4 UserRatio 5 10 AntiWarez no UserBandwidth 200 Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-653","post","type-post","status-publish","format-standard","hentry","category-kategerisiz"],"_links":{"self":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts\/653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/comments?post=653"}],"version-history":[{"count":1,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts\/653\/revisions"}],"predecessor-version":[{"id":654,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/posts\/653\/revisions\/654"}],"wp:attachment":[{"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/media?parent=653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/categories?post=653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shukko.com\/x3\/wp-json\/wp\/v2\/tags?post=653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}