우분투 DDOS 공격시 이더넷 자동변환 bash 스크립트

아래는 DDoS 공격이 감지될 경우 이더넷 인터페이스를 자동으로 전환하고, 추가 공격이 발생하면 다시 전환하도록 설정된 Bash 스크립트입니다.

기능 설명

  1. DDoS 감지: rx_packets를 모니터링하여 일정 초당 패킷 수(예: 10,000)를 초과하면 공격으로 판단
  2. 이더넷 인터페이스 전환: eth0eth1을 번갈아가며 변경
  3. 반복 실행: 지속적으로 감시하며, 공격이 다시 감지되면 재전환

Bash 스크립트

#!/bin/bash

# 감시할 네트워크 인터페이스 목록 (교차 전환)
IFACE1="eth0"
IFACE2="eth1"

# 패킷 임계값 (초당 패킷 수)
THRESHOLD=10000

# 현재 사용 중인 인터페이스 (초기값은 eth0)
CURRENT_IFACE="$IFACE1"

# 로그 파일 위치
LOGFILE="/var/log/ddos_auto_switch.log"

# DDoS 감지 함수
detect_ddos() {
RX1=$(cat /sys/class/net/$CURRENT_IFACE/statistics/rx_packets)
sleep 1
RX2=$(cat /sys/class/net/$CURRENT_IFACE/statistics/rx_packets)

PPS=$((RX2 - RX1))
echo "$(date) - $CURRENT_IFACE: $PPS PPS" >> "$LOGFILE"

if (( PPS > THRESHOLD )); then
return 0 # DDoS 감지됨
else
return 1 # 정상 상태
fi
}

# 네트워크 인터페이스 변경 함수
switch_interface() {
if [[ "$CURRENT_IFACE" == "$IFACE1" ]]; then
NEW_IFACE="$IFACE2"
else
NEW_IFACE="$IFACE1"
fi

echo "$(date) - DDoS 감지됨! $CURRENT_IFACE → $NEW_IFACE 변경" >> "$LOGFILE"

# 네트워크 인터페이스 변경
ip link set "$CURRENT_IFACE" down
ip link set "$NEW_IFACE" up
ip route replace default dev "$NEW_IFACE"

# 현재 인터페이스 업데이트
CURRENT_IFACE="$NEW_IFACE"
}

# 메인 루프 (주기적으로 체크)
while true; do
if detect_ddos; then
switch_interface
sleep 5 # 전환 후 안정화 대기
else
sleep 1 # 정상 상태면 계속 감시
fi
done

사용 방법

  1. 스크립트 저장 nano /usr/local/bin/ddos_auto_switch.sh 위 코드를 붙여넣고 저장합니다.
  2. 실행 권한 부여 chmod +x /usr/local/bin/ddos_auto_switch.sh
  3. 백그라운드 실행 nohup /usr/local/bin/ddos_auto_switch.sh &
  4. 로그 확인 tail -f /var/log/ddos_auto_switch.log

작동 방식

  • eth0에서 DDoS 감지 → eth1로 전환
  • 다시 eth1에서 DDoS 감지 → eth0으로 전환
  • 공격이 계속되면 계속 전환됨

2. systemd 서비스 파일 생성

이제 systemd 서비스 파일을 생성하여 자동 실행되도록 설정합니다.

sudo nano /etc/systemd/system/ddos_auto_switch.service

아래 내용을 입력 후 저장 (Ctrl + X, Y, Enter) 합니다.

[Unit]
Description=DDoS Auto Ethernet Switch Service
After=network.target

[Service]
ExecStart=/usr/local/bin/ddos_auto_switch.sh
Restart=always
User=root

[Install]
WantedBy=multi-user.target

3. 서비스 활성화 및 실행

(1) systemd 서비스 리로드

sudo systemctl daemon-reload

(2) 서비스 활성화 (부팅 시 자동 실행)

sudo systemctl enable ddos_auto_switch.service

(3) 서비스 즉시 실행

sudo systemctl start ddos_auto_switch.service

(4) 서비스 상태 확인

sudo systemctl status ddos_auto_switch.service

(5) 서비스 로그 확인

journalctl -u ddos_auto_switch.service -f

4. 서비스 중지 및 제거 (필요 시)

(1) 서비스 중지

sudo systemctl stop ddos_auto_switch.service

(2) 부팅 시 자동 실행 해제

sudo systemctl disable ddos_auto_switch.service

(3) 서비스 삭제

sudo rm /etc/systemd/system/ddos_auto_switch.service
sudo systemctl daemon-reload

✅ 이제 서버가 부팅될 때 자동으로 DDoS 감지 및 네트워크 인터페이스 전환이 동작합니다. 🚀

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다