최신 커널에 xtables-addons geoip 모듈 설치

1. 빌드에 필요한 패키지 설치
  apt install -y build-essential libxtables-dev git pkg-config libtool automake autoconf flex bison libmnl-dev libnftnl-dev libtext-csv-xs-perl
  apt install -y linux-headers-$(uname -r)

  ※linux-header 설치가 실패할 경우 아래의 과정을 따른다.
    uname -r
      linux-headers-6.18.33-current-sunxi64
    apt search linux-headers
      또는
    apt-cache search sunxi64
    위의 과정으로 정확한 리눅스 헤더패키지 명을 알아내어 설치한다.
    ex) apt -y install linux-headers-current-sunxi64

2. 최신버전 확인
  https://inai.de/files/xtables-addons/

3. 확인한 최신버전 변수 생성
  XTABLES_ADDONS_VER=3.30

4. 디렉토리 만들고 다운로드
  mkdir work
  cd work
  wget --no-check-certificate "https://inai.de/files/xtables-addons/xtables-addons-${XTABLES_ADDONS_VER}.tar.zst"
  #tar -xJf xtables-addons-${XTABLES_ADDONS_VER}.tar.xz
  tar -I zstd -xvf xtables-addons-${XTABLES_ADDONS_VER}.tar.zst
  cd xtables-addons-${XTABLES_ADDONS_VER}

5. 빌드
  ./configure --prefix=/usr --with-kbuild=/lib/modules/$(uname -r)/build
  make
  make install
  depmod

6. 확인
  # 1. xt_geoip 커널 모듈 로드
  depmod
  modprobe xt_geoip

  # 2. 모듈이 정상적으로 로드되었는지 확인
  lsmod | grep xt_geoip

  # 3. 테스트 규칙 추가 (중국 IP 차단 예시)
  iptables -A INPUT -m geoip --src-cc CN -j ACCEPT

  # 4. 규칙 확인
  iptables -L -v -n | grep geoip

7. 차후 커널 업데이트 금지
  # 커널 패키지 고정 처리
  apt-mark hold linux-image-$(uname -r) linux-headers-$(uname -r) linux-modules-$(uname -r) linux-modules-extra-$(uname -r)
  apt-mark hold linux-image-generic linux-headers-generic

  # 자동 업데이트 금지
  systemctl stop apt-daily.timer apt-daily-upgrade.timer
  systemctl disable apt-daily.timer apt-daily-upgrade.timer
  systemctl stop unattended-upgrades
  systemctl disable unattended-upgrades
위로 스크롤