1. OpenSSH 개념 및 특징
1) OpenSSH 개념
OpenSSH의 개념을 이해하고 OpenSSH 설치 및 MobaXterm 프로그램을 사용하여 Ubuntu에 원격 접속하도록 하겠습니다. SSH 프로토콜은 telnet 및 rlogin에 비해 향상된 보안을 지원합니다. SSH 프로토콜은 SSH1 및 SSH2에서 사용이 가능합니다.
SSH1 유형은 7.6 release부터는 지원되지 않고 있습니다. SSH2 유형은 RSA와 관련된 특허를 우회하며 CRC 데이터 무결성 문제를 해결하기 위해 발명되었습니다. 또한 SSH2 프로토콜은 대칭 및 비대칭 암호에 대한 다양한 선택 사항과 기능을 지원합니다.
따라서 OpenSSH는 SSH 프로토콜을 사용한 원격 접속에 가장 이상적인 도구라고 볼 수 있습니다. OpenSSH는 도청, 연결 하이재킹 및 기타 공격을 제어하기 위해 모든 드래픽을 암호화 합니다. 그리고 대규모 보안 터널링, 다양한 인증, 정교한 옵션 구성을 제공합니다.
OpenSSH 제품군은 다음 도구로 구성됩니다.
- 원격 작업은 ssh , scp 및 sftp 를 사용하여 수행됩니다 .
- ssh-add , ssh-keysign , ssh-keyscan 및 ssh-keygen 을 사용한 키 관리 .
- 서비스 측은 sshd , sftp-server 및 ssh-agent 로 구성 됩니다.
2) OpenSSH 특징
OpenSSH는 완전한 오픈 소스 프로젝트로 인터넷을 통해 누구나 무료로 사용할 수 있습니다. 코드 재사용 및 코드 검토를 통해 누구나 버그를 찾고 수정할 수 있습니다. OpenSSH는 모든 목적으로 사용할 수 있으며 여기에는 상업적 사용이 포함됩니다.
강력한 암호화(AES, ChaCha20, RSA, ECDSA, Ed25519…)는 인증 전에 시작되며 암호나 기타 정보는 암호화되지 않은 상태로 전송됩니다. 다양한 암호 및 키 유형을 사용할 수 있으며 레거시 옵션은 일반적으로 합리적인 시간 내에 단계적으로 제거됩니다.
X11 전달은 원격 X Windows 트래픽의 암호화를 허용하므로 아무도 원격 xterm을 스누핑하거나 악의적인 명령을 삽입할 수 없습니다. 프로그램은 서버 시스템에서 자동으로 디스플레이를 설정하고 보안 채널을 통해 모든 X11 연결을 전달합니다.
포트 포워딩(레거시 프로토콜을 위한 암호화된 채널)을 사용하면 암호화된 채널을 통해 TCP/IP 연결을 원격 시스템으로 포워딩할 수 있습니다. POP와 같은 안전하지 않은 인터넷 응용 프로그램을 보호할 수 있습니다.
강력한 인증(공개 키, 일회용 암호)은 IP 스푸핑, 가짜 경로 및 DNS 스푸핑과 같은 여러 보안 문제로부터 보호합니다. 일부 인증 방법에는 공개 키 인증, s/key를 사용한 일회용 암호 및 Kerberos를 사용한 인증(-portable에서만)이 포함됩니다.
에이전트 포워딩은 사용자의 랩탑 또는 로컬 워크스테이션에서 실행되는 인증 에이전트를 사용하여 사용자의 인증 키를 보유할 수 있습니다. OpenSSH는 모든 연결을 통해 자동으로 연결을 인증 에이전트로 전달하며 네트워크의 모든 시스템(사용자 자신의 로컬 시스템 제외)에 인증 키를 저장할 필요가 없습니다.
선택적 데이터 압축은 암호화 전에 데이터를 압축하면 느린 네트워크 링크의 성능이 향상됩니다.
2. OpenSSH 설치 및 확인
1) OpenSSH 설치
설치부터 함께 했다면 SSH는 설치되어 있습니다. 터미털에서 현재 상태를 확인하기 위해서 systemctl 명령어로 확인합니다.
sudo systemctl status ssh
OpenSSH를 설치 했지만 서비스는 ssh.service로 작동합니다. 이미지의 Cgroup부분을 면 /system.slice/ssh.service로 나와 있습니다. 실제 설치된 패키지를 확인해 보겠습니다. apt list 명령을 활용해서 openssh와 관련해 설치된 패키지를 확인하면 3개의 패키지가(openssh-client, openssh-server, open-sftp-server) 설치되 있습니다.
sudo apt list openssh*
외부에서 원격으로 접속하기 위해서는 openssh-server가 반드시 설치되어 있어야 합니다. 만약 설치가 되지 않았다면 다음 명령어로 openssh-server를 설치합니다. 그리고 부팅시 자동 실행되도록 enable 합니다.
sudo apt install openssh-server
sudo systemctl enable ssh
재부팅 후 ssh가 서비스되고 있는지 확인합니다.
reboot
sudo systemctl status ssh
3. SSH 원격 접속을 위한 MobaXterm 설치
1) MobaXterm 특징
MobaXterm은 원격 접속 프로그램으로 Windows 응용 프로그램에서 프로그래머, 웹마스터, IT 관리자가 보다 간단한 방식으로 원격 작업을 위해 맞춤화된 많은 기능을 제공합니다.
MobaXterm은 모든 중요한 원격 네트워크 도구 (SSH, X11, RDP, VNC, FTP, MOSH, …) 및 Unix 명령 (bash, ls, cat, sed, grep, awk, rsync, …)을 Windows 데스크탑에 제공합니다.
SSH 를 사용하여 원격 서버에 연결할 때 원격 파일을 직접 편집하기 위해 그래픽 SFTP 브라우저 가 자동으로 팝업됩니다. MobaXterm Home Edition을 무료로 다운로드하여 사용할 수 있습니다.
2) MobaXterm 다운로드
MobaXterm 웹사이트에 접속하여 설치 파일을 다운로드 합니다. 파일은 installer edition과 portable edition으로 구분되는데 여기서는 installer edition으로 진행하겠습니다.
웹페이지 : MobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)
다운로드 페이지 : https://mobaxterm.mobatek.net/download-home-edition.html
3) MobaXterm 설치
MobaXterm 압축 파일을 해제하고 설치를 진행합니다.
4) MobaXterm 실행
MobaXterm 실행하면 다음과 같이 프로그램이 실행됩니다. 여기서는 창을 종료하고 접속이 가능하도록 포트 및 방화벽을 설정하도록 하겠습니다.