- [Open OSCAR Server]를 이용하면 Debian 서버에 AIM/ICQ 서버를 구축해 Windows 98을 비롯한 구형 환경의 여러 클라이언트를 다시 연결할 수 있음
- 소규모 운영에는 저사양 VPS로도 충분하지만, 외부 친구와 이용하려면 기본 포트 5190과 고정 IP 또는 동적 DNS, 인터넷 공개에 맞는 방화벽 설정이 필요함
- settings.env의 OSCAR_LISTENERS와 OSCAR_ADVERTISED_LISTENERS_PLAIN을 LAN 또는 WAN 모드에 맞추고, AIM 클라이언트가 폐쇄된 AOL 서버 대신 자체 서버에 접속하도록 변경함
- 기본 상태에서는 임의의 화면 이름과 비밀번호로 로그인할 수 있어 DISABLE_AUTH=false로 비밀번호 인증을 활성화하고 API로 계정을 관리해야 함
- 서버 상태가 SQLite 데이터베이스와 설정 파일에 저장되므로, 야간 전체 백업이나 서버 중지 후 rsync 복사로 복구 가능한 AIM 환경을 유지할 수 있음
Discord 대신 AIM을 다시 운영한 이유
- 휴대전화와 문자 메시지가 보편화되기 전에는 학교 프로젝트부터 인간관계까지 많은 활동이 AIM 창에서 이뤄졌고, 이런 경험이 AIM에 대한 향수로 이어짐
- 최근 Discord 사용 경험이 좋지 않아 Open OSCAR Server를 시험했으며, 자체 AIM/ICQ 서버에 여러 구형 클라이언트를 연결할 수 있었음
- 구축 과정은 YouTube 영상과 PeerTube 영상에서도 다뤘으며, Macintosh Librarian의 별도 영상은 AIM 자체를 더 자세히 소개함
Debian Trixie 서버 준비
- 설치 대상은 Debian Trixie이며, 운영체제 자체의 설치 과정은 다루지 않음
- 수백 명과 대화할 계획이 아니라면 저사양 VPS에서도 운영 가능함
- 처음에는 집에서 호스팅했지만 친구들과 공유하기 시작하면서 최하위 요금제 VPS로 이전함
- Raspberry Pi에서도 동작할 가능성이 있으나 직접 시험하지는 않음
- 집이나 방화벽 뒤에서 운영한다면 AIM 클라이언트가 접속할 기본 포트 5190을 열어야 함
- 일부 클라이언트는 포트 변경이 쉽지 않아 기본 포트를 유지하는 편이 나음
- 고정 IP가 없는 가정용 환경에서는 동적 DNS가 필요함
- 직접 사용한 서비스는 No-IP이며 결과에 만족함
- 동적 DNS가 익숙하지 않다면 월 5~10달러의 클라우드 서버에서 고정 IP와 더 간단한 구성을 이용할 수 있음
- 어느 방식을 택하든 서버는 고정 IP나 도메인으로 접근 가능해야 하며 5190 포트가 열려 있어야 함
- Open OSCAR Server의 기본값은 홈 네트워크에서 시험하기에는 편하지만 인터넷 공개에는 적합하지 않음
- 설정을 잠그기 전까지는 자신의 트래픽만 허용하고, 방화벽에서 다른 출발지의 접속을 거부하는 방식을 권장함
Open OSCAR Server 설치
wget [RELEASE URL]
- [RELEASE URL]은 실제 릴리스 파일 주소로 바꿔야 함
- 내려받은 압축 파일은 tar로 해제함
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
- X.XX.X는 내려받은 실제 버전 번호로 교체함
수신 모드와 서버 주소 설정
- 로컬 머신에서만 실행한다면 압축을 푼 하위 디렉터리로 이동해 바로 실행할 수 있음
- 다른 머신의 클라이언트를 연결하려면 settings.env를 편집해야 함
- Open OSCAR Server는 세 가지 클라이언트 수신 모드를 지원함
- LOCAL: 기본값이며 AIM 클라이언트와 서버가 같은 머신에 있을 때 사용함
- LAN: 서버와 AIM 클라이언트가 같은 내부 네트워크에 있고 인터넷을 거치지 않을 때 사용함
- WAN: 인터넷을 통해 외부 친구의 AIM 클라이언트를 연결할 때 사용함
- settings.env에서는 두 변수를 함께 설정함
- OSCAR_LISTENERS: Open OSCAR Server가 연결을 수신하는 방식을 지정함
- OSCAR_ADVERTISED_LISTENERS_PLAIN: AIM 같은 클라이언트에 알려줄 서버 주소를 지정함
- 도메인이 example.domain인 공개 VPS라면 다음과 같이 구성할 수 있음
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- 내부 네트워크에서는 WAN을 LAN으로 바꾸고, 도메인 대신 서버에 할당한 IP 주소를 사용함
- 두 변수의 모드는 반드시 LAN과 LAN, 또는 WAN과 WAN 처럼 일치해야 함
- 양쪽 변수에 두 모드를 모두 지정하는 구성도 가능함
- 설정을 마치면 다음 명령으로 서버를 시험 실행함
./open_oscar_server
AIM 클라이언트 연결
- 여러 AIM 버전에서는 현재 폐쇄된 기본 로그인 서버 login.oscar.aol.com을 다른 주소로 교체할 수 있음
- AIM 5.1에서는 Setup의 큰 Configuration 버튼을 통해 서버 주소를 변경함
- 기본 로그인 서버 주소를 OSCAR_ADVERTISED_LISTENERS_PLAIN에 지정한 주소로 교체하면 됨
- 인증을 강화하기 전에는 임의의 화면 이름과 비밀번호를 입력해 로그인할 수 있음
- 다른 이용자의 접속 조건은 서버 모드에 따라 달라짐
- LAN 모드에서는 서버와 같은 네트워크에 있어야 함
- WAN 모드에서는 외부 이용자가 방화벽을 통과할 수 있도록 접근 권한을 제공해야 함
systemd로 서버 상시 실행
- Open OSCAR Server는 SSH 연결이 끊긴 뒤에도 서버를 계속 실행할 수 있는 systemd 서비스를 함께 제공함
- 서비스 설치와 설정은 프로젝트의 SYSTEMD 문서를 따르면 됨
비밀번호 인증 활성화
- 기본 상태에서는 실제 비밀번호를 검증하지 않으므로 systemd 서비스 파일에서 DISABLE_AUTH를 변경해야 함
- 다음 명령으로 전체 서비스 파일을 기본 편집기에서 수정함
sudo systemctl edit --full ras.service
- [Service] 아래의 환경 변수를 다음처럼 설정함
Environment="DISABLE_AUTH=false"
- 변수 이름이 이중 부정 형태이므로 인증을 요구하려면 값이 false 여야 함
- 서비스 파일을 저장한 뒤 systemd 데몬 설정을 다시 불러옴
sudo systemctl daemon-reload
- 기존 화면 이름과 비밀번호로 로그인을 다시 시험하고, 실패하면 API로 새 사용자를 생성할 수 있음
API로 사용자와 비밀번호 관리
백업과 복구
- Open OSCAR Server의 주요 상태는 SQLite 데이터베이스와 설정 파일로 구성돼 백업이 단순함
- VPS 전체 시스템을 매일 밤 백업하고 있으며, 복원 시험에서도 예상대로 동작함
- 큰 변경 전에는 서버를 중지한 뒤 작업 디렉터리 전체를 rsync로 백업 머신에 복사함
- Borgmatic을 사용하면 백업 과정을 더 간단하게 만들 수 있으며, 후속 글에서 자세히 다룰 계획임