Gom3rye

네트워크 본문

현대 오토에버 클라우드 스쿨

네트워크

Gom3rye 2025. 6. 2. 17:45

네트워크 확인 명령어

ping [옵션] IP 주소 또는 도메인

Packet InterNet Groper

  • 네트워크 상태를 확인할 때 가장 많이 사용하는 명령어
  • ping은 네트워크를 통해 특정 목적지까지 네트워크가 잘 동작하고 있는지 확인하는 명령어
  • 상대방 호스트가 접속 가능한지 확인하는 것이 목적이지만 두 호스트 간의 통신을 위한 경로가 정상적으로 구성되어 있는지도 체크 가능하다.
  • ICMP(Internet Control Message Protocol)라는 인터넷 프로토콜을 이용하고 ICMP의 제어 메시지를 통해 여러 가지 네트워크 상태를 파악할 수 있다.
  • 옵션
    • -c count : 패킷의 개수 설정 (windows는 기본 4개로 설정되어 있고 나머지 운영체제는 무한대로 설정되어 있다.)
    • -i interval : 패킷을 보내는 시간 간격으로 기본은 1초 (실제 서버 개발에서는 i 옵션을 조절한다.)
    • -l interface : 패킷을 보낼 때 출발지 주소를 지정하는 것으로 실제 IP를 지정하거나 인터페이스 이름을 지정하는데 이 옵션을 사용하지 않으면 라우팅 테이블에 의해 나가는 인터페이스의 주소가 출발지 주소가 된다.
    • -s packetsize : 패킷 크기를 지정하는데 기본적으로 56바이트에 8바이트의 ICMP가 붙는다.
  • windows 에서는 옵션이 다르다.
    • -n : count
    • -t : 무제한 전송
    • -S srcaddr : 사용할 원번 아이피의 주소
    • -I size : 패킷 크기
    • -r count : count는 홉의 경로 (최대 9개까지 설정 가능)
  • 실습
    • 리눅스에서 구글 DNS (8.8.8.8)로 100바이트의 ping을 2회 보내기
    ping 8.8.8.8 -c 2 -s 100
    

tcping [옵션] 목적지IP 주소

windows

  • ping을 확인하듯이 서비스 포트가 정상적으로 열려 있는지 확인하는 명령
  • 특정 호스트들은 ping 명령이나 trace route 명령을 막는 경우가 있다.
  • 옵션
    • -h
    • -v
    • -c 개수
    • -i interval
  • 리눅스에서 설치되어 있지 않으면 hping3 패키지 설치
sudo apt install hping3
which hping3  #/usr/sbin/hping3
sudo hping3 naver.com

심볼릭 링크를 만들어서 윈도우 서버의 명령어와 동일하게 실행

sudo ln -s /usr/sbin/hping3 /usr/sbin/tcping #으로 tcping 명령어도 만들기
sudo tcping naver.com

traceroute [옵션] 목적지 주소

traceroute/tracert

  • 출발지부터 목적지까지의 네트워크 경로를 확인할 때 사용
  • 옵션
    • -l(소문자 엘): ICMP 기반
    • -T : cp 형태로 전송
    • -n : IP주소를 도메인이 아닌 숫자 형식으로 표시
    • -p port : 특정 포트를 상대로 수행
    • -s src_addr : 패킷이 나가는 경로를 설정

tcptraceroute

서비스의 포트를 지정해서 경로를 추적

  • 리눅스나 윈도우의 기본 프로그램이 아니므로 설치 후 진행
sudo apt install tcptraceroute
tcptraceroute -n naver.com 80

netstat [옵션]

서버의 네트워크 상태를 확인하는 명령어

  • 옵션
    • -a: 모든 연결과 수신 대기 포트 표시
    • -n: 주소와 포트 번호를 숫자로 표시
    • -r: 라우팅 테이블 표시
    • -i: 인터페이스 별 입출력 패킷 통계
    • -s: 네트워크 통계 데이터 출력
    • -p: PID와 프로그램 이름 출력
    • -t: TCP만 출력
    • -4/-6: IPv4나 IPv6 출력

