[Linux] CentOS Stream 9 환경 구축 1 - 하드디스크 파티션 lvcreate / 원격 데스크톱 연결

EUN JY·2024년 3월 25일
1

Linux

목록 보기
2/9
post-thumbnail

1. 구성

  • 프로젝트명은 ProjYj2024, 사용자는 projyj 라고 간주하고 설명함
    • 신규 개발한 ProjYj2024, 기존에 개발된 ProjYjSvr(ProjYj) 프로젝트에 모두 접속할 수 있도록 구성함
    • ProjYj2024ProjYjSvr 의 API 를 사용

1-1. SSD

  • Oracel/MySQL 엔진
  • 서버
  • OS : CentOs Stream 9

🔶 CentOs Stream 9

  • IP : 192.168.1.999 / PORT : 22
  • ID : root / PW : password$$

1-2. HDD

  • DB

🔶 MySQL

  • ID : root / PW : password$$

1-3. 포트별 접속 정보

🔶 Jenkins

  • 초기 패스워드 : 070b01f500e94ca1b1a3c3fa01b0c911
  • Admin User 정보
    • ID : projyj / PW : password$$ / E-Mail : projyj@email.addr.com

🔶 Github

2. CentOs Stream 9

🔶 Keyboard

  • English 로 설정함

🔶 Installation Destination

  • 저장소 구성은 변경하지 않고 기본으로 설치하였음

🔶 소프트웨어 선택

  • 설치하고 싶은 환경을 선택 후 Done
  • 일반적으로 테스트 목적으로 Server with GUI 환경으로 설치

🔶 Network & Host

  • 이더넷이 잘 켜져있는지 확인 후 Done

2-1. 접속

  • CentOs Stream 9 부팅 > root 계정으로 접속 > IP 확인
[root@localhost ~]$ hostname -I
192.168.1.999
  • Putty 로 ssh 접속하여 계속 진행

🔶 OS 정보 확인

  • cat /etc/os-release
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"

🔶 hostnamectl 정보

  • 아무 인자없이 hostnamectl 실행 시 > 시스템의 호스트명, Chassis, Machine ID, Boot ID, 가상화, 커널 버전 등의 정보를 출력
  • 호스트명 변경 시 : set-hostname 과 변경할 호스트명을 입력 (hostnamectl set-hostname [변경할 호스트명])
[root@localhost ~]# hostnamectl
   Static hostname: (unset)
Transient hostname: localhost
         Icon name: computer-desktop
           Chassis: desktop 🖥️
        Machine ID: aea36b66c60547078fd6d43ffc1a4736
           Boot ID: afece10043164066a0a98a689a500628
  Operating System: CentOS Stream 9
       CPE OS Name: cpe:/o:centos:centos:9
            Kernel: Linux 5.14.0-427.el9.x86_64
      Architecture: x86-64
   Hardware Vendor: Micro-Star International Co., Ltd.
    Hardware Model: MS-7D22
  Firmware Version: 1.30

2-2. 파티션 확인

[root@localhost ~]# fdisk -l
Disk /dev/nvme0n1: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 970 EVO Plus 500GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3B8AB5CB-8566-4D97-AB1B-9596BE837479

Device           Start       End   Sectors   Size Type
/dev/nvme0n1p1    2048   1230847   1228800   600M EFI System
/dev/nvme0n1p2 1230848   3327999   2097152     1G Linux filesystem
/dev/nvme0n1p3 3328000 976773119 973445120 464.2G Linux LVM


Disk /dev/sda: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HDN724040AL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 42B2D9E1-D9F9-4E97-A835-008CB7AC2269

Device     Start        End    Sectors  Size Type
/dev/sda1   2048 7814035455 7814033408  3.6T Microsoft basic data


