CentOS Stream - COCKPIT (웹 기반 서버 관리 툴)

    CentOS Stream - COCKPIT (Web-based server management tool)

    COCKPIT

    공식 홈페이지 : https://cockpit-project.org/

    COCKPIT은 사전적 의미로 (항공기. 보트. 경주용 자동차의) 조종석을 뜻합니다. 그래서인지 로고도 항공 모양입니다.

    콘솔에서 하던 작업을 조종석처럼 한눈에 파악하기 위해 웹 인터페이스를 제공합니다. 웹 브라우저에서 서버를 확인하고 마우스로 시스템 작업 수행이 가능합니다. 또한 스토리지 관리, 네트워크 구성, 로그(시스템) 확인 등을 쉽게 할 수 있습니다. 오픈소스로 무료로 사용이 가능합니다.

     

    ※ [CentOS 7]부터 설치 가능하며 [CentOS 8], [CentOS Stream]에서는 OS 기본 패키지에 포함되어 있어 활성화 및 실행만 하면 됩니다.

     

    그 외 지원 OS


    STEP01 → Cockpit 설치하기

    ※ 기본 패키지 설치가 안되어있을 경우만 설치하면 됩니다.

    [root@localhost ~]# dnf install cockpit

     

     

    STEP02 → Cockpit 웹 콘솔 활성화 하기

    ※ CentOS 8 / CentOS Stream로 설치했을 경우 첫 로그인 화면에 다음과 같은 메시지가 표시됩니다.

    [root@localhost ~]# systemctl enable --now cockpit.socket  [자동 시작 활성화 및 프로세스 시작]

    ※ 기본 접속 포트는 9090이며 Cockpit 특성상 웹 콘솔을 열지 않으면 프로세스 내려가 있습니다.

    즉 접속할 때만 프로세스가 실행되므로 자원 사용에 최적화되어있습니다.

    [root@localhost ~]# netstat -nlp | grep 9090  [포트 응답 확인]

    tcp6  0  0  :::9090 :::*  LISTEN  1/systemd

     

     

    STEP03 → 방화벽 허용

    ※ 웹에서 콘솔 로그인이 가능하다는 것은 외부 침입이 용이하다는 뜻입니다.

    본인이 관리자일 경우 특정 IP에서만 접근 가능하도록 설정하는 게 좋습니다.

     

    2-1 IPtables 방화벽 사용 시

    [root@localhost ~]# vi /etc/sysconfig/iptables  [허용 포트 추가]

     

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT  [모든 접속 허용]

    -A INPUT -s 192.168.0.1 -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT [특정 IP만 허용]

    [root@localhost ~]# systemctl restart iptables  [적용]

    [root@localhost ~]# iptables -nL | grep 9090  [적용 확인]

    ACCEPT  tcp  --  0.0.0.0/0  0.0.0.0/0  state NEW tcp dpt:9090

     

    2-2 Fifirewall 방화벽 사용 시

    [root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=cockpit  [Cockpit 서비스 허용]

    [root@localhost ~]# firewall-cmd --reload  [적용]

     

     

    STEP04 → 웹 콘솔 접근하기

    ※ https://localhost:9090 또는 https://192.168.150.132:9090 접속

    ※ 웹 콘솔 접속했을 경우만 프로세스가 실행 [예시]

    ※ 시스템 언어를 따라가므로 한국어로 설치했다면 한글 인터페이스로 나옵니다. [로그인 메인 화면]

     

     

    STEP05 →사용 방법

    ※ 자세한 사용 방법 가이드 : https://cockpit-project.org/guide/latest/

     

    5-1 시스템 로그 확인

    ※ 정확히는 journalctl를 이용한 systemd 로그 정보를 불러옵니다.

     

    5-2 네트워크 설정/트래픽/로그 확인

     

    5-3 계정 관리

     

    5-4 서비스 관리

     

    5-5 웹 콘솔 터미널

     

     

    마치며

    이렇게 굳이 직접 콘솔 접근하지 않고 웹을 통해 관리하는 방법을 알아보았습니다. 계속 강조하지만 웹에 노출이 되는 만큼 공격 시도가 많을 수밖에 없습니다. 방화벽 및 보안 설정을 철저히 하는 습관을 들이는 것을 권고합니다. cockpit은 확장이 가능하니 모듈이나 API에 대해서 잘 아신다면 여러 방면으로 응용이 가능하니 참고하시기 바랍니다.

    댓글

    Designed by JB FACTORY