SSH限制与更改端口、限制ROOT方式登录

 ssh中如何配置只允许某个IP以某个账号登录服务器

只要在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

 
方法1:在/etc/pam.d/sshd文件中加入
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登录

原文地址:https://www.cnblogs.com/hanxing/p/4117952.html