vsftpd 无法在 EC2 上启动

vsftpd 无法在 EC2 上启动

我在 EC2 微型实例上运行 Ubuntu 13.10(希望继续在免费套餐上运行,直到我对 EC2 更有信心)。我已成功安装了 LAMP 堆栈,但在设置 vsftpd 时遇到问题。我遵循本教程,这让我能够使用虚拟用户建立本地 ftp 连接 (ftp 127.0.0.1),并且似乎 Active ftp 连接从外部工作。此时,我的 vsftpd.conf 文件包含:

#基本设置
listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/sites/$USER
chroot_local_user=YES
hide_ids=YES

# 由放在此目录中的文件决定的主目录
user_config_dir=/var/www/ftp_users

然后我做了一些更改以支持被动模式;在 EC2 实例上打开了所需的端口范围。将以下内容添加到 vsftpd.conf:

# 被动模式(确保服务器的防火墙打开指定范围内的端口)
pasv_enable=YES
pasv_max_port=XXXX
pasv_min_port=XXXX
port_enable=YES
pasv_address=XXXX

其中 XXX 是正确的端口和 IP。vsftpd 服务重启后,它不起作用(我想我只是被拒绝连接了)。我想可能是端口尚未打开,所以我重启了 EC2 实例。

从此我无法运行 vsftpd,我撤销了所做的所有更改,甚至卸载并重新安装了 vsftpd。使用默认设置(全新安装),它仍然无法运行。

现在:当我运行 vsftpd 服务时,我得到“启动/预启动”(它不运行)且没有错误消息。即使我将所有可能的日志相关设置添加到 vsftpd.conf 后,vsftpd 日志文件也不包含任何错误(它是空的)。如果我跟踪 syslog,我会得到以下内容:

