对用户登陆ftp、ssh、telnet的权限进行控制 对用户登陆ftp、ssh、telnet的权限进行控制_休闲 对用户登陆ftp、ssh、telnet的权限进行控制_休闲_02

linuxing , 17:19 , 网络服务 » 常见服务 , 评论(0) , 引用(0) , 阅读(744) , Via 本站原创 对用户登陆ftp、ssh、telnet的权限进行控制_休闲_03 | | 对用户登陆ftp、ssh、telnet的权限进行控制_休闲_04
    某项目上的业务系统同时运行了ftp、ssh、telnet等服务,也为各个服务增加了不少的用户。这就涉及到一些安全问题,有些用户只允许登陆ftp传输数据,但要禁用telnet远程登陆服务的;而另一些用户刚好相反,只能telnet,而不能使用ftp(这里不包括scp传输文件的情况)。现需根据实际的情况,对某些用户进行限制。

一、只允许登陆ftp,但禁止通过telnet或ssh登陆
使用root修改特定用户的shell环境,即执行:

# usermod -s /sbin/nologin 用户名

这样,该用户就只能登陆ftp,而使用telnet或ssh登陆时,就会被转到/sbin/nologin下,禁止进入。
若使用telnet或ssh访问时,会提示:
引用
Asianux Server 3 (Quartet)
Kernel 2.6.18-8.10AX on an i686
login: hyphen
Password:
Last login: Mon Feb 16 05:28:59 from server01
This account is currently not available.

二、只允许使用telnet或ssh登陆,但禁止登陆ftp
这个主要是由ftp服务端软件决定的,一般有两种做法:
引用
a、由服务端软件直接控制用户的管理;
b、由系统的PAM数据库管理用户权限。

1、服务端控制
以红旗Asianux 3.0为例,其自带的FTP服务端软件是vsftpd。
在/etc/vsftpd/vsftpd.conf下默认有:
引用
userlist_enable=YES

这说明,vsftpd允许使用userlist文件,该文件是vsftpd控制用户访问权限的文件,系统默认在/etc/vsftpd/user_list。
另外,vsftpd还默认有
引用
userlist_deny=YES

的设定。(配置文件中可能没明确显示)
该设定的意思是,user_list文件中列举的用户是deny(禁用)的。除这些用户外,其余都可以登陆。
这样,只要你把需要禁止的用户写入该文件:

# usermod -s /bin/bash hyphen
# echo 'hyphen' >> /etc/vsftpd/user_list

使用ftp访问时,会报:
引用
C:\Documents and Settings\hyphen>ftp 192.168.16.128
Connected to 192.168.16.128.
220 (vsFTPd 2.0.5)
User (192.168.16.128:(none)): hyphen
530 Permission denied.
Login failed.

※ 反过来,您可以在配置文件中,加入userlist_deny=NO,重启vsftpd服务后。那么,写在user_list文件中的用户,就是只允许这些用户登陆,其他用户都禁止了。作用刚好相反。

2、PAM控制
除/etc/vsftpd/user_list文件外,还可以使用系统的PAM对登陆FTP的用户进行控制,这就是/etc/vsftpd/ftpusers文件。
把刚才加入/etc/vsftpd/user_list的控制先去掉:

# sed -i '/hyphen/d' /etc/vsftpd/user_list

然后把需要禁止的用户写入ftpusers文件:

# echo 'hyphen' >> /etc/vsftpd/ftpusers

使用ftp访问时,会报:
引用
C:\Documents and Settings\hyphen>ftp 192.168.16.128
Connected to 192.168.16.128.
220 (vsFTPd 2.0.5)
User (192.168.16.128:(none)): hyphen
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.

即使您输入正确的用户密码,也会报530错误。
※ 这可以发现,报错信息会与之前的不同。禁止用户登陆的地方也与之前的不同,由FTP服务端控制的用户管理,在提示Password之前就提示禁止了,而使用PAM控制的方式,则会在验证密码时才会报错。由于用FTP服务端控制对系统的性能影响更少,推荐使用这种方式。

三、参考文档
Ubuntu禁止用户telnet与ssh登录,但允许FTP(整理)
如何限制某个用户只能FTP不能TELNET?
vsftp详细配置文件参考
vsftp配置文件说明
Tags: