본문 바로가기
웹 서버, WAS, 미들웨어/OpenVPN

OpenVPN-AS 3.1.0 에서 3.2.1 로 업데이트 하기

by 연구자 공학코드 2026. 6. 24.

공지사항

  1. 제가 운영하는 IT·SI·SM 전문가 커뮤니티 아이티프로(https://cafe.naver.com/itpro)에 가입하시면 IT 개발 노하우와 SI 구축 및 사업관리 노하우, 솔루션 정보를 제공받으실 수 있습니다.

  2. 제가 운영하는 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

ISMS 후속 조치를 위해 OpenVPN-AS(Access Server)를 수정하던 중에 버전 업데이트가 많이 되었길래 업데이트를 했었다. 다음에도 참고할 수 있게 본 글에 정리한다.

VPN 서버 환경

  • OS: Rocky Linux 9.7 x64
  • CPU: 1 core
  • RAM: 2GB
  • SSD: 40GB

패키지 설치 가능여부 확인

아래의 명령어를 터미널에 입력하여 OpenVPN-AS 3.2.1 패키지가 설치가능한 상태인지 확인한다.

sudo su -
dnf clean all
dnf makecache
dnf list --showduplicates openvpn-as | grep 3.2.1

설치 가능한 패키직 ㅏ나타난 화면

설정 백업

기존 설정을 백업하기 위해 sqlite를 설치한다.

sudo -i
dnf -y install sqlite

 

아래의 명령어를 입력하여 기존 설정을 백업한다.

BACKUP_DIR="/root/openvpn-as-backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"

cd /usr/local/openvpn_as/etc/db

[ -e config.db ] && sqlite3 config.db .dump > "$BACKUP_DIR/config.db.bak"
[ -e certs.db ] && sqlite3 certs.db .dump > "$BACKUP_DIR/certs.db.bak"
[ -e userprop.db ] && sqlite3 userprop.db .dump > "$BACKUP_DIR/userprop.db.bak"
[ -e log.db ] && sqlite3 log.db .dump > "$BACKUP_DIR/log.db.bak"
[ -e config_local.db ] && sqlite3 config_local.db .dump > "$BACKUP_DIR/config_local.db.bak"
[ -e cluster.db ] && sqlite3 cluster.db .dump > "$BACKUP_DIR/cluster.db.bak"
[ -e notification.db ] && sqlite3 notification.db .dump > "$BACKUP_DIR/notification.db.bak"

cp /usr/local/openvpn_as/etc/as.conf "$BACKUP_DIR/as.conf.bak"

tar czf "${BACKUP_DIR}.tar.gz" -C /root "$(basename "$BACKUP_DIR")"
ls -lh "${BACKUP_DIR}.tar.gz"

백업 명령어가 실행된 화면

아래의 명령어를 입력하여 설정 파일을 백업한다.

CHECK_DIR="/root/openvpn-as-precheck-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$CHECK_DIR"

cat /etc/rocky-release > "$CHECK_DIR/os-release.txt"
uname -r > "$CHECK_DIR/kernel.txt"
rpm -qa | grep -E 'openvpn-as|kmod-ovpn' > "$CHECK_DIR/packages.txt" || true
/usr/local/openvpn_as/scripts/sacli Version > "$CHECK_DIR/sacli-version.txt"
cat /usr/local/openvpn_as/etc/VERSION > "$CHECK_DIR/version-file.txt"
systemctl status openvpnas --no-pager > "$CHECK_DIR/openvpnas-status.txt" || true
/usr/local/openvpn_as/scripts/sacli ConfigQuery > "$CHECK_DIR/config-query.txt"
nft list ruleset > "$CHECK_DIR/nft-ruleset.txt" 2>/dev/null || true
iptables-save > "$CHECK_DIR/iptables-save.txt" 2>/dev/null || true

tar czf "${CHECK_DIR}.tar.gz" -C /root "$(basename "$CHECK_DIR")"
ls -lh "${CHECK_DIR}.tar.gz"

설정 파일을 백업하는 화면

OpenVPN-AS 3.2.1 설치

아래의 명령어를 입력하여 OpenVPN-AS를 3.2.1 버전으로 설치한다. 

dnf install -y openvpn-as-3.2.1_d0affc91-1.el9.x86_64

OpenVPN-AS 3.2.1 패키지가 설치된 화면

아래의 명령어를 입력하여 OpenVPN-AS 3.2.1이 잘 설치됐는지 확인한다.

rpm -qa | grep openvpn-as
/usr/local/openvpn_as/scripts/sacli Version
cat /usr/local/openvpn_as/etc/VERSION
systemctl status openvpnas --no-pager

OpenVPN-AS 3.2.1이 잘 설치된 화면

OpenVPN-AS 3.2.1 관리자 웹으로 가서 정상적으로 설치됐는지 아래의 사진처럼 확인한다.

OpenVPN-AS 3.2.1 관리자 웹 화면

DCO 활성화

필수는 아니지만 DCO(Data Channel Offload)를 활성화 하면 VPN 처리 성능을 높일 수 있다. DCO는 VPN 데이터 암호화 및 패킷 처리를 사용자 공간(User Space)에서 커널 공간(Kernel Space)으로 이동시켜 속도를 높이고 CPU 및 메모리 오버헤드를 줄여주는 기술이다.

OpenVPN-AS 3.1.0에서 DCO 관련 패키지를 설치하고 활성화했다고 해도 3.2.1에서 사용하는 패키지 명칭이 다르기에 다시 구성해야 한다. 아래의 명령어를 입력하여 DCO 관련 패키지를 설치한다.

dnf install -y kmod-ovpn

DCO 관련 패키지가 설치된 화면

아래의 명령어를 입력하여 DCO 설정을 활성화한다음 OpenVPN-AS를 재시작한다.

modprobe ovpn
lsmod | grep ovpn
systemctl restart openvpnas

DCO가 설정되었고 VPN가 재시작된 화면

아래의 화면처럼 DCO 정보가 나타나면 DCO 활성화가 잘 된 것이다.

DCO가 활성화된 화면

 

 

 

728x90
반응형

댓글