CentOS Stream 10에서 Cockpit 웹 콘솔을 설치하고 활성화하는 방법

안녕하세요. VISION IDC 기술팀입니다.

이번 문서에서는 CentOS Stream 10에서 Cockpit 웹 콘솔을 설치하고 활성화하는 방법을 알아보겠습니다. Cockpit을 사용하면 웹 브라우저에서 서버 상태, systemd 서비스, 로그, 저장소, 네트워크와 사용자 계정 등을 확인하고 관리할 수 있습니다.

CentOS Stream 10에서는 cockpit 패키지를 설치한 뒤 cockpit.socket을 활성화하고, 원격 접속이 필요하면 방화벽에서 기본 포트인 9090/tcp를 허용하면 됩니다. Cockpit은 systemd 소켓 활성화 방식으로 요청이 있을 때 실행되므로, cockpit.service가 계속 실행 중인지보다 cockpit.socket이 활성 상태인지 확인하는 것이 중요합니다.

적용 환경

운영체제 CentOS Stream 10
패키지 cockpit
systemd 장치 cockpit.socket
기본 접속 포트 9090/tcp
예시 접속 주소 https://203.0.113.10:9090

CentOS Stream 10은 2024년 12월 12일 정식 출시된 현재 지원 대상 계열입니다. 서버 이미지나 설치 유형에 따라 Cockpit이 이미 설치되어 있을 수 있으므로 패키지 상태를 먼저 확인한 뒤 진행합니다.

이 문서에서 알아볼 내용

  • CentOS Stream 10과 활성 저장소 확인
  • Cockpit 패키지 설치와 설치 여부 검증
  • cockpit.socket 활성화와 상태 확인
  • firewalld에서 Cockpit 서비스 허용
  • 브라우저 접속과 자주 발생하는 오류 해결
  • 특정 관리 IP만 허용하는 보안 설정과 원상복구

작업 전 준비사항

먼저 운영체제 버전을 확인합니다.

cat /etc/centos-release

출력에 CentOS Stream release 10이 포함되어 있는지 확인합니다. 이어서 패키지를 내려받을 수 있도록 활성화된 DNF 저장소와 메타데이터 상태를 확인합니다.

sudo dnf repolist --enabled
sudo dnf makecache

저장소 목록이 표시되고 메타데이터 갱신이 오류 없이 완료되면 설치를 진행할 수 있습니다. DNS 오류나 저장소 연결 오류가 발생하면 네트워크와 저장소 설정을 먼저 해결해야 합니다.

Cockpit 웹 콘솔 설치

Cockpit이 설치되어 있는지 먼저 확인합니다. 설치된 경우 패키지 버전이 표시되고, 설치되지 않은 경우 패키지가 설치되지 않았다는 메시지가 출력됩니다.

rpm -q cockpit

설치되어 있지 않다면 다음 명령으로 기본 Cockpit 패키지를 설치합니다.

sudo dnf install -y cockpit

설치가 끝난 뒤 패키지 정보를 다시 확인합니다.

rpm -q cockpit
sudo dnf info cockpit

rpm -q cockpit 결과에 설치된 패키지명이 나타나면 설치가 완료된 상태입니다.

Cockpit 소켓 활성화

Cockpit 웹 서비스는 systemd 소켓 활성화 방식으로 동작합니다. 다음 명령은 cockpit.socket을 즉시 시작하고, 서버를 재부팅한 뒤에도 자동으로 활성화되도록 설정합니다.

sudo systemctl enable --now cockpit.socket

자동 시작과 현재 상태를 각각 확인합니다.

sudo systemctl is-enabled cockpit.socket
sudo systemctl is-active cockpit.socket
sudo systemctl status cockpit.socket --no-pager

is-enabled 결과가 enabled, is-active 결과가 active이면 정상입니다. 상태 화면에서는 소켓이 포트 9090에서 대기 중임을 확인할 수 있습니다.

방화벽에서 Cockpit 접속 허용

firewalld를 사용 중이라면 먼저 서비스 상태와 네트워크 인터페이스가 연결된 활성 영역을 확인합니다.

sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones

다음 예시는 활성 영역이 public인 경우입니다. 실제 출력이 다르면 명령의 public을 해당 영역명으로 변경합니다.

sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload

Cockpit 서비스가 실제로 허용되었는지 확인합니다.

sudo firewall-cmd --zone=public --query-service=cockpit
sudo firewall-cmd --zone=public --list-services

