[워드프레스 멀티사이트 오류 해결] 브라우저가 지원하지 않아 쿠키를 차단합니다. 워드프레스를 사용하려면 쿠키를 활성화하세요.

워드프레스 멀티사이트 오류

워드프레스 멀티사이트를 새로 만들고 다른 도메인으로 수정하면 오류: 브라우저가 지원하지 않아 쿠키를 차단합니다. 워드프레스를 사용하려면 쿠키를 활성화하세요. 와 같은 에러가 노출됩니다.

해당 에러는 워드프레스 루트 폴더의 wp-config.php 파일 수정을 통해 해결할 수 있습니다.

루트 폴더의 경로를 아는 경우

루트 폴더의 경로를 아는 경우 filezilla와 같은 FTP 접속기 없이도 ssh를 사용하여 쉽게 워드프레스 멀티사이트를 새로 만들고 다른 도메인으로 수정하면 오류: 브라우저가 지원하지 않아 쿠키를 차단합니다. 워드프레스를 사용하려면 쿠키를 활성화하세요. 와 같은 오류를 해결할 수 있습니다.

wp-config.php 파일에 접근

sudo nano wp-config.php
Code language: CSS (css)

워드프레스 루트 폴더로 진입한 뒤 위 코드를 입력합니다.

wp-config.php 파일 수정

파일을 열고 아래 코드를 찾습니다. 파일의 끝 쪽에 위치합니다.

/* That's all, stop editing! Happy publishing. */
Code language: JSON / JSON with Comments (json)

해당 코드 위에 아래 코드를 붙여넣습니다.

/** Custom Setting */ define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', '');
Code language: PHP (php)

/** Custom Setting */ 은 주석부분으로 알아보기 쉽도록 변경하여 표시할 수 있습니다.

wp-config.php 파일 수정 완료

ctrl+x, y를 순서대로 눌러 저장 후 워드프레스 홈페이지를 새로고침합니다.

루트 폴더 경로를 모르는 경우

FTP 검색

Filezilla 프로그램으로 FTP에 접속한 뒤 F3키를 눌러 파일 검색에 들어갑니다.

리모트 검색, 검색 디렉터리 /var, 파일명에 wp-config.php을 위 사진처럼 동일하게 입력한 뒤 검색합니다.

만약, /var 로 검색이 되지 않을 경우 검색 디렉터리를 /로만 변경합니다.

시간이 다소 소요될 수 있습니다.

ssh 연결 후 코드로 검색

cd / 를 입력하여 제일 상위 디렉토리로 이동한 뒤

sudo find . -name "wp-config.php"
Code language: JavaScript (javascript)

으로 경로를 검색합니다. 파일이 1개 이상 나올 경우, (ex ./tmp/…) www 또는 html 폴더의 아래에 해당 파일이 있는 경로가 옳은 경로입니다.

./부터 경로 전체를 복사한 뒤, sudo nano 뒤에 입력하면 wp-config.php 파일을 바로 편집할 수 있습니다.

파일을 열어 동일하게 수정하면 워드프레스 멀티사이트 오류 : 쿠키가 차단됐거나 사용 중인 브라우저가 지원하지 않습니다, 브라우저가 지원하지 않아 쿠키를 차단합니다. 워드프레스를 사용하려면 쿠키를 활성화하세요. 등의 오류 해결이 가능합니다.

지원하지 않습니다 워드프레스를 사용하려면 쿠키를 브라우저가 지원하지 않습니다 워드프레스를 사용하려면 과 같은 오류가 계속된다면 다른 브라우저를 통하여 접속해보거나 브라우저 쿠키를 삭제 후 사이트를 재실행합니다.

mac zsh셸에서 java 환경 변수 설정하기 (맥 zsh 자바)

mac zsh java 환경 변수 설정을 위해 설치된 java의 버전을 확인해야 한다.

터미널을 열고 cd /Library/Java/JavaVirtualMachines 을 입력한다.

필자의 컴퓨터에는 jdk-11.0.13.jdk, jdk-16.0.1.jdk 두 버전이 설치되어 있다.

