家里电脑安装LINUX系统之后,仍旧发生被远程操作卡停等开扰情况,这是因为家里的电脑被远程SSH登陆的原因。解决思路:禁止所有的远程登陆,只允许本地登陆。
一、禁止用户登录
1、修改用户配置文件/etc/shadow
将第二栏设置为“*”,如下。那么该用户就无法登录。但是使用这种方式会导致该用户的密码丢失,也就是当你再次允许他登录的时候,你还得让他重新设置密码。(再次启用这个帐号的方法是把“*”去掉就可以了)
如:tom:\*:14245:0:99999:7:::
2、使用命令usermod
这个方式简单又实用,而且没有(1)中的副作用。
usermod -L tom##Lock 帐号tom
usermod -U tom##Unlock 帐号tom
3、通过修改shell类型
这种方式会更加人性化一点,因为你不仅可以禁止用户登录,还可以告诉他你这么做的原因。如下:
chsh tom-s /sbin/nologin #将用户tom的shell进行更改
###############
##修改/etc/nologin.txt(没有就新建一个),
##在里面添加给被禁止用户的提示
###############
#解禁用户的方式就是把shell改为他原有的就可以了。
4、禁止所有的用户登录
当你(如果你是系统管理员)不想让所有用户登录时(比如你要维护系统升级什么的),如果按上面的方式,一个一个地去禁止用户登录,这将是很……无聊的事。而且还容易出错。下面有一种简洁有效的方式:
##在/etc目录下建立一个nologin文档
touch /etc/nologin ##如果该文件存在,那么Linux上的所有用户(除了root以外)都无法登录
##在/etc/nologin(注意:这可不是(3)中的nologin.txt啊!)写点什么,告诉用户为何无法登录
#################
cat /etc/nologin
9:00-10:00 系统升级,所有用户都禁止登录!
##解禁帐号也简单,直接将/etc/nologin删除就行了!
5、修改用户配置文件/etc/ssh/sshd_config
(1)只允许指定用户进行登录(白名单):
在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:
AllowUsers aliyun test@192.168.1.1
# 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
(2)只拒绝指定用户进行登录(黑名单):
在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:
DenyUsers zhangsan aliyun #Linux系统账户
# 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
(3)禁止root通过ssh远程登录
vi /etc/ssh/sshd_config
找到PermitRootLogin,将后面的yes改为no,把前面的注释#取消,这样root就不能远程登录了!
可以用普通账号登录进去,要用到root的时候使用命令su root切换到root账户
重启SSH
service sshd restart
二、限制IP登录
除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器,方法比较简单,且设置后立即生效,不需要重启SSHD服务,具体如下:
/etc/hosts.allow添加
sshd:192.168.0.1:allow #允许 192.168.0.1 这个IP地址SSH登录
sshd:192.168.0.:allow #允许192.168.0.1/24这段IP地址的用户登录,多个网段可以以逗号隔开,比如192.168.0.,192.168.1.:allow
/etc/hosts.allow添加
sshd:ALL #允许全部的ssh登录
/etc/hosts.deny添加
sshd:ALL #拒绝全部IP