정보보안공부
Linux_리눅스 원격제어 - Telnet / SSH 본문
리눅스 원격제어 - 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 |