설치하기 전 oracle 설치파일 다운

다음 링크로 접속하여 Oracle 설치파일을 다운로드 할 것이다.

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

 

여기에서 리눅스 기반 파일을 다운받을 것이다.

다운 받은 후 리눅스에 파일을 업로드한다.


CentOS 7에 Oracle 19c 설치

Hosts file 변경

[root@ol7-19 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
10.0.3.15       test            test

 

 

hostname 변경

[root@oracle ~]# vi /etc/hostname
[root@oracle ~]# cat /etc/hostname
test

/etc/hostname에서 hostname을 변경한다.

reboot 후에 hostname이 변경된 것을 확인할 수 있다.

 

 

Oracle 설치 전제 조건

/etc/sysctl.conf 파일에 다음과 같이 수정한다.

[root@ol7-19 ~]# vi /etc/sysctl.conf
[root@ol7-19 ~]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
  • fs.file-max : 시스템 전체에서 최대로 열 수 있는 파일 개수
  • kernel.sem : 대응하는 4개의 값 - SEMMSL, SEMMNS, SEMOPM, SEMMNI
  •         SEMMSL : 설정별로 허용된 최대 세마포어 양
  •         SEMMNS : 최대 세마포어 수
  •         SEMOPM : 단일 조작에서의 최대 조작 수
  •         SEMMNI : 최대 세마포어 세트 수
  • kernel.shmmni : 최대 세마포어 세트 수, 공유메모리 식별자의 개수
  • kernel.shmall : 최대 공유 메모리 크기 설정 (페이지)
  • kernel.shmmax : 공유 메모리 세그먼트의 최대 크기 설정 (바이트)
  • kernel.panic_on_oops : opps 또는 BUG 조건이 발생하면 패닉 (1인 경우, 0인경우 반대)
  • net.core.rmem_default, net.core.rmem_max : 오라클은 기본적으로 대용량 데이터베이스를 기준으로 하기 때문에 기본 설정된 값을 변경
  • net.core.wmem_default, net.core.wmem_max : 소켓 출력 큐의 기본 값과 최대 값을 조정하기 위한 매개변수
  • net.ipv4.conf.all.rp_filter, net.ipv4.conf.default.rp_filter : 자신의 네트워크가 아이피 스푸핑 공격에 방지하기 위해 설정
  • fs.aio-max-nr : 허가된 최대 동시 요청 수
  • net.ipv4.ip_local_port_range : 새 접속에서 사용할 수 있는 포트의 사용 가능 범위를 확장

 

 

현재 커널 매개변수를 변경

/sbin/sysctl -p

 

"/etc/security/limits.conf" 파일에 아래와 같이 추가한다.

[root@ol7-19 ~]# vi /etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
  • soft : 오라클 프로그램 처음 수행시
  • hard : 오라클 프로그램 수행시
  • nofile :  User당 오픈할 수 있는 파일 개수
  • nproc : User당 사용할 수 있는 프로세스 최대 개수
  • stack : 최대 stack 사이즈 (KB)
  • memlock : 최대 locked-in-memory 주소 공간 (KB)

 

 

패키지 설치

인터넷이 안되므로 yum을 이용해 패키지를 설치하는 것이 아닌 rpm으로 설치할 것이다.

설치 패키지를 확인하고 없는 패키지를 따로 설치한다.

rpm -qa | grep bc    
rpm -qa | grep binutils
rpm -qa | grep compat-libcap1
rpm -qa | grep compat-libstdc++-33
rpm -qa | grep dtrace-modules
rpm -qa | grep dtrace-modules-headers
rpm -qa | grep dtrace-modules-provider-headers
rpm -qa | grep dtrace-utils
rpm -qa | grep elfutils-libelf
rpm -qa | grep elfutils-libelf-devel
rpm -qa | grep fontconfig-devel
rpm -qa | grep glibc
rpm -qa | grep glibc-devel
rpm -qa | grep ksh
rpm -qa | grep libaio
rpm -qa | grep libaio-devel
rpm -qa | grep libdtrace-ctf-devel
rpm -qa | grep libXrender
rpm -qa | grep libXrender-devel
rpm -qa | grep libX11
rpm -qa | grep libXau
rpm -qa | grep libXi
rpm -qa | grep libXtst
rpm -qa | grep libgcc
rpm -qa | grep librdmacm-devel
rpm -qa | grep libstdc++
rpm -qa | grep libstdc++-devel
rpm -qa | grep libxcb
rpm -qa | grep make
rpm -qa | grep net-tools # Clusterware
rpm -qa | grep nfs-utils # ACFS
rpm -qa | grep python # ACFS
rpm -qa | grep python-configshell # ACFS
rpm -qa | grep python-rtslib # ACFS
rpm -qa | grep python-six # ACFS
rpm -qa | grep targetcli # ACFS
rpm -qa | grep smartmontools
rpm -qa | grep sysstat

 

여기서 필요한 패키지를 확인하고 설치한다.

[root@localhost ~]# cd /run/media/root/CentOS\ 7\ x86_64/Packages/

 

설치는 다음과 같이 rpm -Uvh 로 설치한다.

[root@localhost Packages]# rpm -Uvh glibc-devel-2.17-317.el7.x86_64.rpm

 

 

그룹 및 사용자 생성

[root@ol7-19 ~]# groupadd -g 54321 oinstall
[root@ol7-19 ~]# groupadd -g 54322 dba
[root@ol7-19 ~]# groupadd -g 54323 oper

[root@ol7-19 ~]# useradd -u 54321 -g oinstall -G dba,oper oracle
  • oinstall : Oracle 인벤토리 그룹, 시스템에 설치된 모든 Oracle 소프트웨어의 카탈로그인 Oracle 인벤토리를 소유
  • dba : 데이터베이스 관리 그룹, 일반적으로 root 사용자와 oracle 사용자를 포함, 데이터베이스 관리 권한이 있는 운영체제 사용자 계정 식별
  • oper : 제한된 데이터베이스 관리 권한 그룹
  • useradd -u 54321 -g oinstall -G dba,oper oracle : 계정 생성시 oracle 계정의 기본 그룹은 oinstall이고, 추가 소속 그룹은 dba 와 oper 이다.

 

 

oracle 유저의 비밀번호 변경

[root@ol7-19 ~]# passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호: oracle
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

 

그룹 확인

[root@ol7-19 ~]# cat /etc/group
...
oinstall:x:54321:
dba:x:54322:oracle
oper:x:54323:oracle

 

 

SELINUX 설정

SELINUX=permissive 로 변경

SELINUX 변경이 완료되면 서버를 재시작한다.

[root@ol7-19 ~]# vi /etc/selinux/config
[root@ol7-19 ~]# cat /etc/selinux/config

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

 

 

방화벽 설정

[root@ol7-19 ~]# systemctl stop firewalld
[root@ol7-19 ~]# systemctl disable firewalld

 

 

Oracle 소프트웨어 설치 디렉토리 생성

[root@ol7-19 ~]# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
[root@ol7-19 ~]# mkdir -p /u02/oradata
[root@ol7-19 ~]# chown -R oracle:oinstall /u01 /u02
[root@ol7-19 ~]# chmod -R 775 /u01 /u02

 

 

오라클 설치용 패키지를 설치 디렉토리로 이동

[root@ol7-19 ~]# cd /u01/app/oracle/product/19.0.0/dbhome_1
[root@ol7-19 dbhome_1]# cp /home/dy/LINUX.X64_193000_db_home.zip ./
[root@ol7-19 dbhome_1]# ls -alrt
합계 2987996
drwxrwxr-x. 3 oracle oinstall         22  4월 25 10:34 ..
drwxrwxr-x. 2 oracle oinstall         42  4월 25 10:36 .
-rw-r--r--. 1 root   root     3059705302  4월 25 10:37 LINUX.X64_193000_db_home.zip
[root@ol7-19 dbhome_1]#

 

 

스크립트 디렉토리 생성

[root@ol7-19 ~]# mkdir /home/oracle/scripts

 

 

setEnv.sh 환경 파일 생성

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1

  • ORACLE_HOSTNAME : 오라클 컴퓨터 이름
  • ORACLE_UNQNAME : 데이터베이스 의 고유한 이름 값을 보유하는 운영 체제 환경 변수
  • ORACLE_BASE : 사용할 오라클 데이터베이스의 ORACLE_BASE 디렉토리, 오라클에 관한 여러가지 파일을 배치하는 거점이 될 디렉토리
  • ORACLE_HOME : 사용할 데이터베이스의 ORACLE_HOME 디렉토리, 오라클 소프트웨어를 설치할 디렉토리
  • ORA_INVENTORY : 설치한 도구들에 관한 정보나 ORACLE_HOME에 관한 정보가 존재하는 일종의 레파지토리
  • ORACLE_SID : 사용할 데이터베이스의 SID, 인스턴스 식별자
  • DATA_DIR : 데이터 디렉토리
  • PATH : 명령어 탐색하는 경로 정보
[root@test ~]# cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
#. /home/oracle/scripts/setEnv.sh
export TMP=/tmp
export TMPDIR=$TMP

#export ORACLE_HOSTNAME=ol7-19.localdomain
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
#export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl
export DATA_DIR=/u02/oradata

export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:/$ORACLE_HOME/rdbms/jlib

 

+ 원래 하던 방법 (오류 문제로 수정, 위 방법으로 환경 파일 생성)

더보기
[root@ol7-19 ~]# vi /home/oracle/scripts/setEnv.sh
[root@ol7-19 ~]# cat /home/oracle/scripts/setEnv.sh
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP

export ORACLE_HOSTNAME=ol7-19.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=cdb1
export PDB_NAME=pdb1
export DATA_DIR=/u02/oradata

export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH

export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib

 

 

"/home/oracle/.bash_profile" 파일 끝에 "setEnv.sh" 파일에 대한 참조를 추가한다.

[root@ol7-19 ~]# echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile

 

[root@ol7-19 ~]# cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
[root@ol7-19 ~]# echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
[root@ol7-19 ~]# cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
. /home/oracle/scripts/setEnv.sh

 

 

시작/종료를 호출할 수 있는 파일 생성

편의를 위해 생성하므로 start_all.sh 만 생성해도 된다.

[root@ol7-19 ~]# vi /home/oracle/scripts/start_all.sh
[root@ol7-19 ~]# cat /home/oracle/scripts/start_all.sh
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbstart \$ORACLE_HOME
[root@ol7-19 ~]# vi /home/oracle/scripts/stop_all.sh
[root@ol7-19 ~]# cat /home/oracle/scripts/stop_all.sh
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbshut \$ORACLE_HOME

 

오라클 설치 완료 후 "/etc/oratab"을 편집했으면 "oracle" 사용자가 실행하는 다음 스크립트를 사용하여 데이터베이스를 시작/중지 가능하다.

~/scripts/start_all.sh 
~/scripts/stop_all.sh

 

 

디렉토리 소유권 및 파일 권한을 설정

*수정 전
[root@ol7-19 ~]# ls -alrt /home/oracle/scripts
합계 12
drwx------. 4 oracle oinstall 107  4월 25 10:45 ..
-rw-r--r--. 1 root   root     531  4월 25 15:04 setEnv.sh
-rw-r--r--. 1 root   root     121  4월 25 15:31 start_all.sh
-rw-r--r--. 1 root   root     120  4월 25 15:32 stop_all.sh
drwxr-xr-x. 2 root   root      62  4월 25 15:32 .
[root@ol7-19 ~]# ls -alrt /home/oracle/scripts/*.sh
-rw-r--r--. 1 root root 531  4월 25 15:04 /home/oracle/scripts/setEnv.sh
-rw-r--r--. 1 root root 121  4월 25 15:31 /home/oracle/scripts/start_all.sh
-rw-r--r--. 1 root root 120  4월 25 15:32 /home/oracle/scripts/stop_all.sh


[root@ol7-19 ~]# chown -R oracle:oinstall /home/oracle/scripts
[root@ol7-19 ~]# chmod u+x /home/oracle/scripts/*.sh

*수정 후
[root@ol7-19 ~]# ls -alrt /home/oracle/scripts
합계 12
drwx------. 4 oracle oinstall 107  4월 25 10:45 ..
-rwxr--r--. 1 oracle oinstall 531  4월 25 15:04 setEnv.sh
-rwxr--r--. 1 oracle oinstall 121  4월 25 15:31 start_all.sh
-rwxr--r--. 1 oracle oinstall 120  4월 25 15:32 stop_all.sh
drwxr-xr-x. 2 oracle oinstall  62  4월 25 15:32 .
[root@ol7-19 ~]# ls -alrt /home/oracle/scripts/*.sh
-rwxr--r--. 1 oracle oinstall 531  4월 25 15:04 /home/oracle/scripts/setEnv.sh
-rwxr--r--. 1 oracle oinstall 121  4월 25 15:31 /home/oracle/scripts/start_all.sh
-rwxr--r--. 1 oracle oinstall 120  4월 25 15:32 /home/oracle/scripts/stop_all.sh

 

 

INSTALL

root 계정에서 xhost + 실행

[root@ol7-19 dbhome_1]$ xhost +
access control disabled, clients can connect from any host

 

※ 오라클 사용자로 로그인 및 XWindow에서 실행한다.

X 에뮬레이션을 사용하는 경우 DISPLAY 환경 변수를 설정

[oracle@ol7-19 dbhome_1]$ export DISPLAY=:0.0

 

 

설치 소프트웨어 압축 해제

ORACLE_HOME이 경로에 직접 소프트웨어 압축을 푼다.

디렉토리에서 다음 명령 중 하나를 실행하여 OUI(Oracle Universal Installer)를 시작

대화형 모드는 사용자 입력을 허용하는 GUI 설치 프로그램 화면을 표시한다.

 

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1

# 소프트웨어의 압축을 풉니다. 
cd $ORACLE_HOME 
unzip -oq /path/to/software/LINUX.X64_193000_db_home.zip 

# 대화형 모드. 
./runInstaller

unzip -oq 

-o : 메시지를 표시하지 않고 파일을 덮어씀

-q : 조용한 모드

 

[oracle@ol7-19 ~]$ cd /u01/app/oracle/product/19.0.0/dbhome_1
[oracle@ol7-19 dbhome_1]$ ls -alrt
합계 2987996
drwxrwxr-x. 3 oracle oinstall         22  4월 25 10:34 ..
drwxrwxr-x. 2 oracle oinstall         42  4월 25 10:36 .
-rw-r--r--. 1 root   root     3059705302  4월 25 10:37 LINUX.X64_193000_db_home.zip
[oracle@ol7-19 dbhome_1]$ unzip -oq LINUX.X64_193000_db_home.zip

 

 

runInstaller 실행

DISPLAY 실행 후 runInstaller 실행시 오류 발생

[oracle@ol7-19 dbhome_1]$ export DISPLAY=:0.0
[oracle@ol7-19 dbhome_1]$ ./runInstaller
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.

Can't connect to X11 window server using 'ol7-19.localdomain:0.0' as the value of the DISPLAY variable.

 

→ 오류 해결

환경 변수 설정 오류

다음과 같이 환경 변수 수정

[root@test ~]# cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
#. /home/oracle/scripts/setEnv.sh
export TMP=/tmp
export TMPDIR=$TMP

#export ORACLE_HOSTNAME=ol7-19.localdomain
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
#export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl
export DATA_DIR=/u02/oradata

export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:/$ORACLE_HOME/rdbms/jlib

 

 

Hostname 및 hosts 설정 문제

현재 CentOS7 리눅스 설정을 네트워크를 2개 잡아줘서 인식 오류가 있었다.

현재 IP가 2개 잡혀있다.

[root@ol7-19 ~]# ifconfig -a
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.11  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe5e:42ee  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:5e:42:ee  txqueuelen 1000  (Ethernet)
        RX packets 810  bytes 69537 (67.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1096  bytes 205686 (200.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.3.15  netmask 255.255.255.0  broadcast 10.0.3.255
        inet6 fe80::26d8:9b10:bbbd:d416  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:65:7d:31  txqueuelen 1000  (Ethernet)
        RX packets 2  bytes 1180 (1.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 64  bytes 9508 (9.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...

 

 

또한, 현재 hostname 이 ol7-19.localdomain 로 잡혀있었는데 .이나 특수문자가 들어가서 오류가 있을 수 있어 hostname을 test로 변경해준다.

Hosts file을 변경해준다. (NAT로 설정된 IP와 hostname 설정)

[root@ol7-19 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
10.0.3.15       test            test

 

다시 runInstaller 실행

root 계정에서 xhost + 실행

[root@ol7-19 dbhome_1]$ xhost +
access control disabled, clients can connect from any host

 

 

oracle 계정으로 로그인 후 ./runInstaller 실행

[oracle@ol7-19 dbhome_1]$ export DISPLAY=:0.0
[oracle@ol7-19 dbhome_1]$ ./runInstaller

 

 

오라클 설치

오라클 소프트웨어만 설정 선택

소프트웨어만 설정할 경우 설치시 옵션을 선택해야 하는 경우가 많기 때문에 소프트웨어만 설치로 진행한다.

 

 

단일 인스턴스 데이터베이스 설치 선택

오라클 싱글로 설치할 것이기 때문에 단일 인스턴스 데이터베이스만 설치한다.

 

 

Enterprise Edition 선택

 

 

ORACLE_BASE 설정

/home/oracle/.bash_profile 파일에서 ORACLE_BASE와 ORACLE_HOME을 확인하고 다음을 누른다.

 

 

인벤토리 경로 선택

인벤토리 디렉토리와 orainventory 그룹을 설정하고 다음을 누른다.

 

 

그룹 권한 설정

 

 

자동으로 root 실행을 위한 root 패스워드 입력

 

 

사전 요구사항 체크

 

 

현재 gcc 패키지가 설치 되지 않았으므로 gcc-c++4.8.2를 설치한다.

 

 

패키지 파일을 확인 후 설치

패키지 파일 설치 후 다시 확인을 눌러 필요 조건 검사를 재실행한다.

[root@test ~]# cd /run/media/root/CentOS\ 7\ x86_64/Packages/
[root@test Packages]# rpm -Uvh gcc-4.8.5-44.el7.x86_64.rpm
경고: gcc-4.8.5-44.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:gcc-4.8.5-44.el7                 ################################# [100%]
[root@test Packages]# rpm -Uvh gcc-c++-4.8.5-44.el7.x86_64.rpm
경고: gcc-c++-4.8.5-44.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:gcc-c++-4.8.5-44.el7             ################################# [100%]

 

 

설치

 

 

설치 시작

 

 

root 스크립트를 전 확인 메세지

Yes 선택

 

 

오라클 소프트웨어 설치 완료

 

'DB ORACLE 공부 기록' 카테고리의 다른 글

Oracle Inventory  (0) 2022.05.02
ORACLE Enterprise/Standard 차이  (0) 2022.05.02
DBCA를 통한 데이터베이스 생성  (0) 2022.05.02
ORACLE 설치 전 사전 작업  (0) 2022.04.25
VirtualBox(버추얼박스) 설치  (0) 2022.04.20

오라클 설치 전 리눅스 요구사항

시스템 구조 Intel(x86)
RAM 최소 1GB, 2GB 권장
RAM 과 관련된 SWAP 공간 할당 - RAM이 1GB에서 2GB 사이 : RAM 크기의 1.5배
- 2GB에서 16GB사이 : RAM크기와 동일
- 16GB 이상 : 16GB
디스크 공간 Linux x86-64
- 독립 실행형 서버 설치를 위한 Oracle Grid Infrastructure의 경우 최소 6.5GB.
- Oracle Database Enterprise Edition의 경우 최소 7.2GB.
- Oracle Database Standard Edition 2 의 경우 최소 7.2GB.

 

리눅스 설치 환경 참조

https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/operating-system-checklist-for-oracle-database-installation-on-linux.html#GUID-E5C0A90E-7750-45D9-A8BC-C7319ED934F0

 

Database Installation Guide

Use this checklist to check minimum operating system requirements for Oracle Database.

docs.oracle.com


VirtualBox 환경에 CentOS7 설치하기

먼저 설치하기 전에 CentOS7 ISO 파일을 받아둔다.

 

아래 링크로 접속해 ISO 파일을 받는다.

http://isoredirect.centos.org/centos/7/isos/x86_64/

 

CentOS Mirrors List

 

isoredirect.centos.org

 

 

navercrop로 들어가 받을 것이다.

 

CentOS7 DVD 파일로 받는다.

- DVD : GUI가 없는 iso 파일

- Everything : GUI가 있는 iso 파일

- Minumal : 최소 설치만 되는 iso 파일

- Netinstall : 네트워크를 이용해 설치하는 iso 파일


VirtualBox 환경에 CentOS7 설치하기

버추얼박스를 실행하여 새로만들기를 실행한다.

 

 

가상 머신 이름에 CentOS만 치면 Red Hat (64bit)로 설정된다.

이름과 머신 폴더만 지정하고 넘어간다.

 

 

메모리는 4기가로 잡고 가상머신을 생성한다.

 

 

새 가상 하드디스크 만들기를 선택한다.

 

 

VDI를 선택한다.

 

 

동적할당을 선택하여 사용하는 만큼 커지도록 설정한다.

 

 

가상 하드디스크를 생성한다.

 

 

설정에 들어가 ISO 파일을 넣어줄 것이다.

 

 

설정에 들어가 저장소 > 컨트롤러 > 가상 광학 디스크 파일을 선택한다.

 

 

추가를 눌러 iso 이미지 파일을 추가한다.

 

 

디스크 파일이 선택된 것을 확인할 수 있다.

 

 

네트워크는 호스트 전용 어댑터를 사용하여 실행한다.

 

 

시작한다.

 

 

 

언어는 한국어를 선택한다.

 

 

소프트웨어 선택한다.

 

 

소프트웨어는 서버 - GUI 사용을 선택하고 필요한 환경의 기능을 선택한다.

 

 

kdump는 비활성화를 해서 설치한다.

 

 

설치 대상은 사용할 하드디스크에 설치한 후 실행한다.

 

 

네트워크는 연결한 상태로 사용한다.

네트워크는 고정으로 사용한다.

 

 

VirtualBox의 [ 파일 > 호스트 네트워크 관리자 ]를 실행하여 IP를 확인한다.

 

 

다음과 같이 설정하면 설치를 시작한다.

 

 

ROOT 암호와 사용자를 생성한다.

 

 

CentOS7을 설치한다.

 

 

재부팅을 실행한다.

 

 

라이센스에 동의하고 설정을 완료한다.

 

 

CentOS7 설치가 완료되었다.

 

 

 

네트워크 설정을 보려면 [ 프로그램 > 시스템 도구 > 설정 > 네트워크 ] 에서 확인할 수 있다.

 

 

※ SSH 접속시 접속 지연 문제 해결

1. vi /etc/ssh/sshd_config 파일에서 [ UseDNS no ] 추가한다.

2. UseDNS yes 가 주석처리 되어있는 경우라도 UseDNS no 추가한다.

3. systemctl restart sshd 로 sshd 를 재시작한다.

4. PuTTY로 ssh 접속이 잘 되는지 확인한다.

 

 

PuTTY로 접속한다. 동의를 눌러준다.

 

 

PuTTY 접속 완료!!

 

 

종료할 경우에는 [ init 0 ]을 입력해 끈다.

 

※ PuTTY 접속 말고 MobaXterm을 사용하면 GUI도 지원한다.

'DB ORACLE 공부 기록' 카테고리의 다른 글

Oracle Inventory  (0) 2022.05.02
ORACLE Enterprise/Standard 차이  (0) 2022.05.02
DBCA를 통한 데이터베이스 생성  (0) 2022.05.02
CentOS 7에 Oracle 19c 설치  (0) 2022.05.02
VirtualBox(버추얼박스) 설치  (0) 2022.04.20

VirtualBox(버추얼박스) 설치

버추얼박스 setup 파일을 다운 받는다.

다운로드 받은 exe 파일을 실행한다.

 

 

설치요소를 선택한다. 전체 설치를 할 것이기 때문에 다음을 눌러 넘어간다.

 

 

네트워크가 끊길 수 있다는 경고이다.

 

 

설치를 진행한다.

 

 

 

설치 중간에 버추얼박스에 사용할 드라이브를 설치하는 것이다. 설치를 진행한다.

 

 

설치가 완료되었다.

 

 

버추얼박스 실행을 하면 다음과 같이 나온다.

 

'DB ORACLE 공부 기록' 카테고리의 다른 글

Oracle Inventory  (0) 2022.05.02
ORACLE Enterprise/Standard 차이  (0) 2022.05.02
DBCA를 통한 데이터베이스 생성  (0) 2022.05.02
CentOS 7에 Oracle 19c 설치  (0) 2022.05.02
ORACLE 설치 전 사전 작업  (0) 2022.04.25

EC2 실습 전 먼저 PuTTY를 설치한다.

putty.exe와 puttygen.exe를 설치한다.

 

지역 설정을 해준다. 지역은 서울로 설정한다.

 

EC2를 검색해 접속한다.

현재 실행 중인 인스턴스가 하나도 없다는 것을 확인할 수 있다.

 

인스턴스 시작을 누른다.

 

첫 번째 OS를 사용한다.

 

인스턴스 유형은 프리티어를 지원하는 유형을 선택한다.

 

인스턴스 세부 정보 구성은 default로 설정한다.

 

스토리지도 default로 설정한다.

 

태그 및 보안그룹 구성도 default로 설정 후 검토 및 시작을 선택한다. 그 후 시작하기를 선택한다.

키페어 생성이 뜨면 키페어를 생성하고 다운로드한다.

그럼 pem 파일이 다운받아지고 그 후 인스턴스를 시작한다.

 

인스턴스가 실행중이다.

 

puttygen을 실행한다.

puttygen은 pem 파일을 ppk 파일로 변환시켜준다.

load를 선택 후 pem 파일을 실행한다.

 

암호를 설정하고 private key를 저장한다.

 

이제 putty를 켜준다.

퍼블릭 ipv4 주소를 putty에 입력한다.

 

호스트네임을 ec2-user@15.165.203.5 이렇게 지정한다. IP만 지정해도 된다.

 

Auth에서 아까 생성한 ppk 파일을 넣어준다.

 

저장 후 오픈을 하면 경고메시지를 수락하고 시작한다.

 

update 할 것이 없으므로 넘어간다.

[ec2-user@ip-172-31-41-211 ~]$ sudo su
[root@ip-172-31-41-211 ec2-user]# yum update -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                               | 3.7 kB     00:00
No packages marked for update
[root@ip-172-31-41-211 ec2-user]#

 

아파치를 설치한다.
yum을 통해 httpd를 설치한다. 

[root@ip-172-31-41-211 ec2-user]# yum install httpd -y

 

아파치를 실행한다.

[root@ip-172-31-41-211 ec2-user]# service httpd start
Redirecting to /bin/systemctl start httpd.service

 

인스턴스를 재부팅 시켜도 아파치를 자동으로 키도록한다.

[root@ip-172-31-41-211 ec2-user]# chkconfig httpd on
Note: Forwarding request to 'systemctl enable httpd.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

 

html 파일을 생성해준다.

[root@ip-172-31-41-211 ec2-user]# cd /var/www/html
[root@ip-172-31-41-211 html]# vi index.html
[root@ip-172-31-41-211 html]# cat index.html
<html>
        <body>
                <h1>hello AWS Learners!<h1>
        </body>
</html>

 

15.165.203.5를 크롬에 입력하면 화면이 떠야하는데 뜨지 않을 것이다.

이것은 보안 문제로 인스턴스 보안그룹의 인바운드 규칙을 수정한다.

인스턴스의 보안 > 보안그룹으로 들어간다.

 

인바운드 규칙을 편집한다.

 

TCP를 허용하는 인바운드 규칙을 추가한다.

 

15.165.203.5로 다시 접속하면 잘 뜨는 것을 확인할 수 있다.

'클라우드 공부 기록' 카테고리의 다른 글

EC2 (+ EBS, ELB)  (0) 2022.04.20
IAM 실습 - 사용자, 그룹, 역할, 정책 생성 및 정책 시뮬레이터  (0) 2022.04.06
IAM  (0) 2022.04.06

EC2 (Elastic Compute Cloud)

: 클라우드 공간에서 크기가 유연하게 변하는 공간을 제공


ㅁ EC2 사용시 지불 방법
1) On-demand
 - 시간단위로 가격이 고정 (최소한의 비용을 지불하여 EC2를 사용할 경우)
 - 개발 초기에 사용시 유용
 - 개발 기간을 알 수 없는 경우에 유용

2) Reserved
 - 일정 용량을 대여해서 사용
 - 개발 기간을 알 경우 사용
 - On-demand와 달리 가격 저렴
 - 크기를 줄이거나 늘릴 수 없음

3) Spot
 - 입찰 가격 적용 (경매)
 - 비용 절감시 유용
 - 개발 기간이 미정인 경우 사용

EC2를 사용하기 위해 EBS라는 디스크 볼륨이 필요
 *EBS : EC2에 부착되어 있는 일종의 하드디스크 (가상디스크)


EBS (Elastic Block Storage)

: 스토리지 볼륨을 생성하여 EC2에 부착되어 사용되는 가상의 하드디스크
- 디스크 볼륨 위에 파일시스템이 생성
- Availability Zone에 생성
 * Availability Zone (AZ)
  : 하나의 Region안에 여러개의 AZ 존재 가능
  - 일종의 Disaster Recovery (재난 복구)

ㅁ EBS 볼륨 타입
1) SSD
 - General Purpose SSD (GP2) : 최대 10K IPOS 지원, 1GB당 3IPOS 속도 (속도 빠름, 보편적으로 사용)
 - Provisioned IPOS SSD (IO1) : 많은 양의 데이터 처리(DB 테이블 관리시 필요, 빅데이터 관리시 필요), 10K 이상의 IPOS 지원
2) Magnetic/HDD
 - Throughput Optimized HDD (ST1) : 빅데이터 보관, 컴퓨터 로그파일 읽을 시 사용

    (boot volume로 사용X = 윈도우처럼 운영체제를 가질 수 없음)
 - CDD HDD (SC1) : 파일서버 같은 입출력이 별로 없을 경우 사용 (boot volume로 사용X)
 - Magnetic (Sandard) : 저렴 (boot volume로 사용 가능)


ELB (Elastic Load Balancers)

: 웹상에서 흐르는 많은 서버의 흐름을 균형있게 흘려보냄
- 병목 현상 방지
- EC2 인스턴스는 unhealthy instance일 수 있음 (instance가 시간초과나 셧다운) 이것을 ELB가 healthy instance로 보내줌

ㅁ ELB 종류
1) Application Load Balancer
 - OSI 7계층 中 7 layer(응용계층)에서 작동
 - HTTP, HTTPS 같은 트래픽 로드밸런싱에 적합
 - 라우팅 설정을 이용해 특정 서버로 request를 보낼 수 있음 (루트서버 변경)