--query-service 결과가 yes이고 서비스 목록에 cockpit이 표시되면 방화벽 규칙이 적용된 상태입니다.

Cockpit 접속 및 작동 확인

1. 9090 포트 대기 상태 확인

서버에서 9090 포트를 수신 대기 중인지 확인합니다.

sudo ss -lntp | grep ':9090'

포트 9090의 LISTEN 항목이 표시되면 systemd 소켓이 접속을 기다리고 있는 상태입니다. 출력이 없다면 cockpit.socket 상태를 다시 확인합니다.

2. 웹 브라우저에서 접속

관리자 PC의 웹 브라우저에서 다음 주소로 접속합니다. 203.0.113.10은 예시이므로 실제 서버의 공인 IP 또는 접속 가능한 호스트명으로 변경합니다.

https://203.0.113.10:9090

로그인 화면이 나타나면 서버에 존재하는 로컬 사용자 계정의 사용자명과 비밀번호로 로그인합니다. 서버 관리 작업에는 적절한 sudo 또는 관리자 권한이 필요합니다.

Cockpit 보안 권장사항

특정 관리 IP만 허용하기

Cockpit을 인터넷 전체에 공개할 필요가 없다면 일반 서비스 허용 규칙을 삭제하고 특정 관리 IP만 허용하는 rich rule로 변경할 수 있습니다. 다음 예시에서는 관리 PC의 공인 IP로 문서용 예시 주소인 198.51.100.20을 사용합니다.

sudo firewall-cmd --permanent --zone=public --remove-service=cockpit
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="198.51.100.20/32" service name="cockpit" accept'
sudo firewall-cmd --reload

적용된 rich rule을 확인합니다.

sudo firewall-cmd --zone=public --list-rich-rules

추가 보안 점검

  • 관리 계정에는 추측하기 어려운 비밀번호를 사용하고 불필요한 계정은 잠급니다.
  • 서버와 Cockpit 패키지에 보안 업데이트를 정기적으로 적용합니다.
  • 가능하면 VPN 또는 사설 관리망을 통해 Cockpit에 접속합니다.
  • 공용 네트워크에 노출되는 운영 서버에서는 신뢰할 수 있는 TLS 인증서를 사용합니다. Cockpit 인증서는 /etc/cockpit/ws-certs.d에서 관리됩니다.
  • Cockpit이 필요하지 않은 기간에는 cockpit.socket을 비활성화합니다.

자주 발생하는 오류와 해결 방법

CentOS Stream 10 Cockpit 설치 및 접속 오류
증상 가능한 원인 확인 및 해결 방법
No match for argument: cockpit 저장소가 비활성화되었거나 메타데이터 갱신에 실패함 dnf repolist --enabled로 저장소를 확인하고 dnf clean all, dnf makecache 실행 후 다시 설치합니다. DNS와 인터넷 연결도 함께 점검합니다.
Unit cockpit.socket not found Cockpit 패키지가 설치되지 않았거나 설치가 불완전함 rpm -q cockpit으로 설치 여부를 확인한 뒤 dnf install cockpit을 다시 실행합니다.
브라우저 접속 시간 초과 firewalld, 외부 방화벽 또는 보안 그룹에서 9090 포트를 차단함 firewall-cmd --get-active-zones--query-service=cockpit 결과를 확인하고, 호스팅 업체의 외부 방화벽에서도 관리 IP의 9090/tcp 접속을 허용합니다.
브라우저에서 연결 거부 cockpit.socket이 비활성 상태이거나 포트가 열려 있지 않음 systemctl status cockpit.socketss -lntp | grep ':9090'을 확인하고 소켓을 다시 활성화합니다.
브라우저 인증서 경고 초기 자체 서명 인증서를 사용 중임 서버 주소를 확인한 뒤 접속하고, 운영 환경에서는 신뢰할 수 있는 인증서를 /etc/cockpit/ws-certs.d에 적용합니다.
사용자 로그인이 실패함 계정명 또는 비밀번호 오류, 잠긴 계정, PAM 인증 문제 해당 계정으로 SSH 또는 콘솔 로그인이 가능한지 확인하고 최근 Cockpit 저널을 점검합니다. 비밀번호를 반복 입력하기 전에 계정 잠금 정책도 확인합니다.

Cockpit 관련 최근 로그를 확인하려면 다음 명령을 사용합니다.

