[K-Shield Jr - 복습] 리눅스 서버 기본 활용 방안 3
리눅스 네트워크 설정 방법
네트워크 구성의 이해
< 구성 환경 분석 >
- 네트워크 구성 방안
- 특정 범위 내의 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을 이용하여 디렉터리 어디서든 장치들과 입출력이 가능
- 리눅스에서도 모든 것이 파일로 액세스됨
- 일반 파일
- 디렉터리 파일
- 특수 파일
· 블록 장치 파일
· 캐릭터 장치 파일
· 심볼릭 링크 파일 등
- 트리 구조
- 리눅스 파일 시스템은 파일과 디렉터리의 계층적 구조를 가지고 있으며, 보통 서로 연관된 파일들을 하나의 그룹으로 모으고 각 그룹을 고유의 디렉터리에 보관
- 이 계층 구조의 기초에는 루트 디렉터리가 있고, /(슬래시)로 나타냄
- 모든 파일과 디렉터리는 루트 디렉터리의 자식 혹은 먼 후손임
< 디렉터리의 종류 >
디렉터리 | 설명 |
/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를 통한 파일 접근 → File1.txt의 데이터에 접근하는 경우 (디렉터리 접근도 동일)