2) Network Load Balancer
 - OSI 7계층 中 4 layer(전송계층)에서 작동
 - TCP 트래픽 정리시 유용
 - 초당 수백만개 request 처리가능
3) Classic Load Balancer
 - OSI 7계층 中 4 layer(전송계층), 7 layer(응용계층)에서 작동
 - legacy로 간주(예전 시스템)되어 거의 사용X
 - 느림
 - aws 시험에 자주 등장

ㅁ ELB 에러
: Load Balancer Error : 504 Error
어플리케이션이나 서버가 응답을 받지 못하는 경우 에러

(EC2 인스턴스 사용시 항상 작동될 거라는 보장X)

ㅁ X-Forwarded-For 헤더
EC2가 Public IP 주소 확인할 수 있는 방법
EC2는 Private IP 주소만 확인 가능
ex) 152.12.3.255 (Public IP) > DNS request > ELB 10.0.0.23 (Private IP) > EC2 10.0.0.23
EC2는 Private IP 주소만 확인함
EC2는 Public IP 주소 확인하기 위해 X-Forwarded-For 헤더를 통해 확인

ㅁ Route53
: AWS에서 제공하는 DNS 서비스
 도메인 주소를 구매하여 EC2 instance, S3 Bucket, Load Balancer 로 넘기는 서비스

 

 

 

