메뉴 닫기

특정 아이피 접속 불가 코드 작성

odenwar.net 도메인은 여러가지 일을 하고 있습니다.

현재 보는 것과 같이 odenwar.net 에서 odenwar 가 생각하고 작업 중인 프로젝트를 메모 형태로 기록을 할 수도 있으며, 후임자에게 전하고 싶은 전장 업무에 대한 나의 생각들, 메일 서버, 웹 서버, 디스크 서버, 가상화 머신 서버, Calendar, Caldav, 중요 자료는 백업 스토리지를 운용하여 쉽게 새로운 환경에서 개발환경 셋업 및 응용 어플리케이션을 개발해 가고 있습니다.

웹이라는 것은 정보를 전달하기 위해서 개발된 기술입니다.
홈페이지에 접속을 할 때, www.naver.com 혹은 www.google.com 등을 작성 할 경우, www는 Word Wide Web 이라고 해서 앞자를 따서 www 를 사용하게 됩니다. 쉽게 사용하기 위해서 www 를 제거해도 사용해도 무방합니다.

현재 접속하고 계시는 odenwar.net 웹 서비스는 다양한 2차 도메인으로도 서비스가 되고 있으며
이 중, 2차 웹 도메인을 생성해서 특정 IP만 접속을 허용하고, 그 외의 IP는 차단 하는 시간을 가져보도록 하겠습니다.

솔직히 Word Wide Web 이라는 이름을 가진 웹 서비스가 특정 아이피를 통해 접속을 허용 및 차단을 할 수 있다는 것은 웹이라는 데이터 공간에서 정보를 차단하는 역활을 하지만, 기업의 기술유출을 막는 자료를 막는다는 의미에서 사용이 가능 할 것이라 예상이 됩니다.

먼저, 본인은 .htaccess 파일을 통해 접속을 제한하고자 합니다.

이 방법은 특정 아이피만 허용을 하는 것이기에, 서버의 공격자는 IP를 변경 할 수 있으므로, 접속을 하되, 사용자 인증을 통해서 자료 열람을 제한 하는 기능을 만들어야 할 것입니다.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?company\.odenwar\.net$ [NC]
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000$
RewriteRule ^(.*)$ - [F]
</IfModule>

위 코드는 다음의 특징이 있습니다.

  1. company.odenwar.net 에만 동작함.
  2. 123.456.789.000 접속되는 아이피만 허용, 그외의 아이피는 차단(403) 에러 출력

소스코드 분석

  • RewriteEngine: mod_rewrite 모듈을 사용하도록 허용.
  • RewriteCond: 특정 조건을 만족할 때만 RewriteRule 이 적용되도록 함.
  • RewriteRule: 적용될 규칙.
  • [F]: 403 Forbidden 에러.
  • [NC]: 대소문자 구분 없음.
  • ^(www.)?company.odenwar.net$ : http://company.odenwar.net 형식을 허용
  • !^123.456.789.000$ : 123.456.789.000 이 아닌 IP 형식을 차단

자. 그럼 응용갑니다.

# 2차 도메인1(company1.odenawr.net)에 대한 규칙
RewriteCond %{HTTP_HOST} ^(www\.)?company1\.odenwar\.net$ [NC]
RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.[0-9]{1,3}$
RewriteCond %{REMOTE_ADDR} ^111\.222\.333\.[0-9]{1,3}$
RewriteRule ^(.*)$ - [L,R=403]

# 2차 도메인2(company2.odenwar.net)에 대한 규칙
RewriteCond %{HTTP_HOST} ^(www\.)?company2\.odenwar\.net$ [NC]
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.(100(?:-200)?|[1-9]?[0-9])$
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.(30(?:-80)?|[1-9]?[0-9])$
RewriteRule ^ - [F]

자, 이제 사내 연구자료를 확인 할 수 있는 데이터 인트라 넷을 만들어 볼까.

2 Comments

댓글 남기기