Disk /dev/mapper/cs-root: 70 GiB, 75161927680 bytes, 146800640 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/cs-swap: 15.65 GiB, 16806576128 bytes, 32825344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/cs-home: 378.52 GiB, 406432251904 bytes, 793812992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
  • 블록 장치를 나열 : lsblk
    • -f : 디스크에 대한 추가 정보 확인 가능
    • Linux 컴퓨터의 디스크와 파티션을 볼 수 있음
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   3.6T  0 disk
└─sda1        8:1    0   3.6T  0 part
nvme0n1     259:0    0 465.8G  0 disk
├─nvme0n1p1 259:1    0   600M  0 part /boot/efi
├─nvme0n1p2 259:2    0     1G  0 part /boot
└─nvme0n1p3 259:3    0 464.2G  0 part
  ├─cs-root 253:0    0    70G  0 lvm  /
  ├─cs-swap 253:1    0  15.7G  0 lvm  [SWAP]
  └─cs-home 253:2    0 378.5G  0 lvm  /home

[root@localhost ~]# lsblk -f
NAME        FSTYPE      FSVER    LABEL   UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ntfs                 새 볼륨 E4E8BF2DE8BEFD3C
nvme0n1
├─nvme0n1p1 vfat        FAT32            933D-493E                               591.3M     1% /boot/efi
├─nvme0n1p2 xfs                          b4540b96-808f-4545-8966-77d007090acf    654.4M    32% /boot
└─nvme0n1p3 LVM2_member LVM2 001         5JEvcU-09gj-HmWW-FznL-mQ7n-oKBq-je5vqM
  ├─cs-root xfs                          9548f8c3-cb9a-4d44-918d-a24064024222     62.8G    10% /
  ├─cs-swap swap        1                e291fe33-1624-46e7-ac50-4a0d6548e92a                  [SWAP]
  └─cs-home xfs                          3d3e737e-3c9d-438e-ad4b-0a87558a061c    375.7G     1% /home
  • 하드웨어 정보 확인 : hwinfo
    • 하드웨어, 특히 저장 디스크에 대한 정보를 보는 데 유용
# 디스크 또는 해당 파티션에 대한 정보
[root@localhost ~]# sudo hwinfo --disk
# 블록 장치의 개요
[root@localhost ~]# sudo hwinfo --short --block
# 모든 디스크의 요약
[root@localhost ~]# sudo hwinfo --disk --short
  • Logical Volume 상태 : lvdisplay
    • LVM(Logical Volume Manager) : 물리적 한계에 제약받지 않고 디스크를 효율적으로 분할하여 사용 가능
    • LV 로 나뉜 파티션은 최종적으로 파일 시스템을 할당받고 특정 디렉토리에 마운트 될 수 있음
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/cs/swap
  LV Name                swap
  VG Name                cs
  LV UUID                1PJ2Bq-YVVQ-bWwC-Mcc5-GXNG-may4-IzfLRw
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-03-15 09:41:23 +0900
  LV Status              available
  # open                 2
  LV Size                15.65 GiB
  Current LE             4007
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/cs/home
  LV Name                home
  VG Name                cs
  LV UUID                DNN5i1-x5Gy-j4jH-7nOd-n3sC-bg4n-pH1Y6K
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-03-15 09:41:23 +0900
  LV Status              available
  # open                 1
  LV Size                <378.52 GiB
  Current LE             96901
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/cs/root
  LV Name                root
  VG Name                cs
  LV UUID                Nbo7SF-68jP-2IsP-Sd4e-K4kt-vAXa-4baXqc
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-03-15 09:41:23 +0900
  LV Status              available
  # open                 1
  LV Size                70.00 GiB
  Current LE             17920
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

🔶 bash: hwinfo: command not found...

  • 아래 명령어로 설치부터 진행
sudo apt install hwinfo         [On Debian, Ubuntu and Mint]
sudo yum install hwinfo         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/hwinfo  [On Gentoo Linux]
sudo pacman -S hwinfo           [On Arch Linux]
sudo zypper install hwinfo      [On OpenSUSE]   

🔶 저장 공간 확인

  • 저장 공간 확인 : df [옵션] [디렉토리 또는 마운트 지점]
    • -h : human-readable 옵션을 사용하면 용량을 보기 쉬운 형식으로 출력
    • 디렉토리 또는 마운트 지점 : 특정 디렉토리나 마운트 지점의 파일 시스템 정보만 표시