'클라우드 공부 기록' 카테고리의 다른 글

EC2 실습  (0) 2022.04.20
IAM 실습 - 사용자, 그룹, 역할, 정책 생성 및 정책 시뮬레이터  (0) 2022.04.06
IAM  (0) 2022.04.06

MFA 활성화

AWS 계정을 생성한 후 실습에 앞서 MFA를 활성화한다.

검색에서 IAM를 들어가 root 계정에서 MFA 활성화를 시켜준다. (보안을 위해, 해킹 가능성 있음)


사용자 추가

IAM 에서 사용자를 추가한다.

 

 

사용자를 추가한다.

액세스키를 이용해 aws 다양한 서비스 사용

암호는 비밀번호를 부여하는 방식

그룹에 사용자를 추가한다.

태그는 선택사항으로 그냥 넘긴다.

 

사용자를 생성한다.

 

사용자 추가가 완료됐다.

 

사용자 생성 완료


그룹 생성

 

그룹 이름 지정

 

그룹 정책은 설정하지 않고 생성한다.

정책을 설정하면 그룹 내 사용자에게 설정된다.

 

그룹 생성 완료

 

그룹에 사용자 추가

 

체크 후 그룹에 추가 선택

 

그룹 추가 완료

 

사용자가 1명이 된 것을 확인할 수 있다.


