iBetter Books
수정

네트워크 관련 스크립트

네트워크 명령어는 리눅스마스터 2급 시험에서 꾸준히 출제됩니다. 명령어의 출력 결과를 해석하거나, 상황에 맞는 명령어를 선택하는 문제가 많습니다. 이 절에서는 핵심 명령어를 정리하고 쉘 스크립트에서 활용하는 방법도 함께 다룹니다.

출제 유형 1 — 네트워크 명령어

ifconfig와 ip addr

# 전통적인 네트워크 인터페이스 확인ifconfig# 현대적인 방법 (ip 명령어)ip addr showip addr show eth0   # 특정 인터페이스만# 인터페이스 활성화/비활성화ip link set eth0 upip link set eth0 down

ifconfig 출력의 주요 항목은 다음과 같습니다.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
      ether 00:11:22:33:44:55  txqueuelen 1000  (Ethernet)
항목 의미
inet IPv4 주소
netmask 서브넷 마스크
broadcast 브로드캐스트 주소
ether MAC 주소
UP 인터페이스 활성화 상태

netstat와 ss

# 열린 포트와 연결 상태 확인 (netstat)netstat -tuln       # TCP/UDP 수신 포트 목록netstat -an         # 모든 연결 상태# 현대적인 방법 (ss)ss -tuln            # TCP/UDP 수신 포트 목록ss -s               # 소켓 통계 요약
옵션 의미
-t TCP
-u UDP
-l LISTEN 상태만
-n 서비스명 대신 숫자로 표시
-p 프로세스 정보 포함

네트워크 진단 명령어

# 호스트 연결 확인ping -c 4 8.8.8.8# 경로 추적traceroute 8.8.8.8# DNS 조회nslookup google.comdig google.com A        # A 레코드 조회dig google.com MX       # MX 레코드 조회# 라우팅 테이블 확인route -nip route show

문제 1

다음 중 현재 시스템에서 수신 대기 중인 TCP 포트 목록을 숫자 형태로 확인하는 명령어로 올바른 것은 무엇인가.

  1. netstat -tuln
  2. netstat -all
  3. ifconfig -port
  4. ss -show

정답: 1번. netstat -tuln은 TCP(-t), UDP(-u), 수신 대기(-l), 숫자 형식(-n)으로 포트 목록을 출력합니다.

문제 2

다음 중 도메인의 MX 레코드를 조회하는 명령어로 올바른 것은 무엇인가.

  1. ping example.com MX
  2. nslookup -type MX example.com
  3. traceroute example.com MX
  4. route example.com MX

정답: 2번. nslookup -type=MX example.com 또는 dig example.com MX로 MX 레코드를 조회합니다. 2번은 -type 옵션을 사용하는 올바른 형태입니다.


출제 유형 2 — 네트워크 설정 파일

리눅스 네트워크 관련 설정 파일의 역할을 알아야 합니다.

파일 역할
/etc/hosts 호스트명 - IP 주소 정적 매핑
/etc/resolv.conf DNS 서버 설정
/etc/hostname 시스템 호스트명
/etc/network/interfaces Debian 계열 네트워크 설정
/etc/netplan/*.yaml Ubuntu 18.04+ 네트워크 설정
# /etc/hosts 예시127.0.0.1   localhost192.168.1.10  server01.local  server01# /etc/resolv.conf 예시nameserver 8.8.8.8nameserver 8.8.4.4search example.com

iptables와 ufw 기초

# ufw (Uncomplicated Firewall) - Ubuntu 기본 방화벽ufw enable              # 방화벽 활성화ufw disable             # 방화벽 비활성화ufw status              # 상태 확인ufw allow 22            # SSH 허용ufw allow 80/tcp        # HTTP 허용ufw deny 23             # Telnet 차단ufw delete allow 80     # 규칙 삭제# iptables - 전통적인 방화벽iptables -L             # 규칙 목록 확인iptables -A INPUT -p tcp --dport 80 -j ACCEPT   # 80포트 허용iptables -A INPUT -p tcp --dport 22 -j ACCEPT   # SSH 허용

문제 3

DNS 서버 주소를 설정하는 파일로 올바른 것은 무엇인가.

  1. /etc/hosts
  2. /etc/hostname
  3. /etc/resolv.conf
  4. /etc/network/dns

정답: 3번. /etc/resolv.confnameserver 항목으로 DNS 서버 주소를 설정합니다. /etc/hosts는 정적 호스트 매핑, /etc/hostname은 시스템 이름을 설정합니다.


네트워크 모니터링 스크립트 예시

지금까지 학습한 명령어를 실제 스크립트로 활용해봅니다.

호스트 ping 체크 스크립트

#!/bin/bash# 새 파일: check_host.shHOSTS=("8.8.8.8" "1.1.1.1" "google.com")LOG_FILE="/var/log/ping_check.log"TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')for host in "${HOSTS[@]}"; do    if ping -c 1 -W 3 "$host" > /dev/null 2>&1; then        echo "$TIMESTAMP $host: UP" | tee -a "$LOG_FILE"    else        echo "$TIMESTAMP $host: DOWN" | tee -a "$LOG_FILE"    fidone

포트 연결 확인 스크립트

#!/bin/bash# 새 파일: check_port.shHOST="${1:-localhost}"PORT="${2:-80}"TIMEOUT=5if timeout "$TIMEOUT" bash -c "echo > /dev/tcp/$HOST/$PORT" 2>/dev/null; then    echo "$HOST:$PORT 연결 가능"    exit 0else    echo "$HOST:$PORT 연결 불가"    exit 1fi

실행 예시입니다.

chmod +x check_port.sh./check_port.sh google.com 443./check_port.sh localhost 22

네트워크 인터페이스 상태 확인 스크립트

#!/bin/bash# 새 파일: check_interfaces.shecho "=== 네트워크 인터페이스 상태 ==="echo ""# ip 명령어로 인터페이스 목록 조회ip -brief addr show | while read -r iface state ip_info; do    printf "%-15s %-10s %s\n" "$iface" "$state" "$ip_info"doneecho ""echo "=== 라우팅 테이블 ==="ip route show

문제 4

다음 스크립트에서 check_port.sh가 특정 포트에 접속 가능한지 확인하는 방법으로 Bash의 어떤 기능을 사용하고 있는가.

timeout 5 bash -c "echo > /dev/tcp/$HOST/$PORT"
  1. /dev/tcp를 통한 Bash 내장 TCP 연결 기능
  2. netcat(nc) 유틸리티
  3. telnet 프로토콜
  4. curl의 TCP 모드

정답: 1번. Bash는 /dev/tcp/호스트/포트라는 특수 파일을 통해 TCP 연결을 테스트할 수 있습니다. 이것은 Bash 내장 기능으로 별도 유틸리티 없이 포트 연결 가능 여부를 확인할 수 있습니다.

이제 01장에서 배운 유형별 문제 풀이를 바탕으로 02장에서 실전 모의 문제에 도전해봅니다. 유형을 알고 풀면 처음 보는 문제도 접근법이 보입니다.