ftp 配置ubuntu8.04 的一些问题解决(网上收集)
2012-03-31 10:16
519 查看
在Redhat AS4里按照默认方式安装好vsftpd后,按照以下步骤配置:
gedit /etc/vsftpd/vsftpd.conf
在文件中限制匿名用户,做如下设置:
anonymous_enable=NO
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
这样只有在user_list 里面的用户才可以访问ftp。
但是在service vsftpd restart 后,
用ftp localhost 测试,输入正确的用户名和密码之后,
却一直显示
:530 Login incorrect
Login Failed
后来发现在etc下面有个pam.d文件夹
进去打开vsftpd这个文件, 发现里面对之前的用户进行了限制,
将里面对应的限制注释掉,问题解决。
问:为什么用telnet/ftp登录时特别慢,而登录进去后又正常呢?
答:这是因为telnetd/ftpd是用tcpd来启动的,而tcpd要进行安全性检查,而它使用反向名字解析。
你可以把客户机的IP地址/名字加到/etc/hosts中或加到DNS里。
另一种办法是取消tcpd(不推荐),修改/etc/inetd.conf
将原来的:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
改为:
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l -a
原来的:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
改为: telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
改完之后用killall -HUP inetd即可生效。
问:如何禁止某个用户的telnet功能,同时它有ftp功能?
答:假设你想把用户ftponly的telnet关掉,
1)写一个shell script /bin/ftponly:
#!/bin/sh
/bin/cat << XX
You can only use FTP on this computer,
but you may not use this account to login.
Connection will be closed in 10 seconds.
XX
/usr/bin/sleep 10
网管论坛bbs_bitsCN_com
#end of ftponly
这里的XX是个标志,当ftponly试图telnet的时候,屏幕上将显示两个XX之间的内容,
然后10秒以后切断connect。注:还应该用trap来屏蔽键盘中断吧!否则人家用Ctrl-Z......
2)把用户ftponly的shell设置成/bin/ftponly:到passwd文件,找到对应于ftponly的那行:
ftponly:......:/home/ftponly:/bin/bash
把最后的/bin/bash改为/bin/ftponly.
3)把 /bin/ftponly 加入到 /etc/shells
/bin/bash
/bin/tcsh
/bin/csh
/bin/ash
/bin/zsh
/bin/ftponly
就行了。
问:如何允许root用户远程登录?
答:编辑/etc/securetty,加上ttyp2,ttyp3等。
注意,有严重的安全性问题!
最好是用ssh(安全的shell)加su/sudo,而且用xterm的Secure Keyboard来做远程管理。
问:怎么样做到限时登录?
答:自己写三个shell程序,调用at和系统维护功能:
1. 在指定的时间执行该shell,在/etc下生成一名为nologin的文件,如:
vi /sbin/login.denied
echo " Login Denied " > /etc/nologin
chmod 700 login.denied
2. 在指定的时间执行该shell,删除/etc/下的nologin文件,如: 网管bitscn_com
vi /sbin/login.allowed
if [ -f /etc/nologin ]; then
rm /etc/nologin
fi
chmod 700 login.allowed
3. 编写一个限制时间的shell,如:
vi /sbin/security
if [ -f /sbin/login.denied ]; then
at -f /sbin/login.denid 22:00
fi
if [ -f /sbin/login.allowed ]; then
at -f /sbin/login.allowed 8:00
if
此种设置的功能是:从晚上10:00到第二天早上8:00静止非root拥护登录,显示为系统维护状态。
另外,还需对root用户的登路终端进行限制,最好设置在console。在RedHat 5.0下
在 /etc/security/access.conf中配置:
-:root:ALL EXCEPT console就可以了。
注:还要参考/etc/securetty里的设置吧!
发生在:
vsftpd 2.0.6
ubuntu server 8.04 i386
所有操作都直接使用root账户.
安装使用 apt-get install vsftpd
问题1:我使用apt-get remove 和 autoremove 后全新 apt-get install 后发现不能自动生成 /etc/vsftpd.conf,此文件已在我 remove 后手动删除.
于是手动建立配置 /etc/vsftpd.conf :
# Networking
listen=YES
# Account Controls
pam_service_name=/etc/pam.d/vsftpd
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/users
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.users
# Access Controls
check_shell=NO
chmod_enable=NO
# banner
ftpd_banner=Welcome to FTP Service
dirmessage_enable=YES
问题2:
登录 vsftpd 出现如下消息:
USER XXX
331 Please specify the password.
PASS XXX
530 Login incorrect.
配 置中的check_shell没有发挥作用,据vsftpd.org上的信息可知是PAM在检查shell的时候nologin不在 shells表中,在我把nologin加入到shells表中后故障消失(紧接着引发了问题3),但是否会引发其它的安全问题?如何让vsftpd不使 用pam呢?
问题3:
登录 vsftpd 出现如下消息:
USER XXX
331 Please specify the password.
PASS XXX
500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot.users
在我更改配置成:
#chroot_list_file=/etc/vsftpd/chroot.users
后并mv chroot.users /etc/vsftpd.chroot_list
使用默认的文件位置,故障消失!
何解?
gedit /etc/vsftpd/vsftpd.conf
在文件中限制匿名用户,做如下设置:
anonymous_enable=NO
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
这样只有在user_list 里面的用户才可以访问ftp。
但是在service vsftpd restart 后,
用ftp localhost 测试,输入正确的用户名和密码之后,
却一直显示
:530 Login incorrect
Login Failed
后来发现在etc下面有个pam.d文件夹
进去打开vsftpd这个文件, 发现里面对之前的用户进行了限制,
将里面对应的限制注释掉,问题解决。
问:为什么用telnet/ftp登录时特别慢,而登录进去后又正常呢?
答:这是因为telnetd/ftpd是用tcpd来启动的,而tcpd要进行安全性检查,而它使用反向名字解析。
你可以把客户机的IP地址/名字加到/etc/hosts中或加到DNS里。
另一种办法是取消tcpd(不推荐),修改/etc/inetd.conf
将原来的:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
改为:
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l -a
原来的:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
改为: telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
改完之后用killall -HUP inetd即可生效。
问:如何禁止某个用户的telnet功能,同时它有ftp功能?
答:假设你想把用户ftponly的telnet关掉,
1)写一个shell script /bin/ftponly:
#!/bin/sh
/bin/cat << XX
You can only use FTP on this computer,
but you may not use this account to login.
Connection will be closed in 10 seconds.
XX
/usr/bin/sleep 10
网管论坛bbs_bitsCN_com
#end of ftponly
这里的XX是个标志,当ftponly试图telnet的时候,屏幕上将显示两个XX之间的内容,
然后10秒以后切断connect。注:还应该用trap来屏蔽键盘中断吧!否则人家用Ctrl-Z......
2)把用户ftponly的shell设置成/bin/ftponly:到passwd文件,找到对应于ftponly的那行:
ftponly:......:/home/ftponly:/bin/bash
把最后的/bin/bash改为/bin/ftponly.
3)把 /bin/ftponly 加入到 /etc/shells
/bin/bash
/bin/tcsh
/bin/csh
/bin/ash
/bin/zsh
/bin/ftponly
就行了。
问:如何允许root用户远程登录?
答:编辑/etc/securetty,加上ttyp2,ttyp3等。
注意,有严重的安全性问题!
最好是用ssh(安全的shell)加su/sudo,而且用xterm的Secure Keyboard来做远程管理。
问:怎么样做到限时登录?
答:自己写三个shell程序,调用at和系统维护功能:
1. 在指定的时间执行该shell,在/etc下生成一名为nologin的文件,如:
vi /sbin/login.denied
echo " Login Denied " > /etc/nologin
chmod 700 login.denied
2. 在指定的时间执行该shell,删除/etc/下的nologin文件,如: 网管bitscn_com
vi /sbin/login.allowed
if [ -f /etc/nologin ]; then
rm /etc/nologin
fi
chmod 700 login.allowed
3. 编写一个限制时间的shell,如:
vi /sbin/security
if [ -f /sbin/login.denied ]; then
at -f /sbin/login.denid 22:00
fi
if [ -f /sbin/login.allowed ]; then
at -f /sbin/login.allowed 8:00
if
此种设置的功能是:从晚上10:00到第二天早上8:00静止非root拥护登录,显示为系统维护状态。
另外,还需对root用户的登路终端进行限制,最好设置在console。在RedHat 5.0下
在 /etc/security/access.conf中配置:
-:root:ALL EXCEPT console就可以了。
注:还要参考/etc/securetty里的设置吧!
发生在:
vsftpd 2.0.6
ubuntu server 8.04 i386
所有操作都直接使用root账户.
安装使用 apt-get install vsftpd
问题1:我使用apt-get remove 和 autoremove 后全新 apt-get install 后发现不能自动生成 /etc/vsftpd.conf,此文件已在我 remove 后手动删除.
于是手动建立配置 /etc/vsftpd.conf :
# Networking
listen=YES
# Account Controls
pam_service_name=/etc/pam.d/vsftpd
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/users
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.users
# Access Controls
check_shell=NO
chmod_enable=NO
# banner
ftpd_banner=Welcome to FTP Service
dirmessage_enable=YES
问题2:
登录 vsftpd 出现如下消息:
USER XXX
331 Please specify the password.
PASS XXX
530 Login incorrect.
配 置中的check_shell没有发挥作用,据vsftpd.org上的信息可知是PAM在检查shell的时候nologin不在 shells表中,在我把nologin加入到shells表中后故障消失(紧接着引发了问题3),但是否会引发其它的安全问题?如何让vsftpd不使 用pam呢?
问题3:
登录 vsftpd 出现如下消息:
USER XXX
331 Please specify the password.
PASS XXX
500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot.users
在我更改配置成:
#chroot_list_file=/etc/vsftpd/chroot.users
后并mv chroot.users /etc/vsftpd.chroot_list
使用默认的文件位置,故障消失!
何解?
相关文章推荐
- Linux.配置Hadoop环境的一些问题解决
- 收集一些解决 Warning: Cannot modifi header inform - header alreadi sent by 问题的方法
- [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)
- CentOS7.0下安装和配置zabbix2.4.5全过程及解决一些遇到的问题
- 配置MySQL时,遇到的一些问题和解决方法
- ubuntu主机配置FTP后解决无法接受文件上传的问题
- Python: 编程遇到的一些问题以及网上解决办法?
- 阿里云 ECS服务器配置Win,域名解析无效,FTP无法连接,远程桌面无法连接问题解决
- linux一些问题解决方法的收集
- 平时遇到的一些软件安装配置问题解决方案
- IIS 配置问题 一些iis常见问题的解决方法
- 相对全面的SLURM集群的配置、安装及一些小问题的解决
- GPU(CUDA)学习日记(四)----------VS2010 + win7 32位 + CUDA 4.2 环境配置以及一些小问题的解决
- ADB环境变量配置(解决一些插件不能使用的问题,例如Genymotion、自带的UI查看器等)
- 网上收集的ArcIMS发布较常见问题解决方法
- Microsoft FTP7.5 For IIS7.x使用中的一些问题及解决方法
- wamp2.5的配置以及一些常见问题的解决
- VS2012 配置fftw库遇到的一些问题及解决方法
- Microsoft FTP7.5 For IIS7.x使用中的一些问题及解决方法
- win7 64位 ,安装配置cx_Oracle,遇到的一些问题及解决方法