리눅스 SSH 로그인 점검

리눅스 원격서버 SSH 로그인 점검
SSH 패스워드 점검

1 22 포트 점검[ | ]

명령어[1]
nmap -PN 호스트주소 -p22 | grep open | wc -l
nmap -PN 호스트주소 -p22 | grep ^22 | awk '{print $2}'
실행예시 (열림)
[root@zetawiki ~]# nmap -PN en.wikipedia.org -p22 | grep open | wc -l
1
[root@zetawiki ~]# nmap -PN en.wikipedia.org -p22 | grep ^22 | awk '{print $2}'
open
실행예시 (닫힘)
[root@zetawiki ~]# nmap -PN daum.net -p22 | grep open | wc -l
0
[root@zetawiki ~]# nmap -PN daum.net -p22 | grep ^22 | awk '{print $2}'
filtered

2 sshd 확인[ | ]

드문 경우이겠지만, 22포트가 열려 있더라도 sshd가 열고 있는 것이 아닐 수도 있으므로 sshd인지 확인

명령어
ssh -vN 호스트주소 -o StrictHostKeyChecking=no BatchMode=yes 2>&1 | tail -1
실행예시
[root@zetawiki ~]# ssh -vN en.wikipedia.org -o StrictHostKeyChecking=no BatchMode=yes 2>&1 | tail -1
Permission denied (publickey).
[root@zetawiki ~]# ssh -vN 135.79.246.80 -o StrictHostKeyChecking=no BatchMode=yes 2>&1 | tail -1
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
→ sshd가 LISTEN 중임. 패스워드 입력 없으므로 권한 없음
[root@zetawiki ~]# ssh -vN 135.79.246.81 -o StrictHostKeyChecking=no BatchMode=yes 2>&1 | tail -1
ssh_exchange_identification: Connection closed by remote host
→ 포트 열려 있으나, sshd가 아님
[root@zetawiki ~]# ssh -vN 135.79.246.82 -o StrictHostKeyChecking=no BatchMode=yes 2>&1 | tail -1
ssh: connect to host 135.79.246.82 port 22: Connection refused
→ 포트가 열려 있지 않음

3 로그인 점검[ | ]

  • 패스워드를 입력하여 로그인되는지 확인
  • 대상 서버에서 OK를 출력해봄
명령어
sshpass -p패스워드 ssh -oStrictHostKeyChecking=no 아이디@호스트주소 'echo OK' 2>&1
실행예시 (로그인 성공, 패스워드 맞음)
[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -oStrictHostKeyChecking=no root@135.79.246.79 'echo OK' 2>&1
OK
실행예시 (로그인 실패)
[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -oStrictHostKeyChecking=no root@135.79.246.80 'echo OK' 2>&1
Permission denied, please try again.
→ 패스워드 맞지 않거나 다른 이유로 sshd가 거부함
[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -oStrictHostKeyChecking=no root@135.79.246.81 'echo OK' 2>&1
ssh_exchange_identification: Connection closed by remote host
→ 22포트 열려 있으나 sshd 아님 (프로토콜 안 맞음)
[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -oStrictHostKeyChecking=no root@135.79.246.82 'echo OK' 2>&1
ssh: connect to host 135.79.246.82 port 22: Connection refused
→ 22포트 닫혀 있음

4 같이 보기[ | ]

5 주석[ | ]

  1. -PN 옵션: 핑(ICMP) 점검 안함. nmap은 기본적으로 핑 점검을 하는데 그것을 생략함

6 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}