분류 전체보기 126

[Apache][Httpd][웹서버] Apache HTTP Server Systemd Unit File 작성 및 적용하기

개요Apache HTTP Server를 systemd로 관리하려면 적절한 유닛 파일을 작성해야 합니다. 유닛 파일을 통해 Apache 서버를 시작, 재시작, 정지 등의 작업을 보다 효율적으로 관리할 수 있습니다. 이번 글에서는 아래와 같은 유닛 파일의 작성 예제를 설명하고 적용 방법을 안내합니다.유닛 파일 예제아래는 Apache HTTP Server를 위한 systemd 유닛 파일의 예제입니다. [Unit]Description=The Apache HTTP ServerAfter=network.target remote-fs.target nss-lookup.target[Service]Type=forkingExecStart=/app/applications/apache/bin/apachectl -k startEx..

[LINUX/리눅스] CensysInspect 보안업체 UA 대상 IP 차단

무분별한 보안 탐지 트래픽 차단 방법1. 개요최근 웹사이트를 운영하면서 특정 UserAgent를 기반으로 한 무분별한 보안 탐지 요청이 급증하고 있습니다. 이러한 요청은 과도한 트래픽을 발생시키며, 정상적인 서비스 운영에 방해가 됩니다. 이를 해결하기 위해 트래픽을 탐지하는 IP 대역을 방화벽을 통해 차단하는 방법을 공유합니다.2. 이슈 내용문제점UserAgent: "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"과도한 보안 탐지로 인해 서버 트래픽 과점 발생.비인가된 스캔으로 인한 서비스 안정성 저하.추적된 IP 대역다음과 같은 IP 대역에서 의심스러운 요청이 발생:162.142.125.0/24167.94.138.0/241..

AWS AMI 환경에서 Selenium 크롬 드라이버 이슈 해결 방법

String chromeDriver = System.getProperty("chrome.driver");String chromeSetup = System.getProperty("chrome.setup");log.info("chromeSetup ===> " + chromeSetup);log.info("chromeDriver ===> " + chromeDriver);System.setProperty("webdriver.chrome.driver", chromeDriver);ChromeOptions options = new ChromeOptions();options.addArguments("--disable-extensions");options.addArguments("--headless"); // GUI 환..

[IPTIME] 대량 NAT-DMZ IP 및 포트 포워딩 자동화

1. 개요네트워크 관리를 할 때, 여러 IP 주소에 대해 포트 포워딩 설정을 수동으로 추가하는 것은 시간이 많이 소요되는 작업일 수 있습니다. 특히 대규모 네트워크 환경에서는 이런 작업이 더욱 번거롭습니다. 이러한 문제를 해결하기 위해 JavaScript의 비동기 함수인 async/await를 활용하여 네트워크 포트 포워딩을 자동화하는 방법을 소개하고자 합니다. 이 글에서는 비동기적으로 네트워크 요청을 처리하는 방법과 이를 사용해 여러 IP에 대한 포트 포워딩을 간편하게 설정하는 방법에 대해 설명합니다.2. 내용비동기 함수는 네트워크 요청과 같이 시간이 오래 걸리는 작업을 수행할 때 유용하게 사용됩니다. async/await는 비동기 작업을 마치 동기 작업처럼 쉽게 작성할 수 있도록 도와줍니다.JavaS..

[부동산] 임대차 월세 묵시적 갱신과 연장 계약 관련

1. 개요안녕하세요, 건물주님. 저는 OOO호에 거주 중인 OOO입니다. 2024년 8월 24일에 연락 주셨던 "계약 갱신" 관련하여 답변 드립니다.현재 저는 2020년 9월에 전 임대인과 최초 계약을 체결하였고, 이후 묵시적 갱신을 통해 4년 동안 거주 중입니다.갱신 계약 시, 이전 임대인과의 계약에서 "계약갱신청구권"을 사용하지 않았으므로 이번 갱신 계약에서 이를 사용하고자 합니다.2. 내용계약 연장 및 해지 통보 관련2020년 9월부터 2025년 9월까지의 거주 기간 동안 "별도의 계약 연장 또는 해지"에 대한 통보 및 협의(6개월 전부터 2개월 전까지의 기간)가 없었기 때문에, 현재는 "계약 연장 및 해지"의 기간이 아닌 것으로 판단됩니다.계약 종료 및 협의 필요성계약 종료 예정일인 2025년 9..

깨알상식 2024.09.02

[JAVA] TempFileCleanJob - 임시 파일 정리 작업 구현

