반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

hann-blume

Linux - SSH (Secure Shell) 본문

Linux

Linux - SSH (Secure Shell)

hann-blume 2020. 3. 21. 18:13

 

 

 

SSH (Secure Shell)


- Linux 기본 원격 접속 서비스 

(대부분의 Linux 배포판에서 기본지원하며, 방화벽 규칙 또한 자동으로 등록된다)
- 데이터 전송시 데이터를 암호화하여 전달

기본지원이기 때문에 확인만 해주면 된다.
# rpm -qa | grep openssh
방화벽을 확인해보면
# firewall-cmd --list-all
방화벽에 ssh가 자동으로 등록되어있다.

# netstat -antp | grep sshd
으로도 확인해보면 자동 등록되어있다.

 



내가 등록한것이아닌 시스템이 설치될때 자동으로 등록되는 정보를 확인하고자 할때는
# systemctl list-unit-files  (| grep sshd)
sshd.service           enabled

sshd 설정파일
설정파일 만지기전에 백업먼저.
# mkdir /backup
# mkdir /backup/ssh
# cp -p /etc/ssh/sshd_config /backup/ssh
(이런 설정파일을 백업해서 보관할 때는 p옵션을 사용해서
허가,소유권을 그대로 이전시켜준다)

# vi /etc/ssh/sshd_config
줄번호 표시
:set nu

 


17번째 줄 

SSH는 기본으로 22번 포트사용
포트번호를 변경하고 싶으면 주석 해제하고 변경해주면된다.
ex) 2222
:wq

 

변경 후 
# systemctl restart sshd
# firewall-cmd --permanent --add-port=2222/tcp
# firewall-cmd --reload
# firewall-cmd --list-all

완료 후 기존의 푸티 설정으로 접속을 시도하면 접속이 되지않는다.
푸티에서 SSH 포트를 2222로 변경해 주고 접속한다.

37번째 줄 #LoginGraceTime 2m
2분동안 아무 작업을 하지않으면 연결을 해제한다.(로그인 대기시간)


38번째 줄 #PermitRootLogin yes
원격에서 root의 직접적인 접속을 허용한다. 주석을 해제하고 no로 변경하고 root계정의 직접적인 접속이 불가능해진다.
PermitRootLogin no


# systemctl restart sshd

이후 같은연결로 푸티를 열고 root계정으로 접속을 시도하면 
Access denied
접속이 거부된 것을 확인 할 수 있다. 
따라서 일반 사용자로 접속 후 su root 명령으로 root로 접근하고 사용을 한다.
이 작업이 SSH의 기본적인 보안작업 중 하나이다.

 


root의 직접적인 접속을 차단하는 이유는 Linux는 Windows Server와는 다르게 관리자의 계정명이
root로 고정되어있고 변경이 불가능하다. 즉, Windows Server는 관리자 계정명을 변경할 수 있으므로 
공격자는 관리자계정의 이름부터 알아내야하지만, Linux는 root 라는 고정된 관리자계정명의 암호만 알아내면 
접속이 가능하다. 따라서 공격자가 이미 관리자의 계정명을 알고있기 때문에 root계정의 직접적인 접속을 차단한다.

123번째 줄 #Banner none
주석해제하고 Banner /backup/message
라고 경로설정을 해주고,
:wq

 


backup에 message라는 파일을 새로 만들어보자
# vi /backup/message
Wellcome HANN


# systemctl restart sshd

같은연결로 푸티창을 열고 로그인 계정명을 입력하면
message에 입력해준 메세지가 나타난다.


[Linux System에서 SSH 접속 하기] 

a.  ssh [server-IP] (현재 접속 된 계정을 갖고 SSH 접근 시도) 
b.  ssh -l [user-name] [server-IP] (지정한 사용자로 SSH 접속) 
c.  ssh [user-name]@[server-IP] (지정한 사용자로 SSH 접속) 

a방식일 경우 현재 내가 접속하는 Client에 로그인한 계정이 기준 
b,c방식일 경우 내가 직접 접속할 SSH Server에 존재하는 사용자 계정을 지정하여 접속하는 방식, 
   
# ssh 192.168.131.100 
yes 
단, 현재 접속된 계정이 root인데 ssh서버가 root계정을 막아놨다면 접속이 불가능하다. 
방법 : su [일반사용자계정] 
로 일반 사용자계정으로 접근한 후에 다시 시도하면 정상적으로 가능하다. 

 

여기서 알 수 있는 것은 root를 막아놨지만 root가 su로 일반사용자화 되어 접근하면 접근이 가능해지는 
단점이 나타난다. 때문에 a 방식은 잘 사용하지 않는다. 

$ exit로 ssh나가고 
다시 $ exit로 일반사용자 나가기. 


# ssh -l hann 192.168.131.100 
정상적인 접근이 된다. 


# ssh hann@192.168.131.100 




[SCP (SSH + CP)] 
- 원격지(시스템간) 데이터 복사 
- 기준설정 (Client - server) 역할 


<Client가 Server에서 데이터를 복사해 가져올 때> : Client에서 작업을 실행 
scp [접속할계정명]@[Server-IP]:[복사할Data] [복사된 Data를 저장 할 위치] 
ex) 
scp hann@192.168.131.100:/tmp/A /test 


<Server가 Client 로 데이터를 복사해서 보낼 때> : Server에서 작업을 실행 
scp [복사할Data] [접속할계정명]@[Client-IP]:[복사된 Data를 저장 할 위치] 
ex) 
scp /tmp/B hann@192.168.131.150:/test 


chown .hann /test 
chmod 775 /test 
ls -ld 

소유권을 안바꿔주는 작업이 아닌 단순히 other에게 퍼미션 7을 주게되면 보안적으로 문제가 되기때문에  
/test의 GID를 hann로 변경해서 hann를 그룹으로 묶어주고 그룹권한만 높여준후에 가져온다. 


 




여기까지 SSH 에 대한 설명이 끝났다.

반응형

'Linux' 카테고리의 다른 글

Linux - FTP (File Transfer Protocol)  (0) 2020.03.21
Linux - VNC (Virtual Network Computing)  (0) 2020.03.21
Linux - Telnet  (0) 2020.03.21
Linux - DCHP FailOver  (0) 2020.03.21
Linux - DHCP (Dynamic Host Configuration Protocol)  (0) 2020.03.21