zsh셸에서 java 환경 변수 설정을 원하는 버전을 선택한 뒤 폴더명을 메모한다.

다음은 zsh셸의 bash_profile 역할을 하는 .zshrc를 편집한다. 아래 커맨드로 zshrc 파일에 접근한다.

sudo nano ~/.zshrc

아래 파일을 복사하여 zshrc 파일의 맨 아래 붙여넣는다.

###here###를 모두 지운 후 위에서 복사해 둔 자바 버전을 붙여넣는다.

#JDK version PATH export JAVA_HOME=/Library/Java/JavaVirtualMachines/###here###/Contents/Home #Add Environment Variable export PATH=$JAVA_HOME/bin:$PATH
Code language: PHP (php)

코드를 붙여넣고 수정이 모두 끝났다면 ctrl + x, y를 입력 후 엔터를 눌러 그대로 저장한다.

zsh셸에서 java 환경 변수 설정이 제대로 되었는지 확인하려면 아래 커맨드를 실행한다.

echo $JAVA_HOME
Code language: PHP (php)

빠르게 mac zsh셸에서 java 환경 변수 설정을 마무리할 수 있다.

SSH Key 지정 로그인 방법 (키 선택 로그인, ssh 옵션)

SSH Key의 저장 경로나 이름을 특정하여 SSH Key 지정 로그인을 할 수도 있다.

아래 커맨드로 SSH Key 지정 로그인이 가능하다.

SSH Key 지정 로그인 방법

ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP
Code language: CSS (css)

SSH Key 지정 로그인 응용

예를 들어, 나의 환경이 아래와 같을 경우 맨 밑의 커맨드를 사용해서 로그인할 수 있다.

server ip: 1.12.123.123 user: ubuntu private key file: ~/.ssh/mykey
Code language: JavaScript (javascript)

ssh -i ~/.ssh/mykey ubuntu@1.12.123.123

만약 key가 들어있는 경로가 기본 ssh 폴더라면 key 파일명으로 로그인이 가능하다.

ssh -i mykey ubuntu@1.12.123.123

이래도 로그인이 안 될 때에는 private key의 권한을 600으로 설정하여야 한다.

sudo chmod 600 ~/.ssh/mykey

[Mac] 맥 Big Sur VirtualBox 설치 오류

https://www.virtualbox.org/wiki/Downloads 를 통해 VirtualBox를 설치하고, 새로 만들기를 통해 가상머신을 만든 후 시작을 눌렀더니 아래와 같은 오류가 반환되었습니다.

첫번째 오류

Kernel driver not installed (rc=-1908)

Make sure the kernel module has been loaded successfully.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) – The support driver is not installed. On linux, open returned ENOENT.

두번째 오류

가상 머신 Ubuntu_20.04의 세션을 열 수 없습니다.

The virtual machine ‘Ubuntu_20.04’ has terminated unexpectedly during startup with exit code 1 (0x1).

결과 코드:NS_ERROR_FAILURE (0x80004005)
구성 요소:MachineWrap
인터페이스:IMachine {85632c68-b5bb-4316-a900-5eb28d3413df}

맥을 재시동하고, 부팅음이 울리면 cmd + r 키를 길게 눌러 복구 모드(Recovery Mode)로 진입합니다.

진입한 뒤 유틸리티 > 터미널 을 클릭하여 다음과 같이 순서대로 입력합니다.

sudo su
csrutil disable
reboot

VirtualBox를 설치했던 dmg파일이 휴지통으로 이동해 있을 것입니다. 꺼내준 뒤 실행합니다.

반드시 VirtualBox_Uninstall.tool 을 클릭하여 삭제를 진행하여야 합니다. 삭제해준 뒤 다시 VirtualBox.pkg로 재설치합니다. 그리고 다시 설치 페이지로 들어갑니다.

해당 파일을 다운받아 설치해준 뒤 [보안 및 개인정보 보호] 창을 엽니다.

정상적이라면 아래 빨간색 테두리 안에 허용 or 세부 설정 버튼이 보입니다. 자물쇠를 클릭한 뒤 열어줍니다.