[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             4.0M     0  4.0M   0% /dev
tmpfs                 16G     0   16G   0% /dev/shm
tmpfs                6.2G   18M  6.2G   1% /run
/dev/mapper/cs-root   70G  7.2G   63G  11% /
/dev/nvme0n1p2       960M  306M  655M  32% /boot
/dev/mapper/cs-home  379G  2.7G  376G   1% /home
/dev/nvme0n1p1       599M  7.5M  592M   2% /boot/efi

🔶 Linux GUI

  • Linux 데스크톱 컴퓨터 > GUI(그래픽 사용자 인터페이스) 애플리케이션 > 디스크 목록을 확인 가능
  • 시스템 메뉴 > 디스크 애플리케이션 검색 > 디스크와 해당 파티션을 확인

2-3. 하드디스크 파티션

  • parted로 파티션 테이블 보기 : parted /dev/sda1
[root@localhost ~]# parted /dev/sda1
GNU Parted 3.5
Using /dev/sda1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sda1: unrecognised disk label
Model: Unknown (unknown)
Disk /dev/sda1: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
(parted)
  • 파티션 상태 확인 : fdisk -l
    • Physical Volume 까지 생성됨
[root@localhost ~]# fdisk -l /dev/sda1
Disk /dev/sda1: 3.64 TiB, 4000785104896 bytes, 7814033408 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x73736572
  • Volume Group 만들기
[root@localhost ~]# vgcreate VG01 /dev/sda1
  Physical volume "/dev/sda1" successfully created.
  Volume group "VG01" successfully created
  • Logical Volume 만들기
[root@localhost ~]# lvcreate --size 900GB --name lv01cargo VG01
  Logical volume "lv01cargo" created.
[root@localhost ~]# lvcreate --size 900GB --name lv02cargo VG01
  Logical volume "lv02cargo" created.
[root@localhost ~]# lvcreate --size 900GB --name lv01vm VG01
  Logical volume "lv01vm" created.
[root@localhost ~]# lvcreate --size 900GB --name lv02vm VG01
  Logical volume "lv02vm" created.
[root@localhost ~]#
  • 현재 상태 확인
[root@localhost ~]# vgdisplay VG01
  --- Volume group ---
  VG Name               VG01
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <3.64 TiB
  PE Size               4.00 MiB
  Total PE              953861
  Alloc PE / Size       921600 / <3.52 TiB
  Free  PE / Size       32261 / <126.02 GiB
  VG UUID               1A8hCi-yvbQ-1IRg-yIkr-724H-LONA-7y2yVY
  • Volume 할당 공간 확인
[root@localhost ~]# pvs -a
  PV             VG   Fmt  Attr PSize   PFree
  /dev/nvme0n1p3 cs   lvm2 a--  464.17g       0
  /dev/sda1      VG01 lvm2 a--   <3.64t <126.02g

[root@localhost ~]# lvs -a
  LV        VG   Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01cargo VG01 -wi-a-----  900.00g
  lv01vm    VG01 -wi-a-----  900.00g
  lv02cargo VG01 -wi-a-----  900.00g
  lv02vm    VG01 -wi-a-----  900.00g
  home      cs   -wi-ao---- <378.52g
  root      cs   -wi-ao----   70.00g
  swap      cs   -wi-ao----   15.65g
  • 파일 시스템과 마운트
    • mkfs.xfs /dev/VG01/lv01cargo, mkfs.xfs /dev/VG01/lv02cargo, mkfs.xfs /dev/VG01/lv01vm, mkfs.xfs /dev/VG01/lv02vm
[root@localhost ~]# mkfs.xfs /dev/VG01/lv01cargo
meta-data=/dev/VG01/lv01cargo    isize=512    agcount=4, agsize=58982400 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=235929600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=115200, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
  • 디렉토리 생성 및 마운트
[root@localhost ~]# mkdir /cargo1
[root@localhost ~]# mkdir /cargo2
[root@localhost ~]# mkdir /vm1
[root@localhost ~]# mkdir /vm2
[root@localhost ~]# mount /dev/VG01/lv01cargo /cargo1
[root@localhost ~]# mount /dev/VG01/lv02cargo /cargo2
[root@localhost ~]# mount /dev/VG01/lv01vm /vm1
[root@localhost ~]# mount /dev/VG01/lv02vm /vm2
  • 디렉토리 구성과 실제 사용하는 파일시스템 크기 확인
[root@localhost ~]# df -Th
Filesystem                 Type      Size  Used Avail Use% Mounted on
devtmpfs                   devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs                      tmpfs      16G     0   16G   0% /dev/shm
tmpfs                      tmpfs     6.2G   18M  6.2G   1% /run
/dev/mapper/cs-root        xfs        70G  7.2G   63G  11% /
/dev/nvme0n1p2             xfs       960M  306M  655M  32% /boot
/dev/mapper/cs-home        xfs       379G  2.7G  376G   1% /home
/dev/nvme0n1p1             vfat      599M  7.5M  592M   2% /boot/efi
/dev/mapper/VG01-lv01cargo xfs       900G  6.4G  894G   1% /cargo1
/dev/mapper/VG01-lv02cargo xfs       900G  6.4G  894G   1% /cargo2
/dev/mapper/VG01-lv01vm    xfs       900G  6.4G  894G   1% /vm1
/dev/mapper/VG01-lv02vm    xfs       900G  6.4G  894G   1% /vm2

🔶 Partition does not start on physical sector boundary

  • 참고 : Partition does not start on physical sector boundary
  • Partition 4 does not start on physical sector boundary. : 파티션의 시작이 섹터의 경계에서 시작하지 않는다는 뜻
    • Sector size > 논리섹터 512 bytes와 물리섹터 4096 byte와 크기가 맞지 않아 생기는 오류
[root@localhost ~]# fdisk -l /dev/sd*
Disk /dev/sda: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HDN724040AL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 42B2D9E1-D9F9-4E97-A835-008CB7AC2269

Device     Start        End    Sectors  Size Type
/dev/sda1   2048 7814035455 7814033408  3.6T Microsoft basic data


Disk /dev/sda1: 3.64 TiB, 4000785104896 bytes, 7814033408 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x73736572

Device      Boot      Start        End    Sectors   Size Id Type
/dev/sda1p1      1920221984 3736432267 1816210284   866G 72 unknown
/dev/sda1p2      1936028192 3889681299 1953653108 931.6G 6c unknown
/dev/sda1p3               0          0          0     0B  0 Empty
/dev/sda1p4        27722122   27722568        447 223.5K  0 Empty

Partition 4 does not start on physical sector boundary.
Partition table entries are not in disk order.
  • 위의 마운트 단계까지 수행하고 다시 조회해보면 해당 내용은 뜨지 않음

2-4. 기본 설정

🔶 네임서버 설정

  • 네임서버 및 도메인 지정 역할을 해주는 설정 파일
  • 현재 네트워크는 연결되어 있지만 DNF(자동) 패키지 설치 즉, 외부 도메인 미러 사이트를 찾기 위해 특정 ISP(인터넷을 제공하는 개인이나 기업)에 미리 지정해주는 게 좋음
  • resolv.conf 파일 수정
    • nameserver : 내가 사용할 도메인서버 IP 주소 (리눅스는 최대 3개까지 인식 가능)
    • search : 도메인 명을 지정 (대부분 호스트명과 도메인명을 함께 사용하나, 특별하게 호스트명만 사용되었을 때 사용하게 될 기본 도메인 명)
[root@localhost ~]# vi /etc/resolv.conf

# Generated by NetworkManager
nameserver 210.94.0.73
nameserver 210.220.163.82
nameserver 192.168.1.999
search localdomain.com
  • Generated by NetworkManager : 네트워크를 재시작하면 NM(NetworkManager)에 의해 이 파일이 바뀌기 때문에 초기화 될 수 있음
  • 네트워크를 재시작하기 전에 chattr +i /etc/resolv.conf 명령어 수행
    • 리부팅 시에 resolv.conf 파일이 초기화 되는데, write(쓰기-편집)를 못하게 보호하는 명령어
    • 해제는 chattr -i /etc/resolv.conf
  • 이후 네트워크를 재시작하여 적용 : systemctl restart network 또는 service network restart
    • 재시작 후에도 여전히 /etc/resolv.conf 파일이 초기화 되지 않고 살아있는 것 확인

🔶 업데이트

  • 현재 설치되어있는 전체 패키지와 커널을 업그레이드
  • 보안을 위해 하는 부분으로 아무것도 설치되어 있지 않는 상태에서 하는 것을 권고
    • 이미 돌아가고 있는 서버에서 하게 되면 부팅 실패나 장애 발생 가능성 있음
    • 설치가 완료될 경우 새로 설치된 것과 업데이트한 패키지가 리스트에 나오게 됨
[root@localhost ~]# dnf update
Last metadata expiration check: 2:16:12 ago on Wed 20 Mar 2024 03:20:24 PM KST.
Dependencies resolved.
=============================================================================================================================================================
 Package                                            Architecture                 Version                               Repository                       Size
=============================================================================================================================================================
Installing:
 kernel                                             x86_64                       5.14.0-430.el9                        baseos                           44 k
Upgrading:
 NetworkManager                                     x86_64                       1:1.47.2-1.el9                        baseos                          2.3 M
############ (중략) ############

Transaction Summary
=============================================================================================================================================================
Install   5 Packages
Upgrade  41 Packages

Total download size: 147 M
Is this ok [y/N]: y
Downloading Packages:
(1/46): kernel-5.14.0-430.el9.x86_64.rpm                     0% [                                                          ] ---  B/s |   0  B     --:-- ETA
############ (중략) ############
(46/46): kernel-devel-5.14.0-430.el9.x86_64.rpm                                                                              973 kB/s |  16 MB     00:16
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                        5.3 MB/s | 147 MB     00:27
CentOS Stream 9 - BaseOS                                                                                                     1.6 MB/s | 1.6 kB     00:00
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Running scriptlet: selinux-policy-targeted-38.1.35-2.el9.noarch                                                                                        1/1
  Preparing        :                                                                                                                                     1/1
  Upgrading        : selinux-policy-38.1.35-2.el9.noarch                                                                                                1/87
  Running scriptlet: selinux-policy-38.1.35-2.el9.noarch                                                                                                1/87
  Running scriptlet: container-selinux-3:2.230.0-1.el9.noarch                                                                                          87/87
  Running scriptlet: tzdata-2024a-1.el9.noarch                                                                                                         87/87

🔶 selinux 비활성화

  • 일종의 보안정책으로 모든 프로세스나 특정 객체에 대하여 관리 규정을 지을 수 있음
  • 기본적으로 활성(enforcing)되어 있음 > 서버 운영 중 네트워크 방화벽 및 특정 프로세스가 막히거나 구동이 되지 않는 상황이 발생할 수 있음
    • 비활성(disabled) 적용 후 재부팅하여 방지할 수 있음
[root@localhost ~]# vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled

🔶 IPTABLES 방화벽 사용 (🚫Firewall 사용 시에는 생략)

  • CentOS 7부터는 iptables를 사용하지 않고 Firewall 방식을 도입
    • 때문에 /etc/sysconfig/iptables 파일이 존재하지 않음
  • 기존 iptables를 사용하는 경우에만 아래 내용 진행
    • systemd 기반으로 작동되기 때문에 systemctl 명령어 이용해야 함
[root@localhost ~]# systemctl stop firewalld  [Firewalld 방화벽 중지]
[root@localhost ~]# systemctl mask firewalld  [Firewalld 자동실행 중지]
[root@localhost ~]# yum install -y iptables-services  [iptables 서비스 관련 패키지 설치]
[root@localhost ~]# systemctl enable iptables  [iptables기본 사용 설정]
[root@localhost ~]# systemctl start iptables  [iptables서비스 시작]
[root@localhost ~]# iptables -nL  [작동 확인]
[root@localhost ~]# /etc/sysconfig/iptables  [설정 파일 위치]

2-5. CentOS 패키지 확장

  • repo 목록 확인
[root@localhost /]# yum repolist
repo id                      repo name
appstream                    CentOS Stream 9 - AppStream
baseos                       CentOS Stream 9 - BaseOS
epel                         Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264          Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
epel-next                    Extra Packages for Enterprise Linux 9 - Next - x86_64
extras-common                CentOS Stream 9 - Extras packages
  • Docker 대신 Podman 설치 (RedHat 기준)
  • 패키지 확장을 위해 HDD 파티션 작업 선행 > LVM 으로 컨테이너, VM, DB 공간 확보
    • /vm1 : 테스트용 가상 머신 설치
    • /vm2 : 컨테이너 설치
    • /cargo1, /cargo2 : DBMS 사용자 테이블 공간
  • 남아있는 공간은 재분배

3. 원격 데스크톱 연결

3-1. xrdp를 통해 원격 데스크톱 연결 (Windows -> CentOS)

  • 참고 : 원격 데스크톱으로 연결하는 방법 / firewall-cmd 명령어로 방화벽 관리하기
  • RDP(Remote Desktop Protocol, 원격 데스크톱 프로토콜)
    • 터미널 서버와 터미널 서버 클라이언트 간의 통신에 사용
    • TCP 내에서 캡슐화되고 암호화되어 정보 전달
  • xrdp
    • 리눅스 시스템에서 원격 데스크톱 접속을 제공하는 오픈 소스 프로젝트 (리눅스 서버를 원격으로 관리할 때 사용)
    • xrdp는 RDP를 사용하여 원격 클라이언트가 리눅스 시스템에 접속하여 GUI를 사용할 수 있도록 함

🔶 기본 환경 설치

# 업그레이드
[root@localhost ~]# yum update
Last metadata expiration check: 3:32:45 ago on Thu 21 Mar 2024 05:35:46 AM KST.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost ~]# yum upgrade
Last metadata expiration check: 3:32:52 ago on Thu 21 Mar 2024 05:35:46 AM KST.
Dependencies resolved.
Nothing to do.
Complete!

