본문 바로가기

Study records/Linux server hacking

원격 접속

 일반적으로 CUI 환경에서 작업을 하는 경우에는 SSH를, GUI 환경에서 작업하는 경우에는 리눅스 원격 데스크톱 환경을 제공하는 VNC나 XRDP를 사용한다. 하지만 외부 인터넷망에서 원격으로 서버에 접속할 때 사용하는 열린 통신 포트의 보안 설정이 제대로 되지 않거나 취약한 계정을 사용해 접속하는 경우에는 언제든지 원격 접속을 통한 보안 위협에 노출될 수 있다.

 

SSH 원격 접속을 위한 환경 구축

우분투에서 SSH로 사용하는 OpenSSH를 설치한다

 

SSH 서비스가 잘 작동(Active)되고 있는지 확인

 

XRDP 원격 접속을 위한 환경 구축

XFCE 리눅스 데스크톱 환경 설치
원격지에서 원격 데스크톱으로 접속할 수 있는 XRDP 설치

 

XRDP가 제대로 설치됐는지 확인

 

 

XRDP 설정 파일에서 다음 두 줄을 추가한 후 저장한다.

 

 

설정을 변경한 후 XRDP 서비스를 다시 시작하고 실행될 수 있도록 설정한다.

 

 

이처럼 SSH와 XRDP를 설치한 후 정상적으로 서비스가 되면 운격에서 PuTTY와 같은 SSH 클라이언트로 접속할 수 있다.  XRDP가 설치된 경우에는 윈도우의 '원격 데스크톱 연결'과 같은 원격 접속 프로그램으로 해당 서버에 접속할 수 있다. 참고로 우분투 서버에서 ufw 방화벽은 기본으로 비활성화되어 있지만, SSH나 XRDP가 정상적으로 활성화된 상태에서 접속하지 않는다면 방화벽 상태나 네트워크 접속 설정을 확인해봐야 한다.

 

 

원격 접속 해킹의 사고 분석

원격 접속 해킹은 주로 공격자가 네트워크 대역을 스캔하여 이미 잘 알려진 원격 접속이 가능한 기본 통신 포트를 공격 대상으로 찾아낸다. SSH(22/tcp), XRDP 또는 원격 데스크톱(3389/tcp), VNC(5900/tcp)가 열려 있는지 확인한 후 통신 포트가 열려 있다면 보안 취약점을 이용해 서버로 접속하거나 무차별 대입 공격을 할 수 있다. 

 

SSH 무차별 대입 공격

칼리에서 Nmap으로 공격 대상 서버의 통신 포트 확인

 

22번 SSH 원격 접속 통신 포트를 대상으로 무차별 대입 공격 시도한다. SSH  무차별 대입 공격을 받으면 /var/log/auth.log에  같은 패턴으로 짧은 시간 주기로 로그인을 시도한 흔적이 많이 보일 것이다.

 

 

 

안전한 원격 접속 환경 구축 

① 원격 접속용 포트 변경

네트워크 접근 제어가 되지 않은 상태로 외부에 노출된 서버에서 잘 알려진 포트로 무차별 대입 공격을 회피하는 효과적인 방법은 원격 접속용 통신 포트를 변경하는 것이다.

먼저 SSH 설정 파일에서 SSH 통신의 기본 통신 포트 번호인 22번 포트를 변경 -> # 주석을 삭제하고, Port 22를 65001로 수정

vi /etc/ssh/sshd_config

 

다음으로 XRDP의 통신 포트를 변경 -> # port=3389에서 임의의 통신 포트 port=65002로 수정

vi /etc/xrdp/xrdp.ini

 

② 방화벽 통한 접근 통제

원격 접속용 통신 포트로 접근하는 것을 리눅스 서버 내에 존재하는 방화벽 기능으로 통제할 수 있다. 우분투에서는 기본적으로 방화벽이 비활성화되어 있으므로 활성화해야 한다.