#1. 네트워크와 방화벽
1. 네트워크의 개념
1) TCP/IP
- 네트워크 전송 프로토콜이며, 인터넷 표준 프로토콜(규약)이다.
- Transmission Control Protocol의 줄임말로 Internet Protocol이라고도 한다.
구분 | 설명 |
TCP | 전송 데이터를 일정 단위(패킷)으로 나누고 포장하는 것에 관한 규약 |
IP | 직접 데이터를 주고 받는 것에 관한 규약 |
※ 패킷
- 데이터를 전송 할 때 한번에 다 전송하지 않고 여러 단위로 나누어서 전송하는데 이 단위를 패킷이라고 부른다.
- 1패킷은 0.5kb(512byte)이다.
2) IP주소
- 네트워크상에 존재하는 컴퓨터의 고유번호.
- IPv4 방식과 IPv6 방식이 존재하며, IPv6는 잘 사용되지 않는다.
- 숫자 4개로 IP주소를 표현하며, 각 숫자는 0~255 까지의 범위를 갖는다.
- 로컬 컴퓨터의 주소를 의미하는 IP는 127.0.0.1( == localhost)로 고정되어 있다.
IP 클래스 | 범위 | 설명 |
A | 0.0.0.0 ~ 127.255.255.255 | 255.0.0.0 |
B | 128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 |
C | 192.0.0.0 ~ 223.255.255.255 | 255.255.255.0 (일반 컴퓨터용) |
D | 224.0.0.0 ~ 239.255.255.255 | 멀티캐스트용 |
E | 240.0.0.0 ~ 255.255.255.255 | 연구용 등으로 예약 |
- C클래스 IP는 크게 공인 IP와 사설 IP로 나누어진다.
- 공인 IP
- 공인 기관에서 할당 받아 사용하는 IP.
- 네트워크 상에 공개된 유일한 IP 번호로서, 공인 IP를 알면 누구나 쉽게 접속이 가능하다.
- 임대료가 상당히 비싸다.
- 사설 IP
- 내부적으로만 사용하기 때문에 내부 IP라고도 한다.
- 주로 공유기 등의 장비를 통해 할당 받는 IP.
- 외부로부터 접근이 불가능하다.
- 사설 IP의 대역은 아래와 같이 정해져 있다.
- 10.0.0.1 ~ 10.255.255.254
- 172.16.0.1 ~ 172.31.255.254 (학원)
- 192.168.0.1 ~ 192.168.255.254 (대부분 가정에서 사용)
3) 호스트이름과 도메인이름
- IP 주소는 숫자로 이루어져 있어 사용하기 불편하다는 단점이 있다.
- 이를 사용하기 편한 문자열 형태로 이루어진 호스트 이름과 도메인 이름이 만들어졌다.
- 호스트 이름과 도메인 이름을 이용하여 서버에 접속하기 위해서는 해당 이름들이 DNS 서버에 등록되어 있어야 한다.
http://www.example.com
- 호스트 이름
- 인터넷 주소의 처음에 위치한다. (ex. www)
- 서버 컴퓨터에 지정된 문자열 이름이다.
- 도메인 이름
- 해당 기관을 대표하는 인터넷 주소를 나타낸다.
4) 서브넷 마스크
- 하나의 네트워크를 구분하는 단위이다.
- IP 주소는 네트워크 주소와 호스트 주소로 나눌 수 있다.
- 아파트 단지를 예로들면, 아파트 단지를 뜻하는게 네트워크 주소이고, 몇 동인지를 뜻하는게 호스트 주소이다.
- IP 주소에서 네트워크 주소와 호스트 주소를 구분하는 값으로 사용된다.
- 예를들어 255.255.0.0 이라는 네트워크 주소가 있다면 앞에 두 자리가 네트워크 주소이고, 뒤에 두 자리가 호스트 주소가 된다.
- 내부 IP 사용시 네트워크 주소가 동일한 컴퓨터 끼리 접속이 가능하다.
※ 브로드캐스트(Broadcast) 주소
- 네트워크상의 모든 컴퓨터와 통신하는 IP 주소로서 네 번째 값이 255이다. (ex. 192.168.83.255)
5) 게이트웨이 (Gateway)
- 외부 네트워크로 통신을 하기 위한 통로.
- 내부 네트워크에서 외부 네트워크로 연결되는 컴퓨터 혹은 라우터가 게이트웨이 역할을 한다.
- 라우터: 네트워크 트래픽을 포워딩 해야 하는 최적 경로를 결정하는 장비 (공유기)
6) DNS
- IP 주소를 호스트와 도메인 이름으로 변환해 주는 서비스를 제공하는 서버이다.
- 즉, IP 주소와 도메인이 매칭되어 있는 데이터베이스.
- KT가 운영하는 DNS의 경우 168.126.36.1과 168.126.36.2 가 있다.
2. 네트워크 관련 명령어
1) IP 주소 확인하기
- ifconfig 명령어로 IP주소를 확인 할 수 있지만, 이 명령어를 사용하기 위해서는 net-tools를 설치해야 한다.
- Mac에서는 설치 없이 사용할 수 있지만, Ubuntu에서는 설치해야 사용할 수 있다.
$ sudo apt-get update
$ sudo apt-get install net-tools
$ ifconfig
# ifconfig 장치명
# 형식의 명령어로 특정 장치에 대한 정보만 확인할 수 있다.
2) 네트워크 접속 가능 여부 확인하기
- 1초마다 목적지 컴퓨터로 패킷을 전송하고 다시 수신함으로서 대상 컴퓨터가 네트워크에 접속 되어 있는지를 확인하는 명령이다.
- ping에 응답한다는 것은 접속 가능하다는 의미이며, 이는 해킹이 가능하다는 의미로 해석될 수 있기 때문에 최근에는 방화벽을 통해 ping에 응답하지 않도록 설정한다.
$ ping 접속대상주소
※ 명령어가 동작하거나 대기중인 상태에서 ctrl + c를 눌러 동작을 중단해야 한다.
- ping에 정상적으로 응답하는 경우
- ctrl + c 를 눌러 ping을 종료하면 7패킷을 보냈고(보낸 시간에 따라 다름), 7패킷을 수신했다는 메세지가 나온다. (0% 손실)
- 0% 손실이라는 것은 100% 접속 가능하다는 것을 뜻한다.
- ping에 응답이 없는 경우
- ctrl + c 를 눌러 ping을 종료하고 하면 6패킷을 보냈지만, 0패킷을 수신했다는 메세지가 나온다. (100% 손실)
3) DNS 상태 점검 명령어
- DNS 서버에 접속하여 동작이 잘 되는지 검사하는 명령어.
- DNS로 부터 특정 도메인에 대한 IP주소를 조회한다.
$ nslookup 조회할도메인주소
4) 방화벽
- 미리 정의된 보안 규칙에 기반하여 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다.
- 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성한다.
- 우분투 리눅스에서의 방화벽은 ufw 라는 서비스가 담당하고, 우분투 설치시 기본으로 설치된다.
- 방화벽 활성화
$ sudo ufw enable
- 방화벽 비활성화
$ sudo ufw disable
- 방화벽 상태 확인
$ sudo ufw status
- 모든 외부 접속 차단하기
- 효율적인 방화벽 운용방법은 모든 외부 접근을 차단한 상태에서 외부 접근을 허용하고자 하는 포트만 부분적으로 오픈하는것이다.
$ sudo ufw default-deny
- 모든 외부 접속 허용하기
- 이 명령어를 수행하는 순간 내 컴퓨터를 오픈 ..
- Mac의 경우에 모든 외부 접속을 허용하는게 기본값이다.
$ sudo ufw default allow
- 특정 포트 접근 허용하기
- ufw는 기본적으로 모든 port에 대해 외부 접근을 차단하기 때문에 ufw allow 명령어를 사용하면 서버의 특정 port로의 접근을 허용할 수있다.
- 허용할 port의 범위 지정 가능.
$ sudo ufw allow [port_number]
# SSH를 위한 22번 port 접근 허용
$ sudo ufw allow 22
# 2222번 port 접근 허용
$ sudo ufw allow 2222
# 2222번 port tcp 접근 허용
$ sudo ufw allow 2222/tcp
# 3000~3010 port tcp 접근 허용
$ sudo ufw allow 3000:3010/tcp
- 특정 IP 접근 허용하기
- port 뿐만 아니라 ip를 통한 접근 권한 부여도 가능하다.
- 똑같이 ufw allow 명령어를 사용하여 해당 동작을 수행
$ sudo ufw allow from [IP address]
# 123.4.56.7 IP에 대해 모든 port 접근 허용
$ sudo ufw allow from 123.4.56.7
- 특정 IP 접근 제한하기
- 특정 IP로 부터 공격이 들어오는 경우 ufw deny 명령어를 통해 특정 IP를 차단할 수 있다.
$ sudo ufw deny from [IP address]
# 123.45.6.78 IP에 대해 모든 port 접근 제한
$ sudo ufw deny from 123.45.6.78
- 방화벽 규칙 삭제
- ufw delete 명령어를 사용하여 ufw rule을 삭제할 수 있다.
$ sudo ufw delete [rule]
# 2222/tcp 접근 허용 rule을 제거
$ sudo ufw delete allow 2222/tcp
- 방화벽 규칙 다시 로드
- 설정한 규칙을 적용하기 위해서는 반드시 수행해야 한다.
$ sudo ufw reload
- 방화벽 규칙 리셋
$ sudo ufw reset
5) ping 차단하기
- ufw는 기본적으로 ping 요청을 허용한다. 보안을 위해서 ping 요청을 차단하는 것이 좋다.
# vi편집기로 아래 파일을 연다
$ sudo vi /etc/ufw/before.rules
- 설정이 완료 되면 sudo ufw reload 명령어로 방화벽을 다시 로드해준다.
'국비수업 > Linux' 카테고리의 다른 글
[Linux] SSH 서비스 (0) | 2022.07.24 |
---|---|
[Linux] FTP (File Transfer Protocol) (0) | 2022.07.23 |
[Linux] 서비스와 리눅스 패키지 (0) | 2022.07.21 |
[Linux] 쉘(Shell) (0) | 2022.07.20 |
[Linux] 프로세스 관리 (0) | 2022.07.20 |