DNS 서버 구축 실습

Bind 서버 설치 확인 및 설치
# yum list bind
# yum install –y bind

available 는 파일은 있지만 설치가 되어있지 않으므로 # yum install –y bind 로 설치한다.

 

Bind 서버를 시작한다.
# systemctl start named.service

 

관련 파일
• 데몬 : /usr/sbin/named
• 관리 스크립트 : /usr/lib/systemd/system/named.service
• 환경 설정 파일 : /etc/named.conf
• 설정 파일 경로 : /var/named/
- named.ca와 여러 zone 파일들
• 이외 관련 파일 : /etc/resolv.conf, /etc/host.conf
• 실행을 위한 최소 권한
- /etc/named.conf, /var/named, /var/named/*
- 그룹 소유자는 반드시 named로 정의한다.

 

ntsysv로 named.service를 자동으로 시작하도록 설정한다.

 

 

# vi /etc/named.conf 에서 아래와 같이 수정한다.

vi /etc/named.conf

options {
directory "/var/named";
};

zone "." {
type hint;
file "named.ca";
};

zone "st04.sec" {
type master;
file "st04.zone";
};

 

Zone 파일 생성 (st04.sec)

/var/named/ 디렉토리에 생성한다.

zone 파일 이름은 st04.zone로 한다.

 

vi st04.zone으로 들어가 아래와 같이 수정한다.

vi /var/named/st04.zone

$TTL    1D
@   IN   SOA  ns.st04.sec.   root.ns.st04.sec. (
                                   0         ; Serial
                                   1D        ; Refresh
                                   1H        ; Retry
                                   1W        ; Expire
                                   3H )      ; Minimum
; Name Server
   IN   NS      ns.st04.sec.
; Host address
          IN     A       192.168.10.131
ns        IN     A       192.168.10.131
win       IN     A       192.168.10.130

 

• 실행을 위한 최소 권한 부여

- /etc/named.conf, /var/named, /var/named/*
- 그룹 소유자는 반드시 named로 정의한다.

권한 수정 전

권한 수정 (할 필요 없다.)

권한을 위와 같이 수정해준다.

 

권한 변경 후

 

그룹 소유자 변경

/var/named 에서 chgrp named st04_itc.zone 으로 변경한다.

 

리눅스에 설정된 DNS 서버 주소 바꾸기

1. vi /etc/resolv.conf 에서 아래와 같이 수정한다. 

 

2. cd /etc/sysconfig/network-scripts 들어간다.

vi ifcfg-ens32 를 아래 DNS 주소를 아래와 같이 바꾼다.

# systemctl restart network 를 통해 네트워크를 재시작 해준다.

 

Bind 서버를 다시 시작해준다.

에러메시지가 안나오는 것을 확인하면 잘 된것이다.

host 를 통해 IP 주소를 잘 받아오는 것을 확인한다.

DNS (Domain Name System)

• 분산 database
 - 수많은 name server들이 계층형구조로 구조화 되어있다.


 Application layer protocol (host name → ip로 반환)
다른 app layer protocol들이 HTTP, FTP, SMTP등 사용자가 제공한 호스트네임을 ip로 변환하는데 이용
 - 인터넷의 가장 중요한 기능중의 하나
 - Network edge에 구현된다.


 IP와 이름간 mapping 

 

 호스트명을 IP 주소로 변환 (클라이언트가 요청해서)

 

 호스트에얼리아싱 (host aliasing)
 - 정식 (canonical) 호스트명
 - 별칭(aliasing) 호스트명
 - DNS는 IP뿐아니라 정식 호스트명을 얻기 위해 이용되기도 한다.

 

 DNS 를 중앙집중식으로 하지 않는 이유
 - 서버 장애 (인터넷 다운…)
 - Traffic의 집중
 - 중앙 서버까지의 거리
 - 관리

 

 DNS 동작과정

 

- 책임 DNS 서버 : 자신이 관리하는 DNS 서버 있는 경우 (root DNS server, com DNS server 등) > zone 파일 생성

- 캐시 DNS 서버 : 자신이 관리하는 DNS 서버 없는 경우 > zone 파일X

- 로컬 DNS 서버 : 질의를 던지는 네임서버 (보통 캐시네임서버 사용) [ /etc/resolv.conf ]

 

예시) 클라이언트가 www.itclass.co.kr 접속시 DNS 동작과정

 

서비스(service)와 데몬(daemon)

서비스 = 데몬

사용자의 요청 시점이 아닌 임의의 시점에서 background process로 시작되어 사용자나 프로세스에 서비스를 제공하는 프로그램

 

서버 : 요청한 서비스 제공

클라이언트 : 서비스 요청

 

방식
• Stand Alone 

- 스스로 listen하며 항상 메모리에 상주한다.
- 서비스 요청에 즉시 대응 가능하다.
- 서비스 요청이 매우 드물거나 idle 한 경우 메모리를 낭비한다.
• Super Daemon
- Listen을 직접하지 않는다.
- 메모리에 상주하지 않으며 서비스 요청이 있을때 xinetd에 의해 호출된다.
- 점차 사라지는 추세

 

서비스 조회
# systemctl list-unit-files
- 모든 서비스의 상태 확인

 

# systemctl [is-enabled | is-active] [서비스명]
- is-enabled : 자동 실행 등록 여부 확인
- is-active : 현재 실행 여부

 

서비스 등록
# systemctl [enable | disable] [서비스명]
- [enable | disable] : 등록 및 등록 해제

 

서비스 실행
# systemctl [start | restart | stop] [서비스명]
- [start | restart | stop] : 실행, 재실행, 종료

 

systemctl 추가 옵션
# systemctl [옵션] [서비스명]
- try-restart : 실행, 재실행, 종료 (에러났을 때 실행)
- Reload : 설정 재구동
- status : 상태 확인

 

ntsysv

반드시 필요한 서비스만 구동한다.
• 초기 서비스 목록
network   : 네트워크 활성화
crond.service   : 스케쥴 관리
display-manager.service   : Xwindow 필수
gdm.service   : Xwindow 필수
sshd.service   : sshd

 

Target
Target은 init의 run level과 동일한 개념이다.
• run level보다 다양한 모드를 제공한다.
Ex)
- multi-user.target : init3
- graphical.target : init5
- rescue.target : init1, single user mode
- emergency.target : 응급 복구 모드
• 제공되는 target 확인
# systemctl list-units --type target --all


Default target 확인
# systemctl get-default
- 기본 타켓을 확인한다.

CentOS 7 이전버전
• /etc/inittab 파일에 설정됨

 

Default target 설정
# systemctl set-default [타켓]
- 기본 타켓을 변경한다.

- 변경후 시스템 리부팅

 

타켓 변경
• 시스템 관리나 장비 손상 등으로 인한 타켓 변경
# systemctl [rescue | emergency]
- 지정한 타켓으로 변경된다.
- rescue : rescue.target
- emergency : emergency.target : 응급 복구 모드

 

레드햇 계열 리눅스의 런레벨

리눅스의 런레벨은 리눅스마다 약간의 차이가 있으나 보통 0,1,6은 공통이다.


Single user mode 실습

system, password 복구시 사용

여기서 패스워드를 바꾸거나 수정하면 된다.

'리눅스 공부 기록' 카테고리의 다른 글

DNS 서버 구축 실습  (0) 2021.11.08
리눅스 15 - DNS 서버  (0) 2021.11.08
리눅스 13 - CRON & RSYNC  (0) 2021.11.04
CentOS5 및 CentOS6 설치하기 및 epel, rpmforge 추가하기  (0) 2021.11.03
리눅스 12 - RPM 및 YUM  (1) 2021.11.03

CRON

작업을 정기적으로 실행

주기적으로 작업되는 작업 일정을 저장해서 자동으로 실행하는 데몬

- at이나 anacron 등과 같이 다양한 프로그램이 지원

 

관련 파일
• /etc/rc.d/init.d/crond
- 데몬 실행 스크립트(service를 이용한다.)

** 데몬 (=서비스) : 메모리에 실행되는 프로그램
• /usr/lib/systemd/system/crond.service
- 데몬 실행 스크립트(systemctl을 이용한다.)
• /etc/crontab
- 기본 스케줄 일정
• /usr/bin/crontab
- 스케줄 설정 프로그램 파일 (각 사용자가 스케줄 등록)
• /etc/cron.allow, /etc/cron.deny
- /usr/bin/crontab 이용 제한
- 등록된 계정에 대해서만 허용하거나 거부한다.

 

 

사용 형식

# crontab [옵션]

# crontab -u [유저] [옵션]
• 옵션
- e : 스케줄 등록
   . vi 환경으로 스케줄 등록
- l : 스케줄 확인 (출력)
- r : 스케줄 삭제
• 명령어 형식
[분] [시] [일] [월] [요일] [작업내용]
 시간 범위
 - 분 : 0 ~ 59

 - 시 : 0 ~ 23

 - 일 : 1 ~ 31

 - 월 : `1 ~ 12

 - 요일: 0(일요일) ~ 6(토요일)

 

crontab 실습

시간 받아오는 것과 권한을 변경해 주었다.

 

a.txt 파일의 권한이 변경된것을 확인할 수 있다.

 

RSYNC

두 시스템간에 지정한 디렉토리 동기화

RSYNC 도 클라이언트와 서버가 있음.

이 둘을 동기화하는 것

RSYNC 데몬 구동 : standalone(스크립트로 실행)

rsync 설치 확인
# yum list rsync
……
Installed Packages
rsync.x86_64 3.0.9-18.el7 @anaconda


관련 파일
• 데몬 : /usr/bin/rsync  (: 실제 실행되는 파일)
• 관리 스크립트 : /usr/lib/systemd/system/rsyncd.service   (: ntsysv 밑에 있는 것)
• 백업 설정 파일 : /etc/rsyncd.conf  (: rsync의 설정파일 / 수정하면 데몬 stop 후 start)


데몬 실행
# systemctl [start | stop | restart | status] rsyncd.service

 

RSYNC 서버 설정 : /etc/rsyncd.conf

[서비스 명] : 리소스 식별자, client에서 이용한다.
path : 백업 경로
comment : 주석
uid : 전송자 UID
gid : 전송자 GID
use chroot : rsync 경로를 외부에서 / 로 인식한다.

   (chroot : change root) 사용자가 접속하면 디렉토리 밖으로 이동못하게 / 로 인식

read only : 읽기 전용으로 접근한다.
hosts allow : 접속 허용할 호스트 (클라이언트만 지정)
max connections (=max clients / max servers) : 동시 접속자 수
timeout : 시간이 지나면 자동으로 접속 끊기

# cat /etc/rsyncd.conf
[backup]
path = /backup
uid = root
gid = root
use chroot = yes
read only = yes    (파일 원본 있어 복사만 가능. 쓰기 X)
hosts allow = 192.168.10.33  (지정된 클라이언트만 복사 가능)
max connections = 1
timeout = 300

RSYNC 클라이언트 : 동기화
: rsync client 명령을 이용 server의 디렉토리와 client의 디렉토리를 동기화
rsync –avz [--delete] source destination   (source를 destination로 복사)
rsync -avz [--delete] IP::[서비스명] [백업 디렉토리]
rsync -avz [--delete] [백업 디렉토리] IP::[서비스명]  (우리 서버는 현재 read only라 실행 X)

rsync 명령 옵션
• -v : 작업내역 출력
• -a : archive mode 작업
심볼릭 링크, 권한 등 모든 내용을 보존한다.
• -z : 파일을 압축 전송한다.
• --delete : source에서 지워진 파일을 destination에서도 지워준다.(완전 동기화 옵션)
 Local System 내에 동기화
rsync –avz /home/httpd/ /backup/httpd/

 

rsync 명령을 cron에 등록
• 매일 새벽 1시에 백업 수행
00 1 * * * rsync -avz 192.168.10.31::backup /backup

 

 

RSYNC 실습

서버 [192.168.10.131] 

클라이언트 [192.168.10.133] 

먼저 서버로 사용할 [192.168.10.131] 컴퓨터에서 사용한다.

[192.168.10.131]에 rsync 설치를 확인한다.

 

[192.168.10.131]의 [ vi /etc/rsyncd.conf ] 수정한다.

 

 

클라이언트 컴퓨터 [192.168.10.133]

클라이언트에서 실행

/backup : 백업할 디렉토리를 생성한다. (/밑에 backup로 생성)

192.168.10.131 에 백업을 /backup 디렉토리에 백업한다.

잘 백업된 것을 확인할 수 있다.

 

 

클라이언트에서 cron 과 rsync를 이용한 자동 백업 등록

매일 새벽 1시에 백업 수행한다.

CentOS5 및 CentOS6 설치하기 및 epel, rpmforge 추가하기

- 실습 내용 -

CentOS 5,6,7에 각각 epel, rpmforge를 추가한다.

CentOS6 epel, rpmforge 파일 예시
epel-release-6-8.noarch.rpm
rpmforge-release-0.5.3-1.el6.rf.i686.rpm
파일을 설치하고 repository 목록을 확인한다.

[ yum repolist ] 입력해 목록 확인

 

CentOS5 설치하기

영어로 설치해주기!!!

한국어로 설치시 설치할 파일 선택해주기

CentOS5는 32bit이므로 위와 같은 버전을 선택한다.

 

test는 스킵한다.

 

영어를 선택해준다.

한국어로 선택할 경우 마지막에 설치할 파일을 지정해 설치해주면 된다.

다음을 누르면 초기화할 것인지 물어보는데 초기화하기를 눌러준다.

 

 Custom layout 을 선택해주고 다음 (영어버전 / 한국어버전)

 

파티션을 만들어 준다.

/boot 를 500MB으로 만들어준다.

 

swap를 1024MB로 만든다.

 

/ 를 나머지 용량으로 채운다.

 

IP주소와 netmask를 설정해준다.

 

호스트명을 설정하고 게이트웨이, DNS를 설정한다.

 

시간은 나중에 따로 설정해도 되므로 다음을 누른다.

 

root 암호를 설정한다.

 

Gnome 을 선택하고 다음을 누른다.

 

다음을 누른다.

 

한국어로 설정해 설치할 경우 더 많은 기능이 설치되면서 오류가 뜨게 되는데 영어로 설치하면 오류가 안뜬다.

 

설치가 끝나면 리부트를 눌러 다시 켜준다.

 

방화벽은 disabled를 설정한다.

 

selinux도 disabled를 설정한다.

 

사용자를 생성한다.

 

PuTTY로 잘 접속되는 것을 확인한다.

 

CentOS 5에 epel, rpmforge를 추가하기

epel-release-5-4.noarch.rpm
rpmforge-release-0.5.3-1.el5.rf.i386.rpm
파일을 설치하고 repository 목록 확인

 

파일을 다운받기 위해 FTP 로 접속한다.

FTP를 이용해 위와 파일을 다운받는다.

 

잘 다운받은 것을 확인한다.

[ rpm -Uvh 파일명 ] 을 통해 다운받는다.

 

[ yum repolist ] 입력해 잘 다운되었는지 목록을 확인한다.

 

CentOS6 설치하기

CentOS6는 64bit이므로 위와 같은 버전을 설정한다.

 

test는 스킵하고 다음을 누른다.

 

한국어를 선택하고 키보드는 영어를 선택한다.

 

기본 저장장치를 선택한다.

모든 데이터를 삭제한다.

 

호스트명을 지정한다.

 

IP주소와 netmask, gateway를 설정한다.

 

설치하고 난 뒤 설정을 바꿀수도 있다.

 

시간은 나중에 설정할 것이므로 다음을 누른다.

root 암호를 설정한다.

 

사용자 레이아웃 만들기로 설정한다.

표준파티션으로 설정한다.

 

/boot 는 500MB

swap는 1024MB 설정한다.

 

/ 는 나머지 용량으로 설정한다.

위와 같이 생성된 것을 확인한다.

 

포맷을 누른다.

 

다음을 누른다.

 

 desktop를 선택하고 다음을 눌러 설치하고 리부트 한다.

 

라이센스 정보는 동의하고 사용자 계정을 등록한다.

 

kdump는 비활성화로 하고 다음을 눌러 root로 로그인하기위해 기타를 누른다.

 

root로 로그인 되는것을 확인한다.

 

CentOS 6에 epel, rpmforge를 추가하기

epel-release-6-8.noarch.rpm
rpmforge-release-0.5.3-1.el6.rf.i686.rpm
파일을 설치하고 repository 목록 확인

 

ftp를 설치하기위해 CentOS6 의 VMware를 들어간다.

위와같이 [ VM > Removable Devices > CD/DVD > Connect ]를 누르면 iso파일이 활성화된다.

 

/로 이동해 media 디렉토리로 이동해 CentOS_6.10_Final 디렉토리로 이동한다.

Packages 디렉토리로 이동해 ftp 설치파일을 다운받는다.

[ cd /media/CentOS_6.10_Final/Packages ] 이동후 ftp 다운

 

ftp로 들어간다.

epel-release-6-8.noarch.rpm
rpmforge-release-0.5.3-1.el6.rf.i686.rpm

위 두 파일을 다운받는다.

 

파일을 설치한다.

 

[ yum repolist ] 입력해 잘 다운되었는지 목록을 확인한다.

 

CentOS7

위와 같은 방법이므로 설명은 생략하고 사진만 첨부

 

ftp에서 파일 다운한다.

 

파일을 다운받는다.

 

목록을 확인한다.

 

RPM

: Redhat 사에서 제공하는 리눅스용 프로그램을 배포하는 기술

프로그램의 설치, 검증, 삭제 등의 다양한 기능을 제공

 

RPM 패키지의 구조
[ 패키지명-버전-릴리즈.아키텍처.rpm ]

 

질의

rpm -q : 질문
# rpm -qa : 시스템에 설치된 모든 패키지명
# rpm -qi 패키지명 : 패키지의 상세한 정보
# rpm -ql 패키지명 : 패키지의 파일 리스트
# rpm -qf 파일명 : 지정한 파일이 포함된 패키지

 

설치 및 업그레이드
# rpm [-ivh | -Uvh | -Fvh] 패키지명
옵션
-i : 설치
-U : 업그레이드 (이전버젼 미설치시 -i와 동일)
-F : 업그레이드만
-v : 설치과정 출력
-h : 설치정도 출력 (#)

 

삭제
# rpm -e 패키지명
: 지정한 패키지를 삭제

 

추가 옵션
옵션
--nodeps : 의존성을 무시하고 작업한다.
(삭제에 주로 이용)
--force : 같은 버전의 패키지나 파일이 있어도 무시하고
작업진행
--oldpackage : 다운그레이드시 사용

 

YUM (Yellowdog Updater Manager; Modified)

: rpm의 고질적인 문제인 의존성을 해소하기 하기 위한 패키지 기술로 RPM과 동일한 형식의 설치 구조를 지원한다.
YUM은 인터넷 repository를 이용하는 기술로 인터넷만 연결되어 있다면 지원되는 모든 프로그램을 설치 관리 할 수 있다.

 

yum list
• 패키지를 확인한다.
# yum list [installed]
• 설치 가능한 모든 패키지 목록을 보여준다.
• Installed : 설치된 패키지 목록을 보여준다
# yum list [패키지명]
• 지정한 패키지의 설치 여부를 확인한다.

 

검색 추가 옵션
• repolist, search, provide
# yum repolist
• 시스템에 등록된 repository list를 출력한다.
# yum search 문자열
• 패키지명이나 description에 문자열이 포함된 패키지들을 출
력한다.
# yum provides 경로/문자열
• 문자열이 포함된 파일이 소속된 패키지들을 출력한다.

 

설치
# yum install [-y] 패키지명
• 패키지를 repository로 부터 설치한다.
 

업데이트
# yum update [-y] 패키지명
• 패키지를 repository로 부터 업데이트한다.

 

삭제
# yum remove [패키지명]
• 지정한 패키지를 삭제한다.

 

초기화
# yum clean headers
# yum clean packages
# yum clean metadata

 

 

RPM 실습

ssh 파일 확인하기

(파일명에 경로명 포함하기)

 

리눅스에서 iso파일 설치하기

마운트할 디렉토리 생성하고 /cdrom 으로 마운트하고 vsftpd 를 설치하기 위한 rpm 파일을 설치한다.

 

ntsysv 로 vsftpd.service가 설치된 것을 확인한다.

 

 

VMware에서 NAT 네트워크 구축하기

위와 같은 NAT 네트워크 환경을 구축할 것이다.

 

실습 전 기본 환경 설정

VMnet8 은 NAT에 연결되어있는 네트워크이므로 사용함으로 설정한다.

 

IP주소와 서브넷마스크만 설정한다.

기본 게이트웨이는 하나만 설정해야 하므로 게이트웨이는 설정하지 않는다. 

 

cmd 창에서 ipconfig 를 입력해 네트워크 설정을 확인한다.

 

VMware에서 Virtual Network Editor 에서 설정된 것을 확인한다.

 

 

( 실습 1 ) 192.168.11.0 NAT 네트워크에 윈도우 1개, 리눅스 2개 설치하기

(통신 잘 되는지 확인하기)

리눅스  192.168.11.11 / 192.168.11.12 

윈도우  192.168.11.21 

GW ) 192.168.11.1

 

리눅스 설치

아래 링크 참조

2021.10.12 - [리눅스 공부 기록] - VMware에서 Linux (CentOS) 설치하기

 

VMware에서 Linux (CentOS) 설치하기

VMware에서 Linux (CentOS) 설치하기 여기까지는 VMware에서 Windows10 설치와 같다. 리눅스를 선택해준다. 버전은 CentOS7 64bit를 선택한다. 이름을 설정하고 경로를 지정한다. 용량은 40기가로 설정한다...

lemonandgrapefruit.tistory.com

 

윈도우 설치

2021.09.30 - [리눅스 공부 기록] - VMware에서 NAT 설정 및 VMware에서 NAT 환경에서 Windows 설치

 

VMware에서 NAT 설정 및 VMware에서 NAT 환경에서 Windows 설치

VMware에서 NAT 설정 [ Edit > Virtual Network Editor ] 을 들어간다. VNnet8에서 IP와 Subnetmask를 설정해준다. NAT setting 와 DHCP setting를 각각 들어간다. Gateway IP 주소를 설정한다. Start IP 와 E..

lemonandgrapefruit.tistory.com

 

 

각 컴퓨터 네트워크 정보를 확인한다.

Windows

 

서로 통신 확인하기

Windows IP는 192.168.11.21인데 다른 컴퓨터에서 ping이 보내지지 않는다.

이것은 윈도우 방화벽 때문이라 방화벽을 꺼준다.

ping이 잘 보내지면 다시 방화벽을 켜준다.

 

ping이 잘 보내지는 것을 확인할 수 있다.

 

 

리눅스 3개 모두 다음과 같이 설정한다.

[ ntsysv ]에 들어가 다음과 같이 설정한다.

네 개를 설정 해제한다.

firewalld 도 설정 해제한다.

 

리눅스 보안정책을 해제하기 위해 [ vi /etc/selinux/config ] 여기에 들어가 아래와 같이 disabled로 설정한다. 

이 설정 뒤에는 reboot 한다.

 

( 실습 2 ) 192.168.11.0 NAT 네트워크, 192.168.12.0 네트워크 구축하기

윈도우   192.168.11.21

리눅스   192.168.11.11   /   192.168.12.11   /  [ 192.168.11.254 | 192.168.12.1 ]  (NAT 2개 설정)

192.168.11.254 에는 게이트웨이를 설정한다. 

 

192.168.12.1의 게이트웨이는 설정해주지 않는다.

게이트웨이는 한 컴퓨터에서 하나만 설정해주면 된다.

 

 

패킷 포워딩 기능 활성화

192.168.12.0 NAT 네트워크에서 패킷 포워딩 기능을 활성화한다.
# sysctl –a | grep forward


1)  # sysctl –w net.ipv4.ip_forward=1 (공백 없음)
or
2)  # echo 1 > /proc/sys/net/ipv4/ip_forward
or
3)  /etc/sysctl.conf 파일에 ‘net.ipv4.ip_forward = 1’ 을 수정(추가)한다.


파일 추가후 [ sysctl –p ]명령을 실행한다.

 

활성화된 것을 확인한다.

 sysctl –p 를 반드시 실행한다.

 

192.168.11.254 컴퓨터에서 리부트 할 경우에 LAN카드가 두개 다 살아있게 하기 위해 ONBOOT를 yes로 설정한다.

ONBOOT = yes 설정한다.

 

ifconfig로 잘 확인한다.

 

패킷 포워딩 설정

첫 번째 리눅스(192.168.11.11)에서 192.168.12.0 네트워크로 가기 위한 route 설정하기

 

윈도우(192.168.10.130)에서 192.168.12.0 네트워크로 가기 위한 route 설정하기 (cmd 관리자 권한으로 실행)

 

192.168.11.12 리눅스에서 192.168.12.0 네트워크에 있는 컴퓨터로 변경하기 위해 IP주소를 192.168.12.11로 변경한다.

gateway도 192.168.12.1로 변경한다.

모든 리눅스 리부트하고 접속한다.

 

192.168.12.0 네트워크에 잘 포워딩 되는지 확인하기 위해 PuTTY로 [ 192.168.12.11 ] 컴퓨터로 접속이 잘 되는 것을 확인한다.

 

프로세스(Process)

: 현재 실행중인 프로그램

메모리에 일정 부분 차지

 ** 커널 : 하드웨어에 접근

프로세스는메모리 일중 구역을 할당 받아 실행

프로텍션 도메인(Protection domain) : 할당 받은 메모리영역

• 프로세스는 pid에 의해 구별
• 프로세스는 tree 구조를 이루며 최상위 프로세스는 init
• 프로세스는 ppid로 구별되는 상위(부모 프로세스)를 갖는다.


JOB
job은 현재 터미널에서 실행한 프로세스로 shell에 의해서 job 번호가 부여된다.

 

관련 명령어
• ps, kill, pkill, jobs, nohup

 

 

Foreground

: 현재 터미널에서 제어되는 프로세스이다. 터미널은 입출력은 foreground 프로세스를 위해서 대기

Background

: 터미널과 무관하게 메모리에서 실행되는 프로그램이다. 터미널 입출력에 대해서 투명하다.

보통 daemon(service) 프로세스들이background 에서 실행된다.

 

ps

: 프로세스를 확인
옵션
-a : 현재 터미널에서 실행중인 프로세스
-e : 전체 프로세스
-f : 자세한 내용
-u : 실행 계정, 시작 시간 포함한 정보 검색

UID : 프로세스 실행 계정
• PID : pid
• PPID : 부모프로세스 pid
• C : idle time
• STIME : start time
• TTY : 터미널
• TIME : CPU 사용 시간
• CMD : 실행 명령

 

kill

: 프로세스를 강제 종료한다. 

signal에 미리 정의된 프로세스에 대한 종료 작업 수행

옵션
-l : signal 목록 (9 : 프로세스 강제 종료)

 

nohup

: 프로세스 중단(hangup)을 무시하고 명령을 계속 실행
이로인해 로그아웃 이후에도 명령은 계속 실행되지만 명령을 background(&)로 돌리는 것은 아니다. 

또한 표준 출력을 nohup.out으로 변경
작업 시간이 긴 명령어를 실행할 때 로그 아웃이나 터미널 다운에 대비
# nohup [command]

route

: 라우팅 경로 확인 및 수정

 

route 출력 필드
• Destination: 목적지
• Gateway: 게이트웨이 주소
• Genmask: 목적지 네트워크의 넷마스크 주소.
  - 255.255.255.255 : 목적지 호스트의 주소
  - 0.0.0.0 : 기본 게이트웨이 주소
• Flags: 해당 경로에 대한 정보를 알려주는 기호.
  U(up):활성화된 경로

  H(host):호스트 주소,
  G(gateway):게이트웨이
• Metric: 목적지 네트워크까지의 거리
• Ref: 경로를 참조한 횟수
• Use: 경로를 탐색한 횟수
• Iface: 패킷이 오가는 데 사용할 네트워크 인터페이스

 

서식
# route [add | del] –net [ip] netmask [mask] gw [ip]
ex)
# route add –net 1.2.3.0 netmask 255.255.255.0 gw 192.168.11.2
# route add –net 1.2.3.4 netmask 255.255.255.255 gw 192.168.11.2
# route add default gw 192.168.11.1 enp3s0
# route del -net 192.168.10.0 netmask 255.255.255.0 enp3s0
** 추가 경로는 여러 서브넷 환경을 가진 시스템에서 제한적으로 사용
• 시스템에는 단 하나의 default gateway만 지정가능함으로 추가적인 경로에 대한 설정은 직접 해야한다.
  (ICMP redirect 등을 허용 X)

 

※ Windows route 명령
route –p add [IP] MASK [mask] [GW_IP]

ex)
route –p add 1.2.3.0 MASK 255.255.255.0 192.168.11.2
route –p add 1.2.3.4 MASK 255.255.255.255 192.168.11.2

 

 

IP aliases

하나의 물리적인 인터페이스를 여러 개의 논리적인(?) 인터페이스로 구현 IP를 여러 개 설정하는 방법

인터페이스가 여러개인 것처럼 구성

같은 MAC address / 다른 IP

방법
1. ifcfg-ens32를 ifcfg-ens32:0, ifcfg-ens32:1 등으로 복사한 이후 각각 다른 device와 IP를 설정한다.
  ⇒ subnet은 동일하거나 달라도 상관없다.
  ⇒ 설정후 nic를 reset한다.
2. ifconfig 명령을 이용한다.
  ⇒ ifconfig ens32:0 192.168.10.32

 

실습

/etc/sysconfig/network-scripts에 들어가 ens32를 ens32:0로 복사한다.

cat 명령어를 이용해 잘 복사된 것을 확인한다.

 

[ vi ifcfg-ens32:0 ]로 위와 같이 NAME, DEVICE, IP를 수정한다.

 

ifconfig ens32:0 192.168.10.131 명령을 이용한다. 

IP aliases가 잘 설정된 것을 확인할 수 있다.

SULinux 실습

- 조건 -

HDD 추가

파티션을 3개로 나누기

P : 1개 / L : 2개

< 마운트 디렉토리 >

/home1

/hoem2

/home3

 

Edit Virtual Machine settings 에서 하드 디스크를 추가해둔다. 

 

primary partition 생성한다.

사이즈는 10G로 생성하고 잘 생성된 것을 확인할 수 있다.

 

extended partition을 생성한다. extended partition에 로컬 파티션 2개를 생성하고 swap을 생성할 것이다.

 

로컬 파티션을 생성한다. 각각 10GB, 8GB로 설정한다.

 

swap파티션을 설정해준다.

 

파티션 및 swap이 잘 설정된 것을 확인한다.

w를 입력해 저장하고 나와 파일 시스템을 설정한다.

 

파티션에 파일시스템을 만들어준다.

 

swap 포멧하고 swap를 활성화 후 현재 상태를 확인한다.

 

디렉토리를 생성하고 각 디렉토리에 파티션을 마운트한다.

 

리부팅 해도 마운트 되게 설정하기

[ vi /etc/fstab ] 에 들어가 아래와 같이 마운트 swap 설정한다.

 

잘 설정된 것을 확인하고 reboot를 한다.

 

마운트와 swap이 잘 된 것을 확인할 수 있다.

 

----------------IP, DNS는 아직 안함--------------

 

CentOS7에서 실습

2021.10.27 - [리눅스 공부 기록] - 리눅스 파일 시스템과 파티션 실습 및 swap 공간추가

 

리눅스 파일 시스템과 파티션 실습 및 swap 공간추가

하드디스크 사용해 파일 시스템 생성 및 파티션 실습 - 조건 - HDD 추가 파티션을 3개로 나누기 P : 1개 / L : 2개 < 마운트 디렉토리 > /home1 /hoem2 /home3 먼저 하드드라이브를 추가하기 위해 ADD를 눌러

lemonandgrapefruit.tistory.com

 

'리눅스 공부 기록' 카테고리의 다른 글

리눅스 11 - 프로세스(Process)  (0) 2021.11.01
리눅스 10 - route  (0) 2021.11.01
리눅스 9 - 네트워크 명령어  (0) 2021.10.29
ping 이름 설정  (0) 2021.10.29
리눅스 8 - 네트워크  (0) 2021.10.28

+ Recent posts