본문으로 건너뛰기

webmin으로 리눅스 서버를 관리하는 방법은 무엇인가요?

💡 webmin은 리눅스 서버를 웹 브라우저의 GUI 환경에서 관리할 수 있게 해주는 강력한 서버 관리 도구입니다. Apache, MySQL, DNS, 사용자 계정 등을 명령줄 없이 직관적으로 관리할 수 있습니다.

설치 환경

  • CentOS 5.x (64bit) 기준 (CentOS 6, 7, 8, Rocky Linux 8/9도 지원)
  • Apache : /home/APM/apache (커스텀 설치 예시)
  • MySQL : /home/APM/mysql (커스텀 설치 예시)

1. webmin이란?

webmin은 리눅스 서버를 웹 브라우저에서 GUI 환경으로 관리할 수 있게 해주는 오픈소스 서버 관리 유틸리티입니다.

주요 기능:

  • 사용자 및 그룹 관리
  • Apache 웹 서버 설정
  • MySQL/MariaDB 데이터베이스 관리
  • DNS (BIND) 설정
  • 방화벽 (iptables/firewalld) 관리
  • 파일 시스템 관리 (파티션, 마운트)
  • 소프트웨어 패키지 설치/제거 (YUM, APT)
  • Cron 작업 스케줄링
  • 시스템 모니터링 (CPU, 메모리, 디스크 사용량)

장점:

  • 명령줄 지식이 부족한 관리자도 쉽게 서버 관리 가능
  • 웹 브라우저만 있으면 어디서나 접속 가능
  • 다양한 서비스를 한 곳에서 통합 관리
  • 커스텀 경로 설치 프로그램도 모듈 설정으로 지원

단점:

  • 보안 설정을 제대로 하지 않으면 보안 위험 (포트 10000 노출)
  • CLI보다 성능이 약간 떨어질 수 있음
  • 복잡한 설정은 여전히 수동 편집이 필요할 수 있음

공식 웹사이트:


2. webmin 설치

2.1 RPM 패키지 다운로드 (권장)

webmin 공식 웹사이트에서 RPM 패키지를 다운로드하여 설치합니다.

다운로드 방법:

1. 웹 브라우저 다운로드:

  • https://www.webmin.com/ 접속
  • 좌측 메뉴 또는 상단의 "Download" 클릭
  • "RPM" 섹션에서 최신 버전 선택 (예: webmin-2.105-1.noarch.rpm)
  • 다운로드 후 서버에 업로드 (SCP, SFTP)

2. 서버에서 직접 다운로드 (wget):

[root@cafe24 ~]# cd /usr/local/src
[root@cafe24 src]# wget https://prdownloads.sourceforge.net/webadmin/webmin-2.105-1.noarch.rpm

3. Webmin 공식 Yum 저장소 추가 (자동 업데이트 지원):

[root@cafe24 ~]# cat <<'EOF' > /etc/yum.repos.d/webmin.repo
[Webmin]
name=Webmin Distribution Neutral
baseurl=https://download.webmin.com/download/yum
enabled=1
gpgcheck=1
gpgkey=https://download.webmin.com/jcameron-key.asc
EOF

[root@cafe24 ~]# yum install webmin -y

2.2 RPM 설치

다운로드한 RPM 파일을 설치합니다.

[root@cafe24 src]# rpm -Uvh webmin-2.105-1.noarch.rpm
경고: webmin-2.105-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 11f63c51
설치중...                  ########################################### [100%]
Operating system is CentOS Linux
   1:webmin                 ########################################### [100%]
Webmin install complete. You can now login to http://cafe24:10000/
as root with your root password.

설치 완료 메시지:

  • 접속 URL: http://cafe24:10000/ (cafe24는 호스트명)
  • 초기 계정: root / 서버의 root 패스워드

2.3 설치 확인

webmin 서비스가 정상적으로 실행되고 있는지 확인합니다.

[root@cafe24 ~]# netstat -nlpt | grep 10000
tcp        0      0 0.0.0.0:10000               0.0.0.0:*                   LISTEN      27094/perl

