Debian 12에서 WireGuard Point-to-Site VPN을 구성하는 방법
원격 클라이언트 한 명을 위해 Debian 12 기반 WireGuard VPN 서버를 설정합니다. 키, IPv4 포워딩, nftables NAT, 방화벽 액세스 및 연결 확인을 구성합니다.
SUSE Linux Enterprise Server 15에서 타사 드라이버가 컴파일은 제대로 되지만 "필요한 키를 사용할 수 없습니다" 또는 "서비스에서 키를 거부했습니다"라는 오류와 함께 로드되지 않을 수 있습니다. UEFI 보안 부팅이 모듈 서명을 강제하는 경우, 해결 방법은 사용자 지정 커널 모듈에 신뢰할 수 있는 인증서로 서명하고, 해당 인증서를 MOK(Machine Owner Key) 관리 시스템에 등록한 다음, 보안 부팅을 비활성화하지 않고 모듈을 정상적으로 로드하는 것입니다.
kernel-default이 절차는 SUSE shim, 커널, 관리자 권한 및 신뢰할 수 있는 드라이버 소스를 사용하는 표준 SLES 15 UEFI 시스템을 가정합니다 . 사용자 지정 .ko모듈에 대한 내용이며, 대체 커널 서명이나 펌웨어 플랫폼 키 변경은 다루지 않습니다. 예제는 SLES 15 SP6/SP7 관리 모델을 따르므로, 설치된 서비스 팩에 따라 패키지 및 커널 버전이 다를 수 있으므로 해당 차이점을 확인하십시오.
관리자 권한으로 로그인하여 실제로 부팅한 커널을 확인하십시오. 패키지 이름만 일치한다고 해서 해당 모듈이 해당 커널에 로드될 수 있다는 것을 증명할 수는 없습니다.
uname -r
mokutil --sb-state
ls -ld "/lib/modules/$(uname -r)/build"

보안 부팅이 활성화된 것으로 보고되는 경우 mokutil, 신뢰할 수 없는 서명이 키 관련 로드 실패의 원인일 가능성이 높습니다. 보안 부팅이 비활성화된 경우, 키를 생성하기 전에 다른 원인을 조사하십시오. 명시적인 커널 서명 강제 적용 또한 문제가 될 수 있습니다. 로드 실패 후 커널 로그에서 실제 거부 메시지를 확인하십시오.
sudo journalctl -k -b --no-pager | tail -n 50
설치하기 전에 후보 모듈을 검사하십시오. 예시 파일 이름 대신 실제 파일 이름을 사용하십시오. 파일 이름은 vermagic실행 중인 커널 릴리스 및 호환 빌드 속성과 일치해야 합니다.
modinfo -F name /path/to/mydriver.ko
modinfo -F vermagic /path/to/mydriver.ko

먼저 하드웨어 또는 소프트웨어 공급업체에 SLES 호환이 가능하고 이미 서명된 커널 모듈 패키지(KMP)를 요청하십시오. 이는 바이너리를 직접 설치하는 것보다 바람직합니다. 공급업체에서 커널 업데이트 처리 및 문서화된 인증서 등록 프로세스를 제공할 수 있기 때문입니다. 모든 보안 부팅 시스템에서 공급업체 서명이 자동으로 신뢰되는 것은 아닙니다.
드라이버를 직접 빌드해야 하는 경우, 실행 중인 커널에 맞는 개발 파일을 설치하십시오. kernel-default일반적인 SLES 패키지에는 기본 커널 개발 패키지, 커널 개발 파일 및 빌드 도구가 포함됩니다. 저장소 가용성 및 버전은 등록 여부와 활성화된 SLES 모듈에 따라 달라집니다.
sudo zypper install gcc make openssl mokutil kernel-devel kernel-default-devel
rpm -q kernel-default-devel kernel-devel
readlink -f "/lib/modules/$(uname -r)/build"

빌드 디렉터리가 없거나 개발 패키지가 다른 커널 릴리스를 대상으로 하는 경우, 먼저 패키지/커널 불일치를 해결하십시오. 새로 설치된 커널은 빌드 전에 재부팅이 필요할 수 있습니다.
신뢰할 수 있는 드라이버 소스 디렉터리에서 공급업체의 빌드 지침을 사용하십시오. 기존 kbuild 기반 모듈의 경우 아래 명령은 실행 중인 커널을 대상으로 빌드하며, 드라이버를 다운로드하거나 생성하지 않습니다.
cd /path/to/driver-source
make -C "/lib/modules/$(uname -r)/build" M="$PWD" modules