ss [옵션]

소켓 관련 정보를 확인할 수 있는 명령어

  • 옵션
    • -a: 화면에 전체 소켓을 표시
    • -l: Listening 상태의 소켓만 표시
    • -i: 자세한 정보
    • -p: 현재 소켓에서 사용 중인 프로세스 표시
    • -n: 서비스 명이 아닌 실제 포트 번호로 서비스 포트를 표기
    • -4, -6
    • -s: 프로토콜 별 통계 표시
    • -t, -u: tcp, udp
ss -lp | grep http

nslookup [옵션]

도메인 관련 명령어

  • nslookup [옵션] : 대화형 모드에 들어가서 도메인을 입력하면 IP주소를 알려준다.

telnet 목적지IP 포트번호

원격 접속 프로토콜

초창기에는 원격 접속에 많이 이용됐는데 최근에는 ssh로 원격 접속은 대체되었고 네트워크를 확인하는 명령으로 많이 사용된다.

  • 서버의 서비스에 정상적인 접근이 가능하면 명령 프롬프트가 떨어지거나 화면 상태가 변경됨
  • 서비스에 정상적인 접근이 불가능할 때는 서비스가 열리기를 기다리면서 프롬프트가 그대로 대기하고 있다가 일정 시간이 지나면 연결에 실패했다고 나온다.
  • 네트워크에 문제가 발생한 경우
    • ping 127.0.0.1을 이용해서 자신의 NIC를 확인
    • IP 설정이 제대로 되었는지 확인 : ifconfig -a
    • 게이트웨이 확인 : iproute 명령
      • ping 디폴트게이트웨이 : 여기서 실패하면 공유기나 스위치 또는 라우터까지 연결이 제대로 안된 경우
    • DNS 확인 : dig 명령으로 확인
  • 전송이 안되는 이유 (외부적인 요인)
    • 출발지로부터 해당 서비스가 동작 중인 서버까지의 경로가 정상적으로 잡혀있지 않은 경우 (라우터쪽에서 작업을 수행)
    • 출발지로부터 해당 서비스가 동작 중인 서버까지의 경로상 보안 장비 등에 의해서 차단된 경우
    • 도착지 단말의 방화벽이나 iptables와 같은 보안 기능에서 차단된 경우
    • 도착지 단말이 정상적으로 서비스가 열려 있지 않은 경우(서비스 포트가 Listening 상태가 아닌 경우나 서버 서비스가 구동 되지 않은 경우)
  • 전송이 안되는 경우 추가적인 테스트
    • 경로 상의 문제라면 네트워크 장비 없이 ping이나 traceroute 명령으로 확인 가능하다.
    • 보안 장비에 의해 차단된 경우에는 다른 포트나 ICMP 프로토콜을 사용하는 ping, traceroute 명령으로 일부 파악 가능하고 보안 장비의 위치를 알고 있다면 보안 장비를 지나는 경우와 지나지 않은 경우로 나눠 테스트하면 된다.
    • 단말의 방화벽 기능을 일시적으로 내리고 테스트를 수행한다.
    • netstat나 ss 명령으로 확인한다.

리눅스 네트워크 구축하기

IP 설정

가상 머신에서 네트워크 부분에서 dhcp 사용을 해제

sudo nano /etc/netplan/00-installer-config.yaml
network:
	version: 2
	ethernets:
		enp0s3:
			dhcp4: no
			addresses:
				-IP/서브넷
			gateway4: 게이트웨이
			nameservers:
				addresses: [8.8.8.8]

  • 적용
sudo netplan apply
  • 확인
ip a
  • 포트포워딩 해주기 (외부에서 접속 가능하게끔)

  • 이름 변경
sudo hostnamectl set-hostname 이름
  • 이름 변경 확인
cat /etc/hostname
  • 재부팅
sudo reboot

 