# 또는 systemctl로 확인 (CentOS 7 이상)
[root@cafe24 ~]# systemctl status webmin
● webmin.service - Webmin server daemon
   Loaded: loaded (/etc/systemd/system/webmin.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2025-11-17 17:00:00 KST; 10min ago

포트 10000이 LISTEN 상태이면 webmin이 정상적으로 실행 중입니다.

2.4 방화벽 설정

외부에서 webmin에 접속하려면 방화벽에서 포트 10000을 열어야 합니다.

iptables (CentOS 5, 6):

[root@cafe24 ~]# iptables -I INPUT -p tcp --dport 10000 -j ACCEPT
[root@cafe24 ~]# service iptables save

firewalld (CentOS 7, 8, Rocky Linux):

[root@cafe24 ~]# firewall-cmd --permanent --add-port=10000/tcp
[root@cafe24 ~]# firewall-cmd --reload

3. webmin 접속 및 초기 설정

3.1 웹 브라우저 접속

웹 브라우저에서 다음 URL로 접속합니다.

http://서버IP:10000
또는
https://서버IP:10000 (SSL 활성화 시)

예시:

http://1.234.56.78:10000

주의:

  • 기본적으로 webmin은 자체 서명 SSL 인증서를 사용합니다.
  • 브라우저에서 "연결이 비공개로 설정되지 않음" 경고가 나타날 수 있습니다.
  • 고급 → 계속 진행 클릭하여 접속합니다.

3.2 로그인

초기 계정 정보:

  • Username: root
  • Password: 서버의 root 패스워드

로그인 후 webmin 메인 대시보드가 표시됩니다.

3.3 언어 설정 (한글로 변경)

기본 언어는 영어이므로, 한글로 변경하는 것이 좋습니다.

변경 방법:

  1. 좌측 메뉴 → WebminWebmin Configuration 클릭
  2. Language 섹션 클릭
  3. Webmin UI language 드롭다운에서 Korean (한국어) 선택
  4. 하단의 Change Language 버튼 클릭

화면 갱신:

  • 언어 변경 후 좌측 메뉴가 즉시 한글로 변경되지 않을 수 있습니다.
  • F5 키를 눌러 페이지를 새로고침하면 한글 메뉴가 표시됩니다.

4. 커스텀 경로 프로그램 설정

RPM으로 설치된 Apache, MySQL 등은 webmin이 자동으로 인식합니다. 하지만 커스텀 경로에 컴파일 설치한 경우, 수동으로 경로를 설정해야 합니다.

4.1 Apache 웹 서버 설정

커스텀 경로에 설치된 Apache를 webmin에서 관리하도록 설정합니다.

상황:

  • Apache가 /home/APM/apache에 설치됨 (기본 경로 /usr/sbin/httpd가 아님)
  • webmin에서 Apache 모듈을 클릭하면 "Apache가 설치되지 않음" 오류 발생

설정 방법:

1단계: 사용하지 않는 모듈 활성화

  • 좌측 메뉴 → 사용하지 않는 모듈Apache Webserver 클릭

오류 메시지:

Apache 서버 실행 파일 /usr/sbin/httpd이(가) 존재하지 않습니다.
Apache가 설치되어 있다면 정확한 경로를 사용하도록 모듈 구성을 조정하십시오.

2단계: 모듈 구성 클릭

  • 오류 메시지 아래의 "모듈 구성" 링크 클릭

3단계: Apache 경로 수정

다음 항목을 Apache가 설치된 실제 경로로 수정합니다.

설정 항목수정할 값
Apache server root directory/home/APM/apache
Path to httpd executable/home/APM/apache/bin/httpd
Path to the apachectl command/home/APM/apache/bin/apachectl
Command to start apache/home/APM/apache/bin/apachectl start
Command to stop apache/home/APM/apache/bin/apachectl stop
Command to apply configuration/home/APM/apache/bin/apachectl graceful

4단계: 저장 및 확인

  • 하단의 "저장" 버튼 클릭
  • F5 키로 화면 새로고침
  • 좌측 메뉴 → 서버Apache Webserver 항목 확인

4.2 MySQL 데이터베이스 서버 설정

커스텀 경로에 설치된 MySQL을 webmin에서 관리하도록 설정합니다.

상황:

  • MySQL이 /home/APM/mysql에 설치됨
  • webmin에서 MySQL 모듈을 클릭하면 "MySQL이 설치되지 않음" 오류 발생

설정 방법:

1단계: 사용하지 않는 모듈 활성화

  • 좌측 메뉴 → 사용하지 않는 모듈MySQL 데이터베이스 서버 클릭

오류 메시지:

시스템에 MySQL 관리 프로그램 /usr/bin/mysqladmin이(가) 없습니다.
MySQL이 설치되어 있지 않거나 모듈 구성이 정확하지 않을 수 있습니다.

2단계: 모듈 구성 클릭

  • 오류 메시지 아래의 "모듈 구성" 링크 클릭

3단계: MySQL 경로 수정

다음 항목을 MySQL이 설치된 실제 경로로 수정합니다.

설정 항목수정할 값
Path to mysqlshow command/home/APM/mysql/bin/mysqlshow
Path to mysqladmin command/home/APM/mysql/bin/mysqladmin
Path to mysql command/home/APM/mysql/bin/mysql
Path to mysqldump command/home/APM/mysql/bin/mysqldump
Path to mysqlimport command/home/APM/mysql/bin/mysqlimport
Command to start MySQL server/home/APM/mysql/share/mysql/mysql.server start
Command to stop MySQL server/home/APM/mysql/share/mysql/mysql.server stop
Path to MySQL databases directory/home/APM/mysql/var
MySQL configuration file/etc/my.cnf

4단계: 저장 및 확인

  • 하단의 "저장" 버튼 클릭
  • F5 키로 화면 새로고침
  • 좌측 메뉴 → 서버MySQL 데이터베이스 서버 항목 확인

5. 주요 기능 사용법

5.1 사용자 및 그룹 관리

경로: 좌측 메뉴 → 시스템사용자 및 그룹

주요 작업:

  • 새 사용자 추가
  • 사용자 비밀번호 변경
  • 그룹 생성 및 관리
  • 사용자의 홈 디렉토리 및 쉘 설정

예시: 새 사용자 생성

  1. "사용자 추가" 버튼 클릭
  2. Username: testuser
  3. Home directory: /home/testuser
  4. Shell: /bin/bash
  5. Password: 패스워드 입력
  6. 생성 버튼 클릭

5.2 파일 관리자

경로: 좌측 메뉴 → 기타파일 관리자

주요 작업:

  • 파일 및 폴더 생성, 삭제, 이동, 복사
  • 파일 권한 및 소유자 변경
  • 파일 업로드/다운로드
  • 텍스트 파일 편집

예시: Apache 설정 파일 편집

  1. 파일 관리자 접속
  2. /home/APM/apache/conf/httpd.conf 파일 찾기
  3. 파일명 클릭 → 편집 버튼
  4. 설정 수정 후 저장
  5. Apache 재시작 (좌측 메뉴 → 서버 → Apache Webserver → 재시작)

5.3 Scheduled Cron Jobs (예약 작업)

경로: 좌측 메뉴 → 시스템Scheduled Cron Jobs

주요 작업:

  • 주기적으로 실행할 스크립트 등록
  • 백업 스크립트 자동화
  • 로그 정리 작업 예약

예시: 매일 새벽 2시에 데이터베이스 백업

  1. "새 Cron 작업 추가" 클릭
  2. 실행할 사용자: root
  3. 명령: /home/APM/mysql/bin/mysqldump -u root -p'password' dbname > /backup/dbname_$(date +\%Y\%m\%d).sql
  4. 실행 시간:
    • 분: 0
    • 시간: 2
    • 일: *
    • 월: *
    • 요일: *
  5. 생성 버튼 클릭

5.4 시스템 모니터링

경로: 좌측 메뉴 → 시스템시스템 상태

표시 정보:

  • CPU 사용률
  • 메모리 사용량
  • 디스크 사용량
  • 네트워크 트래픽
  • 실행 중인 프로세스
  • 시스템 업타임

6. 보안 설정

webmin은 강력한 도구이지만, 보안 설정을 제대로 하지 않으면 서버가 위험에 노출될 수 있습니다.

6.1 SSL/TLS 활성화 (HTTPS)

webmin은 기본적으로 SSL을 사용하지만, 자체 서명 인증서를 사용합니다. Let's Encrypt 인증서로 교체하는 것이 좋습니다.

Let's Encrypt 인증서 적용:

  1. 좌측 메뉴 → WebminWebmin Configuration
  2. SSL Encryption 클릭
  3. Let's Encrypt 탭 선택
  4. 도메인 입력 (예: admin.yourdomain.com)
  5. Request Certificate 클릭

6.2 IP 접근 제한

특정 IP에서만 webmin에 접근하도록 제한합니다.

설정 방법:

  1. 좌측 메뉴 → WebminWebmin Configuration
  2. IP Access Control 클릭
  3. Allow from addresses: 1.2.3.4 (허용할 IP 입력)
  4. Deny from addresses: all (나머지 모두 차단)
  5. 저장 클릭

6.3 Two-Factor Authentication (2FA) 활성화

보안 강화를 위해 2단계 인증을 활성화합니다.

설정 방법:

  1. 좌측 메뉴 → WebminWebmin Users
  2. root 사용자 클릭
  3. Two-Factor Authentication 섹션
  4. Google Authenticator 선택
  5. QR 코드 스캔 후 설정 완료

6.4 기본 포트 변경

포트 10000은 잘 알려진 webmin 포트이므로, 다른 포트로 변경하는 것이 좋습니다.

설정 방법:

  1. 좌측 메뉴 → WebminWebmin Configuration
  2. Ports and Addresses 클릭
  3. Listen on port: 12345 (원하는 포트 입력)
  4. 저장 및 재시작 클릭

변경 후 접속:

https://서버IP:12345

6.5 로그 모니터링

webmin 접속 로그를 주기적으로 확인하여 비정상적인 접근을 감지합니다.

로그 파일 위치:

/var/webmin/miniserv.log

로그 확인:

[root@cafe24 ~]# tail -f /var/webmin/miniserv.log
2025-11-17 17:00:00 [127.0.0.1] root : Successful login
2025-11-17 17:05:30 [1.2.3.4] admin : Failed login

7. 트러블슈팅

7.1 webmin 접속 불가

증상:

  • http://서버IP:10000 접속 시 "연결할 수 없음" 오류 발생

원인 및 해결:

1. webmin 서비스 중지됨

[root@cafe24 ~]# systemctl status webmin
● webmin.service - Webmin server daemon
   Active: inactive (dead)

# 해결: 서비스 시작
[root@cafe24 ~]# systemctl start webmin
[root@cafe24 ~]# systemctl enable webmin

2. 방화벽에서 포트 10000 차단됨

[root@cafe24 ~]# firewall-cmd --list-ports
# 10000/tcp가 없으면 추가
[root@cafe24 ~]# firewall-cmd --permanent --add-port=10000/tcp
[root@cafe24 ~]# firewall-cmd --reload

3. SELinux 차단

[root@cafe24 ~]# setenforce 0
# 또는 영구적으로 비활성화
[root@cafe24 ~]# vi /etc/selinux/config
SELINUX=disabled

7.2 "Module not found" 오류

증상:

  • Apache 또는 MySQL 모듈 클릭 시 "모듈을 찾을 수 없음" 오류

해결:

  • 모듈 구성에서 정확한 경로 설정 (위의 4.1, 4.2 참고)
  • 프로그램이 실제로 설치되어 있는지 확인
[root@cafe24 ~]# /home/APM/apache/bin/httpd -v
Server version: Apache/2.4.52 (Unix)

7.3 로그인 비밀번호 분실

해결: 패스워드 리셋

[root@cafe24 ~]# /usr/libexec/webmin/changepass.pl /etc/webmin root 새비밀번호
Updated password of Webmin user root

8. webmin vs 대안 도구

기능webminCockpitcPanel/Plesk
라이선스오픈소스 (무료)오픈소스 (무료)상용 (유료)
사용 편의성중간쉬움매우 쉬움
서버 관리포괄적기본적포괄적 + 웹 호스팅 특화
리소스 사용낮음매우 낮음높음
커스터마이징높음중간낮음
학습 곡선중간낮음낮음

선택 기준:

  • webmin: 무료로 다양한 서비스를 관리하고 싶을 때
  • Cockpit: 최신 RHEL/CentOS 환경에서 가벼운 관리 도구가 필요할 때
  • cPanel/Plesk: 웹 호스팅 사업자가 고객에게 제공할 때

9. Best Practices

  1. 정기 업데이트: webmin을 최신 버전으로 유지하여 보안 취약점을 패치합니다.

    [root@cafe24 ~]# yum update webmin
    
  2. 최소 권한 원칙: root 계정 대신 제한된 권한의 webmin 사용자를 생성합니다.

    • 좌측 메뉴 → Webmin → Webmin Users → Create a new Webmin user
  3. 백업 설정: webmin 설정을 주기적으로 백업합니다.

    • 좌측 메뉴 → Webmin → Backup Configuration Files
  4. 로그 보존: webmin 접속 로그를 충분한 기간 보존하여 보안 감사에 활용합니다.

  5. SSL 인증서 갱신: Let's Encrypt 인증서는 90일마다 갱신이 필요합니다.

    • Webmin Configuration → SSL Encryption → Let's Encrypt → Renew Certificate

10. 참고 자료