# epel repository 설치
$ yum install -y epel-release
Last metadata expiration check: 3:32:59 ago on Thu 21 Mar 2024 05:35:46 AM KST.
Dependencies resolved.
=============================================================================================================================================================
 Package                                    Architecture                    Version                             Repository                              Size
=============================================================================================================================================================
Installing:
 epel-release                               noarch                          9-7.el9                             extras-common                           19 k
Installing weak dependencies:
 epel-next-release                          noarch                          9-7.el9                             extras-common                          8.1 k
############ (중략) ############
Complete!

# xrdp 및 tigervnc 설치
$ yum install -y xrdp tigervnc-server
Extra Packages for Enterprise Linux 9 - x86_64                                                                               6.0 MB/s |  21 MB     00:03
Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64                                                         335  B/s | 2.5 kB     00:07
Extra Packages for Enterprise Linux 9 - Next - x86_64                                                                        487 kB/s | 1.4 MB     00:02
Last metadata expiration check: 0:00:01 ago on Thu 21 Mar 2024 09:09:15 AM KST.
Dependencies resolved.
=============================================================================================================================================================
 Package                                        Architecture                  Version                                 Repository                        Size
=============================================================================================================================================================
Installing:
 tigervnc-server                                x86_64                        1.13.1-8.el9                            appstream                        224 k
 xrdp                                           x86_64                        1:0.9.24-1.el9                          epel                             459 k
