[아마존 라이트세일 VPS 호스팅] 워드프레스(WordPress) IP 주소 접근 차단 하는 방법

[아마존 라이트세일 VPS 호스팅] 워드프레스(WordPress) IP 주소 접근 차단 하는 방법

라이트세일을 이용하여 워드프레스 설치형 인스턴스를 생성하여 웹사이트를 개설하였습니다. 도메인을 연결해주었고, SSL인증서 설치도 완료하였습니다.

웹 브라우저에서의 IP주소로의 접근은 막아야할 필요가 있습니다. 아이피 주소로 접근시 https가 아닌 80포트(http://)를 이용하여 사이트에 접근하게 됩니다. IP차단을 하기 위해서는 사전에 리눅스 혹은 유닉스 운영체제의 기본적인 사용법은 알고 있어야합니다. 파일 정보를 수정하기 위해서는 vi에디터 혹은 vim에디터의 사용법은 필수로 숙지해야합니다.



고정IP로 접근 차단을 설정하는 방법

1. 라이트세일 접속 후 >_아이콘을 클릭하거나 워드프레스 인스턴스를 선택 후 Connect using SSH 버튼을 클릭합니다.

2. 아파치 웹서버의 httpd.conf파일과 httpd-vhost.conf을 수정이 필요합니다. 해당파일 경로는 다음과 같아요

/opt/bitnami/apache2/conf/httpd.conf
/opt/bitnami/apache2/conf/extra/httpd-vhost.conf

위 파일을 vi에디터나 vim 에디터로 열어서 설정 변경을 해야합니다. 다음 명령어을 실행해주세요.

vim /opt/bitnami/apache2/conf/httpd.conf

위파일을 열어보면 아래와 같은 정보를 찾을 수 있고, 주석처리 되어있습니다. 즉 실행하지않음을 뜻해요. 주석은 #으로 시작됩니다. Include 앞에 #을 제거한 다음 저장합니다.(shift + 😉 키를 누르면 하단에 명령어 실행창에 나타납니다. wq를 타이핑 후 빠져나옵니다.

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

주석을 제거한 후 a키를 누르면 파일을 수정할 수 있는 INSERT 모드가 활성화됩니다.

# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"

다음으로 httpd-vhost.conf파일 설정을 변경합니다.

vim /opt/bitnami/apache2/conf/extra/httpd-vhosts.conf

파일을 열어면 샘플 데이터 2개의 VirtualHost 설정 정보가 있습니다. 지우셔도 되고, 주석처리 하셔도 됩니다.

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/opt/bitnami/apache/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/opt/bitnami/apache/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>

아래와 같이 #을 추가하여 주석처리합니다. 주석처리하면 서버시작시 실행되지 않아요

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot "/opt/bitnami/apache/docs/dummy-host.example.com"
#    ServerName dummy-host.example.com
#    ServerAlias www.dummy-host.example.com
#    ErrorLog "logs/dummy-host.example.com-error_log"
#    CustomLog "logs/dummy-host.example.com-access_log" common
#</VirtualHost>

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host2.example.com
#    DocumentRoot "/opt/bitnami/apache/docs/dummy-host2.example.com"
#    ServerName dummy-host2.example.com
#    ErrorLog "logs/dummy-host2.example.com-error_log"
#    CustomLog "logs/dummy-host2.example.com-access_log" common
#</VirtualHost>

그리고 실제로 필요한 정보를 설정합니다.

<VirtualHost*:80>
  ServerName 본인의 고정IP 주소 입력
  <Location />
    Order deny,allow
    Deny from all
  </Location>
</VirtualHost>

shift + : 키를 눌러 명령어 실행할 수 있는 상태로 변경합니다. 저장(wq)로 저장하고 나옵니다. 

3. 이제 아파치 웹서버를 재시작해야합니다. 재시작 명령어는 다음과 같습니다. 둘 중 아무 명령어나 실행하세요.

apachectl restart
또는 
httpd restart

4. 위 작업을 마무리했다면 이제 마지막으로 워드프레스 인스턴스를 다시 시작해야합니다. Reboot 버튼을 클릭하세요.

재부팅하면 인스턴스의 모든 웹 사이트 또는 서비스를 일시적으로 사용할 수 없습니다. 인스턴스를 재부팅하시겠습니까? 라는 팝업창이 뜨면, Reboot 버튼을 클릭하시면 끝!!

서버를 재시작 후 1분~2분 정도 지나면 사이트에 다시 접근 가능합니다. 서버가 재시작 완료가 되지않은 경우 사이트에 접근하면 아래와 같은 메세지가 나타납니다.

이제 IP주소로 접속 시도를 하면 아래와 같이 Forbidden 접근권한 없음 메세지가 노출됩니다.

Forbidden

You don’t have permission to access this resource.

https://본인아이피 주소를 치면 여전히 브라우저에서 접근할 수 있어요. SSL인증서를 설치했기 때문에 443포트가 열리는 것인데요. 열어두어야할지 막아둬야할지 고민이 되는 부분입니다. Let’s Encrpt SSL인증서가 무료로 제공되고 있는데, 그렇게 신뢰할 수 있는 인증서는 아닌것 같아요. 익스플로어 엣지와 크롬브라우저에서 https가 제대로 동작하지 않고 보안 경고 메세지가 노출되거든요. 파이어폭스 브라우저에서는 https로 정상 접근이 가능합니다.

만약 https:// (443)포트의 아이피 주소 접근을 차단하고 싶은경우 아래와 같이 더 추가하신 후에 위 절차를 반복하시면 됩니다.

<VirtualHost*:443>
  ServerName 본인의 고정IP 주소 입력
  <Location />
    Order deny,allow
    Deny from all
  </Location>
</VirtualHost>

수고하셨습니다.


카테고리의 다른 글
error: Content is protected !!