Slave 1도 똑같이 해주기

sudo nano /etc/netplan/00-installer-config.yaml
network:
	version: 2
	ethernets:
		enp0s3:
			dhcp4: no
			addresses:
				- 10.0.2.201/24
			gateway4: 10.0.2.1
			nameservers:
				addresses: [8.8.8.8]

sudo netplan apply # 적용
ip a # ip 잘 들어갔는지 확인
sudo hostnamectl set-hostname slave1 # hostname 바꾸고
cat /etc/hostname # 확인
sudo reboot # 적용

slave2 도 위의 과정을 똑같이 해주되 포트 포워딩 규칙만 10003, 10.0.2.202 로 해주자!

  • 이름으로 통신할 수 있도록 설정
sudo vi /etc/hosts

10.0.2.101 master
10.0.2.201 slave1
10.0.2.202 slave2

slave1, slave2 에는 각각 127.0.1.1도 slave1, slave2로 바꿔주기

 

Adapter 에 bridge : 1대 1로 연결

NAT: 1대 1로 연결은 되는데 여러 개도 사용 가능

→ 같은 ip에 포트를 다르게 해서 독립적으로 연결되도록 한다.

  • NAT는 내가 나가기 위해서 설정하는 거고 포트 포워딩은 밖에서 들어오기 위해서 하는 것

NAT Network:

yaml : 들여쓰기 굉장히 중요

IaC : Infrastructure as Code

보안

정보 보안 : 다양한 위협으로부터 정보를 보호하는 것

조직의 지적 자산을 보호하는 절차

인가된 사용자만 정확하고 완전한 정보로 필요할 때 접근할 수 있도록 해주는 일련의 작업ㅑㅔ

필수 요소 3가지

  • Confidentiality (기밀성) : 인가되지 않은 사용자가 정보를 보지 못하게 하는 것
  • Integrity (무결성) : 정확하고 완전한 정보 유지에 필요한 모든 작업
  • Availabilty (가용성) : 정보가 필요할 때 접근을 허락하는 일련의 작업

추가

  • Authentication (인증)
  • Accountability (책임성)
  • NonRepudiation (부인 방지)
  • Reliability (신뢰성)

네트워크의 정보 보안

  • 네트워크 보안의 목표는 외부 네트워크로부터 내부 네트워크를 보호하는 것
  • 외부로부터 보호받아야 하는 네트워크를 Trust Network라고 하고 신뢰할 수 없는 외부 네트워크를 Untrust Network라고 한다.
    • Data 서버 → Trust Network
    • 사용자 → Untrust Network
    • Application (Backend, Frontend) server → DMZ
  • 우리가 운영하는 내부 네트워크이지만 신뢰할 수 없는 외부 사용자에게 개방해야 하는 네트워크를 DMZ 네트워크라고 부르면 일반적으로 인터넷에 공개되는 서비스이다.
  • 네트워크 보안 분야의 분류
    • Internet Secure Gateway: Trust Network에서 Untrust Network로의 통신을 통제
      • SWG(Secure Web Gateway), Web Filter, Application Control, SendBox 등의 서비스
    • Data Center Secure Gateway: Untrust Network에서 Trust Network로의 통신을 통제
      • Firewall, IPS, DCSG(Data Center Secure Gateway), WAF(Web Application Firewall), Anti-DDoS(Distribute Denial of Service) 등의 장비
  • 보안 정책에 따른 분류
    • White List: 허용 (필요한 서비스만 허락)
    • Black List: 거부

정탐 오탐 미탐

-> 공격을 탐지할 때 원래 예상한 내용과 다른 결과가 나올 수 있는데 이런 경우는 오탐지, 미탐지라고 한다.
                                                 공격 상황                                                           정상 상황

