원격관리
학습 개요
telnet, ftp, rcp 등 원격 관리를 위한 전통적 방법을 알아보고 문제점을 파악해 보자.
암호화를 이용하는 SSH 서비스에 관해 알아보고, OpenSSH 퍀지의 설치 여부와 방화벽 설정 및 서비스 실행 여부를 확인해 보자.
ssh, sftp, scp 등 다양한 SSH 클라이언트 프로그램의 사용법을 알아보자.학습 목표
- telnet, ftp, rcp의 보안 취약점을 설명 가능.
- OpenSSH 패키지 설치.
- 방화벽 설정과 서비스 설정, SSH 서버 운영 가능.
- ssh, sftp, scp 클라이언트 프로그램 사용 가능.
전통적인 방법
전통적 원격 접속 방법
- telnet, rlogin, rsh, ftp, rcp 등.
- 전통적인 방법들은 암호화가 되지 않은 데이터를 주고 받음.
- 도청이나 위변조 등 보안에 취약함.
- 현재 거의 쓰지 않음.
telnet
- 원격 컴퓨터에 telnet 프로토콜로 접속하는 프로그램
- 사용자 계정, 비밀번호를 이용하여 원격으로 로그인 함.
- telnet [-l user] host || telnet user@host
- -l 생략 할 경우 호스트로부터 사용자 계정을 요구 받음.
- -l 옵션 대신 @을 이용, 사용자 계정을 제시할 수도 있음.
- 사용이 끝나면 logout 또는 exit을 이용하여 로그아웃.
ftp
- 원격에서 터미널로 접속하여 파일을 업로드하거나 다운로드 할 수 있는 파일 전송 프로토콜 또는 프로그램
rcp
- 원격의 컴퓨터와 서로 파일을 복사하는 프로그램
- cp 명령과 유사
- rcp [-r] source_file target_file
- source_file을 target_file로 복사함.
- ex) rcp a.txt jeaha@aws.ip:.
- target_file이 디렉토리라면 해당 디렉토리에 source_file을 복사함.
- -r 옵션을 사용하면 source_file이 디렉토리이며,
그 안의 모든 서브 디렉토리도 함께 target_file 디렉토리로 복사함. - 원격 파일의 경우 [user@]host[:remote_file]의 형태.
- rcp는 ftp와 달리 일회성으로 파일을 전송함.
Secure Shell (SSH)
- telnet, ftp, rcp 등의 서버와 클라이언트 간 연결을 통해 주고 받는 모든 명령과 결과 및 계정 정보 등이 암호화 되지 않는 문제가 있음.
- SSH는 원격 로그인이나 원격 데이터 통신에 사용되는 프로토콜로 패킷을 암호화하여 전홍
- 전통적인 원격 관리 방법들의 문제점을 해결함.
- 서버 / 클라이언트 구조로 동작하며, 보통 TCP 포트 22를 사용하여 서로 통신함.
- 보안을 위해 우선 전자서명을 이용하여 서버와 클라이언트 간 연결을 인증하고, 그 후 서버와 클라이언트 간에 주고받는 메세지를 모두 암호화 함.
- SSH를 사용하기 위해 필요한 프로그램
- Server : sshd가 deamon 형태의 프로세스로 동작 중이어야 함.
- Client : 사용 목적에 따라 ssh, sftp, scp 등이 필요.
OpenSSH 패키지
- SSH 프로토콜을 사용하는 패키지로 공개 소스 프로그램.
- 암호화된 안전한 통신을 제공하는 네트워크 연결 도구의 집합.
- server : sshd
- client : scp, sftp, ssh
- 암호화된 안전한 통신을 제공하는 네트워크 연결 도구의 집합.
- 현재 대부분의 리눅스 배포판에 OpenSSH가 포함되어 있음.
- 설치 확인 : yum list installed | grep openssh
- 서버 설치 : yum -y install openssh openssh-server
- 클라 설치 : yum -y install openssh-clients
- 업데이트 : yum -y update openssh
- 전역 설정 파일은 /etc/ssh/ 디렉토리에 저장됨.
- 개별 사용자 설정 파일은 ~/.ssh/ 디렉토리에 저장됨.
SSH 서버의 실행
- SSH를 이용하기 위해서는 sshd 데몬이 실행 중이어야 함.
- 실행 : service sshd start
- 중지 : service sshd stop
- 상태 : service sshd status
- 부팅 시 자옫으로 데몬을 시작시킬 수 있음(활성화).
- 런레벨 별 서비스의 활성화 여부 확인은 chkconfig --list sshd.
- 부팅 시 자동 실행 방법은 chkconfig sshd on.
서비스 설정 도구
- 데스크탑 메뉴에서 '시스템 관리 > 관리 > 서비스' 실행.
- '서비스 설정'창을 연 후 sshd를 찾아서 활성화 및 활성 상태를 확인하고 변경 가능.
방화벽 설정
- 방화벽을 사용 중이라면, 설정을 확인한 후 사용하려는 서비스의 해당 포트와 프로토콜을 열어둬야 함.
- 원격의 사용자가 어떤 서비스를 사용할 수 있는지를 제어할 수 있음
- 방화벽 설정 파일은 /etc/sysconfig/iptables
- 데스크탑 메뉴에서 '시스템 > 관리 > 방화벽'
- 방화벽 설정 창에서 [신뢰하는 서비스] 선택, 해당 서비스를 선택, 적용.
- [비활성화]는 방화벽을 사용하지 않는다는 뜻.
가상 머신의 SSH 서버에 접속하기
- 호스트 PC 또는 외부 가상 머신에 설치된 sshd 또는 httpd에 접속.
- 호스트 PC는 네트워크 인터페이스를 가지고 있음.
- 가상 머신은 별도의 가상 네트워크 인터페이스를 가짐.
- 가상 머신의 IP 주소는 기본적으로 10.0.2.15로 할당 됨.
- 방법
- 가상 머신의 리눅스에서 방화벽 설정 확인.
- 가상 머신 리눅스에서 서버 프로세스 실행 여부 확인.
- Port Forwarding 설정
- 호스트 PC의 IP 주소와 Port 로 접속할 때,
가상 머신의 IP 주소와 Port로 연결.
- 호스트 PC의 IP 주소와 Port 로 접속할 때,
SSH 클라이언트 - 원격 접속
- ssh는 SSH 서버에 원격으로 접속하기 위한 클라이언트 프로그램
- 사용자 계정과 비밀번호를 이용하여 로그인하고, 이후에는 컴퓨터에 직접 로그인한 것과 동일하게 이용할 수 있음.
- telnet, rlogin, rsh 등을 대체
- [-l user] host || ssh user@host
- ssh -l jeaha 192.168.0.10과 같이 실행.
- ssh에서는 telnet과 같이 리눅스 명령어의 사용이 가능함.
- exit, logout 명령으로 로그아웃.
- 클라이언트 컴퓨터에서는 ~/.ssh/know_hosts 파일에
원격으로 접속했던 호스트의 호스트 명, 암호의 종류, 원격 호스트 공개 키를 저장. - 윈도우에서는 공개 소프트웨어인 Putty 또는 Xshell을 클라이언트 프로그램으로 이용해서 접속 가능.
SSH 클라이언트 - 원격 파일 전송 : sftp
- sftp는 서버에 원격 접속하여 파일을 업로드 하거나 다운로드 할 수 있는 클라이언트 프로그램.
- 암호화된 연결릉 제외하면 사용 방법은 ftp와 같음.
- sftp [user@]host
- sftp jeaha@192.168.0.20
- 원격 호스트 접속에 성공하면 지정된 사용자 계정의 호스트를 이용할 수 있음.
- 업로드 : put localfile
- 다운로드 : get remotefile
- sftp 명령
CMD | DESC |
---|---|
help | sftp에서 사용할 수 있는 명령 조회 |
ls | 원격 작업 디렉토리 조회 |
cd path | 원격 작업 디렉토리 변경 |
mkdir path | 원격 디렉토리 생성 |
chmod mode path | 파일 path에 대한 권한을 mode로 변경 |
get | 파일을 원격 서버에서 로컬 클라이언트로 받음 |
put | 파일을 로컬 에서 원격으로 보냄 |
mget | 여러 파일을 원격으로 부터 로컬로 받음. 파일 이름에 wildcard 가능 |
mput | 여러 파일을 로컬에서 원격으로 보냄. wildcard 가능. |
bye, exit, quit | 종료 |
SSH 클라이언트 - 원격 파일 복사 : scp
- 원격의 컴퓨터와 서로 파일을 복사하는 명령
- scp [-r] source_file target_file
- 소스(또는 타겟) 파일이 원격에 존재하는 경우
- [user@]host[:remote_file]
- scp jeaha@192.168.0.10:~/temp* .
- 소스(또는 타겟) 파일이 원격에 존재하는 경우
- sftp로도 scp 기능을 수행할 수 있음.
- 대화식이 아닌 일회성으로 파일을 전송하는 것이 가능.
728x90
반응형
'OS > Linux' 카테고리의 다른 글
[Linux etc tip] 대상 서버의 포트가 열려있는지 확인하는 방법 (0) | 2021.01.05 |
---|---|
[Linux] 웹 서버 (0) | 2020.12.13 |
[Linnux] 네트워크 설정 및 점검 (0) | 2020.12.05 |
[Linux] 쉘 스크립트 -2 (0) | 2020.11.08 |
[Linux] 소프트웨어 관리 (0) | 2020.11.01 |