업데이트 할 항목이 1개 이상이라 세부 설정 창이 떴고, 체크되어있는 항목들을 확인해주면 재시동을 해야 적용할 수 있다는 문구가 뜹니다. 재시동합니다.

자동 실행되는 MaBrokerEPS / MaSafeViewer 삭제

mac을 재부팅했더니 모르는 프로그램이 실행되고 있었습니다.

확인해본 결과 이 프로그램은 시대를 역행한 것 같은 국세청 관련 사이트인 ICL 인증서 로그인을 위해 반드시 설치해야 하는 프로그램이였습니다.

해당 사이트에서는 맥에서 id/비밀번호 로그인이 알 수 없는 이유로 완료되지 않고, 담당자에게 문의하라는 안내창만 주구장창 나옵니다. 그렇기 때문에 반강제로 아래 네 가지 프로그램을 설치할 수 밖에 없습니다.

3번째 프로그램인 Markany MDM Viewer을 설치하면 MarkAnyEPS폴더 내에 MaBrokerEPS, MaSafeViewer 가 모두 동시에 설치됩니다. 이를 확인하기 위해 삭제후 재설치를 진행해본 결과입니다.

하지만, 두번째 프로그램인 공동인증서보안 MagicLine4NP 설치를 하게되면..

macOS 버전 문제로 호환되지 않아 설치할 수 없다는 안내가 뜹니다. 고로 BigSur 환경에서는 ICL사이트를 이용할 수 없습니다.

사이트 사용을 포기한 후, 다음날 Mac을 재부팅했더니 MaBrokerEPS 프로그램이 자동 실행되는 현상을 발견했습니다. 관련 사이트에 접속하지도 않았는데 왜 실행되는지 당황스럽습니다. 다른 보안 관련 프로그램보다 상당히 불쾌한 관계로 어떻게든 삭제해보도록 하겠습니다.

MaBrokerEPS / MaSafeViewer 삭제

맥에서 cmd + space를 누른 뒤 검색창에 markanyeps를 검색합니다.

MaBrokerEPS 폴더 내에 있는 MarkAnyEPS를 지우고, MaSafeViewer는 따로 지워주어야 할 것 같습니다.

cmd + space를 눌러 Spotlight 검색창을 띄우고 MarkAnyEPS 를 검색하여 해당 폴더에 접근합니다.

MaUnInstaller 파일을 실행하면 터미널 창이 뜨며 자동으로 삭제됩니다.

나머지 프로그램인 MaSafeViewer 도 삭제하면 되는데, 해당 파일은 드래그하여 삭제가 불가능하다는 타 블로거의 글을 발견했습니다.

출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wave_me&logNo=221450148866

해당 블로거는 app cleaner를 사용하였다고 합니다.

클리너 사용 또한 간단한 제거 방법이지만 설치되어있지 않은 경우 자체 Mac 터미널을 이용하여 MaSafeViewer를 삭제할 수 있습니다. 터미널을 열고 아래 코드를 입력합니다.

#MaSafeViewer 삭제

sudo rm -r /Applications/MaSafeViewer.app

Password를 요구할 경우 Mac 부팅 시 로그인 비밀번호를 입력 후 enter를 눌러줍니다.

간단히 Applications(응용 프로그램) 목록에서 지워집니다.

MaBrokerEPS / MaSafeViewer 모두 제거되었습니다.

[워드프레스] 멀티사이트 차일드 테마 functions.php 수정 오류 : 자식테마 초기화 오류 해결방법

차일드 테마 functions.php 수정 오류의 원인을 파악하여 해결하는 포스팅입니다.

  • 멀티사이트 운영여부
  • 워드프레스 주소/wp-admin/customize.php 접속 가능여부

테마 편집기 이용 시 functions.php 오류