역할 생성

 

역할을 선택할 수 있다. 

역할은 사용자와 밀접한 관련이 있다.

역할보다는 정책이 중요하므로 필요할 경우 역할을 생성한다.


정책 생성

 

정책 생성에는 두가지 방법이 있다.

 

1) 시각적 편집기를 이용한 정책 생성

 

정책 서비스는 DynamoDB를 선택하고 허용되는 엑세스 레벨은 읽기와 쓰기만 선택한다.

 

리소스를 선택한다.

리소스란 DynamoDB에서 제공하는 리소스(함수)를 말한다.

모든 리소스를 추가한다.

 

태그는 선택하지 않고 검토로 넘어간다.

정책 이름을 설정하고 정책을 생성한다.

 

생성한 정책을 확인할 수 있다.

 

 

2) JSON을 이용한 정책 생성

JSON을 이용해 정책을 생성할 수 있다.


정책 시뮬레이터

대시보드에 들어가 우측 하단 정책 시뮬레이터를 선택한다.

 

 

정책 시뮬레이터를 돌리기 위해 DynamoDB를 선택한다.

 

시뮬레이션을 돌리면 aws_leaner는 정책이 설정되지 않아 허가 거부 된다.

 

사용자에 정책 추가

 

기존 정책에 직접 연결해 읽기 정책을 사용한다.

 