############ (중략) ############
Complete!

🔶 3389 Port 상시 허용

  • 방화벽에 3389 Port를 상시 허용으로 등록 및 재실행
[root@localhost ~]# sudo firewall-cmd --permanent --zone=public --add-port=3389/tcp
success
[root@localhost ~]# sudo firewall-cmd --reload
success
[root@localhost ~]# sudo firewall-cmd --list-port
3389/tcp

🔶 xrdp 서비스 등록 및 구동 확인

[root@localhost ~]# sudo systemctl enable xrdp.service
Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /usr/lib/systemd/system/xrdp.service.
[root@localhost ~]# sudo systemctl start xrdp.service
[root@localhost ~]# systemctl status xrdp.service
● xrdp.service - xrdp daemon
     Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; preset: disabled)
     Active: active (running) since Thu 2024-03-21 09:41:57 KST; 6s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 345161 (xrdp)
      Tasks: 1 (limit: 202223)
     Memory: 1.0M
        CPU: 4ms
     CGroup: /system.slice/xrdp.service
             └─345161 /usr/sbin/xrdp --nodaemon

Mar 21 09:41:57 localhost.localdomain systemd[1]: Started xrdp daemon.
Mar 21 09:41:57 localhost.localdomain xrdp[345161]: [INFO ] starting xrdp with pid 345161
Mar 21 09:41:57 localhost.localdomain xrdp[345161]: [INFO ] address [0.0.0.0] port [3389] mode 1
Mar 21 09:41:57 localhost.localdomain xrdp[345161]: [INFO ] listening to port 3389 on 0.0.0.0
Mar 21 09:41:57 localhost.localdomain xrdp[345161]: [INFO ] xrdp_listen_pp done