신뢰할 수 있는 공급업체에서 제공하는 호환 가능한 버전이 이미 있는 경우 컴파일을 건너뛰십시오 .ko. 잘못된 서명으로 모듈을 강제로 로드하지 마십시오 vermagic. 서명으로는 호환되지 않는 바이너리를 복구할 수 없습니다.
루트 사용자 전용 디렉터리에 전용 RSA 키와 X.509 인증서를 생성합니다. 공개 인증서는 등록되지만, 개인 키는 보호되어야 합니다. 개인 키를 소유한 사용자는 이 시스템이 신뢰할 수 있는 추가 모듈에 서명할 수 있기 때문입니다.
sudo -i
umask 077
mkdir -p /root/module-signing
cd /root/module-signing
openssl req -new -x509 -newkey rsa:3072 -sha256 -days 3650 -nodes \
-subj "/CN=SLES Custom Module Signing/" \
-keyout MOK.priv -out MOK.pem
openssl x509 -in MOK.pem -outform DER -out MOK.der
chmod 600 MOK.priv

-nodes간단한 예시를 위해 암호화되지 않은 개인 키를 생성합니다. 실제 서명 파이프라인에서는 보안 정책에 따라 적절하게 보호되는 암호화 키 또는 외부 서명 서비스를 사용하십시오. 여기에 표시된 10년 유효 기간은 예시일 뿐이며, 조직의 인증서 유효 기간을 권장하는 것은 아닙니다.
완성된 모듈을 실행 중인 커널의 모듈 디렉터리에 복사합니다. 패키징, 스트리핑 또는 기타 파일 수정 후 설치된 파일에 직접 서명합니다. mydriver및 경로를 모듈의 실제 기본 이름과 위치로 바꿉니다.
install -D -m 0644 /path/to/mydriver.ko \
"/lib/modules/$(uname -r)/extra/mydriver.ko"
SIGN_FILE="$(readlink -f /lib/modules/$(uname -r)/build)/scripts/sign-file"
test -x "$SIGN_FILE" || echo "Locate the sign-file binary for this kernel"
"$SIGN_FILE" sha256 /root/module-signing/MOK.priv \
/root/module-signing/MOK.der \
"/lib/modules/$(uname -r)/extra/mydriver.ko"
modinfo -F signer "/lib/modules/$(uname -r)/extra/mydriver.ko"

해당 경로에 도구가 없는 경우 sign-file, 관련 없는 버전을 복사하는 대신 일치하는 커널 빌드 파일과 함께 제공되는 도구를 찾으십시오. 서명자가 표시된다는 것은 파일에 서명 메타데이터가 포함되어 있음을 의미하며, 서명자가 등록되었음을 증명하는 것은 아닙니다. 서명 후에는 모듈을 절대 제거하거나 수정하지 마십시오.
DER 형식의 공개 인증서를 가져오고, MOK.priv에서 요청하는 일회용 등록 암호를 설정하십시오 mokutil. 재부팅하기 전에 콘솔 액세스를 준비하십시오. 인증은 SSH 셸이 아닌 부팅 시 MokManager 인터페이스에서 수행됩니다.
mokutil --import /root/module-signing/MOK.der
mokutil --list-new
reboot

다음 부팅 시 'MOK 등록'을 선택하고 확인 메시지에 따라 진행한 후 일회용 암호를 입력하고 부팅을 계속하십시오. 메뉴 표시는 펌웨어 및 shim 버전에 따라 다릅니다. 등록을 확인하지 않고 Linux로 돌아가면 새 인증서가 신뢰할 수 없는 상태가 됩니다.
부팅 후 특정 인증서가 등록되었는지 확인하십시오.
sudo mokutil --test-key /root/module-signing/MOK.der
sudo mokutil --list-enrolled
모듈 종속성 메타데이터를 업데이트하고 전체 파일 경로가 아닌 모듈 이름으로 모듈을 로드합니다. modprobe종속성을 해결하고 표준 모듈 구성을 준수합니다.
sudo depmod -a
sudo modprobe mydriver
lsmod | grep -w mydriver
modinfo -F signer mydriver

