架设ftp服务器

来源:互联网 发布:环绕音乐制作软件 编辑:程序博客网 时间:2024/05/21 11:14
  1. [root@mail ~]# yum -y install vsftpd  
  2. Loaded plugins: refresh-packagekit, rhnplugin  
  3. This system is not registered with RHN.  
  4. RHN support will be disabled.  
  5. Setting up Install Process  
  6. Resolving Dependencies  
  7. --> Running transaction check  
  8. ---> Package vsftpd.i686 0:2.2.2-11.el6 set to be updated  
  9. --> Finished Dependency Resolution  
  10.   
  11. Dependencies Resolved  
  12.   
  13. ================================================================================  
  14.  Package         Arch          Version               Repository            Size  
  15. ================================================================================  
  16. Installing:  
  17.  vsftpd          i686          2.2.2-11.el6          rhel-source          157 k  
  18.   
  19. Transaction Summary  
  20. ================================================================================  
  21. Install       1 Package(s)  
  22. Upgrade       0 Package(s)  
  23.   
  24. Total download size: 157 k  
  25. Installed size: 344 k  
  26. Downloading Packages:  
  27. vsftpd-2.2.2-11.el6.i686.rpm                             | 157 kB     00:00       
  28. Running rpm_check_debug  
  29. Running Transaction Test  
  30. Transaction Test Succeeded  
  31. Running Transaction  
  32.   Installing     : vsftpd-2.2.2-11.el6.i686                                 1/1   
  33.   
  34. Installed:  
  35.   vsftpd.i686 0:2.2.2-11.el6                                                      
  36.   
  37. Complete!  
  38. [root@mail ~]# service vsftpd start  
  39. 为 vsftpd 启动 vsftpd:                                    [确定]  
  40. [root@mail ~]# chkconfig vsftpd on  #设置开机即启动ftp服务  
  41. [root@mail ~]# lftp 192.169.1.98  
  42. -bash: lftp: command not found  
  43. [root@mail ~]# yum -y install lftp  
  44. Loaded plugins: refresh-packagekit, rhnplugin  
  45. This system is not registered with RHN.  
  46. RHN support will be disabled.  
  47. Setting up Install Process  
  48. Resolving Dependencies  
  49. --> Running transaction check  
  50. ---> Package lftp.i686 0:4.0.9-1.el6 set to be updated  
  51. --> Finished Dependency Resolution  
  52.   
  53. Dependencies Resolved  
  54.   
  55. ================================================================================  
  56.  Package       Arch          Version                 Repository            Size  
  57. ================================================================================  
  58. Installing:  
  59.  lftp          i686          4.0.9-1.el6             rhel-source          735 k  
  60.   
  61. Transaction Summary  
  62. ================================================================================  
  63. Install       1 Package(s)  
  64. Upgrade       0 Package(s)  
  65.   
  66. Total download size: 735 k  
  67. Installed size: 2.3 M  
  68. Downloading Packages:  
  69. lftp-4.0.9-1.el6.i686.rpm                                | 735 kB     00:00       
  70. Running rpm_check_debug  
  71. Running Transaction Test  
  72. Transaction Test Succeeded  
  73. Running Transaction  
  74.   Installing     : lftp-4.0.9-1.el6.i686                                    1/1   
  75.   
  76. Installed:  
  77.   lftp.i686 0:4.0.9-1.el6                                                         
  78.   
  79. Complete!  
  80. [root@mail ~]# touch /var/ftp/pub/a #匿名用户的默认登陆目录为/var/ftp/pub/  
  81. [root@mail ~]# lftp 192.169.1.98  
  82. lftp 192.169.1.98:~> ls  
  83. drwxr-xr-x    2 0        0            4096 Aug 14 14:19 pub  
  84. lftp 192.169.1.98:/> cd pub/  
  85. lftp 192.169.1.98:/pub> ls  
  86. -rw-r--r--    1 0        0               0 Aug 14 14:19 a     
  87. lftp 192.169.1.98:/pub> quit  
  88.   
  89. #要实现匿名用户的读写,要有几个条件  
  90. 1.要给/var/ftp/pub/目录other写权限  
  91. 2./etc/vsftpd/vsftpd.conf 修改anon_upload_enable=YES  
  92. 3.要关闭selinux,或给目录打上标签  
  93. 4.创建文件夹另外需要/etc/vsftpd/vsftpd.conf 修改anon_mkdir_write_enable=YES  
  94.   
  95. [root@mail ~]# chmod o+w /var/ftp/pub/  
  96. [root@mail ~]# vim /etc/vsftpd/vsftpd.conf  #anon_upload_enable=YES  
  97. [root@mail ~]# ls  
  98. anaconda-ks.cfg  install.log         Package  公共的  视频  文档  音乐  
  99. Finished         install.log.syslog  Running  模板    图片  下载  桌面  
  100. [root@mail ~]# service vsftpd restart  
  101. 关闭 vsftpd:                                              [确定]  
  102. 为 vsftpd 启动 vsftpd:                                    [确定]  
  103. [root@mail ~]# lftp 192.169.1.98  
  104. lftp 192.169.1.98:~> cd pub/  
  105. lftp 192.169.1.98:/pub> mkdir anon_dir1  
  106. mkdir: Access failed: 550 Permission denied. (anon_dir1)  
  107. lftp 192.169.1.98:/pub> put install.log  
  108. put: Access failed: 553 Could not create file. (install.log)    #只修改两项,此时创建目录和上传都是不行的  
  109. lftp 192.169.1.98:/pub> quit  
  110. [root@mail ~]# setenforce 0 #关闭selinux  
  111. [root@mail ~]# lftp 192.169.1.98  
  112. lftp 192.169.1.98:~> cd pub/  
  113. lftp 192.169.1.98:/pub> ls  
  114. -rw-r--r--    1 0        0               0 Aug 14 14:19 a  
  115. lftp 192.169.1.98:/pub> put install.log        
  116. 41465 bytes transferred                         
  117. lftp 192.169.1.98:/pub> mkdir anon_dir1      #上传可以了,但是创建目录还是不行的  
  118. mkdir: Access failed: 550 Permission denied. (anon_dir1)  
  119. lftp 192.169.1.98:/pub> quit  
  120. [root@mail ~]# vim /etc/vsftpd/vsftpd.conf  #修改anon_mkdir_write_enable=YES  
  121. [root@mail ~]# service vsftpd restart  
  122. 关闭 vsftpd:                                              [确定]  
  123. 为 vsftpd 启动 vsftpd:                                    [确定]  
  124. [root@mail ~]# lftp 192.169.1.98  
  125. lftp 192.169.1.98:~> cd pub/             
  126. lftp 192.169.1.98:/pub> ls  
  127. -rw-r--r--    1 0        0               0 Aug 14 14:19 a  
  128. -rw-------    1 14       50          41465 Aug 14 14:30 install.log  
  129. lftp 192.169.1.98:/pub> mkdir anon_dir1      #这下上传和创建目录都可以了  
  130. mkdir 成功, 建立 `anon_dir1'  
  131. lftp 192.169.1.98:/pub> ls  
  132. -rw-r--r--    1 0        0               0 Aug 14 14:19 a  
  133. drwx------    2 14       50           4096 Aug 14 14:32 anon_dir1  
  134. -rw-------    1 14       50          41465 Aug 14 14:30 install.log   
  135. lftp 192.169.1.98:/pub> quit  
  136. [root@mail ~]# ls -l /var/ftp/pub/  
  137. 总用量 48  
  138. -rw-r--r--. 1 root root     0  8月 14 22:19 a  
  139. drwx------. 2 ftp  ftp   4096  8月 14 22:32 anon_dir1  
  140. -rw-------. 1 ftp  ftp  41465  8月 14 22:30 install.log      #匿名用户以ftp的身份上传文件和创建文件夹  
  141.   
  142. #默认目录/var/ftp/pub,需要注意的是在redhat6里面,  
  143. #也可以修改匿名用户的默认的登陆目录,但是目录结构要有一定的规范。  
  144. #1.目录必须是三级。2.前两级目录必须是755权限。  
  145. #在/etc/vsftpd/vsftpd.conf中的anon_root=第一级目录(在碰到诡异问题时候可以像这样解决,但有时候写第二级或第三级也行)  
  146. #  
  147. [root@mail ~]# vim /etc/vsftpd/vsftpd.conf   
  148. [root@mail ~]# tail -1 /etc/vsftpd/vsftpd.conf   
  149. anon_root=/data1/  
  150. [root@mail ~]# mkdir -p /data1/data2/data3  
  151. [root@mail ~]# service vsftpd restart  
  152. 关闭 vsftpd:                                              [确定]  
  153. 为 vsftpd 启动 vsftpd:                                    [确定]  
  154. [root@mail ~]# chmod o+w /data1/data2/data3/  
  155. [root@mail ~]# setenforce 0  
  156. [root@mail ~]# lftp 192.169.1.98  
  157. lftp 192.169.1.98:~> ls  
  158. drwxr-xr-x    3 0        0            4096 Aug 15 03:40 data2  
  159. lftp 192.169.1.98:/> cd data2/  
  160. lftp 192.169.1.98:/data2> ls  
  161. drwxr-xrwx    2 0        0            4096 Aug 15 03:40 data3  
  162. lftp 192.169.1.98:/data2> cd data3/  
  163. lftp 192.169.1.98:/data2/data3> ls  
  164. lftp 192.169.1.98:/data2/data3> put   
  165. .ICEauthority  .gnupg/          .ssh/     .xauthzWxTwM  
  166. .bash_history  .gstreamer-0.10/     .tcshrc   Finished  
  167. .bash_logout   .gtk-bookmarks       .themes/      Package  
  168. .bash_profile  .gvfs/           .thumbnails/  Running  
  169. .bashrc        .icons/          .viminfo      anaconda-ks.cfg  
  170. .cache/        .imsettings.log      .xauthPOZYeE  install.log  
  171. .config/       .lesshst         .xauthUmfkv2  install.log.syslog  
  172. .cshrc         .lftp/           .xauthZPDirN  下载/  
  173. .dbus/         .local/          .xauthdwewZF  公共的/  
  174. .elinks/       .nautilus/       .xauthhXO72Z  图片/  
  175. .esd_auth      .printer-groups.xml  .xauthjJSo1Z  文档/  
  176. .gconf/        .pulse/          .xauthkCfxzH  桌面/  
  177. .gconfd/       .pulse-cookie        .xauthmGZjkB  模板/  
  178. .gnome2/       .recently-used.xbel  .xauthrcABFo  视频/  
  179. .gnote/        .rnd         .xauthsvl3SP  音乐/  
  180. lftp 192.169.1.98:/data2/data3> put anaconda-ks.cfg   
  181. 1388 bytes transferred          
  182. lftp 192.169.1.98:/data2/data3> ls  
  183. -rw-------    1 14       50           1388 Aug 15 03:41 anaconda-ks.cfg  
  184. lftp 192.169.1.98:/data2/data3> cd ..  
  185. lftp 192.169.1.98:/data2> ls  
  186. drwxr-xrwx    2 0        0            4096 Aug 15 03:40 data3  
  187. lftp 192.169.1.98:/data2> put Package          
  188. put: Access failed: 553 Could not create file. (Package)  
  189. lftp 192.169.1.98:/data2> put install.log    #因为data2没有写权限,即使有,也不能上传目录  
  190. put: Access failed: 553 Could not create file. (install.log)  
  191. lftp 192.169.1.98:/data2> cd data3/  
  192. lftp 192.169.1.98:/data2/data3> ls  
  193. -rw-------    1 14       50           1388 Aug 15 03:41 anaconda-ks.cfg  
  194. lftp 192.169.1.98:/data2/data3> mkdir anon_dir1  
  195. mkdir 成功, 建立 `anon_dir1'  
  196. lftp 192.169.1.98:/data2/data3> ls  
  197. -rw-------    1 14       50           1388 Aug 15 03:41 anaconda-ks.cfg  
  198. drwx------    2 14       50           4096 Aug 15 03:42 anon_dir1  
  199. lftp 192.169.1.98:/data2/data3> cd /etc      #不能跳到本机的其他目录  
  200. cd: Access failed: 550 Failed to change directory. (/etc)  
  201. lftp 192.169.1.98:/data2/data3> quit  
  202. [root@mail ~]# vim /etc/vsftpd/vsftpd.conf    
  203. [root@mail ~]# tail -1 /etc/vsftpd/vsftpd.conf  #anon_root写第二级目录试试  
  204. anon_root=/data1/data2/  
  205. [root@mail ~]# service vsftpd restart  
  206. 关闭 vsftpd:                                              [确定]  
  207. 为 vsftpd 启动 vsftpd:                                    [确定]  
  208. [root@mail ~]# lftp 192.169.1.98  
  209. lftp 192.169.1.98:~> ls              #默认登陆进来是第二级                              
  210. drwxr-xrwx    3 0        0            4096 Aug 15 03:42 data3  
  211. lftp 192.169.1.98:/> cd data3/             
  212. lftp 192.169.1.98:/data3> ls  
  213. -rw-------    1 14       50           1388 Aug 15 03:41 anaconda-ks.cfg  
  214. drwx------    2 14       50           4096 Aug 15 03:42 anon_dir1  
  215. lftp 192.169.1.98:/data3> put install.log  
  216. 41465 bytes transferred  
  217. lftp 192.169.1.98:/data3> mkdir anon_dir2    #可以上传,可以创建  
  218. mkdir 成功, 建立 `anon_dir2'  
  219. lftp 192.169.1.98:/data3> cd ..  
  220. lftp 192.169.1.98:/> cd  
  221. cd 成功, 当前目录=/  
  222. lftp 192.169.1.98:/> ls  
  223. drwxr-xrwx    3 0        0            4096 Aug 15 03:42 data3  
  224. lftp 192.169.1.98:/> pwd  
  225. ftp://192.169.1.98/  
  226. lftp 192.169.1.98:/> quit  
  227. [root@mail ~]#   
  228.   
  229. --------------------selinux---------------------  
  230.   
  231. [root@mail ~]# --------selinux----------^C  
  232. [root@mail ~]# setenforce 1     #打开selinux  
  233. [root@mail ~]# lftp 192.169.1.98    #连ls都不可以了  
  234. lftp 192.169.1.98:~> ls  
  235. ls: 登录失败: 500 OOPS: cannot change directory:/data1/data2  
  236. lftp 192.169.1.98:~> quit  
  237. [root@mail ~]# getsebool -a|grep ftp    #查看一下跟ftp有关的selinux  
  238. allow_ftpd_anon_write --> off  
  239. allow_ftpd_full_access --> off  
  240. allow_ftpd_use_cifs --> off  
  241. allow_ftpd_use_nfs --> off  
  242. ftp_home_dir --> off  
  243. ftpd_connect_db --> off  
  244. httpd_enable_ftp_server --> off  
  245. sftpd_anon_write --> off  
  246. sftpd_enable_homedirs --> off  
  247. sftpd_full_access --> off  
  248. sftpd_write_ssh_home --> off  
  249. tftp_anon_write --> off  
  250. [root@mail ~]# setsebool -P allow_ftpd_anon_write on    #打开allow_ftpd_anon_write试试  
  251. [root@mail ~]# lftp 192.169.1.98            #还是不行的  
  252. lftp 192.169.1.98:~> ls                  
  253. ls: 登录失败: 500 OOPS: cannot change directory:/data1/data2  
  254. lftp 192.169.1.98:~> quit  
  255. [root@mail ~]# setsebool -P allow_ftpd_full_access on   #把allow_ftpd_full_access也打开  
  256. [root@mail ~]# lftp 192.169.1.98  
  257. lftp 192.169.1.98:~> ls  
  258. drwxr-xrwx    4 0        0            4096 Aug 15 03:46 data3  
  259. lftp 192.169.1.98:/> cd data3/  
  260. lftp 192.169.1.98:/data3> ls  
  261. -rw-------    1 14       50           1388 Aug 15 03:41 anaconda-ks.cfg  
  262. drwx------    2 14       50           4096 Aug 15 03:42 anon_dir1  
  263. drwx------    2 14       50           4096 Aug 15 03:46 anon_dir2  
  264. -rw-------    1 14       50          41465 Aug 15 03:46 install.log  
  265. lftp 192.169.1.98:/data3> mkdir anon_dir3          
  266. mkdir 成功, 建立 `anon_dir3'              
  267. lftp 192.169.1.98:/data3> put install.log.syslog #这下上传和创建文件夹都可以了  
  268. 10565 bytes transferred                                
  269. lftp 192.169.1.98:/data3> quit  
  270. [root@mail ~]#   
  271. #但是allow_ftpd_full_access为on权限还是太大,能不能保证put,mkdir正常到情况下,进一步减小权限,可以!  
  272. #给目录和文件都打上标签  
  273.   
  274. [root@mail ~]# setsebool -P allow_ftpd_full_access off  #先把这个关了  
  275. [root@mail ~]# ls -dZ /data1/data2/data3/       #data3的标签为default_t   
  276. drwxr-xrwx. root root unconfined_u:object_r:default_t:s0 /data1/data2/data3/  
  277. [root@mail ~]# ls -dZ /var/ftp/pub/         #看一下默认目录的标签,为public_content_t  
  278. drwxr-xrwx. root root system_u:object_r:public_content_t:s0 /var/ftp/pub/  
  279. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/    #给目录打这个标签  
  280. [root@mail ~]# chcon -t public_content_t /data1/data2/      #data2也打  
  281. [root@mail ~]# lftp 192.169.1.98  
  282. lftp 192.169.1.98:~> ls                              
  283. ls: 登录失败: 500 OOPS: cannot change directory:/data1/data2  
  284. lftp 192.169.1.98:~> quit  
  285. [root@mail ~]# chcon -t public_content_t /data1/        #登陆后还是不行,给data1也打上  
  286. [root@mail ~]# lftp 192.169.1.98  
  287. lftp 192.169.1.98:~> ls                  #这时候可以了  
  288. drwxr-xrwx    5 0        0            4096 Aug 15 05:42 data3  
  289. lftp 192.169.1.98:/> cd data3/  
  290. lftp 192.169.1.98:/data3> ls             #但是ls看不到任何东西  
  291. lftp 192.169.1.98:/data3> quit     
  292.   
  293.   
  294. #因为里面文件的标签跟public_content_t不兼容,所以给文件也打上,注意加-R递归的改有时候不起作用  
  295. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/anaconda-ks.cfg   
  296. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/anon_dir1/  
  297. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/anon_dir2/  
  298. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/anon_dir3/  
  299. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/install.log  
  300. [root@mail ~]# chcon -t public_content_t /data1/data2/data3/install.log.syslog   
  301. [root@mail ~]# lftp 192.169.1.98  
  302. lftp 192.169.1.98:~> ls  
  303. drwxr-xrwx    5 0        0            4096 Aug 15 05:42 data3  
  304. lftp 192.169.1.98:/> cd data3/  
  305. lftp 192.169.1.98:/data3> ls     #这下都能看到了  
  306. -rw-------    1 14       50           1388 Aug 15 03:41 anaconda-ks.cfg  
  307. drwx------    2 14       50           4096 Aug 15 03:42 anon_dir1  
  308. drwx------    2 14       50           4096 Aug 15 03:46 anon_dir2  
  309. drwx------    2 14       50           4096 Aug 15 05:41 anon_dir3  
  310. -rw-------    1 14       50          41465 Aug 15 03:46 install.log  
  311. -rw-------    1 14       50          10565 Aug 15 05:42 install.log.syslog  
  312. lftp 192.169.1.98:/data3>   
原创粉丝点击