CentOS6源码编译搭建FTP

  • A+
所属分类:服务搭建

PureFTPd是一款安全性较高的免费FTP服务器软件,可以在多种类Unix操作系统中编译运行,随着软件越来越流行以及网站管理员日常维护需要,现在PureFTPd经常会与LAMP配套使用。

 实验环境

实验平台:VMware虚拟机

操作系统:CentOS 6.5 / Windows10

服务端IP:192.168.168.200

客户端IP:192.168.168.201

PureFTPd:1.0.32

 服务端篇

第一步 准备工作

禁用SElinux

  1. [root@Wanghualang ~]# setenforce 0  
  2. [root@Wanghualang ~]# sed -ri 's#^(SELINUX=).*#\1disabled#g' /etc/selinux/config  

禁用防火墙

  1. [root@Wanghualang ~]# service iptables stop  
  2. [root@Wanghualang ~]# service ip6tables stop  
  3. [root@Wanghualang ~]# chkconfig iptables off        
  4. [root@Wanghualang ~]# chkconfig ip6tables off  

安装常用软件和相关依赖库。

  1. [root@wanghualang ~]# yum -y install vim wget openssl-devel gcc

第二步 安装软件

  1. [root@wanghualang ~]# cd /usr/local/src/  
  2. [root@wanghualang ~]# wget https://download.pureftpd.org/pub/pure-ftpd/releases/obsolete/pure-ftpd-1.0.32.tar.gz  
  3. [root@wanghualang src]# tar xzf pure-ftpd-1.0.32.tar.gz  
  4. [root@wanghualang src]# cd pure-ftpd-1.0.32  
  5. [root@wanghualang pure-ftpd-1.0.32]# ./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits  --with-tls  
  6. [root@wanghualang pure-ftpd-1.0.32]# make  
  7. [root@wanghualang pure-ftpd-1.0.32]# make install  

