Ruijieネットワークスキルコンペティション-クラウドプラットフォームパート-CentOSパート04- [FTP]
免責事項:これらの大会に関する記事を書くことは、一部の地域で意欲的な学生の学習を促進するためだけのものです。ブロガー自身は善意から外れているため、ブロガーはペニーを受け取らないことは言うまでもなく、個人的なサービスを行う義務はありません。これは理由です。質問をしてくれたクラスメートの中には態度が悪かったので、個人の連絡先情報をたくさん削除しました。大会自体は私とは関係ありません。それはあなた自身の個人的な学習能力に関係しているだけで、あなたは私を理解できません。関係はありません、理解している人は自然に理解します、私は最善を尽くしました、あなたは自由です!
解決できません。もちろん有料サービスも提供できます。
理由1:質問が多すぎる
理由2:質の悪い生徒もいます
FTP
質問内容のサンプル
2019ボリュームG
FTPサービスを構成し、ポート番号に基づいて2つのFTPサイトを作成します
最初のFTPサイトの要件は次のとおりです。
- 仮想ユーザー認証方式を使用してユーザーvirtftpを作成し、シェルは/ sbin / nologinであり、仮想ユーザーをvirtftpユーザーにマップします。
- ポート21で聞く
- 仮想ユーザーのホームディレクトリを/ data / ftp_dataに設定し、ディレクトリに空のftp_testファイルを作成します。
- / data / ftp_dataの所有者グループをvirtftpに変更すると、所有者には書き込み権限があります。
- PASVモードでセキュリティチェックをオフにします。
- クライアント接続の最大数を100に設定すると、各IPで3つの接続が許可されます。
- パッシブモードのポート範囲を9000〜9200に設定します。
- ftpuser仮想ユーザーはファイルをダウンロードおよびアップロードできます
- ftpadmin仮想ユーザーは、ファイルのダウンロードとアップロード、および操作の削除と名前変更を行うことができます。アップロードされたファイルのumaskは022です。
構成ファイルの要件:
/etc/pam.d/vsftpd.vu、(pam構成ファイル)
/etc/vsftpd/vlogin.db、(ユーザーデータベース)
/ etc / vsftpd / ftp_user(このディレクトリの下のftpユーザー権限構成ディレクトリ)
2番目のFTPサイトの要件は次のとおりです。
- 通常のユーザートムを作成する
- ポート2121でリッスン
- ローカルユーザーのルートディレクトリを/ data / web_dataに設定します。
##使用虚拟用户认证方式,创建用户virtftp, shell为/sbin/nologin,并将虚拟用户映射至virtftp用户
[root@localhost ~]# useradd -M -d /data/ftp_data -s /sbin/nologin virtftp
[root@localhost ~]# cat /etc/passwd | grep virtftp
virtftp:x:1000:1000::/data/ftp_data:/sbin/nologin
[root@localhost ~]# mkdir /data/ftp_data
[root@localhost ~]# cd !$
cd /data/ftp_data
[root@localhost ftp_data]# touch ftp_test
##将/data/ftp_data属主属组更改为virtftp,并且属主有写权限
[root@localhost ftp_data]# chown -R virtftp:virtftp /data/ftp_data
[root@localhost ftp_data]# chmod u+w !$
chmod u+w /data/ftp_data
[root@localhost ftp_data]# setfacl -m u:virtftp:rwx /data/ftp_data/
[root@localhost ftp_data]# getfacl !$
getfacl /data/ftp_data/
getfacl: Removing leading '/' from absolute path names
# file: data/ftp_data/
# owner: virtftp
# group: virtftp
user::rwx
user:virtftp:rwx
group::r-x
mask::rwx
other::r-x
###/etc/pam.d/vsftpd.vu,(pam配置文件)
[root@localhost vsftpd]# cd /etc/pam.d/
[root@localhost pam.d]# ls
chfn login postlogin smartcard-auth sudo vlock
chsh other postlogin-ac smartcard-auth-ac sudo-i vsftpd
config-util passwd remote smtp su-l
crond password-auth runuser smtp.postfix system-auth
fingerprint-auth password-auth-ac runuser-l sshd system-auth-ac
fingerprint-auth-ac polkit-1 samba su systemd-user
[root@localhost pam.d]# vim vsftpd
[root@localhost pam.d]# mv vsftpd vsftpd.bak
[root@localhost pam.d]# vim vsftpd.vu
[root@localhost pam.d]# cat vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vlogin
account required pam_userdb.so db=/etc/vsftpd/vlogin
[root@localhost pam.d]#
[root@localhost vsftpd]# grep ^[^#] /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
#下面几乎都要添加
listen_port=21
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtftp
user_config_dir=/etc/vsftpd/ftp_user
allow_writeable_chroot=YES
pasv_promiscuous=YES
max_clients=100
max_per_ip=3
pasv_enable=YES
pasv_min_port=9000
pasv_max_port=9200
##/etc/vsftpd/ftp_user (该目录下ftp用户权限配置目录)
[root@localhost vsftpd]# tail /etc/vsftpd/ftp_user/*
==> /etc/vsftpd/ftp_user/ftpadmin <==
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
==> /etc/vsftpd/ftp_user/ftpuser <==
anon_upload_enable=YES
[root@localhost vsftpd]#
##/etc/vsftpd/vlogin.db, (用户数据库)
[root@localhost vsftpd]# vim vlogin.txt
[root@localhost vsftpd]# cat vlogin.txt
ftpuser
123456
ftpadmin
123456
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vlogin.txt /etc/vsftpd/vlogin.db
[root@localhost vsftpd]# chmod 700 /etc/vsftpd/vlogin.db
[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@localhost vsftpd]# chmod 777 /data/ftp_data/
####验证测试
[root@localhost vsftpd]# ftp 192.168.71.129
Connected to 192.168.71.129 (192.168.71.129).
220 (vsFTPd 3.0.2)
Name (192.168.71.129:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,71,129,35,158).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 0 Sep 12 16:03 ftp_test
226 Directory send OK.
ftp> put vlogin.db
local: vlogin.db remote: vlogin.db
227 Entering Passive Mode (192,168,71,129,35,204).
150 Ok to send data.
226 Transfer complete.
12288 bytes sent in 3.1e-05 secs (396387.10 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,71,129,35,134).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 0 Sep 12 16:03 ftp_test
-rw------- 1 1000 1000 12288 Sep 12 17:24 vlogin.db
226 Directory send OK.
[root@localhost vsftpd]# ftp 192.168.71.129
Connected to 192.168.71.129 (192.168.71.129).
220 (vsFTPd 3.0.2)
Name (192.168.71.129:root): ftpadmin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,71,129,35,100).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 0 Sep 12 16:03 ftp_test
-rw------- 1 1000 1000 12288 Sep 12 17:24 vlogin.db
226 Directory send OK.
ftp> rename vlogin.db rename.txt
350 Ready for RNTO.
250 Rename successful.
ftp> ls
227 Entering Passive Mode (192,168,71,129,35,69).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 0 Sep 12 16:03 ftp_test
-rw------- 1 1000 1000 12288 Sep 12 17:24 rename.txt
226 Directory send OK.
ftp>
# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vlogin.db