linux中ftp配置
防火墻開啟
[root@hhj ~]# service iptables start
添加規則20主動端口,21被動端口
[root@hhj ~]# iptables -I INPUT 1 -p tcp --dport 20:21 -j ACCEPT
保存配置
[root@hhj ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
安裝vsftpd服務
[root@hhj ~]# yum install vsftpd -y
設為開機自動啟動
[root@hhj ~]# chkconfig vsftpd on
啟動服務
[root@hhj ~]# service vsftpd start
查看ftp端口狀態
[root@hhj ~]# netstat -ntulp | grep ftp
因為服務器的20端口要主動生成一個隨機端口訪問客戶端,這裏要檢查服務器有沒有加載nf_conntrack_ftp模塊,因為有模塊才會允許訪問
[root@hhj ~]# lsmod | grep nf_conntrack_ftp #查看模塊
[root@hhj ~]# modprobe nf_conntrack_ftp #加載模塊
或者這樣加載模塊
[root@hhj ~]# vim /etc/sysconfig/iptables-config
修改IPTABLES_MODULES="nf_conntrack_ftp"
重啟服務
[root@hhj ~]# service iptables restart
[root@hhj ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd. vsftpd的日誌文件
/etc/pam.d/vsftpd
PAM認證文件
/etc/rc.d/init.d/vsftpd 啟動腳本
/etc/vsftpd
vsftpd的配置文件存放的目錄
/etc/vsftpd/ftpusers 禁止使用vsftpd的用戶列表文件
/etc/vsftpd/user_list 禁止或允許使用vsftpd的用戶列表文件
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh vsftpd操作的一些變量和設置
/usr/sbin/vsftpd
vsftpd的主程序
其他一些說明文檔和手冊文件略!
/var/ftp
匿名用戶主目錄
/var/ftp/pub
匿名用戶的下載目錄
/etc/vsftpd/vsftpd.conf配置:
vsftpd支持三種用戶:本地用戶,匿名用戶,虛擬用戶
[root@hhj ~]# vim /etc/vsftpd/vsftpd.conf
…………
anonymous_enable=YES #是否啟用匿名用戶登錄
……………
local_enable=YES #是否允許本地用戶登錄
…………
write_enable=YES #是否允許本地用戶寫
……………
local_umask=022 #本地用戶上傳後文件過濾權限
……………
anon_upload_enable=NO #是否允許匿名用戶上傳文件
……………
anon_mkdir_write_enable=NO #是否允許匿名用戶創建文件夾
anon_other_write_enable=NO #是否允許匿名用戶上傳文件
……………
dirmessage_enable=YES
……………
chroot_local_user=YES # 本地用戶禁錮在宿主目錄中 即以家目錄為根
chroot_list_enable=YES # 是否將系統用戶限止在自己的home目錄下
chroot_list_file=/etc/vsftpd.chroot_list # 列出的是不chroot的用戶的列表
anon_root=/var/ftp 設置匿名用戶的FTP根目錄,也稱為宿主目錄。匿名登錄所在的文件目錄,註意ftp後面不要有“/”,否則出錯
local_root=/var/ftp 設置本地用戶的FTP根目錄
chown_upload=YES # 是否改變上傳文件的屬主
ftpd_banner=Welcome to chenlf FTP service. # 定制歡迎信息
chown_username=username # 如果是需要輸入一個系統用戶名
xferlog_enable=YES # 是否記錄ftp傳輸過程
xferlog_file=/var/log/vsftpd.log # ftp傳輸日誌的路徑和名字
xferlog_std_format=YES # 是否使用標準的ftp xferlog模式
connect_from_port_20=YES # 是否確信端口傳輸來自20(ftp-data)
idle_session_timeout=600 # 設置session超時時間
data_connection_timeout=120 # 設置數據傳輸超時時間
max_clients=50 # 用戶最大連接數 默認是0不限止
max_per_ip=5 # 每個IP地址最大連接數
anon_max_rate=102400 # 匿名的下載速度 KB
local_max_rate=102400 # 普通用戶的下載速度 KB
userlist_enable=YES #是否啟用用戶列表
userlist_deny=YES #只要出現在用戶列表中的用戶都是拒絕的
userlist_file=/etc/vsftpd/user_list #用戶列表文件
查看bool值
[root@hhj ~]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off #允許用戶寫
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> on #允許創建家目錄
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off
必須開啟ftp_home_dir --> on與allow_ftpd_full_access --> on、allow_ftpd_anon_write--> on
setsebool -P ftp_home_dir on
文件不能上傳要從三個方面考慮:配置文件、文件系統(權限)、selinux
[root@hhj ~]# chown ftp:ftp /var/ftp/
對FTP訪問的設置
vim /etc/pam.d/vsftpd
客戶端
linux 安裝ftp客戶端工具
yum install ftp lftp -y
可以用ftp 192.168.1.104 連接,可以輸入用戶名
也可以用lftp 192.168.1.104 連接,匿名用戶連接
也可以指定用戶lftp -u ftp(用戶名) 192.168.1.104 指定用戶連接
put xx.txt上傳文件
linux中ftp配置