Linux 보안상 인터넷 불가 서버에 추가 패키지 설치하기

linux Linux

인터넷이 연결되어 있는 곳에서 Linux 서버를 구축하려고 하면 인터넷을 경유해서 OS 설치용 iso파일을 다운로드해서 바로 Linux 서버를 설치할 수 있습니다. 그리고 설치된 Linux 서버도 인터넷 접속이 가능하도록 설정한 후 yum명령으로 인터넷에 있는 패키지 저장소(Repository)를 이용하여 추가 패키지(툴 또는 미들웨어 등)를 바로 설치할 수 있습니다.

참고로 인터넷을 경유한 Linux 서버를 구축하는 방법은 다음 글을 참조하십시오

RedHat rhel-7 패키지 저장소(Repository) 사용을 위한 Subscription Manager 등록하기
RedHat Enterprise Linux 7.9에서 PostgreSQL 12 개발자 라이브러리 설치하기

보안 상 인터넷이 연결되어 있지 않은 장소에 Linux 서버를 구축하고 싶다면 Red Hat Enterprise Linux 8.0 dvd버전 설치하기, Red Hat Enterprise Linux 7.9 dvd버전 설치하기 글에서 언급한 내용처럼 OS 설치용 iso파일을 DVD로 저장해서 가지고 들어가야 합니다. 그리고 Linux 서버를 구축한 후에도 인터넷에 접속할 수 없기 때문에 외부에서 yum명령으로 인터넷에 있는 패키지 저장소(Repository)를 이용하여 추가 패키지(툴 또는 미들웨어 등)를 다운로드하고 USB, DVD등의 매체에 저장해서 가지고 들어가야 합니다.

이 글에서는 외부에서 Linux용 추가 패키지를 다운로드하는 방법을 소개합니다.

패키지 다운로드

패키지 저장소(Repository) 설치 cache 삭제

우선 패키지 저장소(Repository)의 cache를 삭제합니다. 이 명령은 실행하지 않아도 문제는 없습니다. 깨끗한 환경에서의 설치 결과를 얻기 위해 실행하였습니다. 상세한 설명은 Linux 7 버전 yum install 또는 update에 사용한 설치 프로그램 cache 삭제하기 을 참조하십시오

# yum clean all
Updating Subscription Management repositories.
16 files removed

다운로드(–downloadonly)

다음 명령으로 패키지를 설치하지 않고 관련 패키지만을 다운로드합니다.

  • –downloadonly 설치 없이 다운로드만을 지시합니다.
  • –downloaddir=./httpd24 현재 디렉토리에 있는 httpd24 장소에 다운로드한 파일을 저장을 지시합니다.
  • httpd 추가 패키지 명 입니다.
# yum install --downloadonly --downloaddir=./httpd24 httpd
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                           11 MB/s |  32 MB     00:02
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                             9.7 MB/s |  37 MB     00:03
Last metadata expiration check: 0:00:06 ago on Thu Sep 23 14:47:59 2021.
Dependencies resolved.
==================================================================================================================
 Package              Arch     Version                                   Repository                          Size
==================================================================================================================
Installing:
 httpd                x86_64   2.4.37-39.module+el8.4.0+9658+b87b2deb    rhel-8-for-x86_64-appstream-rpms   1.4 M
Installing dependencies:
 apr-util             x86_64   1.6.1-6.el8                               rhel-8-for-x86_64-appstream-rpms   105 k
 apr                  x86_64   1.6.3-11.el8                              rhel-8-for-x86_64-appstream-rpms   125 k
 httpd-filesystem     noarch   2.4.37-39.module+el8.4.0+9658+b87b2deb    rhel-8-for-x86_64-appstream-rpms    38 k
 mod_http2            x86_64   1.15.7-3.module+el8.4.0+8625+d397f3da     rhel-8-for-x86_64-appstream-rpms   154 k
 httpd-tools          x86_64   2.4.37-39.module+el8.4.0+9658+b87b2deb    rhel-8-for-x86_64-appstream-rpms   106 k
 redhat-logos-httpd   noarch   84.4-1.el8                                rhel-8-for-x86_64-baseos-rpms       29 k
Installing weak dependencies:
 apr-util-openssl     x86_64   1.6.1-6.el8                               rhel-8-for-x86_64-appstream-rpms    27 k
 apr-util-bdb         x86_64   1.6.1-6.el8                               rhel-8-for-x86_64-appstream-rpms    25 k
