Ubuntu 및 Debian 시스템에서 ‘apt-mirror’로 로컬 저장소 설정하기

오늘날 트래픽과 일반적인 인터넷 클라이언트에게는 심지어 긴청 동안도 테랍의 기가로 측정될 때, LAN에 로컬 저장소 캐시를 설정하는 목적이 무엇인지 묻고 싶을 수 있습니다.

Setup Local Repositories in Ubuntu

이유 중 하나는 인터넷 대역폭과 로컬 캐시로부터 패키지를 빠르게 끌어오는 높은 속도를 줄이는 것입니다. 그러나 또 다른 주된 이유는 개인 정보 보호여야 합니다. 조직의 클라이언트들이 인터넷에 제한되어 있지만, 그들의 Linux 상자들이 소프트웨어 및 보안에 대한 정기적인 시스템 업데이트가 필요하거나 그냥 새로운 소프트웨어 패키지가 필요할 때 상상해보십시오. 더 나아가, 비공개 네트워크에서 실행되는 서버가 있어, 제한된 네트워크 세그먼트에만 비밀 민감 정보를 포함하고 제공하며, 공개 인터넷에 노출되어서는 안됩니다.

이것은 LAN에 로컬 저장소 미러를 구축하고, 이 작업을 수행할 가장자리 서버를 할당하고, 내부 클라이언트를 구성하여 소프트웨어를 캐시 미러에서 가져오도록 해야 하는 몇 가지 이유에 대한 것입니다.

우분투는 로컬 캐시를 공식 우분투 저장소와 동기화하는 데 사용할 수 있는 apt-mirror 패키지를 제공하며, 이 미러는 로컬 시스템 클라이언트들과 소프트웨어 패키지를 공유하기 위해 HTTP 또는 FTP 서버를 통해 구성할 수 있습니다.

완전한 미러 캐시를 위해 서버에는 적어도 120G의 무료 공간이 필요합니다.

요구 사항

  1. 최소 120G의 무료 공간
  2. 익명 모드로 설치 및 구성된 Proftpd 서버

단계 1: 서버 구성

1.가장 먼저 할 일은 근처에 위치한 가장 빠른 우분투 미러를 식별하여 방문하여 귀하의 Ubuntu 아카이브 미러 페이지를 선택한 국가를 선택하십시오.

Ubuntu Archive Mirror

당신의 국가가 더 많은 미러를 제공한다면 미러 주소를 확인하고 또는 트레이스루트 결과를 기반으로 몇 가지 테스트를 수행해야 합니다.

Select Mirror Location

2.다음 단계는 로컬 미러 저장소를 설정하기 위해 필요한 소프트웨어를 설치하는 것입니다. apt-mirrorproftpd 패키지를 설치하고 proftpd를 독립 시스템 데몬으로 구성하십시오.

$ sudo apt-get install apt-mirror proftpd-basic
Install apt-mirror Proftpd
ProFTPD Configuration

3.이제 apt-mirror 서버를 구성할 시간입니다. 가장 가까운 위치(단계 1)를 추가하여 – 선택 사항이며, 기본 미러가 충분히 빠르거나 급히 해야 할 일이 없는 경우 – /etc/apt/mirror.list 파일을 열고 편집하십시오. 패키지를 다운로드할 시스템 경로를 선택하십시오. 기본적으로 apt-mirror는 로컬 캐시로 /var/spool/apt-mirror 위치를 사용하지만이 자습서에서는 시스템 경로를 변경하고 set base_path 지시문을 /opt/apt-mirror 위치로 지정할 것입니다.

$ sudo nano /etc/apt/mirror.list
Configure apt-mirror Server.

또한 클린 지시문 이전에 추가할 다른 소스 목록을 언커멘트하거나 추가할 수 있습니다 – 데비안 소스를 포함하여 – 귀하의 클라이언트가 사용하는 우분투 버전에 따라 선택하십시오. 좋은 소스를 추가하려면 12.04에서 소스를 추가할 수 있지만, 추가하는 소스가 많을수록 더 많은 여유 공간이 필요하다는 점을 유의하십시오.