2 月 27 日 10:30:30 ip-172-31-12-98 内核:[1084249.851970] [] unmap_single_vma+0x81/0xf0
2 月 27 日 10:30:30 ip-172-31-12-98 内核:[1084249.851974] [] unmap_vmas+0x49/0x90
2 月 27 日 10:30:30 ip-172-31-12-98 内核:[1084249.851978] [] exit_mmap+0x9c/0x170
2 月 27 日 10:30:30 ip-172-31-12-98 内核:[1084249.851983] [] mmput+0x5c/0x110
2月27日 10:30:30 ip-172-31-12-98 内核:[1084249.851987] [] do_exit+0x278/0xa40
2月27日 10:30:30 ip-172-31-12-98 内核:[1084249.851991] [] do_group_exit+0x3f/0xa0
2月27日 10:30:30 ip-172-31-12-98 内核:[1084249.851995] [] SyS_exit_group+0x14/0x20
2月27日 10:30:30 ip-172-31-12-98 内核: [1084249.852001] [] system_call_fastpath+0x1a/0x1f
2 月 27 日 10:30:30 ip-172-31-12-98 内核:[1084249.852086] BUG:错误的 rss 计数器状态 mm:ffff8800031fc000 idx:0 val:-1
2 月 27 日 10:30:30 ip-172-31-12-98 内核:[1084249.852095] BUG:错误的 rss 计数器状态 mm:ffff8800031fc000 idx:1 val:1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045035] BUG:错误的页面映射在 vsftpd 进程中 pte:8000000000000165 pmd:242e8067
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045056] 页面:ffffea0000000000 计数:-99 mapcount:-99 映射:(空)索引:0x0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045064] 页面标志:0x10(脏)
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045073] 地址:00007f3caefe9000 vm_flags:00100071 anon_vma:ffff880023dd7e40 映射:(null)索引:7f3caefe9
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045083] CPU:0 PID:4266 通信:vsftpd 污染:GB 3.11.0-17-generic #31-Ubuntu
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045086] ffff8800242e5228 ffff8800235b1c68 ffffffff816e7645 00007f3caefe9000
2 月 27 日10:31:40 ip-172-31-12-98 内核:[1084320.045091] ffff8800235b1cb0 ffffffff81163c68 8000000f80e24165 00000007f3caefe9
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045095] ffff8800242e8f48 ffffea0000000000 00007f3caefe9000 00007f3caefea000 2 月 27 日 10:31:40 ip-172-31-12-98 内核
: [1084320.045099] 调用跟踪:
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045112] [] dump_stack+0x45/0x56
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045120] [] print_bad_pte+0x1a8/0x240
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045124] [] unmap_page_range+0x70e/0x7f0
2 月 27 日 10:31:40 ip-172-31-12-98 内核: [1084320.045128] [] unmap_single_vma+0x81/0xf0
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.045132] [] unmap_vmas+0x49/0x90
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.045137] [] exit_mmap+0x9c/0x170
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.045143] [] mmput+0x5c/0x110
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045148] [] do_exit+0x278/0xa40
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045152] [] do_group_exit+0x3f/0xa0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045156] [] SyS_exit_group+0x14/0x20
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045163] [] system_call_fastpath+0x1a/0x1f
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045257] BUG:错误的 rss 计数器状态 mm:ffff8800031fda40 idx:0 val:-1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.045266] BUG:错误的 rss 计数器状态 mm:ffff8800031fda40 idx:1 val:1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076745] BUG:vsftpd 进程中的页面映射错误pte:8000000000000165 pmd:242cf067
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076763] 页面:ffffea0000000000 计数:-100 mapcount:-100 映射:(null)索引:0x0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076770] 页面标志:0x14(referenced|dirty)
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076780] 地址:00007f10b0663000 vm_flags:00100071 anon_vma:ffff880023dd7640 映射:(null)索引:7f10b0663
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076790] CPU:0 PID:4270 通信:vsftpd 污染:GB 3.11.0-17-generic #31-Ubuntu
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076793] ffff880023dedcf0 ffff8800235b3c68 ffffffff816e7645 00007f10b0663000
2 月 27 日10:31:40 ip-172-31-12-98 内核:[1084320.076798] ffff8800235b3cb0 ffffffff81163c68 8000000f80e24165 00000007f10b0663
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.076802] ffff8800242cf318 ffffea000000000 00007f10b0663000 00007f10b0664000 2月27日 10:31:40 ip-172-31-12-98 内核
: [1084320.076806] 调用跟踪:
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076818] [] dump_stack+0x45/0x56
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076824] [] print_bad_pte+0x1a8/0x240
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076829] [] unmap_page_range+0x70e/0x7f0
2 月 27 日 10:31:40 ip-172-31-12-98 内核: [1084320.076833] [] unmap_single_vma+0x81/0xf0
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.076836] [] unmap_vmas+0x49/0x90
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.076841] [] exit_mmap+0x9c/0x170
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.076847] [] mmput+0x5c/0x110
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.076851] [] do_exit+0x278/0xa40
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076855] [] do_group_exit+0x3f/0xa0 2
月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076859] [] SyS_exit_group+0x14/0x20
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076866] [] system_call_fastpath+0x1a/0x1f
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076957] BUG:错误的 rss 计数器状态 mm:ffff8800031fc780 idx:0 val:-1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.076966] BUG:错误的 rss 计数器状态 mm:ffff8800031fc780 idx:1 val:1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110274] BUG:vsftpd 进程中的页面映射错误 pte:8000000000000165 pmd:235b6067
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110293] 页面:ffffea0000000000 计数:-101 映射计数:-101 映射:(空)索引:0x0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110300] 页面标志:0x10(脏)
2 月 27 日 10:31:40 ip-172-31-12-98 内核: [1084320.110308] addr:00007fbdab202000 vm_flags:00100071 anon_vma:ffff880023dd7080 映射:(null)索引:7fbdab202
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110319] CPU:0 PID:4274 通信:vsftpd 污染:GB 3.11.0-17-generic #31-Ubuntu
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110321] ffff8800242e5000 ffff8800235b5c68 ffffffff816e7645 00007fbdab202000
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.110326] ffff8800235b5cb0 ffffffff81163c68 8000000f80e24165 00000007fbdab202 2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.110330
] ffff8800235b6010 ffffea0000000000 00007fbdab202000 00007fbdab203000
2月27日10:31:40 ip-172-31-12-98 内核:[1084320.110334] 调用跟踪:
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110346] [] dump_stack+0x45/0x56
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110353] [] print_bad_pte+0x1a8/0x240
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110357] [] unmap_page_range+0x70e/0x7f0
2 月 27 日10:31:40 ip-172-31-12-98 内核:[1084320.110361] [] unmap_single_vma+0x81/0xf0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110365] [] unmap_vmas+0x49/0x90
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110369] [] exit_mmap+0x9c/0x170
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110375] [] mmput+0x5c/0x110
2 月27 10:31:40 ip-172-31-12-98 内核:[1084320.110380] [] do_exit+0x278/0xa40
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110384] [] do_group_exit+0x3f/0xa0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110388] [] SyS_exit_group+0x14/0x20
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110394] [] system_call_fastpath+0x1a/0x1f
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110504] BUG:错误的 rss 计数器状态 mm:ffff8800031fda40 idx:0 val:-1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.110513] BUG:错误的 rss 计数器状态 mm:ffff8800031fda40 idx:1 val:1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146320] BUG:vsftpd 进程中的错误页面映射 pte:8000000000000165 pmd:235fb067
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146339] 页面:ffffea0000000000 计数:-102 映射计数:-102 映射:(空)索引:0x0
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146346] 页面标志:0x14(referenced|dirty)
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146356] addr:00007f47b9932000 vm_flags:00100071 anon_vma:ffff880023dd7f40 映射:(null)索引:7f47b9932
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146366] CPU:0 PID:4278 通信:vsftpd 污染:GB 3.11.0-17-generic #31-Ubuntu
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146369] ffff880023dc4c38 ffff8800242b7c68 ffffffff816e7645 00007f47b9932000
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.146374] ffff8800242b7cb0 ffffffff81163c68 8000000f80e24165 00000007f47b9932 2月27日 10:31:40 ip-172-31-12-98 内核:
[1084320.146378] ffff8800235fb990 ffffea0000000000 00007f47b9932000 00007f47b9933000
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146382] 调用跟踪:
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146394] [] dump_stack+0x45/0x56
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146401] [] print_bad_pte+0x1a8/0x240
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.146405] [] unmap_page_range+0x70e/0x7f0
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.146409] [] unmap_single_vma+0x81/0xf0
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.146413] [] unmap_vmas+0x49/0x90
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.146418] [] exit_mmap+0x9c/0x170
2月27日 10:31:40 ip-172-31-12-98 内核: [1084320.146424] [] mmput+0x5c/0x110
2月27日 10:31:40 ip-172-31-12-98 内核: [1084320.146428] [] do_exit+0x278/0xa40
2月27日 10:31:40 ip-172-31-12-98 内核: [1084320.146432] [] do_group_exit+0x3f/0xa0
2月27日 10:31:40 ip-172-31-12-98 内核: [1084320.146436] [] SyS_exit_group+0x14/0x20
2月27日 10:31:40 ip-172-31-12-98 内核:[1084320.146441] [] system_call_fastpath+0x1a/0x1f
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.148847] BUG:错误的 rss 计数器状态 mm:ffff8800031fda40 idx:0 val:-1
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.148859] BUG:错误的 rss 计数器状态 mm:ffff8800031fda40 idx:1 val:1
2 月 27 日 10:31:40 ip-172-31-12-98 内核: [1084320.181465] BUG:vsftpd 进程中的页面映射错误 pte:8000000000000165 pmd:242dd067
2 月 27 日 10:31:40 ip-172-31-12-98 内核:[1084320.181483] 页面:ffffea0000000000 计数:-103 mapcount:-103 映射:(空)索引:0x0

