리눅스 프로젝트 2

sso·2025년 5월 9일
0

리눅스 서버

목록 보기
38/40

1. 웹 메일 서버, 클라이언트 서버 설정

1-1. 기본 패키지 설치

# 웹 서버 및 PHP 설치 (웹메일, 리포지터리용)

dnf -y install php* httpd

# 메일 서버 구성 요소 설치

dnf -y install sendmail dovecot

# 유틸리티 (nslookup 등 DNS 도구)

dnf -y install bind-utils

1-2. PHP 모듈 정리 (Roundcube 요구사항 맞추기)

dnf module list php
dnf module reset php -y
dnf module enable php:8.2 -y
dnf -y remove php*
dnf -y install php*

1-3. 방화벽 설정

# 웹 서버 (http)

firewall-cmd --add-service=http

# 메일 관련 서비스

firewall-cmd --add-service={imap,imaps,smtp,smtps,pop3,pop3s}

# 방화벽 설정 영구 적용

firewall-cmd --runtime-to-permanent

1-4. 메일 서버 설정 (Sendmail)

1. sendmail.cf 수정

vi /etc/mail/sendmail.cf
- Cwlocalhost → Cwmail.slime.com 으로 변경
- 데몬 포트 옵션에 Addr=127.0.0.1 같은 localhost 바인딩이 있다면 삭제

2. local-host-names 등록

vi /etc/mail/local-host-names
slime.com RELAY
pepsi.com RELAY  # → 상대 메일 서버 도메인

3. access 파일 수정

vi /etc/mail/access
mail.slime.com
mail.pepsi.com

makemap hash /etc/mail/access < /etc/mail/access

4. Sendmail 서비스 시작

systemctl enable --now sendmail

1-5. 메일 수신 서버 설정 (Dovecot)

vi /etc/dovecot/dovecot.conf
- 24, 30, 33행 주석 제거 (protocols, listen, base_dir)
vi /etc/dovecot/conf.d/10-ssl.conf
- ssl = required → ssl = yes
vi /etc/dovecot/conf.d/10-mail.conf
- 25행 주석 제거 (mail_location)
- mail_access_groups = mail

systemctl enable --now dovecot

1-6. 웹메일 클라이언트 설치 (Roundcube)

cd /var/www/html/

curl -O -L https://github.com/roundcube/roundcubemail/releases/download/1.6.10/roundcubemail-1.6.10-complete.tar.gz

tar -xzf roundcubemail-1.6.10-complete.tar.gz

ln -s roundcubemail-1.6.10 rc

chown -R apache:apache roundcubemail-1.6.10

1-7. Apache 웹 서버 시작

systemctl enable --now httpd

1-8. DNS 확인 (상대방 DNS 사용 중이므로)

vi /etc/resolv.conf
# nameserver [상대방 DNS IP]

nslookup mail.slime.com
nslookup mail.pepsi.com # 상대 메일 서버 테스트


2. 리포지터리 서버 구축

(서버 4번, IP: 10.0.2.214) 설정 순서

2-1. 서버 구축

1. 필요한 패키지 설치

dnf -y install httpd createrepo yum-utils

2. ISO 마운트 및 디렉토리 구성

mkdir /localrepo
mount /dev/sr0 /localrepo

3. 로컬 리포지터리 생성 디렉토리 준비

mkdir -p /var/www/html/repo/baseos

4. 리포지터리 동기화

reposync -m --repoid=baseos --newest-only --download-metadata -p /var/www/html/repo

5. 메타데이터 생성

createrepo /var/www/html/repo/baseos

6. Apache 웹 서버 활성화

systemctl restart httpd

2-2. 클라이언트 측 설정

1. 기존 .repo 제거(백업)

cd /etc/yum.repos.d
mv *.repo ./repobackup/.

2. 새로운 .repo 파일 작성

vi newrepo.repo
[BaseOS]
name=Linux BaseOS
baseurl=http://10.0.2.214/repo/baseos
enabled=1
gpgcheck=0

3. 동작 확인

dnf clean all
dnf makecache
dnf -y install curl
profile
오늘도 하나씩 해결해 나가자!

0개의 댓글