정책이 적용된 것을 확인

 

다시 정책 시뮬레이터로 돌아와 아까와 같이 설정한다.

읽기 정책이 설정되어 있어 시뮬레이션을 돌리면 일부 기능이 허용된 것을 확인할 수 있다.

테이블 읽기 등과 같은 기능은 허용이 된다.

 

'클라우드 공부 기록' 카테고리의 다른 글

EC2 실습  (0) 2022.04.20
EC2 (+ EBS, ELB)  (0) 2022.04.20
IAM  (0) 2022.04.06

IAM (Identity and Access Management)

: 유저를 관리하고 접근 레벨 및 권한에 대한 관리

 

특징

- 접근키(access key), 비밀키(secret access key)

   : 루트유저에서 유저 A를 만들면 IAM은 A유저의 접근키와 비밀키 생성
- 세밀한 접근 권한 부여 기능

   : ex) 회사에서 개발자에서 테이블 수정만 가능하도록 삭제 불가능
- 비밀번호를 수시로 변경 가능하게 해줌 

   : 보안을 위해 
- multi-factor authentication(다중 인증) 기능

   : AWS 로그인 할 경우 다른 계정을 이용해서 로그인 인증할 수 있도록

   : root 유저는 MFA 인증 필수

 

- 그룹 : 하나의 그룹은 하나 혹은 다수의 유저가 존재 가능
- 유저 : 사용자
- 역할 : 유저에게 각각 역할을 부여함으로써 역할이 다른 유저를 생성
- 정책 : json 형태 정책  (그룹, 역할에 추가할 수 있음)