Debian 소스 목록을 확인하려면 Debian 위키Debian Sources 목록 생성기를 방문하세요.

4. 이제 할 일은 디렉토리 경로를 만들고 apt-mirror 명령을 실행하여 공식 Ubuntu 저장소를 로컬 미러와 동기화하는 것뿐입니다.

$ sudo mkdir -p /opt/apt-mirror
$ sudo apt-mirror
Create apt-mirror Paths

apt-mirror가 색인 및 아카이브 다운로드를 진행하고 다운로드한 패키지의 총 수와 크기를 표시합니다. 우리가 상상할 수 있는 바로 110-120 GB는 다운로드하는 데 많은 시간이 걸릴만큼 충분히 큽니다.

디렉토리 내용을 보려면 ls 명령어를 실행할 수 있습니다.

Verify apt-mirror Paths

초기 다운로드가 완료되면 향후 다운로드는 작아질 것입니다.

5. apt-mirror가 패키지를 다운로드하는 동안 Proftpd 서버를 구성할 수 있습니다. 해야 할 첫 번째 단계는 다음 명령을 실행하여 Proftpd를 위한 익명 구성 파일을 만드는 것입니다.

$ sudo nano /etc/proftpd/conf.d/anonymous.conf

그런 다음 anonymous.conf 파일에 다음 내용을 추가하고 proftd 서비스를 재시작하세요.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>
Configure ProFTPD

6. 다음 단계는 apt-mirror 경로를 proftpd 경로에 링크하는 것인데, 다음 명령을 사용하여 바인드 마운트를 수행하세요.

$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
Mount apt-mirror to ProFTP Path

확인하려면 매개변수나 옵션 없이 mount 명령을 실행하세요.

$ mount
Verify Paths

7. 마지막 단계는 시스템 재부팅 후에 Proftpd 서버가 자동으로 시작되고 mirror-cache 디렉토리가 FTP 서버 경로에 자동으로 마운트되도록 하는 것입니다. Proftpd를 자동으로 활성화하려면 다음 명령을 실행하십시오.

$ sudo update-rc.d proftpd enable

$ sudo nano /etc/rc.local

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
Auto Mount Apt Mirrors

$ sudo mkdir /srv/ftp/debian
$ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/
Debian Repository Setup

8. 매일 apt-mirror 동기화를 위해 시스템 일정 작업을 저녁 2시에 실행하도록 설정할 수 있습니다. crontab 명령어를 실행한 다음 원하는 편집기를 선택하고 다음 줄 구문을 추가하십시오.

$ sudo crontab –e
Daily apt-mirror Synchronization

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log
Add Cron Entry for Synchronization

매일 2시에 시스템 저장소 캐시가 Ubuntu 공식 미러와 동기화되며 로그 파일이 생성됩니다.

9. 로컬 Ubuntu 클라이언트를 구성하려면 클라이언트 컴퓨터의 /etc/apt/source.list 파일을 편집해야 합니다. 해당 파일을 apt-mirror 서버의 IP 주소 또는 호스트 이름으로 변경하고 시스템을 업데이트하십시오.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….
Configure Clients

10. 저장소를 보려면 실제로 브라우저를 열고 FTP 프로토콜을 사용하여 서버 IP 주소 또는 도메인 이름을 가리키십시오.

View Local Repositories

동일한 시스템은 데비안 클라이언트 및 서버에도 적용되며, 필요한 변경 사항은 데비안 미러소스 목록 뿐입니다.

또한 새로운 우분투 또는 데비안 시스템을 설치하는 경우, 설치 프로그램이 어떤 저장소를 사용할지 묻는 경우 로컬 미러를 수동으로 FTP 프로토콜로 제공하십시오.

자체 로컬 미러 저장소를 보유하면 항상 최신 상태를 유지할 수 있고 로컬 클라이언트가 업데이트나 소프트웨어를 설치하기 위해 인터넷에 연결할 필요가 없습니다.

Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/