SSH +ID +PASS 로 접속 하는 것이 목표
ssh +SSL (RSA: 공개키 +개인키)
암호화
1. 대칭키
암호화키 = 복호화키
키가 노출
사용자가 늘어날 수록 키 보관 및 키 전송
2. 공개키
암호화키 = 복호화키
공개키 개인키 100->100key
네트워크 상에 공개 해놓은 공개키를 이용해서 암호화 전송
개인키를 암호화된 Data 를 복호화 2key
클라우드 등에서 개인키를 제공한 뒤에 그 키는 서버가 재발급 불가능. (개인만이 관리가능)
Host PC cmd 창에
# ssh-keygen 이라고 쳐서 키를 생성한다.
아래와 같이 위치 등을 지정할 수 있다.
위치는 여기있다.
id_ rsa가 개인키다. 이걸 개인이 보관하다가 공개키가 있는 곳에 열쇠마냥 들이 대고 접속하는 것이다.
id_ rsa.pub는 공개키다. 접속처의 자물쇠 역할을 한다.
공개키는 띄어쓰기가 딱 한곳만 존재해야 한다. 그 뒷 부분은 필요가 없다는 뜻이니 제거해 준다.
이렇게.
id_rsa.pub를 로그인 하고 싶은 사용자의 리눅스 서버에 올려야 한다.
cmd
# scp .ssh\id_rsa.pub root@10.0.0.1:\root\.ssh\
이제 리눅스 서버로 들어가서 ssh 설정 파일을 만져보자.
# vi /etc/ssh/sshd_config
13줄~15줄 SElinux의 포트를 변경하고자 하면 SElinux쪽에도 이 변경을 적용해줘야한다.
그 양식은 15줄에 있다.
17줄 포트 변경 가능
( /etc/services 에 이미 서비스와 포트가 함께 지정되어 있다.
뻔한 22번 포트 이외 지정한 포트를 사용해서 외부 침입을 방어하는 것이 보안상 좋다. 늘 백도어 주의)
19줄 아이피 지정
0.0.0.0 은 모든 ip에 대해 오픈이란 뜻이 아니라 본 서버가 갖고있는 ip에 한해서라는 것을 기억하자.
특정 사설망 안에서만 ssh 를 서비스 하려면 이부분을 수정하면 된다.
38줄 주석 제거 해서 루트로 로그인 허용 (쉬운 실습을 위해)
원래는 보안상 막아놓는다.
43줄 퍼블릭 키를 허용한다.
이 곳을 주석 처리를 해도 서비스별 설정에서 서비스별로 pubkey 적용 여부를 별도 설정할수 있다.
47줄 여기에 키 위치 지정
반드시 공개키 이름은 저렇게 하얀색 글씨로 정해져 있다.
추가 하려면 한칸 띄고 그 옆에 두번째 키를 추가 가능하다.
오타 내지 말 것.
63줄 NO 해서 패스워드 방식이 아닌 키 방식으로 로그인을 하게 만들 것이다.
systemctl restart sshd
다음과 같이 key없이 ssh접속을 하면 접근이 거부된다.
cmd
# ssh root@10.0.0.1
xshell 로 새로 터미널을 열면 다음과 같이 새롭게 인증 창이 뜬다.
아까 생성한 공개키 id_rsa.pub를 설정 파일에서 지정한 이름으로 바꿔준다.
# mv .ssh/id_rsa.pub .ssh/authorized_keys
(아니면 이런 이름 바꾸기 과정 없이 처음 cmd에서 넘길때
# scp .ssh\id_rsa.pub root@10.0.0.3:\root\.ssh\authorized_keys
이렇게 넘기면 이름을 바꿀 필요가 없으니 좋다.)
cmd
다시 접속 해본다. 접속이 된다.
xshell은 ssh 접속하려면 퍼블릭 키로 로그인 하겠다는 옵션을 채크 해줘야 한다.
그리고 접속 시 찾아보기 버튼을 눌러 아까 id_rsa 있던 폴더 위치에서 개인키 파일을 선택해줘야 한다.
그럼 xshell 접속 완료
아래는 cmd로 ssh rsa 접속 해본것.
-i 옵션을 써야지 passwd 접속 방식으로 들어가 지지 않는다.
여기서 자기가 쓸 개인키의 이름과 위치를 지정해 줄 수 있다.
(개인키-공개키 세트가 여러개면 각각 이름이 달라야 하는데, 이때 개인키 이름은 접속자가 지정해 준다.)
.ssh 아래에 있는 id_rsa 라고 지정해서 개인키를 들이밀어본다.
# ssh -i .ssh/id_rsa root@10.0.0.1
<< 실습 >>
아래와 같이 VMware를 구성할 것이다. 머신 4대에 접속하는 그림은 다음과 같다.
VM 게이트웨이쪽에 있는 공개키의 이름은authorized_keys 다.
개인 키의 이름은 id_rsa이다
서버는 퍼블릭 키와 개인 키를 다 갖고 있다.
Private (600)은 권한을 600으로 준다는 뜻. id_rsa에 chmod 600을 입력해 줘야 상대방이 읽어들일 수가 있어서 그렇다.
10.0.0.0 대로는 사용자가 머신 1~3에 직접 접속하는 것이고, (빨간 대칭키 검증)
보라색 대칭키의 검증은 Porxy 머신에서 머신 1에 172.16.0.0 대로 접속해 보면 되는 것이다.
방법은
cmd창에서 했듯이 linux에서도 똑같이 대칭키를 생성할 수 있고 scp도 쓸 수 있다.
그리고 ssh 설정 파일에서 키의 이름을 지정해 줄 수 있으니 Proxy 서버와 CentOS7-1에
두가지 대칭키가 동시 존재해도 이름을 적절히 맞게 바꿔주자.
cmd
ssh -i .ssh/id_rsa root@10.0.0.1
'네트워크+보안' 카테고리의 다른 글
cisco 라우터 작동 구조 (0) | 2022.11.24 |
---|---|
Metric 값 변경, VMware 이중 게이트웨이 (2) | 2022.11.22 |
Hex Editor (이미지 재구성) (0) | 2022.11.15 |
user-agent (0) | 2022.11.14 |
port (1) | 2022.11.09 |