IAM → Universal : 지역 설정이 필요X

*대부분의 서비스는 Regional : 지역마다 리소스나 기능들이 다를 수 있음

 ex) 지역 A에서 개발한 프로그램을 지역 B에서 사용 할 수 없을 수 있음

 

IAM 정책 시뮬레이터

: 개발 환경에서 실제 환경(Production)으로 넘어가기 전에 IAM 정책이 잘 작동되는지 테스트하는 툴

 (실제로 존재하는 유저에게 부여된 정책 테스트 가능)

'클라우드 공부 기록' 카테고리의 다른 글

EC2 실습  (0) 2022.04.20
EC2 (+ EBS, ELB)  (0) 2022.04.20
IAM 실습 - 사용자, 그룹, 역할, 정책 생성 및 정책 시뮬레이터  (0) 2022.04.06

STATIC=====================================
R12(config)# ip route 0.0.0.0 0.0.0.0 1.4.2.1

R11(config)# ip route 0.0.0.0 0.0.0.0 1.4.1.1
R11(config)# ip route 1.4.3.0 255.255.255.0 1.4.2.2

RC(config)#ip route 1.4.2.0 255.255.255.0 1.4.1.2
RC(config)#ip route 1.4.3.0 255.255.255.0 1.4.1.2


RIPv2 =======================================
R22(config)#router rip
R22(config-router)#version 2
R22(config-router)#no auto-summary
R22(config-router)#network 2.4.3.1
R22(config-router)#network 2.4.2.2
R22(config-router)#passive-interface g0/0

R21(config)#router rip
R21(config-router)#version 2
R21(config-router)#no auto-summary
R21(config-router)#network 2.4.2.1
R21(config-router)#network 2.4.1.2

RC(config)#router rip
RC(config-router)#version 2
RC(config-router)#no auto-summary
RC(config-router)#network 1.4.1.1
RC(config-router)#network 2.4.1.1
RC(config-router)#network 3.4.1.1
RC(config-router)#network 4.4.1.1