반환되는 오류 메시지

  • 치명적인 오류를 확인할 사이트와 다시 통신할 수 없기에, PHP 변경사항을 되돌렸습니다. PHP 파일 변경사항을 SFTP을 사용하는 것과 같은 다른 방식으로 업로드할 필요가 있습니다.
  • PHP 파일 변경사항을 SFTP을 사용하는 것과 같은 다른 방식으로 업로드할 필요가 있습니다.
  • 치명적인 에러를 점검하기 위해 사이트와 통신할 수 업습니다. 따라서 PHP 변경사항이 원래의 것으로 복구됐습니다. PHP 파일 변경사항을 SFTP와 같은 다른 수단을 통해 업로드해야 합니다.
  • Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP

주로 비슷한 말을 하고 있습니다.

차일드 테마(자식 테마)를 수정하려는데 치명적인 오류를 확인할 사이트와 다시 통신할 수 없다고 합니다. 워드프레스 이용자들이 차일드 테마를 이용하는 이유는 바로 수정한 코드나 추가한 코드가 업데이트 등으로 리셋되지 않도록 하기 위해서인데, 해당 오류메시지가 나오면 일단 차일드 테마의 functions.php는 초기화되었을 것입니다.

지금 보이는 화면에 뭔가 남아있다고 해도, 워드프레스에서 활성화하고 있는 차일드테마 폴더 내 function.php을 확인하면 아무것도 보이지 않는 것을 알 수 있습니다.

백업이 되고 있다면 다행이지만, 백업을 진행하지 않았을 경우 위의 이미지를 보고 바로 복구시키거나 이미 창을 이탈하여 복구가 어렵다면 아래 차일드테마 기본 설정을 functions.php 에 입력합니다.

