K-Shield Jr

[K-Shield Jr - 복습] 리눅스 서버 기본 활용 방안 3

h00ddu 2023. 9. 2. 02:37

 

리눅스 네트워크 설정 방법

 

 

네트워크 구성의 이해

 

< 구성 환경 분석 >

 

  • 네트워크 구성 방안
  • 특정 범위 내의 IP 주소 대역대에서 중복되지 않은 IP 주소를 지정
  • 인터넷을 사용하기 위해 게이트웨이의 IP 주소를 NAT Device의 주소인 192.168.0.2로 구성
  • 영문으로 된 URL을 IP로 변경을 시켜주는 DNS 서버 IP 주소 구성

 

< 네트워크 설정 파일 - CentOS 6.9 기준 >

 

  • 리눅스 운영체제는 디바이스 형태를 포함하여 모두 파일로 구성되어 있기 때문에 대부분이 파일 형태로 네트워크를 구성해야함
  • /etc/sysconfig/network-script/ifcfg-[네트워크_인터페이스명]
  • 네트워크 NIC 카드의 설정 정보를 수정 또는 확인

 

  • /etc/resolv.conf
  • 네트워크의 도메인 서버의 설정 정보를 수정 또는 확인
  • 설정 변경 이후 서비스 재시작 필요

 

  • /etc/sysconfig/network
  • 네트워크의 전체 기본 게이트웨이 주소를 설정, 호스트네임, 네트워크 연결 허용 여부 설정 및 확인

 

  • /etc/udev/rules.d/70-persistent-net.rules
  • 실제 장비가 변경되었을 때 네트워크 기본 설정을 제어하는 파일

 


네트워크 구성

 

  • CentOS의 경우 설정 파일을 수정함으로써 네트워크 설정 가능
  • 특정 설정값을 수정하여 서비스를 재실행해야 하는 경우도 간혹 발생

 

< 설정 파일 변환을 통한 네트워크 설정 >

# 네트워크 카드 편집
$ ls /etc/sysconfig/network-scripts/
ifcfg- eth0  ifdown-ipv6          ifup               ifup-isdn          ifup-tynnel
ifcfg-lo     ifdown-isdn          ifup-aliases       ifup-plip          ifup-wireless
ifdown       ifdown-post          ifup-bnep          ifup-plusb         init.ipv6-global
ifdown-bnep  ifdown-ppp ifup-eth  ifup-post          net.hotplug

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 네트워크 카드 설정을 아래와 같이 수정
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=[IP주소]
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
NETWORK=192.168.0.0
DNS1=168.126.63.1
DNS2=8.8.8.8

< 설정 파일 변환을 통한 네트워크 설정 - 추가 설정 >

 

  • IP 및 기타 설정을 고정으로 설정하려는 경우 아래와 같이 설정하며, 환경에 따라 변형하여 설정
  • 주요 설정(Device, BootProto, HWAddr, OnBoot, Broadcast, IPAddr, Netmask, Network)만 설정해도 무관함
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=[기존_설정]			  # 물리적 주소
NM_CONTROLLED=no			# GUI 모드에서의 편리한 네트워크 설정 허용, TUI에서는 불필요
ONBOOT=yes					# 부팅 시 네트워크 카드를 활성화 시킬지 여부 결정
TYPE=Ethernet
BROADCAST=[Broadcast_주소]
IPADDR=[IP_주소]
NETMASK=[서브넷마스크_주소]
NETWORK=[네트워크_주소]
ETHTOOL_OPTS=wol g			# wake On Lan 기능 활성화, ethtool이 필요하며 CentOS는 설치되어 있음
USERCTL=no					# 일반 사용자도 eth0 제어 가능 여부
IPV6INIT=no					# IPV6 사용 여부

 


< 설정 파일 변환을 통한 네트워크 설정 - DNS 서버 설정 >

