# 네트워크 관련 필수 개념
- TCP/IP
> 컴퓨터끼리 네트워크상으로 의사소통하는 약속을 '프로토콜'이라고 부르는데,
그중 가장 널리 사용되는 프로토콜의 종류 중 하나
> 통신의 전송/수신을 다루는 TCP(transmission Control Protocol)와 데이터 통신을 다루는 IP(Internet protocol)로
구성
- 호스트 이름과 도메인 이름
> 호스트 이름은 각각의 컴퓨터에 지정된 이름을 말함
> 도메인 이름은 hanbit.co.kr과 같은 형식으로 표기하며 kr은 한국, co는 회사, hanbit은 단체/회사 이름을 의미
> FQDN: 호스트 이름이 this이고 도메인 이름이 hanbit.co.kr 일 때 전체 이름을 this.hanbit.co.kr으로 부르는 것
- IP 주소
> 각 컴퓨터의 랜 카드(네트워크 카드)에 부여되며 중복되지 않은 유일한 주소
> 네트워크에 연결된 모든 컴퓨터에는 고유한 IP주소가 있으며, 이는 서로 다르기 때문에
특정 컴퓨터의 IP주소를 알면 그 컴퓨터가 전 세계 어디에 있든지 접속할 수 있다는 개념 (사설 IP는 제외)
> 4바이트로 이루어져 있으며 각 자리는 0~255까지의 숫자가 올 수 있음
> 자기 자신을 의미하는 IP주소는 127.0.0.1
- 네트워크 주소
> 같은 네트워크에 속해 있는 공통 id
* 사설 네트워크
> 192.168.xxx.ooo의 주소 영역은 사설 네트워크의 주소
> 외부와 분리된 내부의 별도 네트워크를 의미
- 브로드캐스트 주소
> 내부 네트워크의 모든 컴퓨터가 수신하는 주소
> 현재 주소의 제일 끝자리를 255로 바꾼 주소 (C 클래스의 경우)
- 게이트웨이(Gateway), 라우터(Router)
> 라우터 = 게이트웨이
> 네트워크 간에 데이터를 전송하는 컴퓨터 또는 장비
> VMware의 게이트웨이 주소는 192.168.111.2로 고정
- 넷마스크와 클래스
> 넷마스크: 네트워크의 규모를 결정
> 네트워크 클래스
A: 255.0.0.0
B: 255.255.0.0
C: 255.255.255.0
- DNS
> URL을 해당 컴퓨터의 IP 주소로 변환해주는 서버 컴퓨터를 말함
> 즉, URL 이름을 IP 주소로 변경하는 것임
> DNS 서버의 주소를 사용하지 않거나 잘못 입력되어 있으면 웹 사이트에 정상적으로 접속되지 않음
> 설정 파일은 /etc/resolv.conf, 내용 중에 'nameserver DNS서버IP' 형식으로 설정되어 있음
# 리눅스에서의 네트워크 장치 이름
- 랜 카드가 리눅스에 장착되었을 때 CentOS 8을 설치하면 자동으로 이 장치의 이름은 ens160으로 인식
- 어느 장비에 설치하느냐에 따라 ens160, ens161, ens32, ens33, eth0, eth1 등 다양한 형태로 인식
- 명령어
ifconfig ens160 // 네트워크 설정 정보 출력
ifup ens160 // 네트워크 장치 가동
ifdown ens160 // 네트워크 장치 정지
# 중요한 네트워크 관련 명령어
# nmtui
- Network Manager Text User Interface
- 네트워크와 관련된 작업 대부분을 이 명령을 기반으로 실행
> 자동 IP 주소 또는 고정 IP 주소 사용 결정
> IP 주소, 서브넷 마스크, 게이트웨이 정보 입력
> DNS 정보 입력
> 네트워크 카드 드라이버 설정
> 네트워크 장치(ens160) 설정
* GNOME 그래픽 모드를 제공하지 않음
→ x윈도의 그래픽 모드를 완전하게 사용해서 네트워크를 설정하려면 아래 두 명령 중 한가지를 사용
gnome-control-center network
nm-connection-editor
# systemctl <start/stop/restart/status> NetworkManager
- 네트워크 설정을 변경한 후 내용을 시스템에 적용시키는 명령어
- nmtui 명령을 실행한 후 또는 직접 ifcfg-ens160파일을 편집한 후에는 systemctl restart NetworkManager 명령을 실행해야 함
- restart 옵션은 stop 옵션과 start 옵션이 합쳐진 것
# ifup 장치이름
- 해당 장치를 작동시키는 명령어
# ifdown 장치이름
- ifup과 반대로 네트워크 장치를 끄는 명령어
# ifconfig 장치이름
- 해당 장치의 IP주소와 관련된 정보를 출력하는 명령어
# nslookup
- DNS 서버의 작동을 테스트하는 명령어
# ping IP주소 또는 URL
- 해당 컴퓨터가 네트워크상에서 응답하는지 테스트하는 간편한 명령어
# ifconfig 명령과 route 명령
- 네트워크 정보를 설정하기 위해 nmtui 명령어나 에디터에서 직접 설정하는 방법 외에 ifconfig나 route 명령어로 설정할 수 있음
- root 권한으로 다음 명령을 차례로 실행하면 됨
ifconfig ens160 192.168.111.100 netmask 255.255.255.0 broadcast 192.168.111.255 up
route add - net 192.168.111.0 netmask 255.255.255.0 ens160
route add default gw 192.168.111.2 dev ens160
# 네트워크 설정과 관련된 주요 파일
- /etc/sysconfig/network
> 네트워크의 기본 정보가 설정되어 있는 파일이며 네트워크 사용 여부가 쓰여 있음
- /etc/sysconfig/network-scripts/ifcfg-ens160
> ens160 장치에 설정된 네트워크 정보가 모두 들어있는 파일
- /etc/resolv.conf
> DNS 서버의 정보와 호스트 이름이 들어있는 파일
> nameserver를 수정한 후에 systemctl restart NetworkManager 명령을 실행할 필요가 없음
> nslookup 명령을 사용해 url을 조회할 경우 실시간으로 /etc/resolv.conf 파일을 열어서 확인하기 때문
- /etc/hosts
> 현재 컴퓨터의 호스트 이름과 FQDN이 들어있는 파일
* nmtui 명령을 사용하지 않아도 위 4개의 파일을 직접 편집하면 동일한 효과를 낼 수 있음
# 네트워크 보안을 위한 SELinux
- SELinux(Security Enhanced Linux)
- 보안에 취약한 리눅스를 보호하기 위해 탄생
- 해커가 어떤 경로로 시스템 침입에 성공하든, 침입한 경로의 애플리케이션 사용 이상의 권한을 얻지 못함
- 만약의 사태가 발생해도 피해를 최소화할 수 있음
- 사용 여부: 강제, 허용, 비활성 3가지 레벨 중 선택 가능
- 설정 파일: /etc/sysconfig/selinux 파일
- CentOS8을 설치하면 강제로 기본 설정되어 있음
- 보안을 강화하면 여러 가지 불편한 점이 발생할 수 있고, 반대로 보안을 약화하면 편리해지지만 위험이 따를 수 있음
- /etc/sysconfig/selinux를 직접 편집하지 않고 system-config-selinux 명령을 실행하여 설정할 수도 있음
* system-config-selinux 명령을 사용하려면 먼저 policycoreutils-gui 패키지를 설치해야 함
강제(enforcing) | 시스템 보안에 영향을 미치는 기능이 감지되면 아예 그 기능이 작동되지 않도록 시스템에서 막음 |
허용(permission) | 시스템 보안에 영향을 미치는 기능이 감지되면 허용은 하되 사용 내용이 로그에 남고 화면상에도 출력됨 |
비활성화(disabled) | SELinux를 사용하지 않는 것이므로 보안에 취약해짐 |
[출처]
- 숙명여자대학교 서버운영및보안 수업 - 이종우 교수님
- 이것이 우분투다 (개정판) - 우재남 지음
'Study > Linux' 카테고리의 다른 글
[Linux] 프로세스, 데몬, 서비스 (0) | 2021.10.25 |
---|---|
[Linux] 파이프, 필터, 리디렉션 (0) | 2021.10.25 |
[Linux] cron과 at (2) | 2021.10.24 |
[Linux] 시스템 설정 (0) | 2021.10.24 |
[Linux] 파일 위치 검색 (0) | 2021.10.24 |