只要在ssh的配置文件:sshd_config中添加如下一行即可
Allowusers username@192.168.1.100
上述只允许IP地址是192.168.1.100的机器以username用户登录。
限制通过SSH登陆Linux的IP,那么可以如下做:
先:修改/etc/hosts.deny,在其中加入sshd:ALL,注意不能加#号
然后:修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.1.16
这样设置就只允许192.168.1.16的IP通过SSH登陆上LINUX机器了。
当然在做为服务器方面,不安装gnome和KDE图形化界面,可以增加安全系数。
修改端口:
vi /etc/ssh/sshd_config
找到#Port 22一段,这里是标识默认使用22端口,修改为如下:
Port 22
Port 999
去掉前面的#号。
然后保存退出
在终端输入命令:/etc/init.d/sshd restart 重新启动ssh服务。
这样SSH端口将同时工作与22和999上。
现在编辑防火墙配置:vi /etc/sysconfig/iptables
启用999端口。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 999 -j ACCEPT
在终端输入命令:/etc/init.d/iptables restart 重新启动防火墙的访问规则。
现在请使用ssh工具连接999端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置和防火墙的端口,将里边的Port22删除,然后重新启动ssh服务和防火墙的访问规则即可。
之所以先设置成两个端口,测试成功后再关闭一个端口,是为了防止在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试,以免发生连接不上必须派人去机房,导致问题更加复杂的麻烦。
限制SSH以ROOT方式登录:
vi /etc/ssh/sshd_config
找到#PermitRootLogin yes
新增:PermitRootLogin no
保存退出
重启ssh服务:service sshd restart
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail
然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,重新起动
sshd服务即可。
方法2:pam规则也可以写成deny的
auth required pam_listfile.so item=user sense=deny file=/etc/sshusers onerr=succeed
方法3:在sshd_config中设置AllowUsers,格式如
AllowUsers a b c
重启sshd服务,则只有a/b/c3个用户可以登陆
1,只允许某个IP登录,拒绝其他所有IP
在 /etc/hosts.allow 写:
sshd: 1.2.3.4
在 /etc/hosts.deny 写:
sshd: ALL
用 iptables 也行:
iptables -I INPUT -p tcp --dport 22 -j DROP
iptables -I INPUT -p tcp --dport 22 -s 1.2.3.4 -j ACCEPT
2,禁止某个用户通过ssh登录
在/etc/ssh/sshd_conf添加
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登录