Linuxのインストールと設定サービスvsftpdの
- vsftpdのをダウンロードしてインストールするサーバー
# 安装
yum install -y vsftpd
# 查看版本
vsftpd -v
#启动服务
service vsftpd start
# 修改配置后重新启动
service vsftpd restart
VSFTP設定
プロファイル /etc/vsftpd/vftpd.conf
- 匿名ユーザー
匿名ユーザのログインは、デフォルトのユーザー名がFTPで、パスワードは、ルートディレクトリのデフォルトのアクセス任意であります
/var/ftp
デフォルトの所有者のためのファイルやフォルダをアップロードする匿名ユーザー
ftp:ftp
anonymous_enable=YES # 允许匿名用户登录 | NO
anon_upload_enable=YES # 允许匿名用户上传文件 |NO
anon_mkdir_write_enable=YES # 允许创建文件夹 | NO
anon_other_write_enable=YES # 允许删除,重命名等权限
anon_root=$root # 设置匿名用户访问的根目录
# 修改匿名用户上传文件的用户归属者
chown_uploads=yes
chown_username=$user
# 注意,只能更改文件 owner,不能改变 group,同时此条指令对 创建的文件夹无效
いくつかの注意
有効な匿名ユーザーが/になる場合はvar/ftp/
、フォルダw
のアクセス許可が取り消されchmod a-w /var/ftp
たフォルダを作成しながら、あなたは、匿名ユーザーが、このフォルダで動作できるようにすることができますので、完全なアクセス権を与えます
cd /var/ftp; mkdir pub; chmod 777 pub
また、変更はanon_umask=022
、匿名ユーザーがフォルダへのアクセスを読み書きしていることを確認するため、ダウンロードにユーザーを許可することになります
あなたが変更しない場合はanon_umask
読み込むファイルやフォルダのアクセス権を排除するデフォルトを、結果のファイルが読めません
問題が発生した場合は、その許可を注意してください
- エンドユーザサービス
デフォルトでは、ユーザーがほかにロックされ、一般ユーザができる
ftp
システムにログイン参照してください
/etc/vsftpd
下ftpusers
およびuser_list
ファイル
関連
local_enable=YES # 是否允许
local_umask=022 # 新建文件权限管理
デフォルトでは、ユーザーがシステムにアクセスできるサーバーを使用してログオン/
ディレクトリを
ディレクトリへのユーザーアクセスを制限します
chroot_local_user=YES # 允许本地用户登录
allow_writeable_chroot=YES # 允许对顶级目录进行修改
# 如果不用上面那条指令,请关闭 用户对其家目录的 写权限
# 这样就会让用户无法在根目录下进行写操作,只能在二级目录下进行操作
あなたは情報に関する命令のプロフィールを見ることができます
- 仮想ユーザログイン
参照リンクは、書き込み良いが、非常に詳細な
設定した仮想ユーザーIDとパスワードは、アカウントのパスワードを格納するために使用されるファイルを作成します
アカウントとパスワード、例えば、対応するすべての二行touch vuser.txt
、および書き込み情報を
hello
123456
jack
abcd
[設定
# 转换数据库 修改权限
db_load -T -t hash -f vuser{,.db}
chmod 600 vuser{,.db}
# 创建用户,用于虚拟账户登录
useradd -d /opt/vuser -s /sbin/nologin vuser
# 配置验证模块
vim /etc/pam.d/vsftpd.vu
# 写入一下内容 注意之前生成文件的位置
auth required pam_userdb.so db=/etc/vsftpd/vuser ##识别转换过的数据库文件
account required pam_userdb.so db=/etc/vsftpd/vuser ##连接的密码服务
# 修改配置文件
#pam_service_name=vsftpd ##注释
##添加下面三行内容,下面可能会出现问题,可以把 注释删除,不要留有多余的空格
guest_enable=YES ##开启来宾用户访问
guest_username=vuser ##使用vuser用户名
pam_service_name=vsftpd.vu ##pam模块
次に、仮想ユーザーログインを使用することができます
着陸後、あなたはファイルをアップロードすることができますでしょうが、あなたは(読めないルートディレクトリにあるディレクトリ)ファイルのルートを見ることができません
次に、あなたが変更することができvuser
、ホームディレクトリのパーミッションをchmod o+r ~vuser
許可を与えます
私が前に設定しているためanon_umask=022
、フォルダを再現することはできません可能性があり、より厳しい設定されていない場合は、フォルダに独自のファイルを作成するか、または許可することができますので、
ユーザーのための開発権
mkdir vu_dir
# 修改 /etc/vsftpd/vsftpd.conf 添加 => 指定配置文件路径
user_config_dir=/etc/vsftpd/vu_dir
その後vu_dir
という名前のユーザーの名前のファイルを作成します
echo anon_umask=000 > hello # 修改 hello 用户的权限
操作のFTPサービスモード
- アクティブモード
認証が完了した後、このモードでは、簡単には、接続は、完全なクライアントサービス側です。、データやコマンドの伝送では、サービスの彼らのクライアント・サーバのリスニングポート番号を通知し、クライアントと送信データで指定されたサーバーに接続するためのイニシアチブをとります。
それはクライアントにアクセスするには、有効なサーバーであるため、アクティブ・モードでは、この場合、クライアントはポート番号を露出させることができるが、一般的には、クライアントのネットワークの中に含めて、サーバがクライアントとの接続を確立するために、ネットワークを通過することができないようにする必要がありますあなたは、次のパッシブモードを使用することができます
- パッシブモード
このモデルは、ネットワークを含め、クライアント内で問題を解決することができるftp
新しい接続要求を受信するための責任サービスのメインプロセスを、その後、単一の接続に対処するために、子プロセスを開きます。すなわち、各外部接続のために、ftp
単一チャネルを確立し、クライアントに通知します、クライアントは単に新しいチャネルにデータやコマンドを送信したい後にデータ転送プロセス(異なるポートが確立にtcp
接続)これだけのサーバポートを露出させて、ip
することができ、一般的に公共サービスで終わりip
、ネットワークアクセス内でこれらの問題を解決することができます
FTPサーバーへのアクセス
マシンは、パッシブモードを使用する必要があり、サーバにアクセスするだけでなく、内部ネットワーク内のサーバー、(ここではネットワークを理解し、良い十分ではありませんので、保護の層を追加することも、ローカルセキュリティグループの役割である必要があり、サーバーの外側の層、および、アクセスする必要がありますサーバーに対応するパブリックネットワークIPは、内部ポートに転送することができます)
基本的な構成は、パッシブモードがオンになっているvsftpdを行い、ポート範囲、設定することで、サーバーがオープンサーバーセキュリティグループにポートを指定する必要があることに注意を
あなたは、ファイアウォールをオンにするだけでなく、指定したポートを開いた場合
pasv_enable=YES
# 端口范围
pasv_min_port=30000
pasv_max_port=31000
もしこれだけのセット、FTPサービスの相互作用を介して、wireshark
見つけることができ、サーバは新しいチャネルまで開いていますが、クライアントに通知するために、リターンのip
その内部のネットワークアドレスは、接続が、常に失敗しようとするクライアントが発生します
ですから、サーバのアドレスを指定する必要がある場合、そのサーバーの通知クライアントがこれを使用するには、 ip
pasv_address=$ip # $ip 是服务器的外网 ip
# 另外 开启 ipv4 关闭 ipv6 ,这个方面不是很理解
listen=YES
#listen_ipv6=YES
その他の知識
chroot
=>
ルートディレクトリの変更の参照を
umask
=>マスク設定ファイルのパーミッション
selinux
安全関連
netstat -anp | grep vsftpd
ファイル転送が速く、新しくオープンした経過を観察した場合=> vsftpdが、観測ポート、パッシブモードの開始します
wireshrak
このプロセスは、クライアントとサーバーの通信で分析することができます