对用户登陆ftp、ssh、telnet的权限进行控制
2009-05-05 17:46
633 查看
对用户登陆ftp、ssh、telnet的权限进行控制
linuxing , 17:19 , 网络服务 » 常见服务 , 评论(0) , 引用(0) , 阅读(744) , Via 本站原创大 | 中 | 小
引用地址:
注意: 该地址仅在今日23:59:59之前有效
某项目上的业务系统同时运行了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: vsftpd
相关文章推荐
- iis ftp 进行用户隔离进行权限控制的两种方式
- 实现用root用户进行ftp/telnet的登陆访问及telnet服务器客户端的安装和设置
- ssh普通用户进行无密码登陆
- Solaris10 SSH、Telnet、ftp中root用户登录
- 使用Spring Security进行用户权限控制
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
- Solaris10 SSH、Telnet、ftp中root用户登录
- php中Zend_Auth和Zend_Acl进行登录认证及根据用户角色进行权限控制 (1/4)
- ssh项目整合shiro时,在struts2的action中使用shiro的注解进行权限控制时,NoSuchMethodException:com.sun.proxy.$Proxy26
- springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】
- java中判断用户是否为第一次登陆(在页面上进行控制)
- 使用JavaEE的ServerAuthModule模块和web.xml进行相应配置,实现对用户的权限控制
- RESTful APi 登陆权限、node.js、用户状态控制之JWT(Json web Token)
- 控制Linux用户可以用ftp连接指定目录,并且不能用ssh连接
- solaris11开启root用户的ssh登录&telnet登录&ftp功能
- 限制用户通过ssh密钥进行认证登陆
- 用有DBA权限的用户或本地conn / as sysdba 登陆进行解锁
- 对TELNET登陆路由器的用户进行限制
- 新手学堂:Root用户ftp/telnet登陆设置
- 使用Zend_Auth和Zend_Acl进行登录认证及根据用户角色进行权限控制