+
RC(config)#router rip
RC(config-router)#redistribute static
RC(config-router)#redistribute ospf 1 metric 5
RC(config-router)#redistribute eigrp 100 metric 5


OSPF=======================================
R32(config)#router ospf 1
R32(config-router)#router-id 3.4.3.1
R32(config-router)#network 3.4.3.1 0.0.0.0 area 0
R32(config-router)#network 3.4.2.2 0.0.0.0 area 0
R32(config-router)#passive-interface g0/0

R31(config)#router ospf 1
R31(config-router)#router-id 3.4.2.1
R31(config-router)#network 3.4.2.1 0.0.0.0 area 0
R31(config-router)#network 3.4.1.2 0.0.0.0 area 0

RC(config)#router ospf 1
RC(config-router)#router-id 3.4.1.1
RC(config-router)#network 1.4.1.1 0.0.0.0 area 0
RC(config-router)#network 2.4.1.1 0.0.0.0 area 0
RC(config-router)#network 3.4.1.1 0.0.0.0 area 0
RC(config-router)#network 4.4.1.1 0.0.0.0 area 0

+
RC(config)#router ospf 1
RC(config-router)#redistribute static subnets
RC(config-router)#redistribute rip subnets
RC(config-router)#redistribute eigrp 100 metric 10 subnets


EIGRP======================================
R42(config)#router eigrp 100
R42(config-router)#network 4.4.3.1 0.0.0.0
R42(config-router)#network 4.4.2.2 0.0.0.0
R42(config-router)#passive-interface g0/0

R41(config)#router eigrp 100
R41(config-router)#network 4.4.2.1 0.0.0.0
R41(config-router)#network 4.4.1.2 0.0.0.0

RC(config)#router eigrp 100
RC(config-router)#network 1.4.1.1 0.0.0.0
RC(config-router)#network 2.4.1.1 0.0.0.0
RC(config-router)#network 3.4.1.1 0.0.0.0
RC(config-router)#network 4.4.1.1 0.0.0.0

+
RC(config)#router eigrp 100
RC(config-router)#redistribute static
RC(config-router)#redistribute rip metric 10000 10 255 1 1500
RC(config-router)#redistribute ospf 1 metric 10000 10 255 1 1500

 


1. Windows Client - SSH

◾ 공개키는 서버

개인키로 공개키가 풀리면 허용해주는 시스템

개인키가 있으면 공개키를 계산 가능

 

◾ SSH – Windows Client(putty)

: 공개키를 미리 저장하고 공개키를 이용한 인증방식이다.


◾ 과정
 1) 클라이언트에서 키생성.
 2) 공개키를 서버로 이전
 3) 패스워드 없는 접속 테스트

 

◾ puttygen – 키 생성 관리 프로그램
• 시작 – PuTTY(64bit)


키 생성

key 아래 빈 부분을 마우스로 문지르면 빠르게 키 생성 가능

키 확인

개인키 저장

다음 경로에 저장한다.

 

리눅스에서 복사한 공개 키는 서버의 $HOME/.ssh/authorized_keys에 저장한다.

[root@CentOS7 ~]# su - st
마지막 로그인: 금 12월 10 13:45:04 KST 2021 192.168.10.130에서 시작 일시 pts/0
[st@CentOS7 ~]$ pwd
/home/st
[st@CentOS7 ~]$ ls
[st@CentOS7 ~]$ mkdir .ssh
[st@CentOS7 ~]$ ls
[st@CentOS7 ~]$ ls -a
.   .Xauthority    .bash_logout   .bashrc  .config   .ssh
..  .bash_history  .bash_profile  .cache   .mozilla  .viminfo
[st@CentOS7 ~]$ vi .ssh/authorized_keys

OR

[root@CentOS7 ~]# mkdir /home/st/.ssh
[root@CentOS7 ~]# vi /home/st/.ssh/authorized_keys

 

Windows Putty어서 개인키를 지정하고 Windows Putty 접속 계정 지정한다.

PuTTY에서 아래와 같이 설정해준다.

 

서버에 접속해서 패스워드 없이 접속 되는지 확인한다.

자동으로 접속된다.

Using username "st".
Authenticating with public key "rsa-key-20220203"
Last login: Thu Feb  3 15:03:19 2022
[st@CentOS7 ~]$

2. Linux Client - SSH

공개키를 미리 저장하고 공개키를 이용한 인증방식이다.


◾ 과정
 1) 클라이언트에서 키생성.
 2) 공개키를 서버로 이전
 3) 패스워드 없는 접속 테스트

 

◾ 클라이언트에서 키 생성
# ssh-keygen -t <type> -b <bits>
  -t : rsa, dsa
  -b : rsa(768~2048), dsa(1024)


키 생성