(仅显示前 100/252 行,其余类似)。我能看到的唯一错误参考是:BUG:错误的 rss-counter 状态和 BUG:进程 vsftpd 中的错误页面映射

但是我找不到任何关于这意味着什么以及如何解决它的信息(假设它首先实际上是相关的)。

我对 Linux 的知识和技能有限,有人可以解释一下发生了什么/正在发生什么/如何解决这个问题吗?

谢谢

PS 我知道 SFTP 更好,我需要设置 FTP。

编辑

请注意,上面提供的转储是在全新安装 vsftpd 后产生的,因此使用默认配置选项,即

listen=是
anonymous_enable=否
local_enable=是
dirmessage_enable=是
use_localtime=是
xferlog_enable=是
connect_from_port_20=是
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

我已经设置了一个 www 组,其中包含拥有 /var/www/ 的默认用户(ubuntu)(按照这个)。由于默认设置和 ubuntu 用户用于产生错误,我认为用户/用户组无关。(当然我可能错了)

在我遵循的教程中,我确实设置了 libpam-pwdfile,在清除 vsftpd 时我没有动它。我不想尝试删除此包,因为我不确定在开始之前它是否已安装并使用。当前的 vsftpd 设置不再使用此库,因此我认为它与错误无关。

请解释我收到的错误是什么意思以及为什么会收到这些错误。我想了解发生了什么,或者至少在解决这个问题时可以搜索一些新的东西。