第三步 配置软件

  1. [root@wanghualang pure-ftpd-1.0.32]# cd configuration-file  
  2. [root@wanghualang configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl  
  3. [root@wanghualang configuration-file]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl  
  4. [root@wanghualang configuration-file]# mkdir -p /usr/local/pureftpd/etc/  
  5. [root@wanghualang configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf  

pure-ftpd.conf 内容如下:

  1. ChrootEveryone                               yes  
  2. BrokenClientsCompatibility              no  
  3. MaxClientsNumber                          50  
  4. Daemonize                                      yes  
  5. MaxClientsPerIP                               8  
  6. VerboseLog                                      no  
  7. DisplayDotFiles                                yes  
  8. AnonymousOnly                              no  
  9. NoAnonymous                                 no  
  10. SyslogFacility                                    ftp  
  11. DontResolve                                    yes  
  12. MaxIdleTime                                    15  
  13. PureDB                                             /usr/local/pureftpd/etc/pureftpd.pdb  
  14. LimitRecursion                                 3136 8  
  15. AnonymousCanCreateDirs                no  
  16. MaxLoad                                          4  
  17. AntiWarez                                        yes  
  18. Umask                                              133:022  
  19. MinUID                                            100  
  20. AllowUserFXP                                    no  
  21. AllowAnonymousFXP                        no  
  22. ProhibitDotFilesWrite                        no  
  23. ProhibitDotFilesRead                          no  
  24. AutoRename                                     no  
  25. AnonymousCantUpload                    no  
  26. PIDFile                                              /usr/local/pureftpd/var/run/pure-ftpd.pid  
  27. MaxDiskUsage                                  99  
  28. CustomerProof                                 yes  

创建FTP虚拟用户、主目录、启动服务。

  1. [root@wanghualang ~]# mkdir -p /data/ftp  
  2. [root@wanghualang ~]# chmod 777 /data/ftp/  
  3. [root@wanghualang ~]# useradd wanghualang -p wanghualang -s /sbin/nologin  
  4. [root@wanghualang ~]# /usr/local/pureftpd/bin/pure-pw useradd admin -uwanghualang -d /data/ftp/  
  5. [root@wanghualang ~]# /usr/local/pureftpd/bin/pure-pw mkdb  
  6. [root@wanghualang ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf  

扩展阅读展开


查看用户列表、删除虚拟用户。

  1. [root@wanghualang ~]# /usr/local/pureftpd/bin/pure-pw list  
  2. [root@wanghualang ~]# /usr/local/pureftpd/bin/pure-pw userdel user  

第四步 创建启动脚本

  1. [root@wanghualang ~]# cd /etc/init.d/  
  2. [root@wanghualang init.d]# vim pureftpd  

  1. #!/bin/sh  
  2. #  
  3. # ScriptName: /etc/init.d/pureftpd  
  4. # chkconfig: - 60 50  
  5. # description: pureftpd is a ftp daemon, which is the program \  
  6. # that answers incoming ftp service requests.  
  7. # processname: pureftpd  
  8.   
  9. #tput func  
  10. funcTput()  
  11. {  
  12. tput init  
  13. for args  
  14. do  
  15. case "$args" in  
  16. green_black)  
  17. echo -e -n "\033[;32m"  
  18. ;;  
  19. red_black)  
  20. echo -e -n "\033[;31m"  
  21. ;;  
  22. endtput)  
  23. tput sgr0  
  24. esac  
  25. done  
  26. }  
  27.   
  28. case "$1" in  
  29. start)  
  30. ps aux | grep pure-ftp | grep -v grep > /dev/null 2>&1  
  31. if [ $? -eq 0 ]  
  32. then  
  33. echo -n "Pureftpd has already been running ... "  
  34. funcTput red_black  
  35. echo "[failed]"  
  36. funcTput endtput  
  37. exit 1  
  38. fi  
  39. echo -n "start pureftpd.... "  
  40. /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf > /dev/null 2>&1  
  41. if [ $? -eq 0 ] ; then  
  42. funcTput green_black  
  43. echo " [OK]"  
  44. funcTput endtput  
  45. else  
  46. funcTput red_black  
  47. echo " [Failed] ";  
  48. funcTput endtput  
  49. fi  
  50. ;;  
  51. stop)  
  52. ps aux | grep pure-ftp | grep -v grep > /dev/null 2>&1  
  53. if [ $? -eq 1 ]  
  54. then  
  55. echo -n "Pureftpd has not been runned now ... "  
  56. funcTput red_black  
  57. echo "[failed]"  
  58. funcTput endtput  
  59. exit 1  
  60. fi  
  61. echo -n "Stop pureftpd... "  
  62. killall pure-ftpd > /dev/null 2>&1  
  63. if [ $? -eq 0 ] ; then  
  64. funcTput green_black  
  65. echo " [OK]"  
  66. funcTput endtput  
  67. else  
  68. funcTput red_black  
  69. echo " [Failed] ";  
  70. funcTput endtput  
  71. fi  
  72. ;;  
  73. restart)  
  74. ps aux | grep pure-ftp | grep -v grep > /dev/null 2>&1  
  75. if [ $? -eq 0 ]  
  76. then  
  77. echo -n "Stop pureftpd... "  
  78. killall pure-ftpd > /dev/null 2>&1  
  79. if [ $? -eq 0 ] ; then  
  80. funcTput green_black  
  81. echo " [OK]"  
  82. funcTput endtput  
  83. else  
  84. funcTput red_black  
  85. echo " [Failed] ";  
  86. funcTput endtput  
  87. fi  
  88. fi  
  89.   
  90. echo -n "start pureftpd.... "  
  91. /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf >/dev/null 2>&1  
  92. if [ $? -eq 0 ] ; then  
  93. funcTput green_black  
  94. echo " [OK]"  
  95. funcTput endtput  
  96. else  
  97. funcTput red_black  
  98. echo " [Failed] ";  
  99. funcTput endtput  
  100. fi  
  101. ;;  
  102. *)  
  103. echo "Usage: `basename $0` {start | stop | restart}"  
  104. ;;  
  105. esac  
  106. exit 0  

设置脚本开机启动。

  1. [root@wanghualang init.d]# chmod 755 pureftpd   
  2. [root@wanghualang init.d]# chkconfig --add pureftpd  
  3. [root@wanghualang init.d]# chkconfig pureftpd on  

 客户端篇

在Windows系统下使用Filezilla软件,输入正确的IP地址、端口号、用户名、密码测试登陆。

  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: