정보보안공부

Linux_리눅스 원격제어 - Telnet / SSH 본문

Linux

Linux_리눅스 원격제어 - Telnet / SSH

Steady_sp 2018. 8. 2. 09:47

리눅스 원격제어 - Telnet / SSH

- 오라클 가상 머신 사용

- CentOS7

- Windows 10

 

<원격제어 - Telnet / SSH>

 

#1 Telnet - 23번 포트

-> 원격지에 있는 시스템을 제어하기 위해 사용되는 프로토콜이다.

-> 평문으로 데이터를 전송하기 때문에 보안상 취약하다.

 

*** 설치

#> yum -y install telnet-server.x86_64

 

 

-> Telnet 서비스 설치

 

#> yum -y install xinetd.x86_64

 

 

-> Xinetd 슈퍼데몬이 없다면 설치

 

*** 설정파일

#> vi /etc/xinetd.d/telnet

-> Xinetd슈퍼데몬이 관리

 

 

-> 슈퍼데몬 Xinetd 이 telnet 서비스를 관리하도록 xinetd.d 디렉토리에 telnet 파일 생성

 

*** 파일생성후 Xinetd 슈퍼데몬 재시작

-> telnet서비스를 슈퍼데몬이 관리하므로 슈퍼데몬 재시작

 

 

-> Xinetd 슈퍼데몬을 재시작하므로써 telnet 서비스가 슈퍼데몬에의해 관리되어지는것을 확인

 

*** 방화벽 설정

-> 방화벽에 telnet 서비스 추가

 

 

-> 방화벽 영역을 확인하고 확인된 영역에 telnet 서비스 추가후 방화벽 재시작

 

#2 Telnet 접속

 

*** Telnet 으로 접속시도

-> 실패

 

 

*** vi /etc/securetty 파일에 pts ( 원격접속가능 터미널 ) 추가

 

 

-> pts/0 , pts/1 , pts/2 , pts/3 추가후 저장

-> tty : 로컬 , pts : 원격

 

*** Telnet 으로 접속시도

-> 성공

 


-> telnet 접속 성공

#3 SSH ( Secure Shell ) - 22번 포트

-> telnet과 마찬가지로 원격지에 있는 시스템을 제어하기 위해 사용되는 프로토콜이다.

-> 암호문으로 데이터를 전송한다.

-> 실습하고있는 모든 접속이 Xshell을 이용해 원격접속한 상태로 진행되었다.

==> 따로 아래와 같이 설정하지않아도 ssh는 기본적으로 동작된다.

 

*** 설치

openssh-server.x86_64

-> 이미 설치되어있다.

 

*** 설정파일

/etc/ssh/sshd_config    : 서버용

/etc/ssh/ssh_config     : 클라이언트용

 

*** 서비스 시작

#> systemctl restart sshd

 

*** 방화벽 설정

#> firewall-cmd --get-active : 방화벽 영역 확인

#> firewall-cmd --zone=<확인한 영역> --add-service=ssh --permanent : ssh 서비스 방화벽에 추가

#> firewall-cmd --reload : 방화벽 설정적용

 

#4 SCP ( Secure Copy )

-> 원격 데이터 복사

#> scp <src_file> <dst_file>

 

ServerA : 1.0.0.100

ServerB : 1.0.0.110

 

*** 업로드 - ServerA에서 ServerA의 ServerA.txt 파일을 ServerB로 업로드

 

 

-> ServerA에서 ServerA.txt파일을 만들고 testAAA 내용을 작성한뒤 1.0.0.110으로 보낸다.

-> scp 처음 접속시 경고메세지가 뜨는데 yes를 입력하면된다.

 

 

-> ServerB에서 확인해보면 잘 업로드 된것을 확인할 수 있다.

 

*** 다운로드 - ServerA에서 ServerB의 ServerB.txt 파일을 다운로드

 

 

-> ServerB에서 ServerB.txt 파일을 만들고 testBBB 내용을 작성해놓는다.

 

 

-> ServerA에서 ServerB의 ServerB.txt 파일을 다운로드 해본뒤 확인하면 정상적으로 다운로드 된 것을 확인 할 수 있다.

 

#5 SFTP ( Secure FTP )

-> SSH 설정 기반으로 FTP 서비스를 한다.

#> sftp <user_name>@<server_ip>

-> ftp와는 다르다 SSH 설정 기반으로 FTP 서비스를 하므로 22번 포트를 이용해서 한다.

 

#6 KEY ( Private Key , Public Key )

-> Private Key 와 Public Key는 한쌍이다. ( 키와 자물쇠 )

-> 해당 사용자로 원격접속을 할때 매번 패스워드를 쳐야하는 불편함을 KEY로 해결한다.

-> KEY를 생성한뒤 Private Key는 Client에 Public Key는 Server에 보관해서 해당 Private Key를 가진 사용자는 Key로 자동인증되어 원격접속이 가능해진다. 

사용자이름, 패스워드, 키 3가지가 있어야 접속이 된다.
또는 키만있으면 접속할 수 있다.

 

서버 : 1.0.0.100

클라이언트 : 1.0.0.110

 

=> 키만있으면 접속하도록 실습

 

*** 키생성 - Client 에서 ServerA 로 원격 접속한뒤 생성 ( Client는 Server에 원격접속한 상태에서 ssh-keygen 입력 )
#> ssh-keygen

 

 

-> 두개의 키는 한 쌍이다.-> id_rsa : private key , id_rsa.pub : public key
-> .ssh 디렉토리 안에는 id_rsa , id_rsa.pub 두개의 파일이 있다.
-> 생성하면 .ssh 디렉토리가 만들어진다.
-> 엔터 x 3 ( 아무지정하지 않는다. 키만있으면 접속가능 )

*** Client는 Server에 원격접속한 상태에서 만들어진 key 확인

-> .ssh 디렉토리 안에 2개의 파일 확인

 

 

-> 현재위치의 숨김파일( .ssh )을 확인

-> .ssh 디렉토리안에 두개의 파일 확인

 

*** Client는 Server에 원격접속한 상태에서 private key를 Clinet 로 전송 - scp를 이용해 ServerA ( 1.0.0.100 )에 있는 id_rsa파일 Client ( 1.0.0.110 ) 로 자신한테 다운로드

 

 

-> 정상적으로 전송

 

*** Client는 Server에 원격접속한 상태에서 public key를 Server에 등록

-> public key인 id_rsa.pub 파일을 authorized_keys파일로 만들고 600권한 부여


 

 

-> 600권한을 통해 autorized_keys 파일의 사용자인 root 에게만 읽기 쓰기권한을 부여한다.

 

*** Client는 Server에서 원격접속을 종료한뒤 자신한테 보낸 파일 ( .ssh/id_rsa ) 이 잘 전송되었나 확인

-> .ssh/id_rsa 파일 확인

 

 

*** Key를 통해 SSH 접속 - Client는 Server로 원격접속

-> root사용자에게는 비밀번호없이 Key로 접속확인

-> 사용자별로 Key를 만들어서 사용해야한다.

 

 

-> root사용자만 key를 등록했기 때문에 user1사용자로 ssh 접속시 당연히 Key가 없어 user1 사용자의 비밀번호를 입력해야한다.

 

*** Key를 통해 SCP 접속 - Client에서 Server로 원격 데이터 복사

-> root사용자에게는 비밀번호없이 Key로 접속확인

 

 

*** Client에서 전송한 파일 Server에서 확인

 

 

'Linux' 카테고리의 다른 글

Linux_리눅스 DNS  (0) 2018.08.03
Linux_ 리눅스 원격제어 - VNC  (2) 2018.08.02
Linux_리눅스 Xinetd 슈퍼데몬  (0) 2018.08.01
Linux_리눅스 FTP 보안 설정  (0) 2018.08.01
Linux_리눅스 FTP  (0) 2018.07.31
Comments