Skip to content

Latest commit

 

History

History
167 lines (112 loc) · 5.05 KB

File metadata and controls

167 lines (112 loc) · 5.05 KB

TableCloth Linux (식탁보 리눅스)

스크린 샷

TableCloth Linux는 리눅스에서 한국 인터넷 뱅킹 서비스를 사용할 수 있도록 LXD 기반 샌드박스 환경을 자동으로 구축하는 오픈 소스 프로젝트입니다.

프로젝트 소개

한국의 인터넷 뱅킹 및 전자 정부 서비스는 전용 보안 프로그램을 요구하여 리눅스 사용자들이 접근하기 어려웠습니다. TableCloth Linux는 이러한 문제를 해결하기 위해 LXD 컨테이너 환경에서 필요한 보안 프로그램들을 자동으로 설치하고 설정하여, 격리된 환경에서 안전하게 금융 서비스를 이용할 수 있게 합니다.

프로젝트 현황

  • 컨테이너 플랫폼: LXD (시스템 컨테이너)
  • 기본 OS: Debian 12 (Bookworm) - 장기 안정성 및 보수적인 패키지 정책
  • 데스크톱 환경: XFCE4 + Chicago95 테마 (Windows 95 스타일)
  • 원격 접속: TightVNC + noVNC (웹 브라우저 기반)
  • 한글 지원: IBus + Hangul 입력기, Nanum/Noto CJK 폰트

현재는 우리은행 위주로 지원하고 있으며, 추후 다른 은행으로 확대할 예정입니다.

주요 기능

  • LXD 컨테이너 기반 샌드박스

    • 호스트 시스템과 완전 격리
    • 이미지 내보내기/가져오기로 이식성 확보
    • 스냅샷을 통한 롤백 가능
  • 보안 모듈 자동 설치

    • IPInside-LWS (키보드 보안)
    • Veraport-G3 (통합 설치 관리자)
    • AnySign4PC (공동인증서)
    • AhnLab Safe Transaction (ASTX)
  • 한글 환경 완벽 지원

    • 한글 로케일 (ko_KR.UTF-8)
    • IBus 한글 입력기
    • 나눔/Noto CJK 폰트
  • 웹 기반 원격 데스크톱

    • noVNC를 통한 브라우저 접속
    • 별도 VNC 클라이언트 불필요

사전 요구 사항

  1. LXD 설치 및 초기화

    sudo snap install lxd
    sudo lxd init --auto
  2. 현재 사용자를 lxd 그룹에 추가 (재로그인 필요)

    sudo usermod -aG lxd $USER
  3. .NET 10.0 SDK 설치

    # Ubuntu/Debian
    sudo apt install dotnet-sdk-10.0
  4. 충분한 디스크 공간 (최소 10GB 권장)

설치 및 사용 방법

1. 저장소 클론

git clone https://github.com/youwereeatenbyalid/TableClothLinux.git
cd TableClothLinux

2. 컨테이너 빌드

dotnet run create.cs build wooribank

빌드 과정에서 cloud-init이 패키지 설치 및 환경 설정을 수행합니다. 이 과정은 약 10-15분 소요됩니다.

3. 컨테이너 실행

dotnet run create.cs run wooribank

4. noVNC로 접속

웹 브라우저에서 다음 주소로 접속합니다:

http://localhost:6080

VNC 비밀번호: tlrXKRqh

5. 인터넷 뱅킹 이용

  1. 데스크톱에서 Google Chrome 실행
  2. 우리은행 인터넷뱅킹 접속: https://www.wooribank.com
  3. 보안 프로그램이 자동으로 활성화됨

이미지 내보내기/가져오기

이미지 내보내기 (백업 또는 배포용)

dotnet run create.cs export wooribank ./tablecloth-wooribank.tar.gz

이미지 가져오기

dotnet run create.cs import wooribank ./tablecloth-wooribank.tar.gz

명령어 요약

명령어 설명
build <사이트> 컨테이너 생성 및 환경 설치
run <사이트> 컨테이너 시작 및 포트 포워딩
export <사이트> [경로] 컨테이너를 이미지 파일로 내보내기
import <사이트> <경로> 이미지 파일에서 컨테이너 생성
help 도움말 표시

직접 컨테이너 접속

# 쉘 접속
lxc exec tablecloth-wooribank -- su - tablecloth

# 컨테이너 중지
lxc stop tablecloth-wooribank

# 컨테이너 삭제
lxc delete tablecloth-wooribank --force

제한사항 및 알려진 이슈

  • 리눅스용 뱅킹 플러그인은 아직 초기 단계로, 특정 배포판/버전에서만 테스트됨
  • 일부 보안 프로그램이 LXD 컨테이너에서 커널 모듈 접근 제한으로 경고를 표시할 수 있음
  • 32비트 Wine 지원이 필요한 일부 플러그인은 추가 설정 필요

클라우드 배포 (고급)

내보낸 이미지를 Azure Blob Storage 등에 업로드하여 VMSS 기반 온디맨드 샌드박스로 활용할 수 있습니다:

  1. 이미지를 Blob Storage에 업로드
  2. VM 시작 시 이미지 다운로드 → lxc image importlxc launch
  3. 세션 종료 시 VM 자동 종료 (scale-to-zero)

기여하기

이 프로젝트에 기여하고 싶으시다면 이슈를 제출하거나 풀 리퀘스트를 보내주세요.

  • 새로운 은행 지원 추가
  • 버그 리포트 및 수정
  • 문서 개선

라이선스

이 프로젝트는 GNU Affero General Public License에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.