2017년 5월 15일 Bertel King, Jr. 업데이트
OpenWrt란 무엇인가?
컴퓨터와 스마트폰의 운영체제는 바꿔본 경험이 있어도, 정작 라우터의 운영체제를 바꿔본 사람은 많지 않습니다. 라우터를 SSH 서버, VPN, 트래픽 제어 시스템, 심지어 비트토렌트 클라이언트로 활용할 수 있다면 어떨까요? 그렇다면 OpenWrt에 주목해 볼 만합니다.
OpenWrt는 다양한 라우터에 설치할 수 있는 임베디드 리눅스 배포판입니다. 웹 기반 관리 인터페이스를 제공하며, 하드웨어 기본 펌웨어보다 오히려 더 안정적인 경우도 많습니다. 며칠에 한 번씩 라우터가 버벅여서 재부팅해야 한다면, OpenWrt로 갈아탈 좋은 후보입니다.
클라우드 컴퓨팅과 사물인터넷(IoT) 확산으로 개인정보 보호에 대한 관심이 높아지면서 OpenWrt 커뮤니티도 크게 성장했습니다. 프로젝트 전용 서밋만 두 번 열릴 정도니까요. 여러분도 라우터를 직접 만지는 재미에 빠질 다음 주인공이 될 수 있습니다.
OpenWrt의 활용 방법
라우터에서 모듈형 리눅스 배포판을 돌릴 수 있다는 것만으로도 가능성이 무궁무진하다는 걸 느낄 겁니다. 단순히 라우터 역할을 하는 것 외에 OpenWrt로 할 수 있는 재미있는 일들을 소개합니다.
- SSH 서버를 이용한 SSH 터널링: OpenWrt에는 터미널에 접속할 수 있는 SSH 서버가 내장되어 있습니다. 이 SSH 서버를 인터넷에 노출하면(반드시 약한 비밀번호 대신 키 기반 인증으로 보안을 강화하세요) 원격 접속이 가능하고, SSH 터널링을 통해 트래픽을 암호화된 연결로 전달할 수 있습니다. 덕분에 공용 Wi-Fi에서도 안전하게 웹사이트에 접속하거나, 해외여행 중에도 자국에서만 접근 가능한 사이트를 이용할 수 있습니다.
- VPN 구축: SSH 터널링은 여러 면에서 VPN과 비슷하게 작동하지만, OpenWrt 라우터에 본격적인 VPN 서버를 구축하는 것도 물론 가능합니다.
- 비트토렌트 클라이언트 설치: NAS가 있거나 USB 포트가 내장된 라우터에 USB 저장장치를 연결하면, 라우터 자체를 비트토렌트 클라이언트로 사용할 수 있습니다.
- 서버 소프트웨어 실행: OpenWrt 소프트웨어 저장소에는 웹 서버, IRC 서버, 비트토렌트 트래커 등으로 동작하게 해주는 패키지들이 있습니다. 어차피 라우터를 쓰고 있다면, 같은 장비를 서버로도 활용하는 게 어떨까요? 라우터는 PC보다 전력 소모가 훨씬 적다는 장점도 있습니다.
- 트래픽 셰이핑과 QoS: OpenWrt를 사용하면 라우터를 통과하는 패킷에 대해 트래픽 셰이핑과 QoS(서비스 품질) 설정을 할 수 있습니다. 특정 유형의 트래픽에 우선순위를 부여하거나, 특정 컴퓨터로 가는 트래픽을 우선 처리하고 다른 컴퓨터의 트래픽 순위를 낮추는 것도 가능합니다.
- 게스트 네트워크 구성: OpenWrt 위키에는 메인 네트워크와 분리된 게스트용 무선 네트워크를 설정하는 방법이 정리되어 있습니다(게스트 네트워크의 속도를 제한할 수도 있습니다). 라우터에 게스트 네트워크를 두면 여러 가지 이점이 있습니다.
- 네트워크 트래픽 캡처 및 분석: tcpdump를 이용해 라우터를 지나가는 모든 패킷을 네트워크 공유 폴더에 기록하고, Wireshark 같은 도구로 파일을 열어 네트워크 트래픽을 분석할 수 있습니다.
물론 위 목록이 전부는 아닙니다. 하지만 OpenWrt로 무엇이 가능한지 감을 잡기에는 충분할 겁니다. OpenWrt는 다양한 소프트웨어 패키지를 갖춘 임베디드 리눅스 시스템으로, 하드웨어 제약은 있지만 여러 면에서 리눅스가 돌아가는 PC만큼 유연합니다.
OpenWrt 설치하기
OpenWrt는 원래 링크시스(Linksys) WRT54G를 위해 개발되었지만, 현재는 훨씬 더 많은 라우터 모델을 지원합니다. 지원 하드웨어 목록은 OpenWrt 공식 웹사이트에서 확인할 수 있습니다.
OpenWrt 설치는 스마트폰에 커스텀 ROM을 플래싱하듯 라우터의 기본 펌웨어를 리눅스 시스템으로 교체하는 작업입니다. OpenWrt 위키에는 라우터에 OpenWrt를 설치하는 네 가지 방법이 자세히 정리되어 있습니다.
운이 좋다면 파일을 선택하고 업그레이드 버튼만 누르면 끝나는 간단한 과정입니다. 그렇지 않다면 이더넷 포트나 시리얼 포트를 통해 라우터의 부트로더에 접속해 좀 더 직접적인 작업을 해야 할 수도 있습니다.
터미널과 웹 인터페이스
OpenWrt를 설치한 후에는 Windows에서는 PuTTY 같은 SSH 클라이언트로, Linux나 Mac에서는 기본 내장된 ssh 명령어로 BusyBox 셸에 접속할 수 있습니다. BusyBox는 임베디드 리눅스 시스템에서 널리 쓰이는 셸로, OpenWrt에는 파일 편집용 vi 에디터 같은 필수 프로그램도 포함되어 있습니다. 다른 리눅스 시스템처럼 다양한 스크립트를 실행하고, cron 작업을 설정해 특정 작업을 주기적으로 자동 실행할 수도 있습니다.
OpenWrt는 opkg 패키지 관리자를 통해 수천 개의 패키지가 담긴 저장소에서 소프트웨어를 설치하며, UCI(Unified Configuration Interface)로 시스템을 설정합니다. 필요한 정보는 대부분 OpenWrt 위키에서 찾을 수 있습니다.
그렇다고 이 모든 것을 다 알아야 하는 건 아닙니다. OpenWrt에는 LuCI라는 웹 기반 관리 인터페이스가 포함되어 있어 브라우저만으로 라우터를 설정할 수 있습니다. LuCI에는 다양한 설정 페이지가 마련되어 있고, 패키지 관리 페이지에서는 설치 가능한 패키지를 탐색·검색·설치할 수 있습니다. 설치할 수 있는 패키지 수는 라우터의 저장 공간에 따라 달라집니다. 모든 것을 설치할 공간은 없지만, OpenWrt의 모듈형 구조 덕분에 원하는 기능만 골라 나만의 라우터 운영체제를 조립할 수 있다는 점이 매력적입니다.
일부 소프트웨어 패키지는 LuCI 설정 페이지도 함께 제공해, 설치 후 손쉽게 설정할 수 있습니다. 다만 OpenWrt용 소프트웨어가 모두 LuCI 인터페이스를 갖고 있는 것은 아니므로, 일부 소프트웨어는 터미널에서 직접 설정해야 할 수도 있습니다.
내 라우터에 OpenWrt가 필요할까?
OpenWrt가 모든 사람에게 최선의 선택은 아닙니다. 대부분의 사용자는 라우터 기본 펌웨어로도 충분히 만족합니다. 또 어떤 이들은 DD-WRT처럼 설치만 하면 바로 쓸 수 있는 드롭인 교체 펌웨어를 선호하기도 합니다. OpenWrt가 더 유연하기는 하지만, 단순히 기능이 더 많은 웹 인터페이스만 원한다면 다른 교체 펌웨어가 더 나은 선택일 수 있습니다.
이미지 출처: Mayuree Moonhirun via Shutterstock.com