$ vi /etc/resolv.conf
# DNS 설정을 아래와 같이 수정
search localdomain
nameserver 168.126.63.1
nameserver 168.126.63.2

# 또는 설정에 따라 /etc/ifcfg-eth0에 설정에서 아래와 같이 수정
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOTOPROTO=static
GATEWAY=[게이트웨이_주소]
TYPE=Ethernet
DNS1=168.126.63.1
DNS2=168.126.63.2

# 네트워크 서비스 재시작
$ sudo /etc/init.d/network restart

 


< 명령어를 이용한 네트워크 설정 >

 

  • 명령어를 통한 설정 방법은 일시적으로 등록되는 사항일 뿐 재부팅 시 초기화 되는 현상으로 인해 유지보수를 위한 좋은 방법은 아님
# IP, 게이트웨이 설정

# 단말 IP 주소 설정
$ ifconfig [디바이스명] [IP_주소] netmask [서브넷_주소] broadcast [브로드캐스트_주소]

# 네트워크 대역 설정
$ route add -net [네트워크_주소] netmask [서브넷_주소] [디바이스명]

# 게이트웨이 주소 설정
$ route add default gw [게이트웨이_주소] dev [디바이스명]

< 네트워크 설정 확인 >

 

# IP, 물리적 주소, 브로드캐스트, 서브넷마스크 등 네트워킄 카드 정보 확인
$ ifconfig
eth0		Link encap:Ethernet	HWaddr [물리적_주소]
			inet addr:[IP_주소]	Bcast:[브로드캐스트_주소]	Mask:[서브넷_주소]
            inet6 addr:[IPv6_주소]					Scope:Link
            UP BROADCAST RUNNING MULTICAST	MTU:1500	Mettric:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:0 (0.0 b)	TX bytes:1128 (1.1 KiB)
            
# 글로벌 주소 또는 게이트웨이 주소 확인
$ route -n
Kernel IP routing table
Destination Gateway		Genmask				Flags	Metric	 Ref	Use	  Iface
192.168.0.0.0.0.0.0		255.255.255.0		U		0		 0		0	  eth0
169.254.0.0.0.0.0.0		255.255.0.0			U		1002	 0		0	  eth0
0.0.0.0		192.168.0.2 0.0.0.0				UG		0		 0		0	  eth0

# DNS 설정값 확인
$ nslookup
> server
Default server: 168.126.63.1
Address: 168.126.63.1#53

 


 

리눅스 파일 시스템 구조의 이해

 

 

파일 시스템의 이해

 

  • 파일 시스템
  • 개요

    - 파일 시스템(File System) : 컴퓨팅에서 데이터 저장 및 검색 방법을 제어하는 체계

    - 리눅스에서 보통 파일 시스템 생성이라 표현하며 원도우에서 주로 사용하는 포맷과 동일하게 표현

 

  • 파티션과 볼륨
  • 파티션

    - 하나의 디스크를 여러 개의 파일 시스템으로 구성

    - 여러 개의 디스크를 하나의 파티션으로도 통합 가능

    - 운영체제의 경우 각 파티션을 별도의 디스크처럼 취급

 

  • 볼륨

    - 디스크 상의 논리적인 분할 단위

    - 섹터 또는 클러스터들이 모여 이루어진 큰 덩어리


