본문 바로가기

웹 서버, WAS, 미들웨어35

728x90
반응형
OpenVPN Access Server 사용자 추가 방법 OpenVPN Access Server(이하 OpenVPN-AS)에서 사용자 계정을 추가하는 방법은 아래와 같다.사용자 계정 추가 방법아래의 사진처럼 OpenVPN-AS 관리자 페이지로 접속한다.로그인을 하면 아래의 사진과 같은 화면이 나타나는데 'Users' 메뉴를 클릭한다.'Add New User' 버튼을 클릭한다.아래의 사진처럼 'Username'과 'Assign to Group' 정보를 입력한 후 'Save'를 누른다. 'Username'은 임의로 입력할 수 있다.아래의 사진처럼 사용자 계정의 설정을 필요에 따라 설정한다.아래의 사진처럼 적당하게 값을 입력한 후에 'Save' 버튼으 클릭한다. 비밀번호는 명시적으로 입력해서 로그인할 수 있도록 설정하는 것이 좋다. 2026. 7. 27.
OpenVPN Access Server 전체 트래픽을 VPN 서버에 보내지 않도록 설정 OpenVPN Access Server(이하 OpenVPN-AS)에서 전체 트래픽을 VPN 서버에 보내지 않도록 설정하는 방법은 아래와 같다.VPN 환경OpenVPN-AS 3.2.1OS: Rocky Linux 9.7설정 방법아래의 사진처럼 OpenVPN-AS 관리자 페이지에 접속한 후에 'Access Controls' 메뉴를 클릭하여 'Internet Access and DNS' 탭을 클릭하면 아래와 같은 화면이 나타난다.이 화면에서 'Internet gateway' 설정을 'Split-Tunnel'로 선택하고 'DNS' 설정을 'Off'로 선택한 후 우측 상단의 'Save' 버튼을 클릭한다.이 후 최상단에 나타나는 OpenVPN-AS 서버 서비스를 재기동하는 'Restart' 버튼을 클릭하거나 Open.. 2026. 7. 24.
OpenVPN-AS 인터넷 차단 정책 설정 VPN 환경OpenVPN-AS 3.2.1OS: Rocky Linux 9.7방화벽 엔진: nftablesVPN 클라이언트 대역: 172.27.224.0/20정책 설정 목표VPN 클라이언트 → 허용된 내부망만 허용, 그 외 인터넷 차단OpenVPN-AS는 관리자 대시보드에 인터넷 차단 설정이 아직은 가능하지 않다. VPN 클라이언트의 인터넷 접속을 차단해야 한다면 VPN 서버의 운영체제 수준의 설정을 통해 VPN 클라이언트가 인터넷에 접속하지 못 하도록 차단할 수 있다.기존 설정 백업아래의 명령어를 입력하여 기존 OpenVPN-AS 설정과 라우팅 정보, 방화벽 정보를 백업한다.BACKUP_DIR="/root/openvpn-before-egress-block-$(date +%Y%m%d-%H%M%S)"mkdir.. 2026. 6. 30.
OpenVPN Access Server 에 DCO를 설정하자 시험 환경VPN: OpenVPN 2.6.16as1 x86_64-pc-linux-gnuOS: Rocky Linux 9.5CPU: 1 coreRAM: 2GBDCO를 사용하는 이유DCO(Data Channel Offload)는 OpenVPN 프로토콜의 성능 향상 기능으로, 데이터 패킷의 암호화 및 복호화 작업을 애플리케이션(사용자 공간)에서 운영체제 커널(커널 공간)로 이동시켜 처리 속도를 크게 높이고 CPU 사용량을 줄이는 기술이다. OpenVPN Access Server(이하 OpenVPN-AS)에서 자원 사용률이 낮은데 트래픽 처리량도 낮을 때는 DCO를 설정하면 다소 개선이 가능하다. 자원 사용률이 최대치인데 실제 사용 가능한 네트워크 대역폭을 다 활용하지 못 하는 상황일 때도 DCO를 설정하면 트래픽.. 2026. 6. 29.
OpenVPN-AS 3.1.0 에서 3.2.1 로 업데이트 하기 ISMS 후속 조치를 위해 OpenVPN-AS(Access Server)를 수정하던 중에 버전 업데이트가 많이 되었길래 업데이트를 했었다. 다음에도 참고할 수 있게 본 글에 정리한다.VPN 서버 환경OS: Rocky Linux 9.7 x64CPU: 1 coreRAM: 2GBSSD: 40GB패키지 설치 가능여부 확인아래의 명령어를 터미널에 입력하여 OpenVPN-AS 3.2.1 패키지가 설치가능한 상태인지 확인한다.sudo su -dnf clean alldnf makecachednf list --showduplicates openvpn-as | grep 3.2.1설정 백업기존 설정을 백업하기 위해 sqlite를 설치한다.sudo -idnf -y install sqlite 아래의 명령어를 입력하여 기존 설정.. 2026. 6. 24.
OpenVPN Access Server 3.2 출시 및 변경점 정리 출시일: 2026년 4월 28일OpenVPN Access Server 3.2 출시 개요OpenVPN Access Server 3.2는 배포 편의성, 보안, 관리 UI, 자동화 설정, DCO 성능 개선에 초점을 둔 주요 업데이트입니다. 현재 릴리스 노트 기준으로는 3.2.0이 2026년 4월 28일, 3.2.1이 2026년 5월 14일에 공개되었습니다. (OpenVPN)핵심 변경점 요약구분변경점의미초기 구축 편의성Access Server Link 추가DNS, SSL 인증서, 초기 SSH 설정 없이 OpenVPN에서 제공하는 보안 URL을 통해 웹 관리 화면에 접근할 수 있도록 지원합니다. VPN 트래픽은 서버로 직접 연결되고, 웹 인터페이스만 프록시됩니다. 해당 기능은 단계적으로 배포됩니다. (OpenVP.. 2026. 6. 8.
OpenVPN Access Server 디버그 및 로그 확인하는 방법 테스트 환경OpenVPN Access Server 3.1Rocky Linux 9.7OpenVPN Access Server 로그 확인아래의 명령어를 입력하면 OpenVPN Access Server의 로그를 실시간으로 확인할 수 있다.sudo tail -f /var/log/openvpnas.log디버그 모드 설정인증 부분을 디버그 모드로 설정하려면 아래와 같이 명령어를 입력한다. 디버그 속성에는 FAVOR_LZO, API_TRACE_SA, DEBUG_LOGDB, LOG_DB_XML_API_VERBOSE, DEBUG_SUBSCRIPTION, DEBUG_SAML 가 있다.echo "DEBUG_AUTH=true" | sudo tee -a /usr/local/openvpn_as/etc/as.confsudo syst.. 2026. 3. 25.
OpenVPN Access Server가 사용하는 포트를 명령어로 변경하는 방법 OpenVPN Access Server를 설치하는 환경에 따라서 최초 구축시에 관리자 웹 접속을 특정 포트 번호가 막혀서 못 접속하는 경우가 있다. 이 경우에는 OpenVPN Access Server가 사용하는 포트 번호를 명령어로 변경하는 것이 편리하다.테스트 환경Rocky Linux 9.7OpenVPN Access Server 3.1포트 번호를 변경하는 명령어아래와 같이 명령어를 입력하면 OpenVPN Access Server의 관리자 웹 페이지가 사용하는 포트 번호를 변경할 수 있다. '8443'으로 입력된 값 영역에 적절한 포트 번호를 입력한다. 특정 IP 주소만 접속할 수 있게 하려면 'all' 대신에 적절한 IP 정보를 입력한다.sudo sacli --key "admin_ui.https.ip_.. 2026. 3. 18.
OpenVPN Access Server 사용자 로그인 OpenVPN Access Server의 웹 화면에서 로그인하는 것부터 시작하여 최종적으로 VPN 클라이언트에 로그인하는 과정은 아래와 같다.사용자 웹 화면 로그인OpenVPN Access Server는 HTTPS 프로토콜로 웹 서비스를 제공한다. 'https://IP주소:포트번호/' 같이 OpenVPN을 구축한 서버의 IP 주소와 OpenVPN이 사용하는 포트번호를 적절하게 웹 브라우저에 입력하면 아래와 같은 화면을 볼 수 있다. 이 사용자 웹 화면에 로그인하면 OpenVPN Access Server의 클라이언트인 OpenVPN Connect를 다운로드 받을 수 있다. 로그인하면 아래의 사진처럼 OpenVPN Connect를 사용자 프로필과 함께 다운로드 받는 화면이 나타난다. 'Download' 버튼.. 2026. 3. 18.
OpenVPN Access Server 로그 확인 실행 환경Rocky Linux 9.7OpenVPN Access Server 3.1로그 확인 명령어OpenVPN Access Server릐 로그를 실시간으로 확인하는 명령어는 아래와 같다.tail -100f /var/log/openvpnas*.log 참고문서"Logging and Monitoring in Access Server", OpenVPN Access Server 공식 문서. @원문보기 2026. 3. 17.
OpenVPN Access Server 최소 사양 구동기 최소 사양 구동 테스트 배경최근 정보 보안 관련 사고 발생이 잦아지고 규제와 정책이 강화되면서 소규모 업장에서도 VPN을 도입하려고 하는 추세이다. 온프레미스 구조이면 포티넷 VPN 장비를 쓰거나 시놀로지나 아이피타임 같은 공유기와 NAS에 포함된 VPN을 쓰는 것이 가성비가 좋다. 하지만 서버들이 있는 위치가 클라우드 컴퓨팅 환경인 경우는 클라우드 데이터센터에 하드웨어를 설치하는 것이 보안 정책상 까다롭고 비용 효과적이지 않은 경우가 많다. 게다가 CSP가 VPN 서비스를 직접 제공하지 않고 서드 파티로 돌리는 경우가 있는데 이 경우에 VPN 사용료가 과도하게 발생하는 경향이 있다. 이는 서비스 제공을 위한 유통 과정에 중간자에 이윤이 붙어서 그렇다고 한다.최근에 보안적으로 안전하면서도 사용료가 낮은 .. 2026. 3. 16.
톰캣 8.5에서 MariaDB 리소스 설정 최근에 트러블슈팅을 한 운영 환경에서 톰캣(Tomcat) 8.5.27에 MariaDB 리소스(Resource) 설정이 된 것이 있었다. 최근에는 스프링 부트로 개발하니 이 위치에 설정할 일이 없었지만 정리해놓는 것이 운영유지보수(SM) 업무에 도움이 될 것 같아서 본 글에 기록한다.MariaDB 리소스 설정MariaDB 리소스 설정은 주로 '{톰캣설치경로}/conf/context.xml'에 입력되어 있다. 아래와 같이 리소스 설정 값을 입력하면 MariaDB 설정이 완료된다. 리소스 설정 값 중 {} 부분은 적절한 값으로 입력해야 한다. 리소스를 정상적으로 사용하기 위해서는 MariaDB JDBC Connector를 공식 홈페이지에서 다운로드 받은 후 '{톰캣설치경로}/lib'에 위치시켜야 하며 설정을 .. 2026. 3. 12.
아파치 웹 서버(Apache HTTPd) X-Forwarded-For 로그 설정 X-Forwarded-For 로그 설정 방법최상단에 WAF(Web Application Firewall, 웹 애플리케이션 방화벽)가 있고 그 이후에 ALB(Application Load Balancer, L7 스위치), 아파치 웹 서버가 있는 환경에서 아파치 웹 서버 로그 파일에 클라이언트 IP 주소(Origin)를 정확하게 기록하려면 아래와 같이 아파치 웹 서버 로그 설정이 되어야 한다.LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined로그가 의도한 대로 출력되려면 WAF와 ALB에도 X-Forwarded-For 관련 헤더를 사용하도록 설정해야 하며 WAF와 ALB에 따라 설정 .. 2026. 2. 3.
아파치 웹 서버(Apache HTTPd) 가상 호스트 로그 설정 가상 호스트 로그 설정 방법아래와 같이 설정하면 해당 가상 호스트는 지정된 파일에 로그를 기록한다. 가상 호스트에 따라 로그 파일을 분리하는 것은 디버깅할 때 유용한 부분이기에 꼭 설정하는 것이 좋다.ErrorLog "logs/admin-error_log"CustomLog "logs/admin-access_log" combined참고문서"Log Files", 아파치 웹 서버 2.4 공식 문서. @원문보기"Apache Core Features", 아파치 웹 서버 2.4 공식 문서. @원문보기 2026. 2. 2.
아파치 웹 서버(Apache HTTPd)에서 톰캣(Tomcat) 연동 부분 로그 수준 설정 설정 방법아파치 웹 서버(Apache HTTPd)에서 동적 처리를 하기 위해 톰캣(Tomcat)과 연동할 때 디버깅을 위한 세부 로그를 보려면 아래의 사진과 같이 JkLogLevel을 수정해야 한다. 로그 수준은 'trace'와 'debug', 'info', 'warn', 'error'로 설정이 가능하며 일반적으로는 'debug'로만 설정해도 충분하다.JkLogLevel debug참고문서"Configuring mod_jk for the Apache HTTP Server", The Apache Tomcat Connectors Version 1.2.50 - Reference Guid, 2024년 8월 13일. @원문보기 2026. 2. 1.
톰캣 'org.apache.tomcat.jni.Error: 70023' 오류 해결 방법 오류 현상아래와 같이 톰캣을 실행할 때 오류가 발생하는 경우가 있다.SEVERE [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Failed to initialize the SSLEngine. org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform오류 원인이는 SSL 라이브러리가 없어서 발생하는 것이다.해결 방법1. 아래와 같이 명령어를 입력하여 SSL 라이브러리 패키지를 설치한다.apt-get install libssl-dev 2. 해결이 되지 않는 경우 아래의 OpenSSL 버전 호환 문서를 확인한다.톰캣과 .. 2025. 1. 20.
[톰캣 8.5] 정적 리소스에 CORS 필터가 적용되지 않을 때 현상스프링 프레임워크로 웹 기반 백엔드 시스템을 배포 중에 운영 환경에서 정적 리소스에 CORS 필터가 적용되지 않는 것을 확인하였다. 스프링 프레임워크로 개발한 프로그램을 톰캣에 탑재하여 배포하는 경우에 정적 리소스는 작성한 CORS 필터를 거치지 않기 때문에 발생한 이슈였다.해결 방법톰캣의 web.xml에 아래와 같이 CORS 필터를 설정하면 정적 리소스에도 CORS 필터가 동작한다. corsFilter org.apache.catalina.filters.CorsFilter cors.allowed.origins * cors.allowed.methods .. 2024. 11. 29.
톰캣 가상 호스트 컨텍스트 설정 톰캣 가상 호스트 컨텍스를 설정하는 방법은 아래와 같이 호스트 속성 안에 컨텍스트 속성을 선언하는 것이다. 아래의 사진은 오즈리포트를 위한 톰캣 가상 호스트 컨텍스트가 설정된 화면이다. 2024. 10. 10.
톰캣과 OpenSSL 버전 호환 이슈 "org.apache.tomcat.jni.Error: 70023" 현상톰캣 9에서 HTTPS 프로토콜을 사용하도록 설정하기 위해 네이티브 라이브러리를 사용하려고 했는데 아래와 같이 오류 메시지가 나오면서 정상적으로 동작하지 않았다.SEVERE [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Failed to initialize the SSLEngine. org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform원인 및 해결 방법이는 톰캣과 OpenSSL 버전이 맞지 않아서 발생하는 문제였다. 기존 OpenSSL 버전이 'OpenSSL 3.0.2 15 Mar 2022 (Library.. 2024. 6. 10.
[톰캣 9] HTTPS 호스트 설정 톰캣 9에서는 HTTPS 호스트를 두 가지 방법으로 설정할 수 있다.SSLHostConfig 활용아래처럼 HTTPS 통신에 활용할 SSL 정보를 입력할 수 있다.  Connector 옵션 활용아래처럼 Connector 옵션에 SSL 정보를 입력할 수 있다. 2024. 6. 7.
[톰캣 9] HTTP/2 프로토콜을 사용하도록 설정 톰캣 9는 HTTP/2를 지원한다. 커넥터 설정 부분에서 아래의 내용을 아래의 사진처럼 추가하면 HTTP/2로 잘 동작한다. 2024. 5. 27.
[톰캣 9] "The APR based Apache Tomcat Native library was not found" 메시지 해결 아래와 같이  APR 기반 아파치 톰캣 네이티브 라이브러리를 못 찾았다고 메시지가 뜨는 경우가 있다. 일반적으로는 꼭 필요한 기능은 아닌데 HTTP2 등을 사용할거면 해당 라이브러리를 잘 찾도록 설정하는 것이 필요하다.org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-.. 2024. 5. 20.
[우분투] 톰캣 시간대 설정 톰캣(Tomcat)은 기본적으로 시스템 시간을 따라가지만 특정 시간대로 설정하는 기능을 지원한다. 톰캣의 시간대를 설정하는 방법은 아래와 같다. 톰캣 시간대 수정 아래의 명령어를 입력하여 톰캣 서비스 설정 파일을 연다. vi /etc/systemd/system/tomcat.service 톰캣 실행 옵션에 아래의 설정값을 입력하는 것인데 원하는 시간대에 맞춰서 GMT 값을 입력할 수 있다. -Duser.timezone=GMT+6 아래의 명령어를 입력하여 수정한 서비스 정보를 불러온다. systemctl daemon-reload 아래의 명령어를 입력하여 톰캣을 재기동한다. systemctl restart tomcat 2023. 7. 12.
톰캣 로그 디렉토리 경로와 자동 삭제 스크립트 작성 및 설정 톰캣이 사용하는 로그 디렉토리는 기본적으로는 톰캣 설치 경로에 위치한 'logs' 디렉토리이다. 하지만 설정에 따라 응용별로 로그 위치를 다르게 할 수 있기 때문에 설정을 잘 확인해야 한다. 로그 디렉토리 위치 나의 경우 두 곳에 로그가 기록되고 있었다. 로그 삭제 쉘 스크립트 작성 아래의 스크립트는 톰캣의 모든 로그가 기록되는 'catalina.out' 파일을 현재 일자를 파일명으로 백업하고 내용을 비운 후 로그 폴더 내에서 생성된지 60일이 초과한 파일을 삭제하는 스크립트이다. 아래의 스크립트를 참고하여 자신의 환경에 맞춰서 로그 삭제 쉘 스크립트를 작성한다. TOMCAT_LOG_DIR={톰캣경로}/logs today=`date "+%Y_%m_%d"` cp $TOMCAT_LOG_DIR/catalina.. 2023. 6. 28.
톰캣이 사용하는 임시 디렉토리 경로 톰캣이 사용하는 임시 디렉토리 경로는 실행할 때 별도로 지정해주지 않는 이상 톰캣 설치 경로의 'temp' 디렉토리이다. 아래의 사진처럼 확인할 수 있다. 윈도우 환경에서는 톰캣이 임시 디렉토리 경로로 환경변수 '%temp%'를 사용한다. 절대 경로는 'C:\Users\계정명\AppData\Local\Temp'이다. 참고문서 "톰캣 CATALINA_TMPDIR 경로 문의", 표준프레임워크 포털, 2020년 7월 9일. @원문보기 "Configure Tomcat to use a different temp directory for file uploads", serverfault, 2009년 5월 28일. @원문보기 2023. 6. 28.
아파치 톰캣 세션 만료 시간 설정 방법 아파치 톰캣(Apache Tomcat)의 세션만료 시간을 설정하는 방법은 총 3가지가 있다. 첫 번째는 자바 코드에 세션만료 시간을 설정하는 방법이고 두 번째는 프로젝트 설정 파일에 설정하는 방법이고 세 번째는 톰캣 설정 파일에 설정하는 방법이다. 우선순위는 첫 번째가 가장 높고 그 다음이 두번째이며 세 번째가 가장 낮은 우선순위이다. 설정 방법은 아래와 같다. 1. 자바 코드 아래와 같이 세션의 'MaxInactiveInterval' 값을 설정하면 세션 만료 시간이 설정된다. session.setMaxInactiveInterval(숫자); 2. 프로젝트 설정 웹앱 프로젝트별로 'web.xml'이라는 파일이 하나씩 있다. 이 파일을 열어서 아래와 같이 세션 만료 시간을 설정할 수 있다. 0 3. 톰캣 설.. 2023. 6. 23.
아파치 톰캣 버전별 스펙(Servlet, JSP, EL, WebSocket) 정보 스펙을 확인하는 이유 자바 기반 웹 응용을 개발할 때는 WAS(Web Application Server)가 지원하는 기능별 버전을 고려하여야 한다. 아파치 톰캣 버전별 스펙 Servlet, JSP, EL, WebSocket 등의 내용이 담긴 톰캣 버전별 스펙 정보는 아래의 표와 같다. 아파치 톰캣 버전 최신 출시 버전 서블릿 (Servlet) JSP EL 웹소켓 (WebSocket) 인증 (JASPIC) 자바(Java) 11.0.x 11.0.0-M1 (alpha) 6.1 4 6 TBD TBD 11 또는 최신 10.1.x 10.1.4 6 3.1 5 2.1 3 11 또는 최신 10.0.x (10.1로 대체) 10.0.27 (10.1로 대체) 5 3 4 2 2 8 또는 최신 9.0.x 9.0.70 4 2.3 .. 2023. 1. 12.
톰캣(Tomcat) HTTP/2 지원 정보 HTTP/1.1이 과거에는 주력이었지만 현재는 HTTP/2가 주력이며 현재 네트워크 환경에서 성능 개선 효과를 볼 수 있기 때문에 톰캣(Tomcat)이 HTTP(HyperText Transfer Protocol) 버전을 어디까지 지원하는지를 조사하였다. 톰캣 HTTP 지원 정보 톰캣은 HTTP/1.1를 모든 버전에서 지원하고 있으며 HTTP/2는 톰캣 8.5 버전 이후부터 지원한다. 톰캣은 HTTP/3는 아직 지원하지 않는다. 참고문서 "Which version?", Apache Tomcat. @원문보기 2022. 12. 29.
[CentOS] 톰캣(Tomcat)이 IPv4를 우선 사용하도록 설정 구동할 프로그램이 IPv4 주소만 지원하도록 구현했다면 톰캣(Tomcat) WAS가 IPv4 주소를 우선적으로 사용하도록 설정하는 것이 필요하다. 이클립스에서 개발할 때 설정하는 방법은 아래의 링크에서 설명하였고 본 글에서는 CentOS에서 설정하는 방법을 소개한다. 2022.08.12 - [소프트웨어 개발(Software Development)/톰캣(Tomcat)] - 이클립스에서 톰캣(Tomcat)이 IPv4 주소만 사용하도록 설정 이클립스에서 톰캣(Tomcat)이 IPv4 주소만 사용하도록 설정 톰캣이 IPv4 주소만 사용하도록 설정하는 이유 가장 많이 사용되는 네트워크 주소체계로 IP(Internet Protocol)을 흔히 말한다. IP 주소에는 IPv4와 IPv6라는 두 가지 버전의 주소체계가.. 2022. 10. 5.
[CentOS] 톰캣 메모리 조정하는 방법 톰캣 메모리 설정 톰캣을 실행하는 프로그램에서 메모리 설정을 바꾸면 톰캣 메모리를 조정할 수 있다. 보통은 아래 경로에 톰캣을 실행하는 프로그램이 있다. vi /etc/systemd/system/tomcat.service 아래의 사진과 같은 화면이 나타나면 'CATALINA_OPS'의 메모리 설정을 적절하게 수정한다. 'Xms'는 최소값이며 'Xmx'는 최대값이다. 이외에도 세부적으로 여러 설정이 있지만 본 글에서는 다루지 않는다. 설정 반영 아래의 명령어를 입력하여 변경된 설정을 서비스에 반영한다. sudo systemctl daemon-reload 톰캣 재기동 아래의 명령어를 입력하여 변경된 메모리 설정으로 톰캣이 실행되도록 한다. systemctl restart tomcat 메모리 설정이 반영되어 .. 2022. 9. 23.