答案1

遇到同样的问题后,我可以确认vsftpd 3.02内核版本3.11.0-173.11.0-18(今天早上刚刚更新)FTP 服务器在启动时崩溃。

[   19.711407] BUG: Bad rss-counter state mm:ffff88003cf0b680 idx:0 val:-1
[   19.711417] BUG: Bad rss-counter state mm:ffff88003cf0b680 idx:1 val:1
[   19.716021] init: vsftpd main process (1053) terminated with status 2
[   19.716224] init: vsftpd respawning too fast, stopped

作为一种解决方法,从内核启动3.11.0-15可以解决问题并且服务会重新启动。

答案2

该用户的默认主目录是 /home/$user,在这种情况下,您根据 vsftpd.conf 定义了主目录以外的路径。这就是出现映射错误的原因,请尝试将用户的主目录更改为 /var/www/sites/$USER,然后为文件夹提供适当的权限。例如,/var/www/sites/$USER 必须由 root 拥有:root 和“html”(如果有)或包含网站内容的文件夹必须具有 www-data:ftpgroup 访问权限和 chmod 755。

答案3

步骤#1:安装 vsftpd

通过 SSH 连接到您的 EC2 服务器。输入:

sudo yum 安装 vsftpd

这应该安装 vsftpd。

步骤2:打开EC2实例上的FTP端口

接下来,您需要打开 EC2 服务器上的 FTP 端口。登录 AWS EC2 管理控制台并从左侧导航树中选择“安全组”。选择分配给您的 EC2 实例的安全组。选择“入站”选项卡并添加端口范围 20-21

还添加端口范围 1024-1048

步骤3:更新 vsftpd.conf 文件

输入以下命令编辑 vsftpd conf 文件:

sudo vi /etc/vsftpd/vsftpd.conf

通过更改此行来禁用匿名 FTP:

匿名启用=是

匿名启用=否

然后在 vsftpd.conf 文件底部添加以下几行:

pasv_enable=是 pasv_min_port=1024 pasv_max_port=1048 pasv_address=

步骤#4:重新启动 vsftpd

输入以下命令重新启动 vsftpd:

sudo /etc/init.d/vsftpd 重新启动

sudo chkconfig vsftpd

在 EC2 实例上创建新用户非常简单。例如,要创建用户“bret”,请输入:

sudo adduser bret sudo passwd bret

按照此程序检查这是否适合您。

相关内容