파일과 디렉터리 이해

 

  • 리눅스 파일 시스템은 파일과 디렉터리의 계층적 구조를 가지고 있으며, 이는 디렉터리, 일반 파일, 특수 파일로 구분된다.
  • 모든 것은 파일(Everything is a file)
  • UNIX에서 부터 유래도니 리눅스의 모토

    - 유닉스 프로그램의 모토로, 이전까지는 마우스, 키보드, 프린터마다 각각 다르게 처리함

    - 유닉스는 각각의 장치를 파일로 처리, I/O Redirection을 이용하여 디렉터리 어디서든 장치들과 입출력이 가능

    - 리눅스에서도 모든 것이 파일로 액세스됨

  1. 일반 파일
  2. 디렉터리 파일
  3. 특수 파일

        · 블록 장치  파일

        · 캐릭터 장치 파일

        · 심볼릭 링크 파일 등


  • 트리 구조
  • 리눅스 파일 시스템은 파일과 디렉터리의 계층적 구조를 가지고 있으며, 보통 서로 연관된 파일들을 하나의 그룹으로 모으고 각 그룹을 고유의 디렉터리에 보관
  • 이 계층 구조의 기초에는 루트 디렉터리가 있고, /(슬래시)로 나타냄
  • 모든 파일과 디렉터리는 루트 디렉터리의 자식 혹은 먼 후손임

트리 구조

 

< 디렉터리의 종류 >

 

디렉터리 설명
/bin · 리눅스가 가지고 있는 각종 기본 프로그램을 포함하여, 보통 리눅스 명령어가 저장되어 있음
/boot 리눅스를 부팅할 때 부팅에 관련된 중요한 파일들 즉, 커널 이미지와 부팅 정보를 포함하고 있음
/dev 특수한 Device 파일을 포함하여, 보통 사용자가 쓸 일은 없지만 또 다른 디바이스를 추가하기 위해서 사용함
/etc 시스템 관리자를 위해 필요한 파일을 담아 놓으며, 대표적인 것이 바로 Password 파일임
/home 글자 그대로 사용자들이 사용할 수 있는 독립적인 공간으로 대부분의 사용자들이 디렉터리를 생성하거나 파일을 저장할 때 사용함
/lib 시스템 프로그래밍을 위한 각종 라이브러리를 포함함
/proc 커널의 기능을 제어하기 위하여 커널에 대한 정보를 담고 있는 가상파일 시스템을 포함함
/tmp 리눅스 시스템이 사용하는 임시 파일을 저장함
/var 시스템이 현재 운영 중인 시스템 자료의 모든 변경사항을 기록하는 디렉터리

 

< 파일의 구조 >

 

항목 설명
파일 종류
허가 권한
링크 수
소유자명(계정명)
그룹명
파일 크기
마지막 변경된 날짜
마지막 변경된 시간
파일 이름

 

< 파일 종류의 문자 >

 

문자 파일 종류 설명
- 일반 정규 파일 실행 파일, 스크립트, 이미지 파일, 텍스트 파일, 설정 파일, 압축 파일 등
d 디렉터리 파일 최상위 디렉터리에서 ls -l 명령어를 입력하면 쉽게 확인 가능
b 블록 디바이스 (/dev/hda, /dev/sda, /dev/fd0) 하드 디스크나 플로피 디스크 디바이스 등
c 문자 디바이스 (입·출력 장치) 터미널 디바이스, 사운드 카드, 마우스, 프린터 등
l 심볼릭 링크 파일 · 하나의 파일과 연결된 다른 이름의 파일
· 하드 링크 : 같은 lnode 번호를 가짐
s 소켓 기능을 하는 파일
p 파이프 기능을 수행하는 파일

 

  • Inode : 리눅스의 파일에 대한 모든 정보를 추적하는 데이터 구조
  • 파일의 이름은 사람에게 도움이 되지만 파일 시스템에게는 이름이 아니라 숫자로 파일을 인식

     - 사용자는 정보를 파일에 저장 → 운영체제는 파일에 대한 정보를 lnode에 저장

      · lnode는 다른 방식으로 메타 데이터 라고 부를 수 있음

      ※ 메타 데이터 : 데이터에 대한 데이터

     

      - 이름을 사용해 특정 파일에 접근하기 위해서는 lnode lable의 고유한 번호(lnode number)가 필요

리눅스 파일 시스템 구조에서 lnode Block

 

  • lnode를 통한 파일 접근 → File1.txt의 데이터에 접근하는 경우 (디렉터리 접근도 동일)

lnode를 통한 파일 접근