sudo journalctl -u cockpit.socket --since "30 minutes ago" --no-pager
sudo journalctl --since "30 minutes ago" --no-pager | grep -i cockpit

소켓 활성화 실패, 인증 오류 또는 TLS 관련 메시지가 있는지 확인한 뒤 원인을 수정하고 다시 접속합니다.

Cockpit 비활성화 및 제거 방법

Cockpit 접속만 중지하기

Cockpit 패키지는 유지하면서 웹 콘솔 접속만 중지하려면 소켓을 비활성화합니다.

sudo systemctl disable --now cockpit.socket

firewalld의 일반 Cockpit 허용 규칙도 제거하려면 실제 활성 영역명으로 다음 명령을 실행합니다.

sudo firewall-cmd --permanent --zone=public --remove-service=cockpit
sudo firewall-cmd --reload

특정 IP 허용 rich rule을 사용했다면 추가할 때 사용한 규칙과 정확히 동일한 내용을 지정하여 삭제합니다.

sudo firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="198.51.100.20/32" service name="cockpit" accept'
sudo firewall-cmd --reload

패키지까지 제거하기

Cockpit을 더 이상 사용하지 않는 경우 소켓과 방화벽 규칙을 먼저 정리한 뒤 패키지를 제거합니다.

sudo dnf remove cockpit

공식 참고자료

  • CentOS ProjectCentOS Stream 10 Release Notes: CentOS Stream 10의 출시 및 지원 계열 확인. 조회일: 2026년 7월 19일.
  • Red Hat Documentation웹 콘솔 설치 및 활성화: cockpit 패키지, cockpit.socket, firewalld 설정 확인. 조회일: 2026년 7월 19일.
  • Cockpit ProjectRunning Cockpit: CentOS 계열 설치와 소켓 활성화 절차 확인. 조회일: 2026년 7월 19일.
  • Cockpit ProjectTCP Port and Address: 기본 포트 9090과 systemd 소켓 기반 수신 방식 확인. 조회일: 2026년 7월 19일.

자주 묻는 질문

Cockpit은 항상 실행되는 서비스인가요?

Cockpit은 기본적으로 systemd 소켓 활성화 방식을 사용합니다. cockpit.socket이 포트 9090에서 대기하고 있다가 접속 요청이 들어오면 필요한 웹 서비스 프로세스를 시작합니다.

방화벽에서 9090 포트를 모든 IP에 허용해야 하나요?

아닙니다. 관리 PC의 고정 IP, VPN 대역 또는 사설망만 허용하는 구성이 더 안전합니다. 서버 내부 firewalld뿐 아니라 호스팅 업체의 외부 방화벽에도 같은 접근 제한을 적용하는 것이 좋습니다.

로그인할 때 별도의 Cockpit 계정이 필요한가요?

기본적으로 서버의 로컬 사용자 계정 자격 증명을 사용합니다. 시스템 설정을 변경하려면 해당 계정에 적절한 관리자 권한이 있어야 합니다.

브라우저에 보안 인증서 경고가 표시되는 이유는 무엇인가요?

신뢰할 수 있는 TLS 인증서를 별도로 배치하지 않은 초기 구성에서는 자체 서명 인증서가 사용될 수 있기 때문입니다. 운영 환경에서는 서버 호스트명에 맞는 신뢰 가능한 인증서를 적용하는 것이 좋습니다.

Cockpit을 비활성화하면 웹 콘솔에서 변경한 설정도 사라지나요?

아닙니다. Cockpit 소켓을 비활성화하거나 패키지를 제거하면 웹 관리 화면에 접근할 수 없게 되지만, 이전에 systemd, 네트워크 또는 저장소 등에 적용한 설정은 자동으로 원상복구되지 않습니다.

마무리

이번 문서에서는 CentOS Stream 10에 Cockpit 웹 콘솔을 설치하고 cockpit.socket을 활성화한 뒤, firewalld에서 접속을 허용하고 브라우저로 정상 작동을 확인하는 방법을 살펴봤습니다.

Cockpit은 서버 관리에 편리하지만 관리자 기능이 외부에 노출되는 서비스이므로, 가능하면 특정 관리 IP나 VPN에서만 접근하도록 제한하고 신뢰할 수 있는 TLS 인증서를 적용해 운영하시기 바랍니다.

  • 0 사용자에게 유용한 정보 제공
이 답변이 도움이 되었나요?
« Back