공격 인지 True Positive False Positive
정상 인지 False Negative True Negative

 

  • False Negative는 공격 패턴에 대한 업데이트가 되지 않았거나 과도한 예외 처리로 인해서 공격 패킷 탐지가 정상적으로 되지 않았을 때 또는 공격 데이터베이스가 업데이트 되기 전에 발생하는 Zero Day Attack 이 발생했을 때 생기는 오류이다.
  • Black List 기반의 공격 방어 기법을 사용하던 시절에 많이 발생했다.

보안 솔루션의 장비

DDoS 방어 장비 ↔ Firewall ↔ IPS ↔ WAF ↔ Web Application Server

  • DDoS 방어 장비
    • DDoS(Distributed Denial of Service): 다양한 방법으로 서비스 부하를 가해 정상적인 서비스를 방해하는 공격 기법
    • DoS: 공격 출발지에서 공격하는 것이 일반적인 방식, 비교적 탐지가 쉽고 IP 주소 기반으로 충분히 방어할 수 있다.
    • DDoS: 짧은 시간에 공격 성과를 내기 위해서 다수의 bot을 이용해서 분산 공격을 하는 것
    • 보통 데이터센터 네트워크 내부와 외부의 경계선에서 공격을 방어하는데 이것은 ValueMetric Attack을 막기 위해서이다.
      • ValueMetric 공격은 회선 사용량이나 그 이상의 트래픽을 과도하게 발생시켜 회선 사용을 방해하는 공격이므로 회선을 공급해주는 ISP(Internet Service Provider)나 네트워크 ISP와 연결되는 데이터 네트워크의 가장 바깥쪽에 위치 시켜 이 공격을 완하한다.
  • IDS, IPS
    • IDS(Intrusion Detection System): 침입 탐지 시스템
    • IPS(Intrusion Prevention System): 침입 방지 시스템
    • 최근에는 둘을 구분하지 않는다.
    • 사전에 공격 데이터베이스를 제조사나 위협 인텔리전스 업체로부터 받아서 인입된 패킷이 보유한 공격 데이터베이스에 해당하는 공격일 때 차단하거나 모니터링 한 후 관리자에게 알람을 보내주는 방식
  • DCSG: 방화벽과 IPS 장비를 통합한 장비
  • WAF: 웹 서버를 보호하는 전용 보안 장비
    • HTTP, HTTPS 처럼 웹 서버에서 동작하는 웹 프로토콜의 공격을 방어
    • IDS/IPS보다 범용성은 떨어지지만 웹 프로토콜에 대해서는 더 세밀히 방어
    • 제공되는 방식
      • 전용 네트워크 장비
      • 웹 서버의 플러그인
      • ADC 플러그인
      • 프록시 장비 플러그인
        • WAF는 IPS에서 방어할 수 없는 IPS 회피 공격을 방어할 수 있다.
        • IPS는 데이터를 조합하지 않고 처리하지만 WAF는 프록시 서버와 같이 패킷을 데이터 형태로 조합해 처리한다.
        • WAF가 있으면 공격을 방어만 하지 않고 공격자에게 통보하거나 민감한 데이터가 유출될 때 그 정보만 제거해서 보내줄 수 있다.

WAF: 4계층 이상(Port), data를 확인해서 공격 방어. (패킷을 다 뜯어보고 응답도 할 수 있다.), 뜯어 본 데이터에 공격자의 주소도 있으니까 공격자에게 메시지도 보낼 수 있다.

IPS: 3계층(IP), 들어오고 못하고, slack으로 누가 공격한다 알림을 줄 수 있다.

→ WAF가 더 강력

  • 샌드박스
    • 최근의 공격 방식 중 하나는 관리자 PC에 악성 코드를 심고 관리자 PC가 나머지 PC들을 감염시키도록 하는 방식이 있다.
    • 이러한 악성 코드 여부를 판별하는 장비

 

728x90
반응형

'현대 오토에버 클라우드 스쿨' 카테고리의 다른 글

방화벽 생성 및 제어  (1) 2025.06.05
보안  (0) 2025.06.04
네트워크 장비  (0) 2025.05.30
네트워크  (1) 2025.05.29
Shell Programming  (0) 2025.05.28