linux的登录流程,
tcp请求 ->sshd ->passwd->pam->bash
这中间的每个环节出问题,都会使登录出现问题:
1,首先,tcp请求,可能出现22端口被防火墙/iptables拒绝掉,所以,首先得看下防火墙规则;
2,sshd server接受请求后,有几种情况会使请求被拒绝,sshd本身的配置文件权限必须是:
-rw-r--r-- 1 root root 300261 4月 28 2016 moduli
-rw-r--r-- 1 root root 1756 4月 28 2016 ssh_config
-rw-r--r-- 1 root root 2527 6月 7 18:42 sshd_config
-rw------- 1 root root 672 3月 14 16:18 ssh_host_dsa_key
-rw-r--r-- 1 root root 619 3月 14 16:18 ssh_host_dsa_key.pub
-rw------- 1 root root 227 3月 14 16:18 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 191 3月 14 16:18 ssh_host_ecdsa_key.pub
-rw------- 1 root root 419 3月 14 16:18 ssh_host_ed25519_key
-rw-r--r-- 1 root root 111 3月 14 16:18 ssh_host_ed25519_key.pub
-rw------- 1 root root 1679 3月 14 16:18 ssh_host_rsa_key
-rw-r--r-- 1 root root 411 3月 14 16:18 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root 338 3月 14 16:18 ssh_import_id
注意其中的几个文件很重要,特别是sshd_host的密钥文件权限,必须是400!
还有的问题就是sshd的设置的规则了,比如默认root不允许远程,设置访问白名单或者黑名单之类的。
3,登录的下个流程就是去passwd文件验证密码,这里首先,用户不能被锁,其次,能获取到bash,不能是nologin,这个文件也以用来排除系统是否留有后门。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
4,passwd接下来会去调用pam库验证登录,login的验证,会使用/etc/pam.d/login文件,要检查这个文件设置的权限,看是否有人恶意修改。
5,最后看/bin/bash 文件是否存在并检查是否有问题,系统中毒后,有人会恶意替换top,bash等重要文件!
原文地址:https://my.oschina.net/u/2950272/blog/1162332