檢查selinux,firewall,iptables是否開啓
linux
[root@zeq ~] getenforce Disabled 個人如今是關閉狀態
[root@zeq ~] /usr/sbin/sestatus SELinux status: disabled 個人如今是關閉狀態
[root@zeq ~] setenforce 0
將SELINUX=enforcing改成SELINUX=disabled,保存後退出,reboot重啓服務器後生效shell
[root@zeq ~] vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
[root@zeq ~] systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) 我如今是關閉狀態 Docs: man:firewalld(1)
[root@zeq ~] systemctl stop firewalld
[root@zeq ~] yum install vsftp -y
[root@zeq ~] systemctl start vsftpd [root@zeq ~] systemctl enable vsftpd
[root@zeq ~] cp /etc/vsftp/vsftp.conf /etc/vsftp/vsftp.conf.bak
[root@zeq ~] vim /etc/vsftp/vsftp.conf 清空原有內容插入下面的內容 anonymous_enable=NO write_enable=YES chroot_local_user=YES chroot_list_enable=YES use_localtime=YES local_enable=YES allow_writeable_chroot=YES xferlog_enable=YES local_umask=022 pam_service_name=vsftpd use_localtime=YES listen_port=21 chroot_local_user=YES idle_session_timeout=120 data_connection_timeout=120 guest_enable=YES guest_username=ftpuser user_config_dir=/etc/vsftpd/vuser_conf virtual_use_local_privs=YES pasv_min_port=10060 pasv_max_port=10090 accept_timeout=5 connect_timeout=1
/home/vsftpd
目錄[root@zeq ~] useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser
[root@zeq ~] passwd ftpuser
[root@zeq ~] chown -R ftpuser.root /home/vsftpd
[root@zeq ~] vim /etc/vsftpd/vuser_passwd 第1、三行用戶,第2、四行密碼 ftp1 12345678 ftp2 12345678
[root@zeq ~] db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db [root@zeq ~] chmod 600 /etc/vsftpd/vuser_passwd.db
[root@zeq ~] mkdir /etc/vsftpd/vuser_conf # 創建虛擬用戶我的vsftp的配置文件 [root@zeq ~] cd /etc/vsftpd/vuser_conf # 進入目錄 [root@zeq vuser_conf] touch ftp1 ftp2 [root@zeq vuser_conf] vim ftp1 ftp2第一行改成ftp2其餘內容不變 local_root=/home/vsftpd/ftp1 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
[root@zeq ~] mkdir -p /home/vsftpd/ftp1 [root@zeq ~] mkdir -p /home/vsftpd/ftp2
[root@zeq ~] systemctl restart vsftp
[root@zeq ~] cd /etc/pam.d/ && cp vsftpd vsftpd.bak [root@zeq ~] vim /etc/pam.d/vsftpd 添加兩行內容,原有內容註銷 #%PAM-1.0 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth
一、首先每次更改配置須要重啓vsftpd服務。
二、上面每一個配置文件中的內容最好是手動鍵入
三、客戶端windows打開cmd到後臺進行鏈接,網頁和資源管理器裏面都會有緩存也看不到報錯。
四、服務器tail -f /var/log/secure查看日誌(也能夠tail -f /var/log/messages,這個看不出什麼,前者更精準)
五、客戶端報錯示例(沒有讀到/etc/vsftpd/chroot_list這個文件,因此咱們新建這個文件就行,記得重啓服務)。
六、若是虛擬用戶登陸到本身的宿主目錄後,不能上傳文件的話,服務器端須要在宿主目錄裏面再新建一個文件夾,給這文件夾777權限,就能夠了(直接把宿主目錄設置777就會登陸不了)
七、新增用戶的話,須要在/etc/vsftpd/vsuser.passwd裏面追加用戶(刪除就是刪除用戶),記得使用db_load從新生成vsuser.passwd文件便可,vuser_confi裏面新建一個新建帳戶的權限文件,宿主目錄記得新建存儲文件。
八、建議使用ftp工具和cmd驗證
九、修改完配置或者用戶信息之後必定要重啓服務和從新生成vsuser.passwd(重複第八步操做)
vim
ftp 192.168.1.238 ftp命令+你服務器的ip 若是沒有ftp命令yum安裝便可 鏈接到 192.168.1.238. 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.1.238:(none)): ftp1 331 Please specify the password. 密碼: 230 Login successful.
ftp> ascii # 設定以ASCII方式傳送文件(缺省值) ftp> bell # 每完成一次文件傳送,報警提示. ftp> binary # 設定以二進制方式傳送文件. ftp> bye # 終止主機FTP進程,並退出FTP管理方式. ftp> case # 當爲ON時,用MGET命令拷貝的文件名到本地機器中,所有轉換爲小寫字母. ftp> cd # 同UNIX的CD命令. ftp> cdup # 返回上一級目錄. ftp> chmod # 改變遠端主機的文件權限. ftp> close # 終止遠端的FTP進程,返回到FTP命令狀態, 全部的宏定義都被刪除. ftp> delete # 刪除遠端主機中的文件. ftp> dir [remote-directory] [local-file] # 列出當前遠端主機目錄中的文件.若是有本地文件,就將結果寫至本地文件. ftp> get [remote-file] [local-file] # 從遠端主機中傳送至本地主機中. ftp> help [command] # 輸出命令的解釋. ftp> lcd # 改變當前本地主機的工做目錄,若是缺省,就轉到當前用戶的HOME目錄. ftp> ls [remote-directory] [local-file] # 同DIR. ftp> macdef # 定義宏命令. ftp> mdelete [remote-files] # 刪除一批文件. ftp> mget [remote-files] # 從遠端主機接收一批文件至本地主機. ftp> mkdir directory-name # 在遠端主機中創建目錄. ftp> mput local-files # 將本地主機中一批文件傳送至遠端主機. ftp> open host [port] # 從新創建一個新的鏈接. ftp> prompt # 交互提示模式. ftp> put local-file [remote-file] # 將本地一個文件傳送至遠端主機中. ftp> pwd # 列出當前遠端主機目錄. ftp> quit # 同BYE. ftp> recv remote-file [local-file] # 同GET. ftp> rename [from] [to] # 改變遠端主機中的文件名. ftp> rmdir directory-name # 刪除遠端主機中的目錄. ftp> send local-file [remote-file] # 同PUT. ftp> status # 顯示當前FTP的狀態. ftp> system # 顯示遠端主機系統類型. ftp> user user-name [password] [account] # 從新以別的用戶名登陸遠端主機. ftp> ? [command] # 同HELP. [command]指定須要幫助的命令名稱。若是沒有指定 command,ftp 將顯示所有命令的列表。 ftp> ! # 從 ftp 子系統退出到外殼。