운영체제/Linux

[Linux] VMware을 이용한 리눅스 가상 머신 서버 설정

gamjadori 2023. 12. 9. 18:10
728x90

<가상머신>

  • 호스트 운영체제: PC에 이미 설치되어 있는 윈도우
  • 게스트 운영체제: 가상머신에 설치할 그 외의 운영체제

 

<VMware Workstation 17 Player 가상 머신>

Create a New Virtual Machine > I will install the operating system later. > Linux + 버전: (내가 다운받은 파일) > Store virtual disk as s single file 선택 > 생성

 

서버 기본 설정

Edit virtual machine settings 선택

  • CD /DVD: centos 파일 넣기
  1. 언어설정: 한국어(한글)하고 네트워크&호스트이름: 이더넷 켬
  2. 시간 및 날짜 설정: 서울 / 네트워크 시간 켬
  3. 소프트웨어 선택: 워크스테이션
    • GUI: 우리가 알고 있는 윈도우와 흡사하지만 보안에 취약
    • 워크스테이션 + GNOME 응용 프로그: 클라이언트 (사용자) 위주의 설정
  4. 설치 목적어: 저장소 구성 custom 선택 > 수동으로 파티션 > 표준 파티션으로 변경 후 + 클릭
  5. 새 마운트 지점 추가: swap / 4G > 마운트 지점 추가 > 새 마운트 지점 추가 하고 / + 빈칸 (마운트 총 두 번 추가)
  6. 설치시작 (사용자 설정 + 암호설정)

<호스트 아이피 주소 바꾸는 방법>

  1. ifconfig로 호스트 아이피 확인
  2. Virtual Network Editor 켜기
  3. VMnet8 클릭해서 Subnet IP에서 아이피 변경

<자동 업데이트 기능 방지 명령어>

[root@localhost ~]# gsettings set org.gnome.software download-updates false
[root@localhost ~]# systemctl disable dnf-makecache.service
[root@localhost ~]# systemctl disable dnf-makecache.timer

<패키지 툴 설치 명령어>

[root@localhost ~]# ls /media
This repo
cp /media/This.repo
dnf clean all // 툴 설치하기 전에 혹시 모르니 삭제를 하고 난 뒤에 설정
dnf -y install bind-utils net-tools wget unzip bzip2 // bind-utils, net-tools, wget, unzip, bzip2 툴 설치

<dnf 명령어를 사용할 때 CentOS8 출시 시점의 소프트웨어가 설치되도록 하는 명령어>

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv *.repo backup
[root@localhost yum.repos.d]# ls
backup
[root@localhost yum.repos.d]# gedit This.repo

<복사 내용>

[BaseOS]
name=CentOS-$releasever - Base
baseurl=https://archive.kernel.org/centos-vault/8.0.1905/BaseOS/x86_64/os/
	  <http://linuxsoft.cern.ch/centos-vault/8.0.1905/BaseOS/x86_64/os/>
gpgcheck=0

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=https://archive.kernel.org/centos-vault/8.0.1905/AppStream/x86_64/os/
	  <http://linuxsoft.cern.ch/centos-vault/8.0.1905/AppStream/x86_64/os/>
gpgcheck=0

[extras]
name=CentOS-$releasever - Extras
baseurl=https://archive.kernel.org/centos-vault/8.0.1905/extras/x86_64/os/
	  <http://linuxsoft.cern.ch/centos-vault/8.0.1905/extras/x86_64/os/>
gpgcheck=0

[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://archive.kernel.org/centos-vault/8.0.1905/centosplus/x86_64/os/
	  <http://linuxsoft.cern.ch/centos-vault/8.0.1905/centosplus/x86_64/os/>
gpgcheck=0

[PowerTools]
name=CentOS-$releasever - PowerTools
baseurl=https://archive.kernel.org/centos-vault/8.0.1905/PowerTools/x86_64/os/
	  <http://linuxsoft.cern.ch/centos-vault/8.0.1905/PowerTools/x86_64/os/>
gpgcheck=0

하지만 내용이 너무 많고, 복사가 안 되기 때문에 다른 명령어 이용

>> 해결 방법

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv *.repo backup
[root@localhost yum.repos.d]# ls
backup
[root@localhost yum.repos.d]# wget <http://download.hanbit.co.kr/centos/8/This.repo>
[root@localhost yum.repos.d]# dnf clean all

<IP 고정 할당 명령어>

[root@localhost yum.repos.d]# dnf clean all
파일이 삭제되었습니다.
[root@localhost yum.repos.d]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens160
[root@localhost network-scripts]# vi ifcfg-ens160

<vi 편집 내용>

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
**IPADDR="192.168.111.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.111.2"
DNS1="192.168.111.2"**
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"
#UUID="5c654dab-7a07-48bd-893f-aab228073d4e"
DEVICE="ens160"
ONBOOT="yes"

:wq로 저장

[root@localhost network-scripts]# nmcli connection down ens160 // 장치가 추가 자동 활성화되지 않도록 장치의 연결을 비활성화
[root@localhost network-scripts]# nmcli connection up ens160
[root@localhost network-scripts]# reboot

 

>> ifconfig로 변경된 ens160아이피 확인

 

<Selinux 보안 끄는 명령어>

[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**=disabled**
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

저장 후 reboot

<루트 로그인 막는 방법> 주로 클라이언트에서 사용

[root@localhost ~]# gedit /etc/pam.d/gdm-password

<편집 내용>

account        reqired     pam_nologin.so
를
account        reqired     **pam_succeed_if.so user != root quiet**
로 수정 후 reboot

<런레벨 변경 방법>

[root@localhost ~]# cd /lib/systemd/system
[root@localhost system]# ls run*
runleve0.target runleve2.target runleve4.target runleve6.target
runleve1.target runleve3.target runleve6.target
[root@localhost system]# ls -l run* // 런레벨의 설명까지 출력
[root@localhost system]# ls -l default.target → graphical.target // 현재 런레벨 상태 출력
[root@localhost system]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/dafault.target
[root@localhost system]# ls -l /etc/systemd/system/dafault.target

>> multi-user.target 설정 확인하면 reboot

돌아가는 방법

[root@localhost ~]# ls -l /etc/systemd/system/dafault.target
[root@localhost ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/dafault.target
[root@localhost ~]# ls -l /etc/systemd/system/dafault.target

>> graphical.target 설정 확인하면 reboot