• DDoS 방어 스니핏 PHP 소스코드 1분 10회공격 IP차단

    DDoS 방어 스니핏 PHP 소스코드 1분 10회공격 IP차단

    이 글은 이 문장을 제외한 모든 문장은 챗GPT로 DDoS 방어 글을 작성되었습니다.

    이러한 기능을 WordPress에 구현하려면 WordPress 플러그인을 만들거나 WordPress 테마 기능.php 파일에 코드를 추가할 수 있습니다.

    아래는 WordPress의 functions.php 파일에 추가할 수 있는 간단한 코드의 예입니다. 이 코드는 사용자의 IP 주소와 액세스 시간을 세션에 저장하고, 동일한 페이지나 파일에 1분에 10번 이상 액세스하는 사용자의 IP 주소를 차단합니다.

    DDoS 방어

    function check_and_block_repeated_requests() {
        session_start();
        
        $user_ip = $_SERVER['REMOTE_ADDR'];
        $current_page = $_SERVER['REQUEST_URI'];
    
        $key = $user_ip . '_' . $current_page;
    
        if (!isset($_SESSION[$key])) {
            $_SESSION[$key] = array('timestamp' => time(), 'count' => 0);
        }
    
        // Check if user has accessed the page within the last 60 seconds
        if (time() - $_SESSION[$key]['timestamp'] < 60) {
            $_SESSION[$key]['count'] += 1;
        } else {
            $_SESSION[$key] = array('timestamp' => time(), 'count' => 0);
        }
    
        // If user accessed the page more than 10 times in the last 60 seconds, block them
        if ($_SESSION[$key]['count'] > 10) {
            die('You have been temporarily blocked due to excessive requests.');
        }
    }
    
    add_action('init', 'check_and_block_repeated_requests');
    
    
    

    현재 WordPress에서 활성화된 function.php 파일에 이 코드를 추가할 수 있습니다.

    참고:

    이 코드는 세션을 사용하여 사용자 액세스 수를 추적합니다. 일부 WordPress 환경에서는 세션 설정이 필요할 수 있습니다.
    위 코드는 예제일 뿐이며 프로덕션 배포를 위해 테스트 및 검증이 필요합니다.
    이러한 기능은 웹 서버, CDN 또는 WAF 수준에서도 구현할 수 있으며 보다 효과적입니다.

  • 카페24 웹호스팅 이전 워드프레스 도메인 옮기기

    카페24 웹호스팅 이전 워드프레스 도메인 옮기기

    카페24 웹호스팅 이전 방법에 대한 구체적 포스팅입니다

    카페24에서 워드프레스 웹호스팅을 이용하고 있으며 월 5.5천원으로 비즈니스 (2020년도) 상품을 이용하고 있습니다.

    웹하드 용량은 2GB 이며 현재 모든 용량이 가득 찬 상태라서 워드프레스가 가끔 멈추거나 에러 현상이 발생하고 있습니다.

    서버 사양은 자세한 스팩이 없어 정확히 알수 없지만 다수의 기업들이 하나의 서버에서 vHost를 나눠서 사용하는 듯 합니다.

    카페24 웹호스팅 이전

    메인 페이지는 동영상으로 이루어져 있어 광고 등 많은 트래픽이 몰릴 경우 카페24의 비즈니스 상품으로는 트래픽이 금방 소진됩니다. 이를 보강하기 위해서 그 다음단계 상품을 구입하셔야 하는데 아래처럼 역시 제한적입니다.

    월 1.1만원, 월 2.2만원, 월 3.3만원 상품이 존재하지만 모두 웹용량은 14GB 아래이며 실제로 월 5.5천원 상품에서 4GB 웹용량을 제공한다고 하였으나 2GB로 3년째 사용하고 계시더군요.
    그리고 한가지 더 데이터베이스 무제한이라고 하여 저는 DB를 맘대로 늘리면 되겠네~ 라고 생각했었습니다.

    카페24 호스팅 가격

    하지만 방금 카페24에서 꽉찬 용량 1.99GB 파일을 FTP로 다운받은 후 DB를 백업 받으려하니 용량이 있어야지만 백업을 할 수 있도록 최근에 변경되어져 있더군요. 결국 용량 부족으로 DB는 백업을 받을 수 없는 상태가 되버렸습니다.

    초보자 입장에서 데이터베이스를 백업받기 어렵도록 변경되었더군요.

    카페24 에러

    암튼! 카페 24에서 리눅스맨 서버로 이전하기 위해 복잡한 부분들까지 모두 제가 직접 하기로 했습니다.

    도메인은 AWS로 1년 기간 연장하면서 13달러의 비용이 청구되므로 그 비용은 대표님께서 지불하셔야 합니다.

    카페 24 호스팅 월 3.3만원 상품으로 제공되는 스팩보다 보다 더 좋은 하드웨어 구성을 해드렸습니다.

    금액은 리눅스맨 호스팅 비용 월 2.2만원과 HTTPs 보안서버 설치 및 자동화 그리고 웹SEO, 워드프레스 DB 백업 및 이전

    도메인 AWS 이전, 워드프레스 테마 및 모듈 업데이트까지 하여 1년에 30만원으로 관리를 해드리기로 했습니다.

    서버 웹 하드 용량은 넉넉하게 20GB로 세팅해드렸으며 CPU는 2개와 메모리 4GB로 증설해드렸습니다.

    이 부분은 초기 리눅스맨 호스팅을 이용해주셔서 보다 더 많은 혜택을 드린 부분입니다.

    리눅스맨에서 제공해드릴 수 있는 호스팅 월 2.2만원 상품은 1 CPU, 1RAM, 10GB SSD, 트래픽 1TB/월 입니다.

    금액이 높을수록 조금 더 좋은 성능과 더 여유있는 시스템을 이용할 수 있으니 규모가 있으신 업체에서는 이부분도 참고해주시기 바랍니다.

    카페24 웹호스팅 이전 방법

    1. 카페 24 FTP 접속하여 파일을 백업받기

    파일질라 FTP 툴을 이용하여 카페24에 접속하여 모두 파일 데이터를 백업 받았습니다.

    카페24 웹호스팅 이전 백업하기

    2. 카페 24 용량 확보를 위하여 불필요한 파일 정리

    3. 데이터베이스 다운로드를 위한 phpMyAdmin 설치

    4. 데이터베이스 백업하기

    5. AWS 도메인 이전신청

    6. 리눅스맨 서버 설치

    7. 리눅스맨 서버에 DB 설치 및 복원

    8. 리눅스맨 서버에 파일 복원

    9. 보안서버 SSL 신청 및 자동화

    10. 도메인 DNS 변경 및 워드프레스 정상 동작 확인

    11. 워드프레스 업데이트 진행

    12. 워드프레스 웹SEO 진행

    13. 최종 보고서 작성 및 완료

    이러한 순대로 카페 24에서 리눅스맨 서버로 호스팅 이전을 진행합니다.

    워드프레스 호스팅 이전 및 에러로 인해서 서버를 교체 하셔야 하는 분들께서는 언제든지 신청하셔서 진행해주시기 바랍니다.

    감사합니다.

  • 워드프레스 사이트 수동 이전 방법 – 글 파일 옮기기

    워드프레스 사이트 수동 이전 방법 – 글 파일 옮기기

    워드프레스 사이트 수동 이전 방법에 대한 경험 문서입니다

    워드프레스 사이트 전체를 옮기는 방법은 그냥 DB전체 백업과 폴더 전체를 복사(압축)하여 이전하면됩니다.

    이부분에 대해서는 크게 어려움이 없지만 오늘 제가 하려는 작업은 이미 워드프레스 2개가 운영 중입니다.

    A 워드프레스에서는 애드센스 승인이 되지 않아 B 워드프레스로 모든 글을 옮기기 위해 글 옮기는 과정을 포스팅합니다.

    애드센스 수익을 내기 위해서는 구글 애드센스 계정내에 도메인 승인이 이루어져야합니다.

    A라는 워드프레스는 발행한 글만 36개 입니다.

    워드프레스 사이트 수동 이전 방법

    이 글들을 하나하나 정성드려 작성한 글이기에 그냥 버리기에는 너무 아깝고 애드센스 수익 승인받은 도메인으로 옮기는것입니다.

    A라는 워드프레스는 사실 문제가 전혀없습니다. 하지만 정책상 어떠한 이유인지는 몰라도 자꾸 다른곳에 글을 복사해서 작성된 자동화된 사이트라고만 제시하더군요.

    이러한 경우를 많이 당해보았고 또 왠만해서는 승인받을수 있지만…

    이 A 워드프레스는 제가 운영하는것이 아니라 아내가 운영하는곳이고해서 그냥 아내 워드프레스 B 블로그로 옮기는것입니다.

    B워드프레스도 처음에 이러한 과정을 거쳤지만 현재는 애드센스 수익이 나오고 있는 워드프레스입니다.

    워드프레스 사이트 수동 이전 방법 – 글 파일 옮기기

    1. 워드프레스 관리자 화면에서 도구 항목의 내보내기 기능을 이용합니다.

    워드프레스 사이트 수동 이전

    내보내기 할때에는 여러가지 조건들이 존재하지만 따로 설치를 해야하는 플로그인은 없습니다.

    원하는 조건 항목을 클릭하여 글을 선택합니다.

    저는 전체를 다 옮겨야 하므로 그냥 위의 상태로 [ 내보내기 파일 다운로드 ] 버튼을 눌렀습니다.

    파일다운로드 받으면 xml 파일을 하나 받습니다.

    xml 파일을 열어보면 제목, 이미지주소, 글 주소 등등 내용들로 이루어져있습니다.

    따로 수정할 필요는 없고 옮기려는 워드프레스에서 가져오기 버튼을 이용해야합니다.

    2. 옮길 글을 새로운 워드프레스 관리자의 도구 -> 가져오기 기능을 이용합니다.

    이때에는 워드프레스 플러그인을 하나 설치해야합니다.

    각 항목에 따라 다른데 오늘 제가 옮기는 것은 글을 수동으로 옮기는것이기에 WordPress 플러그인을 [ 지금설치 ] 버튼을 눌러 설치해줍니다.

    파일선택 버튼을 클릭하여 A 워드프레스에서 받은 xml을 선택합니다.

    파일 업로드하고 가져오기 버튼을 클릭하면 아래처럼 글쓴이변경과 첨부파일 내려받기와 가져오기에 대한 체크항목을 확인 할 수 있습니다.

    이렇게 진행을 하면 성공한것입니다.

    하지만 이렇게 옮기게되면 파일이 옮겨지지 않습니다.

    워드프레스의 파일 엑박이 나오죠.

    이전 A 워드프레스의 도메인이 그대로 살아 있다면 엑박이 나오지는 않고 그 도메인의 주소로 이미지를 볼 수 있습니다.

    하지만 도메인을 버리거나 변경하는 경우라면 또 지금처럼 엑박이 나오게됩니다.

    이때에는 DB 하나하나를 수정해주거나 (일괄 도메인을 특정 도메인으로 바꿀 수 있습니다) 가져오기 할때 xml 파일을 미리 변경하는것입니다.

    이 주소를 미리 바꾸고 첨부파일을 이전 서버에서 압축해서 그대로 옮기면됩니다.

    이렇게 할 경우 또 문제가 하나 더 발생합니다.

    uploads/폴더에 그런경우는 잘 없지만.. 파일명이 겹치는것입니다.

    파일명이 겹치는것으로 방지 하는 방법을 알려드릴게요.

    현재 제가 사용하는 방법이기도 합니다.

    기존 A 워드프레스의 upload 폴더 전체를 _Awordpress 이렇게 접미사를 붙여 폴더명을 새롭게 만들어줍니다.

    그리고 압축하여 B 워드프레스 업로드 폴더와 나란히 옆에 둡니다.

    이렇게 업로드 폴더가 2개가 되죠.

    기존 A워드프레스의 모든 파일은 접미사가 붙어 이는 이 폴더에 존재합니다.

    그러면 우리는 A워드프레스의 xml 파일 내용중 upload 폴더까지 수정해주어야겠죠?

    우선 기존 A워드프레스 도메인명으로 xml 파일을 검색합니다.

    그러면 생각보다 엄청 많이 검색됩니다.

    이렇게 Ctrl + H 누를경우 (노트패드에서 단축키) 찾을글자와 바꿀 글자를 일괄 변경할 수 있습니다.

    그리고 upload폴더명도 같이 바꿔주셔야합니다.

    확인해보니 url 주소도 잘 변경되었고 파일 위치도 제가 접미사로 등록한 upload폴더에 잘 연결되어져있습니다.

    물론 사진도 잘 나오고 있네요.

    만약 C라는 새로운 워드프레스를 또 B 워드프레스에 통합하고 싶다면..

    저는 또 이렇게 반복할겁니다.

    정리해볼까요?

    제일먼저. upload 폴더를 접미사(기존도메인을 기억할수 있도록 가급적이면 _도메인명 으로 접미사로 제목을 만드세요)를 붙여 압축하여 파일을 옮길 워드프레스의 upload 폴더와 같은 위치에 나란히 복사합니다.

    두번째. 가져오기 xml 파일속에 도메인을 모두 일괄 바꾸시고 upload폴더를 접미사 붙인 폴더명으로 변경해줍니다.

    간단하죠?