로딩이 계속 실패하는 경우, 증거에 맞는 시정 조치를 선택하십시오.
mokutil --test-key. 설치한 파일이 서명된 파일인지 확인하고 드라이버 업데이트로 인해 파일이 교체되었는지 확인하십시오.modinfo -F vermagic 와 비교하고 uname -r, 활성 커널에 대해 다시 빌드하고, CPU 아키텍처를 확인하십시오.journalctl -k -b 공급업체에서 요구하는 모듈과 커널 ABI를 확인하십시오 . 다른 서명을 사용해도 누락된 기호는 수정되지 않습니다.부팅에 중요한 스토리지 또는 네트워크 드라이버의 경우, 먼저 비운영 시스템에서 테스트하고 복구 콘솔을 사용할 수 있는지 확인하십시오. 드라이버가 안정적으로 작동하는 것을 확인한 후에만 자동 로딩을 구성하십시오. /etc/modules-load.d/장치 감지 시 자동으로 로드되지 않는 모듈에 대한 SUSE 문서를 참조하십시오.
지속적인 로딩이 중요한 경우 유지 관리 기간 동안 다시 한 번 재부팅하십시오. 보안 부팅이 활성화되어 있는지, 공개 키가 등록되어 있는지, 모듈이 있는지, 커널에서 새로운 검증 또는 호환성 오류가 보고되지 않는지 확인하십시오. .ko커널 또는 벤더 드라이버를 업그레이드한 후에는 빌드 또는 재설치하고 업데이트된 버전에 서명하십시오.
mokutil --sb-state
sudo mokutil --test-key /root/module-signing/MOK.der
modinfo -F signer mydriver
lsmod | grep -w mydriver
sudo journalctl -k -b --no-pager | tail -n 30
주요 문서: SUSE SLES 15 SP6: UEFI 및 머신 소유자 키 ; SUSE: 커널 모듈 관리 ; Linux 커널: 모듈 서명 기능 ; Linux 커널: 외부 모듈 빌드 . SLES 15 SP6 관리 가이드는 2026년 9월 17일에 업데이트되었습니다. 타사 드라이버 설치 프로그램 및 기본값이 아닌 커널 버전의 명령 동작은 해당 관리자에게 확인해야 합니다.
원격 클라이언트 한 명을 위해 Debian 12 기반 WireGuard VPN 서버를 설정합니다. 키, IPv4 포워딩, nftables NAT, 방화벽 액세스 및 연결 확인을 구성합니다.
Nextcloud 파일과 MariaDB를 함께 백업하고, cron을 사용하여 암호화된 Restic 스냅샷을 예약하고, 운영 서버에 위험을 초래하지 않고 복구를 검증하세요.
데비안에서 SSH 키, fstab, systemd 자동 마운트를 사용하여 SSHFS 부팅 마운트를 구성하는 방법입니다. 재부팅 확인, 권한 설정, 타임아웃 및 문제 해결 기능도 포함되어 있습니다.
Zimbra Community Edition 개별 사서함을 내보내고, TGZ 백업의 유효성을 검사하고, 기존 메일을 덮어쓰지 않고 누락된 항목을 복원할 수 있습니다.
Keycloak 및 토큰 인증을 사용하여 승인된 계정만 Jitsi Meet 회의실을 시작할 수 있도록 허용하고, 필요한 경우 게스트 참여도 허용합니다.
ONLYOFFICE DocSpace를 Active Directory 또는 OpenLDAP에 연결하고, 사용자 및 그룹을 안전하게 가져오고, 계정 필드를 매핑하고, 안정적인 동기화를 예약하세요.
ONLYOFFICE Document Server에 사용자 지정 글꼴을 설치하고, Docker 마운트된 글꼴과 직접 복사된 글꼴을 비교하고, 글꼴 목록을 다시 빌드하고, 결과를 확인합니다.
ONLYOFFICE Docs에 대해 HAProxy HTTPS, 전달 헤더, WebSocket 시간 초과 및 상태 확인을 구성한 다음 편집 및 저장이 제대로 되는지 확인합니다.
보안 부팅을 비활성화하지 않고 사용자 지정 SLES 15 커널 모듈을 로드합니다. 실행 중인 커널과 일치시키고, .ko 파일에 서명하고, MOK 키를 등록하고, 로드 여부를 확인합니다.
SLES 시스템 로그를 인증된 TLS를 통해 원격 rsyslog 수집기로 전송하고, 인증서 확인, 장애 버퍼링 및 전송 테스트를 수행합니다.