Enabling module streams:
 httpd                         2.4

Transaction Summary
==================================================================================================================
Install  9 Packages

Total download size: 2.0 M
Installed size: 5.4 M
DNF will only download packages for the transaction.
Is this ok [y/N]: y
Downloading Packages:
(1/9): apr-util-openssl-1.6.1-6.el8.x86_64.rpm                                     22 kB/s |  27 kB     00:01
(2/9): apr-util-bdb-1.6.1-6.el8.x86_64.rpm                                         20 kB/s |  25 kB     00:01
(3/9): apr-util-1.6.1-6.el8.x86_64.rpm                                             75 kB/s | 105 kB     00:01
(4/9): apr-1.6.3-11.el8.x86_64.rpm                                                645 kB/s | 125 kB     00:00
(5/9): httpd-filesystem-2.4.37-39.module+el8.4.0+9658+b87b2deb.noarch.rpm         108 kB/s |  38 kB     00:00
(6/9): mod_http2-1.15.7-3.module+el8.4.0+8625+d397f3da.x86_64.rpm                 776 kB/s | 154 kB     00:00
(7/9): httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64.rpm                    3.7 MB/s | 1.4 MB     00:00
(8/9): httpd-tools-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64.rpm              500 kB/s | 106 kB     00:00
(9/9): redhat-logos-httpd-84.4-1.el8.noarch.rpm                                   154 kB/s |  29 kB     00:00
------------------------------------------------------------------------------------------------------------------
Total                                                                             1.1 MB/s | 2.0 MB     00:01
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.

다운로드 결과 확인

# ls ./httpd24
apr-1.6.3-11.el8.x86_64.rpm
apr-util-1.6.1-6.el8.x86_64.rpm
apr-util-bdb-1.6.1-6.el8.x86_64.rpm
apr-util-openssl-1.6.1-6.el8.x86_64.rpm
httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64.rpm
httpd-filesystem-2.4.37-39.module+el8.4.0+9658+b87b2deb.noarch.rpm
httpd-tools-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64.rpm
mod_http2-1.15.7-3.module+el8.4.0+8625+d397f3da.x86_64.rpm
redhat-logos-httpd-84.4-1.el8.noarch.rpm

# cd ./httpd24
# pwd
/root/httpd24

패키지 설치

다음과 같이 하나하나 파일을 지정하여 설치하면 의존성 에러가 발생합니다.

# rpm -ivf httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64.rpm
error: Failed dependencies:
        httpd-filesystem is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
        httpd-filesystem = 2.4.37-39.module+el8.4.0+9658+b87b2deb is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
        httpd-tools = 2.4.37-39.module+el8.4.0+9658+b87b2deb is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
        libapr-1.so.0()(64bit) is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
        libaprutil-1.so.0()(64bit) is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
        mod_http2 is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
        system-logos-httpd >= 82.0 is needed by httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64

의존 관련 패키지를 설치하는 방법은 다음과 같습니다.

# rpm -ivf *.rpm
Verifying packages...
Preparing packages...
apr-1.6.3-11.el8.x86_64
apr-util-bdb-1.6.1-6.el8.x86_64
apr-util-openssl-1.6.1-6.el8.x86_64
apr-util-1.6.1-6.el8.x86_64
httpd-tools-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
redhat-logos-httpd-84.4-1.el8.noarch
httpd-filesystem-2.4.37-39.module+el8.4.0+9658+b87b2deb.noarch
mod_http2-1.15.7-3.module+el8.4.0+8625+d397f3da.x86_64
httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64
[/usr/lib/tmpfiles.d/libstoragemgmt.conf:1] Line references path below legacy directory /var/run/, updating /var/run/lsm → /run/lsm; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/libstoragemgmt.conf:2] Line references path below legacy directory /var/run/, updating /var/run/lsm/ipc → /run/lsm/ipc; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/mdadm.conf:1] Line references path below legacy directory /var/run/, updating /var/run/mdadm → /run/mdadm; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/subscription-manager.conf:1] Line references path below legacy directory /var/run/, updating /var/run/rhsm → /run/rhsm; please update the tmpfiles.d/ drop-in file accordingly.
제목과 URL을 복사했습니다