[root@CentOS7 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:veO458NL5gkPHsRAHumf+DV5X9Ffhj/IcuK4MEvlGpI root@CentOS7
The key's randomart image is:
+---[RSA 2048]----+
|      o.         |
|     o..         |
|     .o        ..|
|      .o .    ..+|
|       oSo... .o+|
|      o.= ++.+ .+|
|     E *++Bo+. ..|
|      o.B%++  .  |
|       o+=Oo     |
+----[SHA256]-----+

 

공개키 : /root/.ssh/id_rsa.pub

개인키 : /root/.ssh/id_rsa

 

공개키를 접속할 서버로 복사한다.

[root@CentOS7 ~]# ssh-copy-id st04@192.168.10.11
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.10.11 (192.168.10.11)' can't be established.
ECDSA key fingerprint is SHA256:vrnjESYRqUdWJx0S182N+RYSd9mPESDSuJhKCLIqtqY.
ECDSA key fingerprint is MD5:68:07:84:35:e6:90:4c:7f:14:15:17:92:ff:a9:e9:13.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': y
Please type 'yes' or 'no': yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
st04@192.168.10.11's password:1234

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'st04@192.168.10.11'"
and check to make sure that only the key(s) you wanted were added.

 

ssh로  로그인이 가능하다.

[root@CentOS7 ~]# ssh st04@192.168.10.11
Last login: Thu Feb  3 15:44:09 2022 from 192.168.10.130

 

윈도우에서 접속하기위해 다음과 같이 설정한다.

개인키를 윈도우로 전송하기위해 ftp서버를 사용한다.

[root@CentOS7 ~]# yum install -y vsftpd

[root@CentOS7 ~]# systemctl start vsftpd

 

생성된 개인키를 ftp에서 접속할 계정의 홈디렉토리로 옮기고 권한을 변경한다.

[root@CentOS7 ~]# cd /root/.ssh
[root@CentOS7 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@CentOS7 .ssh]# cp id_rsa /home/st04/id_rsa
[root@CentOS7 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@CentOS7 .ssh]# cd /home/st04/id_rsa
-bash: cd: /home/st04/id_rsa: 디렉터리가 아닙니다
[root@CentOS7 .ssh]# cd /home/st04
[root@CentOS7 st04]# ls
id_rsa
[root@CentOS7 st04]# ll
합계 4
-rw------- 1 root root 1675  2월  3 15:56 id_rsa
[root@CentOS7 st04]# chmod 666 id_rsa
[root@CentOS7 st04]# ll
합계 4
-rw-rw-rw- 1 root root 1675  2월  3 15:56 id_rsa

 

윈도우 cmd에서 ftp 접속을 통해 get명령어로 id_rsa 파일을 다운받는다.

C:\Users\st04>ftp 192.168.11.131
192.168.11.131에 연결되었습니다.
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
사용자(192.168.11.131:(none)): st04
331 Please specify the password.
암호:
230 Login successful.
ftp> get id_rsa
200 PORT command successful. Consider using PASV.
550 Failed to open file.
ftp> get id_rsa
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for id_rsa (1675 bytes).
226 Transfer complete.
ftp: 0.00초 1675000.00KB/초
ftp>

 

Load로 id_rsa를 로드하고 따로 개인키를 저장한다.

저장한 개인키로 접속 설정한다.

 

자동 접속을 확인할 수 있다.

Using username "st04".
Authenticating with public key "imported-openssh-key"
Last login: Thu Feb  3 15:46:54 2022 from 192.168.10.130
[st04@dal ~]$

RIP - OSPF

OSPF=======================================
Rr2(config)#router ospf 1
Rr2(config-router)#router-id 192.4.23.1
Rr2(config-router)#network 192.4.23.1 0.0.0.0 area 0
Rr2(config-router)#network 192.4.22.2 0.0.0.0 area 0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router ospf 1
Rr1(config-router)#router-id 192.4.22.1
Rr1(config-router)#network 192.4.22.1 0.0.0.0 area 0
Rr1(config-router)#network 192.4.21.1 0.0.0.0 area 0

Rm(config)#router ospf 1
Rm(config-router)#router-id 192.4.21.10
Rm(config-router)#network 192.4.21.10 0.0.0.0 area 0
Rm(config-router)#network 192.4.11.10 0.0.0.0 area 0
Rm(config-router)#redistribute rip subnets

RIPv2 =======================================
Rs2(config)#router rip
Rs2(config-router)#version 2
Rs2(config-router)#no auto-summary
Rs2(config-router)#network 192.4.13.1
Rs2(config-router)#network 192.4.12.2
Rs2(config-router)#passive-interface g0/0

Rs1(config)#router rip
Rs1(config-router)#version 2
Rs1(config-router)#no auto-summary
Rs1(config-router)#network 192.4.12.1
Rs1(config-router)#network 192.4.11.1

Rm(config)#router rip
Rm(config-router)#version 2
Rm(config-router)#no auto-summary
Rm(config-router)#network 192.4.11.10
Rm(config-router)#network 192.4.21.10
Rm(config-router)#redistribute ospf 1 metric 5

RIP_OSPF세팅.pkt
0.05MB


RIP - EIGRP

RIPv2 =======================================
Rs2(config)#router rip
Rs2(config-router)#version 2
Rs2(config-router)#no auto-summary
Rs2(config-router)#network 192.4.13.1
Rs2(config-router)#network 192.4.12.2
Rs2(config-router)#passive-interface g0/0

Rs1(config)#router rip
Rs1(config-router)#version 2
Rs1(config-router)#no auto-summary
Rs1(config-router)#network 192.4.12.1
Rs1(config-router)#network 192.4.11.1

Rm(config)#router rip
Rm(config-router)#version 2
Rm(config-router)#no auto-summary
Rm(config-router)#network 192.4.11.10
Rm(config-router)#network 192.4.21.10
Rm(config-router)#redistribute eigrp 100 metric 5


EIGRP======================================
Rr2(config)#router eigrp 100
Rr2(config-router)#network 192.4.23.1 0.0.0.0
Rr2(config-router)#network 192.4.22.2 0.0.0.0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router eigrp 100
Rr1(config-router)#network 192.4.22.1 0.0.0.0
Rr1(config-router)#network 192.4.21.1 0.0.0.0

Rm(config)#router eigrp 100
Rm(config-router)#network 192.4.11.10 0.0.0.0
Rm(config-router)#network 192.4.21.10 0.0.0.0
Rm(config-router)#redistribute rip metric 10000 10 255 1 1500

RIP_EIGRP세팅.pkt
0.05MB


OSPF - EIGRP

OSPF=======================================
Rs2(config)#router ospf 1
Rs2(config-router)#router-id 192.4.13.1
Rs2(config-router)#network 192.4.13.1 0.0.0.0 area 0
Rs2(config-router)#network 192.4.12.2 0.0.0.0 area 0
Rs2(config-router)#passive-interface g0/0

Rs1(config)#router ospf 1
Rs1(config-router)#router-id 192.4.12.1
Rs1(config-router)#network 192.4.12.1 0.0.0.0 area 0
Rs1(config-router)#network 192.4.11.1 0.0.0.0 area 0

Rm(config)#router ospf 1
Rm(config-router)#router-id 192.4.11.10
Rm(config-router)#network 192.4.21.10 0.0.0.0 area 0
Rm(config-router)#network 192.4.11.10 0.0.0.0 area 0
Rm(config-router)#redistribute eigrp 100 metric 10 subnets

EIGRP======================================
Rr2(config)#router eigrp 100
Rr2(config-router)#network 192.4.23.1 0.0.0.0
Rr2(config-router)#network 192.4.22.2 0.0.0.0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router eigrp 100
Rr1(config-router)#network 192.4.22.1 0.0.0.0
Rr1(config-router)#network 192.4.21.1 0.0.0.0

Rm(config)#router eigrp 100
Rm(config-router)#network 192.4.11.10 0.0.0.0
Rm(config-router)#network 192.4.21.10 0.0.0.0
Rm(config-router)#redistribute ospf 1 metric 10000 10 255 1 1500

OSPF_EIGRP세팅.pkt
0.05MB

 

+ Recent posts