限制ssh远程 登陆

原文链接:

http://www.t086.com/article/4828


方法一:

在/etc/hosts.allow中添加允许ssh登陆的ip或者网段

sshd:192.168.1.2:allow

或者

sshd:192.168.1.0/24:allow

在/etc/hosts.deny添加不允许ssh登陆的IP

sshd:ALL           #ALL

表示除了上面允许的,其他的ip 都拒绝登陆ssh

方法二:

使用iptables。

iptables -A INPUT -p tcp -s 192.168.1.2 --destination-port 22 -j ACCEPT

iptables -A INPUT -p tcp --destination-port 22 -j DROP

方法三:

修改ssh配置文件

vi /etc/ssh/sshd_config

添加一行:

allowusers [email protected]

注:xxx为你用来登入服务器的用户名。

PS: 当然可以顺便改一下默认端口22


l



linux限制IP远程登录

Linux系统的远程登录非常灵活,root可以根据需要限制某些账户的登录,linux远程登录使用的是SSH协议,要限制IP登录,主要是修改与sshd服务相关联的配置文件,具体有以下几种:

1.

白名单形式

要求: 只允许 192.168.0.1 和 192.168.0.10 登陆 其他全部禁止

实现:

(1) vim /etc/hosts.allow //

增加如下内容

sshd: 192.168.0.1, 192.168.0.10

或者设置一个网段:

sshd:192.168.1.,192.168.0.:allow //

允许1.0和0.0网段内的所有用户登录

(2)vim /etc/hosts.deny //

增加如下内容

sshd: ALL

2.

黑名单形式

要求: 只限制192.168.0.1登陆上来,其他全部放行

实现:

vim /etc/hosts.deny //

增加如下内容

sshd: 192.168.0.1

保存配置文件后就成功了。我们可以这样理解这两个文件工作原理: 当客户端的IP登陆服务器的时候,先去匹配hosts.allow, 如果这里面有这个IP,则直接放行,如果没有这个IP,则看hosts.deny, 如果这里面有该IP(ALL包括一切IP)则拒绝,如果deny中也没有匹配,则也会放行。也就是说,如果这两个文件中都没有限定的IP,则会放行!

3.

特殊:如果两个文件中都是 :“sshd: ALL” 会出现什么情况?由于先去匹配hosts.allow,所以全部允许。

针对root (1)让root账户不能使用密码只能使用密钥远程登陆:

打开sshd配置文件

vim /etc/ssh/sshd_config

在最后面增加一行 :

PermitRootLogin without-password

保存配置文件后重启sshd服务:service sshd restart

(2)不允许root账户远程登陆,而普通账户可以:

有时为了特殊需求,只允许普通账户登陆Linux,而不允许root账户登陆,而普通账户登陆后,然后再su 到root下是可以的。打开sshd的配置文件

vim /etc/ssh/sshd_config

加入一行:

PermitRootLogin no重启sshd服务: service sshd restart

你可能感兴趣的:(限制ssh远程 登陆)