SSH限制某些用户/ip登录

时间:2009-6-26     作者:smarteng     分类: 服务器相关


1,只允许某个IP登录,拒绝其他所有IP
在 /etc/hosts.allow 写:
sshd: 1.2.3.4
在 /etc/hosts.deny 写:
sshd: ALL

用 iptables 也行:[break]
iptables -I INPUT -p tcp --dport 22 -j DROP
iptables -I INPUT -p tcp --dport 22 -s 1.2.3.4 -j ACCEPT
iptables默认禁止一切,
iptables -P INPUT DROP
然后
iptables -A INPUT -s 123.123.123.123 -j ACCPT当然需要开的服务根据自己的情况来定了,不知道对否
/etc/hosts.allow和/etc/hosts.deny
这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件
的格式如下:
#服务进程名:主机列表:当规则匹配时可选的命令操作
server_name:hosts-list[:command]
/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP。如果两个文
件的配置有冲突,以/etc/hosts.deny为准。下面是一个/etc/hosts.allow的示例:
ALL:127.0.0.1         #允许本机访问本机所有服务进程
smbd:192.168.0.0/255.255.255.0     #允许192.168.0.网段的IP访问smbd服务
ALL关键字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。


2,禁止某个用户通过ssh登录
在/etc/ssh/sshd_config添加
AllowUsers 用户名
或者
AllowGroups 组名
或者
DenyUsers 用户名

3,设定登录黑名单
vi /etc/pam.d/sshd
增加
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/sshd_user_deny_list onerr=succeed

所有/etc/sshd_user_deny_list里面的用户被拒绝ssh登录