🔶 포트 상태 및 접속할 IP 확인

  • 3389 포트 상태 확인
[root@localhost ~]# netstat -nap | grep 3389
tcp6       0      0 :::3389                 :::*                    LISTEN      345161/xrdp
  • IP : 192.168.1.999
[root@localhost ~]# ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.999  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::dabb:c1ff:fe4d:c443  prefixlen 64  scopeid 0x20<link>
        ether d8:bb:c1:4d:c4:43  txqueuelen 1000  (Ethernet)
        RX packets 1140040  bytes 860949800 (821.0 MiB)
        RX errors 0  dropped 110087  overruns 0  frame 0
        TX packets 201157  bytes 16165519 (15.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xa1200000-a1220000

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 65  bytes 5351 (5.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65  bytes 5351 (5.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

🔶 firewall public zone 상태 확인

[root@localhost ~]# sudo firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 3389/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

3-2. Windows 에서 CentOS 원격 연결

  • 시작 > 원격 데스크톱 연결 > 192.168.1.999
    • 사용자 이름 등록하지 않고 바로 연결할 것
  • root 계정 접속은 안되도록 설정되어 있음
    • 아래 내용 수행해도 되지 않아서 보류

🔶 root 계정 접속 허용/해제

  • sshd_config 파일을 수정
[root@localhost ssh]# cd /etc/ssh/
[root@localhost ssh]# vi sshd_config
  • PermitRootLogin : root 계정으로 로그인 시 허용 여부를 설정하는 값
(...)
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
(...)
  • PermitRootLogin 설정 값을 변경 후에도 바로 root 계정 로그인 제한이 되진 않음
    • 제한 설정을 적용하기 위해서는 sshd를 재시작
[root@localhost ssh]# service sshd restart

3-3. 서버 주소 수동 변경

  • 설치 시 자동으로 할당 받은 주소를 수동으로 재지정
  • 원격 데스크톱 > 상단 네트워크 아이콘 > Settings
  • Network > Wired > Connected - 100 Mb/s 켜기 및 설정 버튼 클릭
  • IPv4 탭 클릭하여 고정 IP 설정
    • IPv4 Method : Manual (수동)
    • Address : 주소, 넷마스크, 게이트웨이 주소 입력 (192.168.1.999, 255.255.255.0, 192.168.1.1)
    • DNS > Automatic 해제
    • DNS : 210.94.0.73, 210.220.163.82 (여러 개의 DNS를 입력할 경우 쉼표로 구분)
[root@localhost ~]# vi /etc/resolv.conf

nameserver 210.94.0.73
nameserver 210.220.163.82
  • 상단의 적용 버튼 클릭 (터미널의 systemctl restart network 와 동일한 효과)
profile
개린이

0개의 댓글