1. 개요TempFileCleanJob 클래스는 시스템에서 주기적으로 임시 파일을 삭제하는 스케줄 작업을 수행하는 Java 클래스입니다. 이 작업을 통해 불필요한 임시 파일을 삭제함으로써 디스크 공간을 확보하고 시스템 성능을 유지할 수 있습니다. Spring Framework와 Quartz Scheduler를 사용하여 주기적인 파일 정리 작업을 자동화합니다.2. 내용TempFileCleanJob 클래스는 다음과 같은 주요 구성 요소로 이루어져 있습니다:Quartz Scheduler와의 통합: @DisallowConcurrentExecution 어노테이션을 사용하여 동시에 여러 작업이 실행되지 않도록 보장합니다.Spring Framework 의존성 주입: @Autowired 어노테이션을 사용하여 필요한 서..

[NCAT][VPC][AWS] AWS RDS VPC Private IP 원격 접속 방법

1. 개요AWS VPC 네트워크(프라이빗 네트워크) 보안 접근을 위해 원격 서버를 이용한 포트 포워딩과 SSH 터널링으로 데이터베이스(DB)에 접근하는 방법을 기술합니다.2. 방법1) 원격 서버에서의 설정원격 서버에서 ncat 명령어를 사용하여 포트 포워딩을 설정합니다. 아래 명령어를 실행하세요:ncat --sh-exec "ncat 10.0.3.123 5432" -l 5432 --keep-open이 명령어는 원격 서버의 5432 포트를 통해 AWS RDS 인스턴스(10.0.3.123:5432)에 연결합니다.2) 로컬 PC에서의 SSH 터널링 설정SSH 터널링을 통해 로컬 PC에서 원격 서버를 통해 RDS 인스턴스에 접근합니다. 아래 설정을 SSH 클라이언트에 적용하세요:호스트: 원격 서버의 IP 주소 또..

[APM/제니퍼,스카우터 등] Class Redefine 으로 인한 장애현상

1. 개요JAVA 기반 JVM 환경을 모니터링하기 위해 APM (Scouter, Whatab, Jennifer, Openmaru) 등을 고객사에서 운영하고 있었습니다.그러나 서비스 중 HotDeploy, HotSwap을 주력으로 사용하는 상용 솔루션(티xx) 플랫폼에서 다음과 같은 이슈가 발생했습니다:상용 솔루션 프레임워크: Classes 및 하위 Library Jar 전체 포함고객사 개발자들이 생산한 Business BackEnd Source그 외 솔루션 연계 라이브러리이로 인해 Class의 수가 10만 개 이상으로 추정됩니다.2. 원인APM은 Java 소스를 분석하기 위해 로드와 동시에 전체 Class를 스캔합니다. 하지만 운영 중 HotSwap, HotDeploy를 수행할 경우 Java Agent는..

[톰캣/AJP] X-Requested-With 헤더 상이한 현상

1. 개요X-Requested-With 값과 Ajax 호출 여부 판단"X-Requested-With" 헤더는 보편적으로 Ajax 요청인지 여부를 판단하기 위해 사용됩니다. 이 헤더의 값이 "XMLHttpRequest"인 경우, 서버는 해당 요청이 Ajax를 통해 전송되었음을 알 수 있습니다.그러나 Native Tomcat HTTP 환경과 AJP 프로토콜을 사용하는 Apache Web Server와 Apache Tomcat의 연동을 통해 동적 및 정적 리소스를 분리하는 환경에서는 이 헤더의 처리 방식에서 이상 현상이 발생할 수 있습니다. 예를 들어, AJP 프로토콜을 사용하는 환경에서는 "X-Requested-With" 헤더 값이 예상과 다르게 처리될 수 있습니다.헤더 값 비교의 일관성"X-Requeste..

[오라클/Oracle] RecoverableException 리눅스 Random vs URandom 차이

1. 개요Oracle DB에서 SQL 실행 중 "Recoverable Exception"이 발생하는 경우가 있습니다. 이 오류는 주로 "시스템 Noise" 문제로 발생하며, 이는 운영 체제(OS)가 바쁜 상태에서 필요한 난수를 충분히 빠르게 생성하지 못할 때 발생할 수 있습니다. 특히, /dev/random 디바이스는 높은 품질의 엔트로피(entropy) 생성이 요구되는 경우 사용되는데, 이때 OS의 바쁜 상태로 인해 난수 생성이 지연되면 Oracle SQL이 데이터를 암호화하지 못하고 실패하는 현상이 발생합니다.이 문제를 해결하기 위해 일반적으로 다음과 같은 방법을 사용합니다:2. 내용Recoverable Exception 문제의 원인Oracle DB에서 SQL 실행 시, 난수 생성이 필요한 암호화 작..