티스토리 뷰
* 리눅스 네트워크 관련 명령어를 공부하기 위한 배경지식이기 때문에 네트워크 개념은 간단하게 알아볼 것이다.
* 필자가 공부한 책 : 이것이 리눅스다 [우재남. 한빛미디어]
TCP/IP
- 가장 널리 이용되는 프로토콜의 종류 중 하나
(*프로토콜 : 컴퓨터끼리 네트워크 상으로 의사소통하는 양식과 규칙의 체계. )
- 통신의 전송/수신을 다루는 TCP(Transmission Control Protocol)
- 데이터 통신을 다루는 IP(Internet Protocol)
호스트 이름(host name)과 도메인 이름/주소(domain name)
- 호스트 이름 : 각각의 컴퓨터에 지정된 이름
- 도메인 이름 : domain.co.kr과 같은 형식으로 표기.
- 호스트 이름이 this이고 도메인 이름이 domain.co.kr 이면, 전체이름은 this.domain.co.kr 로 붙여 부른다. 이를 FQDN(Fully Qualified Domain Name)이라고 한다.
- 같은 회사(도메인)에서 this.domain.co.kr이라는 호스트(=컴퓨터)는 중복되지 않는다.
IP주소
- 각 컴퓨터의 랜카드(네트워크 카드)에 부여되며, 중복되지 않는 유일한 주소.
- 네트워크에 연결된 모든 컴퓨터는 고유한 IP주소가 있다.
- 특정 컴퓨터의 IP주소를 알면 그 컴퓨터에 접속할 수 있다. (사설 IP주소 예외)
- 4바이트로 이루어져있고, 각 자리는 0~255의 숫자가 올 수 있다.
- 여기서 다룰 것은 IPv4이다.
네트워크 주소
- 같은 네트워크에 속해있는 공통 주소
사설 네트워크(private network)
사설 네트워크란, 외부와 분리된 내부의 별도 네트워크이다. 주로 공인된 IP주소가 부족할 때 사용한다.
192.168.xxx.yyy의 주소 영역은 사설 네트워크의 주소이다.
브로드캐스트 주소
- 내부 네트워크의 모든 컴퓨터가 수신하는 주소.
- 현재 주소의 제일 끝자리를 255로 바꾼 주소이다. (C클래스일 때) (xxx.xxx.xxx.255)
- broadcast, 즉 방송하듯이 모든 컴퓨터가 들을 수 있는 주소라고 생각하자
게이트웨이(Gateway)
- 외부 네트워크로 나가기 위한 통로
- 내부 네트워크를 외부로 연결하기 위한 컴퓨터 또는 장비.
- 내부 네트워크에 있는 컴퓨터끼리 통신할 경우 외부로 나갈 필요가 없으므로 게이트웨이가 필요 없다.
- 게이트웨이에는 네트워크 카드가 2개 필요하다. 내부로 향하는, 외부로 향하는 문(네트워크 카드) 두 개.
게이트웨이를 별도로 추가하는 명령어
# route add default gw 게이트웨이주소 dev 장치이름
넷마스크와 클래스
- Netmask : 네트워크의 규모를 결정한다.
- 필자는 사설 네트워크에서 C 클래스를 사용하므로 넷마스크를 255.255.255.0으로 한다. (맨 끝의 번호로 기기의 IP주소를 결정한다.)
네트워크 클래스
A클래스 : 255.0.0.0 -> 2^24개의 IP주소를 사용할 수 있다. = 2^24대의 컴퓨터를 네트워크 내부에서 연결할 수 있다.
B클래스 : 255.255.0.0 -> 2^16개의 IP주소를 사용할 수 있다. = 2^16대의 컴퓨터를 네트워크 내부에서 연결할 수 있다.
C클래스 : 255.255.255.0 -> 2^8대(256대)의 컴퓨터를 네트워크 내부에서 연결할 수 있다.
DNS 서버 주소
- 인터넷 사용시 www.google.com과 과 같은 URL을 해당 컴퓨터의 IP주소로 변환해주는 서버 컴퓨터를 말한다.
- DNS서버(=네임서버)의 주소를 사용하지 않거나, 잚소 입력되어 있으면, 웹 사이트에 정상적으로 접속되지 않으므로 올바른 정보를 입력해야 한다.
- 설정 파일은 /etc/resolv.conf 이고, 내용 중에 'nameserver DNS서버IP' 형식으로 설정되어 있다.
- VMware를 이용하면 VMware가 게이트웨이, DHCP 서버, DNS 서버의 역할을 모두 가상으로 제공한다.
nslookup
DNS서버의 작동을 테스트하는 명령어
DNS서버의 역할
URL 이름을 IP주소로 변경하는 것.
예를 들어 https://www.google.com을 을 입력하면 바로 구글 홈페이지로 접속되는 것이 아니라 /etc/resolv.conf 파일에 설정된 DNS서버에게 해당 URL의 IP주소를 물어본다. 그리고 그 IP주소의 컴퓨터로 접속하는 것.
왜 이런 과정을 거치는가?
네트워크 상의 컴퓨터를 구분할 때 IP주소만이 중복되지 않는 유일한 식별자이기 때문!
만약 DNS서버가 고장난다면, URL을 사용해서는 웹 서버에 접속할 수 없다.
리눅스에서의 네트워크 장치 이름
랜카드가 리눅스에 장착되었을 때 centOS 8을 설치하면 자동으로 이 장치의 이름을 ens160으로 인식한다.
이 랜카드의 이름은 네트워크 정보를 파악하거나 네트워크를 정지 또는 가동할 때 자주 사용하므로 ens160을 익숙하게 생각하자.
해당 장치의 IP주소 관련 정보를 출력하는 명령어
# ifconfig 장치이름(=ens160)
해당 장치를 작동시키는 명령어.
# ifup 장치이름(=ens160)
네트워크 장치를 끄는 명령어
# ifdown 장치이름(=ens160)
네트워크 관련 주요 명령어
nmtui
Network Manager Text User Interface의 약자로, 네트워크와 관련된 작업 대부분은 이 명령어를 기반으로 이루어진다.
- 자동 IP주소 또는 고정 IP 주소 사용 결정
- IP주소, 서브넷마스크, 게이트웨이 정보 입력
- DNS 정보 입력
- 네트워크 카드 드라이버 설정
- 네트워크 장치(ens160) 설정
nmtui 명령은 GNOME 그래픽 모드를 제공하지 않는다.
그래픽 모드로 사용하기 위해서는
gnome-control-center network
nm-connection-editor
명령을 사용하자.
* 그래픽모드를 지원하지 않는 텍스트모드에서는 nmtui명령을 실행하거나 ifcfg-ens160 파일을 직접 편집하자.
systemctl [start/stop/restart/status] NetwrokManager
네트워크 설정을 변경하고나서 변경된 내용을 시스템에 적용시키는 명령어
nmtui 명령을 실행하거나 ifcfg-ens160파일을 편집한 후에는 꼭 이 명령을 실행해서 적용시키자.
ping IP주소/URL
[옵션] -c 숫자 : 몇 번 핑 찍을지 지정 (지정 안하면 ctrl+c 눌러서 멈출 때까지 계속 핑 찍음)
해당 컴퓨터가 네트워크 상에서 응답하는지 테스트하는 간편한 방법
ping -c 5 www.google.com 이런식으로 테스트해보자.
네트워크 설정과 관련된 주요 파일
nmtui 명령을 실행하고 나서 변경되는 관련 파일들이다. 중요한 파일들이므로 꼭 알아두자!
/etc/sysconfig/network
네트워크의 기본 정보가 설정되어 있는 파일. 네트워크 사용 여부가 써져 있다.
/etc/sysconfig/network-scripts/ifcfg-ens160
ens160 장치에 설정된 네트워크 정보가 모두 들어 있는 파일
/etc/resolv/conf
DNS서버의 정보와 호스트 이름이 들어있는 파일
대부분 이거 사용한다.
/etc/hosts
현재 컴퓨터의 호스트 이름과 FQDN이 들어 있는 파일
중요 서버 FQDN 몇개를 외우고 있을 때 사용한다.
네트워크 보안을 위한 SELinux
SELinux(Security Enhanced Linux) 는 보안에 취약한 리눅스를 보호하기 위해 만들어졌다.
시스템에서 보안에 영향을 미치는 서비스, 권한 등을 제어할 수 있다.
SELinux 환경에서는 해커가 만약 시스템에 침입을 성공한다 하더라도, 침입한 경로의 어플리케이션 사용 그 이상의 권한을 얻지는 못한다.
예를 들어 FTP 서버의 경로로 침입한 경우, FTP와 관련된 디렉터리나 파일 외에는 다른 서버에 접근할 수 없으므로 해킹에 대한 피해를 줄일 수 있다.
SELinux 설정 파일 : /etc/sysconfig/selinux
SELinux의 사용 여부 | |
강제 (enforcing) | 시스템 보안에 영향을 미치는 기능이 감지되면, 아예 그 기능이 작동되지 않도록 시스템에서 막는다. |
허용 (permissive) | 시스템 보안에 영향을 미치는 기능이 감지되면, 허용은 하되 사용 내용이 로그에 남고 화면 상에 출력된다. |
비활성 (disabled) | SELinux 사용X. 당연히 보안에 취약하다. |
필자처럼 공부를 위해 혼자 사용하는 경우엔 비활성으로 해놓아도 상관없지만, 실무에서는 최소 허용 단계까지 해놓는 것이 바람직하다.
'Study > 리눅스' 카테고리의 다른 글
[리눅스] 프로세스 개념 및 명령어 (0) | 2020.10.15 |
---|---|
[리눅스 명령어] 파이프, 필터, 리디렉션 (0) | 2020.10.15 |
[리눅스] linux 기초 명령어 | 파일만들기 | gedit, cat, touch (0) | 2020.01.03 |
[리눅스] linux 기본 명령어 | ls 명령어와 주요 옵션들 (0) | 2019.12.29 |
[리눅스] linux 기본 명령어 | which, whatis, man (0) | 2019.12.29 |
- Total
- Today
- Yesterday
- easycode chatGPT
- 알고리즘
- BOJ
- ChatGPT
- partyrock앱
- partyrock무료
- awsgenai
- 티스토리챌린지
- aws생성형ai
- S3배포
- PYTHON
- partyrock
- AWSBedrock
- vscode easycode
- mac vscode download fail
- 오블완
- 파이썬
- 술자리병돌리기게임
- 병돌리기구현
- easycode
- 정적 웹페이지 배포
- S3 403 forbidden
- 코딩테스트
- partyrock생성
- 정적 웹사이트 배포
- 생성형AI
- React native 작동 원리
- partyrock사용볍
- genaiapp
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |