윈도우, 리눅스 서버 접속(ssh, rdp) 보안

IT쪽 일을 하다 보니 랜섬웨어 감염이라는 끔찍한 일을 겪게 됐고 앞으로 이런 일이 발생하지 않도록 대응책을 찾게 됐다.
물론 애초에 클라우드 아키텍쳐를 보안이 좋도록 서버와 코드 구성 등 많은 부분을 고칠 수 있지만 현재 회사에서는 그런 시도를 자유롭게 할 수 없는 환경이기에 다른 방법들을 찾기 시작했다.
이 포스트에서는 윈도우 서버와 리눅스 서버의 접속 관련 보안 방법인 IP 접속 제한, 계정 접속 시도 횟수 설정, 방화벽 설정 등에 대해 알아본다.

우선 클라우드를 이용하고 있다면 클라우드의 우리 서버까지 도달하기까지 클라우드에서 운영중인 방화벽이 따로 존재한다.
이 방화벽은 경비원과 같은 역활을 한다. 우리 서버가 통신 시 항상 거치는 곳이기 때문에 통신을 제한할 수 있다.
서버로부터 나가는 통신, 서버로 들어오는 통신 등을 설정해 보안을 강화할 수 있다.(여기서 ip 통제)
그리고 보통 이 방화벽을 클라우드 관제센터에서 모니터링하기 때문에 문제 발생도 잡아주기 때문에 좋다.(하지만 모든 클라우드에서 지원해주지는 않음)

우선 고성능의 윈도우 서버에 RDP 구성 시 OS 레벨에서의 접속 보안 방법에 대해 먼저 생각해 보자!
윈도우의 기본 RDP 접속 포트는 3389포트다. 그래서 해킹시도 시 가장 먼저 열려있는 포트를 확인하기 위해 시도해 보게 된다.
그렇기 때문에 남들이 알아차리기 힘든 RDP 접속 포트로 원격 데스크톱의 수신 대기 포트를 변경해 이런 시도를 무산시킬 수 있다.
레지스트리를 변경하여 수행할 수 있는데 아래와 같은 순서로 실행하면 된다.
- 레지스트리 편집기를 시작합니다. (검색 상자에 regedit을 입력합니다.)
- 다음 레지스트리 하위 키로 이동합니다. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- PortNumber를 찾습니다.
- 편집 > 수정을 클릭하고 Decimal을 클릭합니다.
- 새 포트 번호를 입력하고 확인을 클릭합니다.
- 레지스트리 편집기를 닫고 컴퓨터를 다시 시작합니다.
- 방화벽을 사용하는 경우 새 포트 번호로의 연결을 허용하도록 방화벽을 구성해야 합니다.
Get-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp' -name "PortNumber"
예를 들어:다음 PowerShell 명령을 실행하여 RDP 포트를 확인할 수도 있습니다. 이 명령에서는 새 RDP 포트를 3390으로 지정합니다.
$portvalue = 3390
Set-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp' -name "PortNumber" -Value $portvalue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue

두번째 보안 방법으로 방화벽을 활용해 IP를 통제하는 방법이다. 그 방법은 아래와 같다.
- 서버 연결
- 방화벽 설정인바운드 규칙 클릭 → 오른쪽에서