<?php function wptalk_enqueue_styles() { $parent_style = 'parent-style'; wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version') ); } add_action( 'wp_enqueue_scripts', 'wptalk_enqueue_styles' );
Code language: HTML, XML (xml)

/wp-admin/customize.php(사용자 정의하기) 접속 오류

wp-config.php 파일에서 아래 코드를 찾습니다.

define('WP_DEBUG', false);
Code language: JavaScript (javascript)

아래 코드로 바꿔준 뒤 저장합니다.

define('WP_DEBUG', true);
Code language: JavaScript (javascript)

오류를 반환했던 페이지로 재접속합니다. (ex. /wp-admin/customize.php) 디버그가 작동하여 특정 파일 특정 라인의 오류 메세지를 반환해줍니다. 해당하는 파일 구문을 수정합니다.

[워드프레스] 테마 편집기 : 변경 하기 전에 이 파일을 쓸 수 있게 만들 필요가 있습니다 오류 해결방법

변경 하기 전에 이 파일을 쓸 수 있게 만들 필요가 있습니다. 파일 권한 변경의 더 많은 정보를 보세요. 오류를 해결하는 방법입니다. 해당 오류는 주로 테마 편집기에서 코드를 직접 편집하려고 할 때 나타나는 오류입니다.

테마 편집기 변경 하기 전에 이 파일을 쓸 수 있게 만들 필요가 있습니다 오류 해결

SFTP, SSH로 테마 폴더 권한 확인

SFTP 접속으로 해결

wordpress/wp-content/themes 폴더로 접속하면 권한을 확인할 수 있습니다.

문제되는 차일드 테마 하나만 권한이 다른 것을 확인할 수가 있습니다.

해당 폴더를 우클릭합니다.

파일 권한을 아래와 같이 변경해줍니다.

확인을 누르면 해당 오류가 해결됩니다.

SSH 접속으로 해결

#themes 디렉토리에 진입합니다.

cd

#자식 테마 권한 변경

sudo chmod -R 777 /var/www/html/wordpress/wp-content/themes/generatepress-child
Code language: JavaScript (javascript)

#권한 변경 확인

cd /var/www/html/wordpress/wp-content/themes
Code language: JavaScript (javascript)
ls -l

권한이 동일한지 확인합니다.

소유자/그룹이 다를 경우

generatepress 테마의 자식 테마를 만들 것이므로 동일하게 변경해주면 됩니다. 부모 테마는 소유자와 그룹이 모두 www-data입니다. 아래 코드를 입력합니다.

#소유자 변경

chown -R www-data:www-data generatepress-child
Code language: CSS (css)

다시 테마 편집기에 접속하면 ‘변경 하기 전에 이 파일을 쓸 수 있게 만들 필요가 있습니다. 파일 권한 변경의 더 많은 정보를 보세요. 오류를 해결하는 방법입니다. 해당 오류는 주로 테마 편집기에서 코드를 직접 편집하려고 할 때 나타나는 오류입니다.’ 오류가 해결되었을 것입니다.

[워드프레스] 자식 테마 직접 생성하는 방법 (차일드테마 만들기 with GeneratePress)

ssh로 워드프레스에 접속하거나, SFTP를 이용합니다.

ssh의 경우 root 사용자 권한으로 진행했습니다. 우분투(ubuntu)에 로그인 후 sudo su 를 입력한 후 진행합니다.

자식 테마(차일드 테마) 생성하기

#워드프레스의 테마가 설치된 경로로 진입합니다.

cd /var/www/html/wordpress/wp-content/themes
Code language: JavaScript (javascript)

themes 폴더에 진입을 완료한 뒤 ls를 입력하면 해당 경로 내의 파일/폴더 리스트가 노출됩니다. 자식 테마(차일드 테마)를 만들 테마 폴더명을 복사합니다.

#자식 테마(차일드 테마) 폴더를 생성합니다.

sudo mkdir generatepress-child

#만든 자식 테마 폴더 안에 style.css 파일을 만들어줍니다.

cd generatepress-child
sudo nano generatepress-child/style.css
/* Theme Name: GeneratePress Child Template: generatepress */
Code language: JSON / JSON with Comments (json)

위 코드를 붙여넣고 ctrl + x, y, enter 키를 차례로 입력해 저장 후 상위 폴더로 되돌아옵니다.

#만든 자식 테마 폴더 안에 functions.php 파일을 만들어줍니다.

sudo nano generatepress-child/functions.php
<?php function wptalk_enqueue_styles() { $parent_style = 'parent-style'; wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version') ); } add_action( 'wp_enqueue_scripts', 'wptalk_enqueue_styles' );
Code language: HTML, XML (xml)

위 코드를 붙여넣고 ctrl + x, y, enter 키를 차례로 입력해 저장 후 상위 폴더로 되돌아옵니다.

#부모 테마가 가진 썸네일 파일을 자식 테마로 복사해옵니다.

cp /var/www/html/wordpress/wp-content/themes/generatepress/screenshot.png /var/www/html/wordpress/wp-content/themes/generatepress-child
Code language: JavaScript (javascript)

워드프레스 테마에 접근하여 확인해보면 자식 테마에도 썸네일이 생긴 것을 확인할 수 있습니다.

테마 편집기에서 ‘변경 하기 전에 이 파일을 쓸 수 있게 만들 필요가 있습니다’ 오류를 반환하는 것을 방지하기 위해 소유자와 권한을 변경해줍니다.

#자식 테마 권한 변경, 소유자 변경

chmod -R 777 generatepress-child

#부모 폴더의 소유자/그룹도 확인합니다.

ls -l

generatepress 테마의 자식 테마를 만들 것이므로 동일하게 변경해주면 됩니다. 소유자와 그룹이 모두 www-data입니다. 아래 코드를 입력합니다.

#소유자/그룹을 다른 테마와 동일하게 변경해줍니다. (chown 소유자:소유그룹 파일명)

chown -R www-data:www-data generatepress-child
Code language: CSS (css)

모두 완료한 뒤 활성화를 클릭합니다. 만약, 테마가 보이지 않는다면 멀티사이트 워드프레스일 확률이 높습니다. 네트워크 관리자에서 테마를 먼저 네트워크에 활성화한 뒤 진행합니다.

[AWS] EC2 프리티어 스냅샷 시점으로 복원하기 – EC2 스냅샷 복구

EC2 스냅샷 복구 방법에 대해 포스팅하겠습니다.

VPS서버에는 워드프레스는 물론 고스트 블로그부터 그 이상의 수많은 것들을 운영해볼 수 있습니다. 상당히 자유롭지만 한 번의 실수로 전체를 다 날리는 일도 허다합니다. 고로 백업과 복구는 꼭 알아두어야 하는 과정입니다.

하지만 AWS 라이트세일에 비해 상대적으로 EC2 복원 방법이 잘 소개되어있지 않아 포스팅합니다.

워드프레스 사이트는 php 파일을 잘못 건드릴 경우 ‘이 웹사이트에 치명적인 오류가 있습니다’ 라는 문구를 반환하며 제대로 사이트에 접속할 수 없습니다.

다만, 예외적으로 도메인/wp-admin 으로 접속이 되는 경우도 있으니 스냅샷 백업을 적시에 하지 못 했다면 일단 워드프레스 도구 > 가져오기를 통해 xml 데이터라도 받은 후 아래 과정을 진행하시는 것을 추천드립니다.

wp-admin으로 접속이 되는 경우는 SSH, SFTP로도 접속이 가능하니 php파일에서 문제되는 요소를 지울 수 있다면 먼저 진행해보시고, 워드프레스가 아니라 EC2 인스턴스 자체를 스냅샷 시점으로 돌려야 한다면 아래 포스팅을 계속 참고하세요.

EC2 스냅샷 복구

AWS EC2에 접속 후 Elastic Block Store > 스냅샷 경로로 접속합니다.

저장해 놓은 스냅샷이 보입니다.

체크한 상태로 작업 > 볼륨 생성 을 클릭합니다.

지금 만드는 스냅샷 아이디는 생성 날짜가 당일로 지정되기 때문에 헷갈리지는 않지만, 여러 인스턴스를 운영하는 경우 혼선이 생길 수 있기 때문에 따로 메모해줍니다.

가용 영역은 기존에 만들었던 리전으로 기본 선택되어있을 것입니다. 따로 수정하지 않고 볼륨 생성 클릭합니다.이렇게 되면 스냅샷 생성 시점의 EBS 볼륨을 하나 더 만든것이 됩니다.

지금 EC2 인스턴스와 연결된 볼륨은 스냅샷 생성 이후 오류가 생겼으니, 이 저장소를 버리고 스냅샷을 찍은 시점의 EBS 볼륨으로 복원하여 기존 인스턴스와 그대로 붙여줄 것입니다.

그렇기 때문에 라이트세일에서 찍은 스냅샷을 복원할 때 처럼 인스턴스를 새로 만들 필요가 없습니다. 물론, 라이트세일도 고정IP를 분리한 뒤 새 인스턴스에 붙여주면 간단하지만 이렇게 복구하면 그런 과정 자체를 할 필요가 없습니다.

참고로 EC2 프리티어를 이용중이라, EBS볼륨을 추가로 생성하여 복구/복원하면 과금이 될까봐 망설이시는 분들이 있는데 ‘빠른 스냅샷 복원’ 을 사용하지만 않으면 큰 문제가 없습니다. 30GiB는 프리티어 지원 한도 내입니다. 새로 볼륨을 만들어준 후 기존 볼륨은 바로 삭제할 것입니다.

인스턴스 목록으로 이동합니다.

순서대로 시행합니다.

  • 인스턴스 ID 우클릭 > 인스턴스 중지
  • 스토리지 클릭
  • 루트 디바이스 이름 복사 후 메모
  • 여러 인스턴스를 운영중일 경우 복원할 인스턴스 ID도 필수로 메모합니다.
  • 볼륨 ID(파란색 박스)를 클릭

파란색 박스의 볼륨 ID를 클릭했을 때 나타나는 창입니다.

클릭해서 들어 온 창이기 때문에 필터에 설정된 볼륨 ID가 있습니다. 그렇기 때문에 위에서 추가로 볼륨을 생성했어도 1개의 볼륨만 노출 될 것입니다. 해당 볼륨은 기존 볼륨이니 연결을 끊어줄 것입니다. 순서대로 시행합니다.

  • 현재 상태에서(구 볼륨 선택상태) 위쪽 파란색 테두리 작업 클릭 > 볼륨 분리
  • 아래쪽 파란색 테두리 x 클릭

그럼 연결이 끊어진 기존 볼륨 (혹은 다른 인스턴스의 볼륨들) + 방금 새로 만든 볼륨이 같이 보일것입니다.

볼륨 이름을 다시 확인 한 다음 체크 > 작업 > 볼륨 연결 을 클릭합니다.

  • 볼륨 : 선택한 볼륨 ID가 맞는지 확인합니다.
  • 인스턴스 : 복원할 인스턴스 ID를 붙여넣습니다.
  • 디바이스 : 위에서 메모하라고 했던 루트 디바이스 이름을 그대로 붙여넣습니다. 운영체제마다 상이할 수 있습니다.

모두 알맞게 기재하고 연결한 뒤 다시 인스턴스 목록으로 돌아옵니다.

인스턴스 ID 우클릭 > 인스턴스 시작

인스턴스가 정상적으로 부팅이 완료된 것을 확인 후 EBS > 볼륨 에서 기존 볼륨을 삭제합니다.

만약, 워드프레스 데이터베이스 등의 오류가 생겼을 경우 이 과정을 모두 끝내고 인스턴스 재부팅이 완료되었다고 해서 바로 사이트가 정상적으로 동작하지는 않습니다.

도메인으로 접속했을 경우, Error establishing a database connection 오류 또는 Error establishing a database connection, This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at localhost. This could mean your host’s database server is down. 등의 오류가 나타납니다.

2-3분정도 기다리면 서버가 안정화되며 스냅샷 시점의 정상적인 환경으로 돌아옵니다.

[ssh] ssh 포트 변경하기 – 기본 포트 22번에서 나만의 포트로 설정 바꾸는 방법

ssh 포트 변경하는 방법입니다.

기본적으로 서버에 할당된 ssh 포트는 22번입니다. 이러한 기본 설정은 aws 라이트세일도, ec2도, oracle도 마찬가지이지만 무차별적인 공격에 노출되기 쉽기 때문에 바꾸어 보도록 하겠습니다.

일단 새로운 ssh 포트로 11111번을 추가한다는 가정 하에 진행하겠습니다.

aws 라이트세일, aws ec2, 오라클 클라우드 등 가상서버를 사용하고 있는 플랫폼에서 포트를 변경할 인스턴스를 선택합니다.

AWS 라이트세일 ssh 포트 추가

aws 라이트세일의 경우 인스턴스를 눌러 들어가면 나오는 네트워킹 탭을 클릭합니다.

IPv4 방화벽에서 규칙 추가를 클릭하고,

  • 애플리케이션 : 사용자 지정
  • 프로토콜 : TCP
  • 포트 또는 범위 : 11111
  • IPv6에 대한 중복 규칙 : check

위와 같이 설정한 뒤 생성합니다.

AWS EC2 ssh 포트 추가

EC2 좌측 메뉴 네트워크 및 보안 > 보안 그룹 > 인바운드 규칙 > Edit inbound rules 를 클릭합니다.

규칙 추가를 클릭하여 아래와 같이 추가합니다.

  • 유형 : 사용자 지정 TCP
  • 포트 범위 : 11111
  • 소스 : 0.0.0.0/0

소스 부분은 본인의 ip를 지정해도 관계가 없습니다. 단, ip가 바뀌면 ssh 접근이 불가능해집니다.

Oracle cloud ssh 포트 추가

컴퓨트 > 인스턴스에서 설정할 인스턴스를 클릭하여 인스턴스 세부정보로 진입합니다.

인스턴스 세부 정보 페이지의 기본 VNIC 탭 > 서브넷에 링크가 활성화 된 부분을 클릭합니다.

클릭하면 나오는 페이지 탭 중 보안 목록이라는 탭이 있습니다. 빨간색 부분 이름을 한번 더 클릭하면 수신 규칙이라는 탭이 나옵니다.

수신 규칙 추가를 눌러 규칙을 추가해보겠습니다.

  • 소스 CIDR : 0.0.0.0/0
  • 대상 포트 범위 : 11111

이렇게만 기재해주고 나머지는 비웁니다. 하단 좌측 수신 규칙 추가를 클릭합니다.

ssh 로그인

일단 이 작업을 하기 전에 절대 aws, 오라클 보안그룹 등에서 ssh 22번 포트를 지우면 안 됩니다. 지우지 않은 상태에서 따라해주세요.

#ssh에 접속한 뒤 권한을 변경합니다.

sudo su

#nano 편집기를 사용하여 sshd_config 파일에 접근합니다. (편집기 변경 가능)

sudo nano /etc/ssh/sshd_config

Port 22번 주석을 풀고 22를 지운 뒤 원하는 코드를 추가합니다. 예시로 11111을 추가하겠습니다.

ctrl+x, y, enter를 순서대로 입력하여 저장 후 파일을 닫습니다.

#services 파일의 ssh 포트도 변경해줍니다.

sudo nano /etc/services

실행하면 tcp 포트들이 1부터 오름차순으로 나열되어있는것을 볼 수 있습니다.

아직   /etc/services 파일에서는 22번 포트가 ssh 포트로 지정되어 있는 것을 볼 수 있습니다.

변경한 포트인 11111으로 수정해준 뒤 ctrl+x, y, enter를 차례대로 입력하여 저장해줍니다.

방화벽 규칙 추가

#ubuntu에서 방화벽을 활성화합니다.

sudo ufw enable

#ssh를 재시작하기 전 방화벽에서도 해당 포트를 허용할 수 있도록 아래 코드를 입력합니다.

sudo ufw allow 11111/tcp

Rule added, Rule added (v6) 을 반환합니다.

#ufw 옵션을 설정하면 웹에서 허용한 포트가 허용되지 않습니다. 가장 중요한 443, 80 등의 접속용 포트를 허용합니다.

sudo ufw allow 443
sudo ufw allow 80

#기존의 22번 포트를 삭제해줍니다.

sudo ufw deny 22/tcp

#재시작합니다.

systemctl restart sshd

ssh 재접속

#원래 접속하던 방식대로 ssh을 재접속합니다. 아래처럼 port 22에서 Connection refused를 반환합니다. 22번 포트 접속이 막힌 것을 확인할 수 있습니다.

ex) ~ $ssh ****@**** ssh: connect to host ***.***.***.*** port 22: Connection refused
Code language: PHP (php)

#포트를 지정하여 ssh 접속

ssh ****@**** -p11111

만약, config 등을 통해 각각 다른 ssh key를 지정하여 접속했을 경우는 config 파일 밑에 Port만 추가해줍니다.

config 파일 설정

로컬 터미널에서 sudo nano ~/.ssh/config 을 입력하여 config에 접근합니다. 만일, 인스턴스의 host명이 [example] 이라고 했을 때, config 파일은 아래와 같습니다.

Host example HostName ***.***.***.*** User ubuntu IdentityFile ~/.ssh/id_rsa Port 11111
Code language: JavaScript (javascript)

각각 다른 host와 구분은 엔터 한 줄 띄기입니다. 참고로 host명 변경하는 방법은 여기를 참고하세요.

이제 터미널에서 ssh example을 입력하여 ssh에 접속합니다. 포트까지 지정해주었으니 굳이 -p 옵션을 사용하여 포트를 지정해 줄 필요가 없습니다.

ex) Enter passphrase for key '/Users/.ssh/id_rsa':
Code language: JavaScript (javascript)

비밀번호를 입력하여 접근합니다. 접속이 잘 되는 것을 확인했으면, 이제 22번 포트를 완전히 끊어주도록 하겠습니다.

11111번 포트를 추가했던 것과 같이, AWS 라이트세일, AWS EC2, Oracle Cloud에 각각 들어가 22번 포트를 삭제합니다.

만일, 재시작할 때 sudo reboot 명령을 사용했다면 port 00 : Connection refused 을 반환할 수 있습니다. 2분정도 이후에 재접속을 시도합니다.

ssh 포트 변경이 완료되었습니다.