검색어 nginx에 대한 글을 관련성을 기준으로 정렬하여 표시합니다. 날짜순 정렬 모든 글 표시
검색어 nginx에 대한 글을 관련성을 기준으로 정렬하여 표시합니다. 날짜순 정렬 모든 글 표시

2013년 4월 2일 화요일

NGINX 다운로드 링크 접속 시 로그인 걸기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

nginx 로그인은 http://wiki.nginx.org/에서 참조하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 nginx에서 로그인 설정을 하려던 것은 제가 ftp 서버 설정을 모르기 때문입니다. 그래서 ftp로그인과 비슷한 기능이 무엇이 있을까 생각하던 중 nginx에서 로그인 기능이 있다는 것을 알았습니다. ftp는 잘못 설정하면 상위 폴더와 모든 권한을 줄 수 있기 때문에 상당히 조심해야 합니다. (아자, 드디어 찾아냈습니다.ㅎㅎㅎ)


2. nginx 다운링크에 암호거는 방법

2-1. 우선 다음 구문을 추가해 줍니다.

nano /etc/nginx/nginx.conf 를 SSH상에서 입력합니다.

server {
        listen       80;
        server_name  localhost

쭈~욱 나오고 기존에 추가한 다운로드 구문에 다음을 추가합니다.

location /down {
            alias   /srv/down;
            autoindex   on;

            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/security/.htpasswd;
            index index.html index.htm index.php;
            access_log      /var/log/nginx/down.access.log;
            error_log       /var/log/nginx/down.error_log;

            charset utf-8;
}

auth_basic_user_file /etc/nginx/security/.htpasswd; nginx폴더 안에 security 폴더를 새로 만들고 패스워드 파일을 생성합니다. 이렇게 하는 이유는 nginx폴더 안에 설정파일이 많이 있는데, .htpasswd 파일이 숨김속성의 파일이라서 보이지 않습니다. 그래서 나중에 패스워드 관리상에 헷갈리기 쉽기 때문에 폴더로 구분해 주는 것입니다. 또 패스워드 폴더 이름을 security로 하지 않고 다른 영문명으로 해도 됩니다. (예- paswd, npas 등...)

auth_basic "Restricted"; - 접속 시에 나오는 인사말 같습니다.


2-2. /etc/nginx/security 경로 상에 .htpasswd 파일을 생성합니다.

nano /etc/nginx/security/.htpasswd

폴더가 없으면 security폴더를 새로 만듭니다. .htpasswd 파일형식은 다음과 같으며, 영어와 숫자로만 입력합니다. 그리고 비밀번호 생성은 사이트에서 생성 후 입력합니다.

사용자:비밀번호
user:pass

저장하고 나옵니다.


3. nginx을 다시 시작합니다.

systemctl restart nginx


4. 다시 접속하면 이렇게 메세지 창이 뜹니다.

재 접속시 이렇게 나옵니다.

2013년 3월 14일 목요일

NGINX와 PHP설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 http://www.nextlab.co.kr:8080/nw/에서 100% 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux가 설치되었을 때를 기준으로 설명합니다.

NGINX는 가벼워서 저성능의 서버에서도 실행되며, 각종 보완되지 않은 취약점에 해킹당할 수 있는 서버의 앞에 둠으로써  보안이슈를 보완할 수 있는 서버입니다.(원본링크) 그리고 참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아서 systemctl로 대체합니다.


2. NGINX설치

pacman -Sy nginx
systemctl start nginx

nginx가 실행되는지 테스트하는 방법은 웹브라우저를 열어서 http://pogoplug_IP를 입력하여 엽니다. 그럼 'welcome to nginx'라는 문구가 나옵니다.

기본 홈 위치는 /usr/share/nginx/html 입니다.
3. PHP 설치 및 연동

static한 html, image나 간단한 파일을 올릴 목적이면 이 정도로 끝낼 수 있지만, 우리는 그누보드까지 설치가 가능한 제대로 된 웹서버이기 때문에 php 설치 및 연동 설정 작업이 필요합니다.

pacman -Sy php-fpm
pacman -Sy php-gd
systemctl start php-fpm



4. PHP 설정

nano /etc/php/php.ini

(samba를 무사히 설치했다면 nano 대신 윈도우 탐색기에서 열어도 무방합니다. 단 ultra edit같이 UNIX 파일을 지원하는 에디터를 이용해야 합니다.)

아래와 같이 수정하거나 주석(;)을 지워주어야 합니다. (새로 추가하는 것이 아니라 찾아보면 해당 항목이 존재합니다.)

검색으로 보면 ;주석으로 묶인 첫번째 'short_open_tag'부분을 수정하지 말고 밑에 나오는 두번째 short_open_tag=Off를 수정합니다.

 ...쭈~욱 내려가다 보면 나옴.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag=Off를 다음과 같이 수정합니다.

short_open_tag=On      (php에서 <? 로 짧은 시작태그 쓸 수 있도록 설정)

...또 쭈~욱 내려가다 보면 ;주석으로 묶인 아래와 같은 부분이 나오는데, ;주석을 지웁니다.
 extension=mysql.so    (mysql 연동)
 extension=gd.so         (gd module or php 연동)


5. nginx 설정 (가장 중요한 부분입니다.)

nano /etc/nginx/nginx.conf
아래 내용은 다음을 기준으로 설정합니다. (전체를 추가하는 것이 아니라 부분적으로 추가 또는 수정하거나 ;주석을 지워주면 됩니다.)
...

http {
    ...

    access_log   off;
    gzip   on;

    server {
        listen       80;
        server_name   localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            root    /srv/http;
            index  index.html index.htm index.php;

        }

    ...앞에 ;주석을 지웁니다.
 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            try_files $uri =404;
            root                /srv/http;
            fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index   index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include            fastcgi_params;

        }
       
        location = /favicon.ico {
            return 204;
            access_log     off;
            log_not_found  off;

        }

ctrl+o, 엔터로 저장하고 ctrl+x로 나옵니다.

cd /srv/http
(디렉터리가 존재하지 않는다는 에러가 발생하면 # mkdir /srv/http 로 디렉터리를 생성하면 됩니다.)

systemctl restart php-fpm
systemctl restart nginx



6. php 연동 테스트

wget http://pogo.nextlab.co.kr:8080/phpinfo.php.bak
mv phpinfo.php.bak phpinfo.php

라고 각각 입력하고 엔터를 칩니다.
그리고 브라우저에서 '자신의 포고_IP/phpinfo.php' 를 열었을 때 php 설치 정보 페이지가 제대로 나온다면 php 연동 작업까지 성공한 것입니다.

그누보드 파일 업로드 용량 늘기기(POGOPLUG SERIES 4용)

1. 시작하기 전에..

 nginx 설정은 여기를 php 설정은 Min.Gun여기를 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

포고플러그 시리즈 4에 nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다. php 설정, nginx 설정을 통해 업로드 용량을 늘릴 수 있습니다. 홈페이지를 nas나 웹하드처럼 단순히 업로드 서버로 사용하기 위한 것이라면 단 5줄을 바꾸는 것만으로 용량을 늘릴 수 있습니다. 단 인터넷 회선이 빨라야 업로드가 빠릅니다.(전 1기가로 늘렸습니다.)


2. 바꾸기

우선 php nginx, 그리고 그누보드상에서 파일용량을 바꿔줘야 합니다.

nginx

nano /etc/nginx/nginx.conf 를 SSH상에서 입력합니다.
...
access_log off;
gzip on;

server {
listen 80;
server_name localhost;

client_body_buffer_size 16k;      - 추가 않해도 상관없음
client_body_temp_path /var/tmp/nginx/client_temp 1 2 - 추가 않해도 상관없음
client_body_timeout 60;             - 추가 않해도 상관없음
client_header_buffer_size 1k;     - 추가 않해도 상관없음
client_header_timeout 60;          - 추가 않해도 상관없음
client_max_body_size 1024M; -> 이 구문을 추가해 줍니다. 용량은 메가(M)단위입니다.

#charset koi8-r;
..
그리고 저장합니다.
ctrl+o에 엔터, 그리고 ctrl+x 하면 됩니다. 


php

nano /etc/php/php.ini 를 SSH상에서 입력합니다.

원본은 이렇게 설정되어 있습니다

;upload_tmp_dir =    - 업로드 파일크기가 클 경우 임시폴더를 거쳐서 저장하는데, 기본적
;upload_tmp_dir =     -으로 지정되어 있지 않습니다. 임시폴더가 없으면 나타나는 증상이
;upload_tmp_dir =     -업로드 중간에 에러가 나면서 업로드 되지 않습니다. 임시폴더가 지정
;upload_tmp_dir =     -되어 있는지 확인하는 방법은 pogo ip/phpinfo.php를 쳐서
;upload_tmp_dir =     -upload_tmp_dir 항목에 폴더 및 경로가 지정되어 있나를 확인합니다.
max_execution_time =30 스크립트 실행시간 (초)
max_input_time = 60  업로드 시간 (초)
post_max_size = 8M 포스트방식 최대용량
upload_max_filesize = 2M 업로드 최대용량
memory_limit = 128M  업로드 용량과 함께 늘려 줘야 합니다.


nano에서 ctrl+w이 글자 찾기인데, 위에 내용을 찾아서 바꿉니다.
크기를 memory_limit > post_max_size > upload_man_filesize 순으로 설정합니다.

 upload_tmp_dir = /원하는 경로  - 앞에 ;주석을 지웁니다. 그리고 그누보드가 깔린 디스크
 upload_tmp_dir = /원하는 경로  - 와 같은 디스크에 만듭니다. 예를 들어 c드라이브에 그누 upload_tmp_dir = /원하는 경로  -  보드가 설치되었다면 upload_tmp_dir 경로도 c드라이브
upload_tmp_dir = /원하는 경로  -  여야 합니다. (이유 아시죠? 느려져요. ㅎㅎㅎ)
max_execution_time = 60
max_input_time = 360
post_max_size = 1022M
upload_max_filesize = 1023M
memory_limit = 1024M


그누보드

관리자 설정->게시판 수정에서 파일 업로드 용량 수정을 할 수 있습니다.







그 다음에 php와 nginx를 재시작합니다.

systemctl restart nginx
systemctl restart php-fpm

NGINX서버를 통한 다운로드 링크 형성하기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 홈페이지에서 파일을 간단히 다운로드 하게 하고 싶다면 간단히 할 수 있습니다. nginx에서 설정구문을 몇 줄 바꿔 주면 됩니다. 특히 autoindex   on; 명령어를 입력하면 웹 페이지에 파일 목록을 작성하지 않아도 파일목록을 자동적으로 보여줍니다. 그러나 일반 웹페이지에서 업로드하는 파일첨부와는 성격이 다른 것입니다.




2. 링크방법

SSH에서 다음과 같이 입력합니다.
nano /etc/nginx/nginx.conf

쭈~욱 나오는데,

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /srv/http;
            index  index.html index.htm index.php;

이 아래에 이 구문을 추가합니다.

location /down {                       - 웹주소 뒤에 붙힐 이름
            alias   /srv/down;          - 다운로드 폴더 경로를  반드시 지정할 것
            autoindex   on;            - down 폴더안에 자동으로 파일을 보여줌
            index  index.html index.htm index.php;
            access_log      /var/log/nginx/down.access.log;  - 접근로그 작성
            error_log       /var/log/nginx/down.error_log;fdgfg - 에러로그 작성
            charset utf-8; kdfjngktnglfghlkfgnklgfkfgbnkkf;;;;;;;- 접속시 한글깨짐방지
        }

그리고 위에 경로를 지정했으면 windows상에서 우클릭으로 '폴더만들기'를 선택해서 다운로드 폴더를 만드세요. 다운로드 폴더 경로와 폴더명만 지정하고 폴더를 만들지 않거나 제대로 하지 않았다면 이렇게 나옵니다.

폴더를 꼭 만드세요.

경로가 지정된 nginx 폴더 안에 또 폴더를 만들면 분류하기도 편합니다. (이것은 windows 상에서 우클릭해서 폴더만들기를 하면 됩니다.)


2013년 3월 23일 토요일

IP 포트 리다이렉트 하기(POGOPLUG SERIES 4용)

 1. 시작하기 전에...

트랜스미션 포트 리다이렉트는 Fusion Swift
ip_conntrack 문제는 yoonperl.com 을 참고하였습니다.
 그리고 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

혹시 이런 주소 보셨나요?

www.도메인.co.kr:8080 , http:// 예쁜도메인.com:9237 등 의외로 이런 주소가 많습니다.
왜 그럴까요? 웹 서버를 돌리려면 인터넷 포트중에 TCP 80포트가 열려 있어야 합니다. 그런데 인터넷을 서비스 해주는 회사에서 보안상의 이유를 들어 TCP 80번 포트를 막아 놓습니다. 그래서 80번 포트가 안열리면 보통 포트번호를 도메인 주소 뒤에 붙입니다. 이렇게 되면 도메인 주소가 이상해 보이고 포트번호를 잊어먹거나 도메인 주소 자체를 잊어먹을 수 있습니다. 그래서 이런 불편을 해결하는 방법 중에 하나가 포트 리다이렉트입니다.

하지만 ip 포트 리다이렉트 시에 문제가 발생하는데, 문제가 바로 ip_conntrack 입니다. ip_conntrack이 발생하면  모듈이 올라가고 많은 Connection 이 있는 경우 ip_conntrack full 이 발생해서 나머지 패킷들을 drop시켜버리는 문제가 발생할 수 있습니다. 좀 더 쉽게 비유해서 얘기하자면 웹페이지 접속 시  속도가 느려질 수 있습니다. (패킷을 제대로 받지 못하니까 속도가 나오지 못한다는 얘기입니다. 자세히는 저도 모릅니다.)


2. 포트 리다이렉트하는 방법

#.트랜스미션 포트 리다이렉트

nginx 환경설정을 nano 에디터로 엽니다.
nano /etc/nginx/nginx.conf

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /srv/http;
            index  index.html index.htm index.php;
바로 밑에 다음 구문을 추가합니다.

location /transmission
             proxy_pass http://127.0.0.1:9091/transmission
}

이름인 transmission은 웹 주소 뒤에 붙힐 이름으로 사용자의 취향에 따라 이름 길이를 짧게 할 수 있습니다. transmission의 이름 길이 길다면 down이나 host등 많은 이름을 자유롭게 붙칠 수 있습니다. 다만 두개의 이름명이 같아야 하며, 트랜스미션에서 url 설정과 같아야 합니다.
 

예 1) 
location /down {
             proxy_pass http://127.0.0.1:9091/down
}

예 2)
location /host
             proxy_pass http://127.0.0.1:9091/host
}

이렇게 구문을 꾸미면 주소가 '192.168.100.3:8083/원래 길고도 긴 이름' 에서 '192.168.100.3/짧은 이름'로 바뀝니다.


2-2. TCP 80번 외부 포트가 막혀 있을 때 TCP 8080 포트로 리다이렉트하는 방법(nginx, mysql, php가 설치된 포고 s4에 한해서 적용됩니다.)

이거는 연구중입니다.

2013년 3월 14일 목요일

그누보드 설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 http://www.nextlab.co.kr:8080/nw/를 100% 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 자 여기까지 했다면 다 한 것입니다. 그누보드를 사용해 보면 정말 가볍고 빨라서 '포고플러그 시리즈 4'에 딱 맞는 CMS툴 이라고 생각하실 겁니다. 또 하나의 CMS툴인 워드프레스도 있는데, 그누보다 조금 무겁습니다.


2. 설치하기

(1) 먼저 아래 주소에서 다운로드 받아서 압축을 풉니다.
http://www.nextlab.co.kr:8080/download/gnu4_nw102.zip

(2) 압축을 풀고 나오는 pogo 폴더를 윈도우 탐색기에서 Pogoplug의 /srv/http 에 복사합니다. (/srv/http/pogo 경로가 되도록)

(3) 이제 다시 ssh로 로그인합니다. (이미 로그인중이시죠? ㅎ)
cd /srv/http
chmod 777 -R ./pogo
(방금 복사한 pogo 폴더의 모든 파일을 실행가능 상태로 만드는 것으로 권한을 준다고 말합니다.)


3. Database 생성 & 설치 마무리
mysql -u root -p
Enter password: 비번 입력
mysql> CREATE DATABASE pogo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> exit
(그누보드에서 사용할 pogo 라는 db를 생성합니다.)


그리고 웹브라우저 주소란에 포고사설_IP/pogo/install 을 입력합니다.
아래와 같은 페이지가 나와야 합니다.


[예, 동의합니다] 버튼을 누르고 진행합니다.

그 다음 페이지 입력란에는 다음과 같이 입력합니다.
Host: localhost (디폴트값)
User: root
Password: root비밀번호 (mysql에서의 비번)
DB: pogo
ID: admin (그누보드 관리자 ID입니다.)
Password: admin비번(root와 동일한 비밀번호로 하는게 편할겁니다.)
Name: 자신의별명이 좋습니다.
E-mail: 관리자 이메일주소
[다음]버튼을 누릅니다. (1번 눌러서 계속 반응이 없다면 1번 더 누르면 됩니다.)
아래와 같은 페이지가 나올때까지 기다립니다.


[메인화면] 버튼을 클릭합니다.
썰렁한 하얀색 화면이 나오나요? 성공입니다.
여태까지 힘들게한 작업의 결과가 이거라니까 조금 허탈하시죠? ㅎㅎ
사실 이제부터가 진짜 시작입니다. 조금만 더 힘내시자구요~!


4. 그누보드 사이트 설정
우측 상단 2개 입력란에 각각 admin과 비번을 입력하고 로그인합니다.
우측 최상단에 [admin]이라는 버튼이 생겼을겁니다. 클릭해서 아래 관리자화면으로 들어갑니다.

여기서 사이트에 대한 다양한 설정을 할 수 있습니다.
직접 하나씩 하셔도 되겠지만, 처음에는 설정이 너무 많아서 쉽지 않으니까 일단 저와 같이 하나씩 따라서 사이트를 간단히 만들어보도록 해요.

(1) 환경설정
환경설정 버튼을 누르고 다음 값을 변경합니다.
-홈페이지 제목: My Favotie Things
-포인트 사용 : 체크해제
-관리자 패스워드 : admin 비번 (모든 설정 맨 밑에는 관리자 패스워드를 요구합니다.)

(2) 사이트관리.사이트설정
사이트관리>사이트설정을 클릭해서 다음 값을 변경합니다.
-홈페이지 제목 : My Favotie Things
-홈페이지 설명 : 내가 좋아하는 모든 것들
-하단 추가문구:  이 사이트는 Pogoplug Series 4에 ARCHLINUX + NGINX + PHP + MYSQL + 그누보드를 설치해서 운영 중입니다.
(제 가이드를 따라서 웹서버를 구축했다면 위의 하단문구로 통일시켜주시기 바랍니다. 우리들만의 아름다운 약속이에요잉~ ^^)
-대메뉴 : 네 체크
- 아웃로그인 : 아니오 체크 (이것을 아니오로 체크하면 로그인 입력란이 사라집니다. 따라서 admin으로 로그인을 하기 위해서는 사이트 주소 포고사설_IP/pogo/adm 으로 접속하시면 로그인 페이지가 나옵니다.)

(3) 사이트관리.페이지관리
사이트관리>페이지관리를 클릭합니다.
테이블 헤더의 우측 [+] 버튼을 클릭합니다.
페이지 생성 입력란에 다음과 같이 입력합니다.
-페이지ID : intro
-페이지 제목 : Intro
-본문 내용 : (평소에 가장 좋아하는 것의 사진을 인터넷에서 찾아 링크를 복사해옵니다. 저는 욘아님 사진을...

본문 내용 입력란 위쪽의 에디터툴바에서 이미지링크 아이콘(카메라 아이콘 오른쪽)을 클릭해서 사진URL에 입력하고 [미리보기]로 확인한다음 [확인]버튼을 클릭합니다.
추가할 내용이 있다면 입력하고 맨 하단 [확인] 버튼을 클릭합니다.

(3) 게시판관리.게시판그룹관리
테이블 헤더 우측의 [+] 버튼을 눌러서 다음과 같이 입력합니다.
그룹 ID : pogobg1
그룹 제목 : 포고 게시판 그룹1

(4) 게시판관리.게시판관리
테이블 헤더 우측의 [+] 버튼을 눌러서 다음과 같이 입력합니다.
다음과 같은 2가지 게시판을 생성합니다.
(주의사항: 게시판 설정 각 입력란에 보면 제일 왼쪽에 체크박스가 하나씩 있는데 이걸 체크하면 모든 게시판에 일괄 적용되게 된다. 주의해서 사용해야 합니다.)

[첫번째 게시판]
-TABLE : favorite
-게시판 제목 : Favorite
-글쓰기 권한 : 10 (나만 쓸 수 있는 게시판이므로)
-글읽기 포인트 : 0
-다우로드 포인트 : 0
-DHTML 에디터 사용 : 체크
-스킨 디렉토리 : nw_basic
([확인] 버튼을 누른다음 다시 게시판관리>게시판관리를 클릭해야합니다.)

[두번째 게시판]
-TABLE : guestbook
-게시판 제목 : Guestbook
-글읽기 포인트 : 0
-다우로드 포인트 : 0
-DHTML 에디터 사용 : 체크해제
-스킨 디렉토리 : nw_basic

(5) 사이트관리.메뉴관리
오른쪽 부분의 다음 내용을 순서대로 추가합니다.
page - Intro (intro)
board - Favorite (favorite)
board - Guestbook (guestbook)
(순서가 잘못되었다면 Drag&Drop으로 순서를 변경할 수 있습니다.)

(6) 사이트관리.첫화면설정
우측 선택란에서 1 column을 [추가]합니다.
첫번째 SELECT 박스에서 [page]로 선택하고 두번째는 intro-Intro를 선택합니다.
주의사항 - 파이어폭스나의 경우  SELECT 박스가 움직이지 않습니다. 익스에서 수정해야 합니다.

설정이 모두 끝났습니다. 짝짝~
좌측 상단의 관리자화면 바로 밑의 [HOME] 버튼을 클릭해보면 드디어 그렇게 기다리던 우리의 사이트가 나타날 것입니다.

아래 제가 이미 만들어놓은 페이지처럼 나오나요?
http://dione6.gonetis.com/dion/

이대로 나온다면 Pogoplug Webserver 구축을 성공한 것이다. 정말 수고 많으셨어요 ^^
이제 다시 관리자화면으로 돌아가서 로그아웃을 한 다음에 Guest 상태에서 어떻게 보이는지도 확인해보세요. Favorite은 쓸수없고 Guestbook에만 쓸수가 있게 되어 있는지 등등요.


5. 마무리

그누보드를 이용해서 사이트 구축하는게 처음엔 그리 만만하지는 않을 것이지만 몇번 하다보면 금방 이해하고 매우 쉽게 원하는 형태로 구축을 할 수 있을것입니다.
그리고 어느정도 익숙해지셨다면 아래 그누보드 사이트를 방문해서 다른 빌더도 설치해보세요. 다양한 디자인의 많은 빌더들이 존재합니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_builder

단, 새로운 그누보드 빌더를 설치할 때 다음 3가지를 주의해주세요.

(1) 빌더 패키지를 선택할 때 반드시 UTF-8 버전을 선택하세요. (EUCKR 버전이 따로 존재하는 패키지가 있습니다.)

(2) 설치 폴더를 다르게 해주세요.
이번에 /srv/http/pogo 에 설치한것을 기억해서 다음에는 /srv/http/boxi 이런 식으로요.

(3) database 명을 새로 생성해야 합니다.
앞에서 pogo라는 database 명을 이용했는데요. 다른 빌더 설치시 database 명에 pogo를 입력하면 이미 작업한 내용에 덮어쓰게 되므로 반드시 새로운 database를 생성해서 그것을 지정해야합니다.

새로운 database를 생성하는 방법은 아래 명령을 이용하면 됩니다.
ssh 로그인 상태에서
mysql -u root -p
Enter password: (root 비번 입력)
mysql> CREATE DATABASE boxi DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> exit

2013년 4월 2일 화요일

포고플러그 s4 초기화 하는 법(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 포고플러그 시리즈 4의 초기화를 그냥 넘어 가려고 했는데,  초기화 방법을 많이 찾으실 것 같아서 새로 포스팅 합니다. 다른 포고플러그 제품들은 초기화 하려면 복잡하고 고장날 각오를 해야합니다. 그러나 포고플러그 시리즈 4는 초기화 과정이 쉽습니다. 다른 포고 제품에 비해 비싸고 성능은 약간 낮게 나왔지만 초기화의 편리함 때문에 얼마든지 감수 할 수 있는 사항입니다.(이 글을 쓰는 동안에도 초기화를 했습니다.)


2. 초기화 하는 법(원복, 복구...)

2-1. usb메모리를 FAT32로 포맷하고 안에 폴더를 만드는데, 이름을 'revert' 로 합니다.



2-2. 기기의 전원을 내리고 usb를 꼽습니다.



2-3. 기기의 전원을 넣으면 usb를 인식하며 깜빡깜빡 거립니다.



2-4. 전면 불이 녹색으로 깜박거리다가 빨간색, 주황색으로 바뀌는데, 포고플러그 시리즈 4의 firmware가 복구되는 것입니다.



2-5. my.pogoplug.com에서 '나의 기기찾기'를 다시합니다.

2013년 3월 14일 목요일

transmission 설치 및 보안설정 하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

설치는 http://pogoplug.tistory.com/8 에서,
보안설정은 http://pogoplug.tistory.com/27을 참고했습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 일명 리눅스의 토렌트 프로그램인 트랜스미션입니다. POGOPLUG SERIES 4에는 외부 그래픽 장치가 없어서 일반 토렌트 프로그램을 쓰기에는 무리입니다. 그런데 transmission은 웹 브라우져에서 작동되고 상태 확인이 가능해서 좋은 프로그램입니다.


2. transmission 설치하기

pacman -Sy transmission-cli


3. transmission 설정하기

nano /etc/conf.d/transmissiond

앞에 #주석지우고 추가하기
 TRANS_USER="root"
 TRANS_ARGS="-g $TRANSMISSION_HOME/.config/transmission-daemon"

그리고 시스템 시작하기

systemctl start transmission


4. 보안 설정전에 transmission중지하기 (중지하지 않으면 설정이 변경되지 않습니다.)

systemctl stop transmission


5. 보안 설정하기

nano /var/lib/transmission/.config/transmission-daemon/settings.json
위 파일은 트랜스미션을 시작해야만 생깁니다. 그러니 반드시 시작하신 후 중지하세요.


"blocklist-enabled": true, - 토렌트 ipfilter 업데이트 리스트를 재 시작시 자동으로 업데이트합니다. false면 수동으로 업데이트 해야 합니다.
"blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz", 토렌트 ipfilter 업데이트
"rpc-url": "/transmission/", 도메인 주소 뒤에 붙칠 이름인데, 짧게 고쳐도 됩니다. 예를 들어 host, down등으로 고칠 수 있습니다.
"rpc-authentication-required": true,
"rpc-password": "password", - 사용자 암호
"rpc-username": "username", - 사용자 아이디
"rpc-whitelist-enabled": false,
...


6. 트랜스미션을 다시 시작합니다.

systemctl start transmission

'http://포고 아이피:9091/transmission'으로 재접속 하면 다음과 같이 나옵니다. 그런데 9091 포트를 쓰지 않고 'http://포고 아이피/transmission' 처럼 접속하려면 여기을 참고하세요. (대신 단점도 있습니다.)


포고 s4 서버와 공유기의 포트포워딩 및 DDNS 연결하기(포고 공통)

1. 시작하기 전에,,,

공유기의 DDNS와 포고 s4를 연결하려면 우선 내부에서 접속되어야 합니다. 예를 들어 '192.168.0.159/doty'가 포고 s4의 홈페이지 사설주소면 내부에서 브라우저로 이 주소에 접속되어야 합니다. 하지만 'nginx 설정'에서 도메인 입력란이 있는데, 도메인을 입력란에 입력하지 않아도 서버가 공유기의 DDNS 연결에는 영향을 끼치지 않습니다.


2. DDNS(=도메인)에 포고 s4 연결하기

포고 s4의 사설주소에 DDNS(=도메인)를 연결하려면  DMZ설정이나 포트포워딩을 해야 합니다.(DMZ나 포트포워딩 둘 중 하나만 선택해서 하세요.)

2-1. DMZ (방화벽 해제)를 설정합니다. 해당 아이피의 모든 포트를 엽니다. 현재 공유기에 연결된 포고플러그의 내부 서버주소를 'DMZ설정 주소'난에 등록합니다. 하지만 리눅스 내부에 방화벽 설정이 없는 이상 보안위협의 문제가 있기 때문에 그렇게 추천하지 않습니다.



2-2. 포트포워딩을 합니다. DMZ는 모든 포트를 열기 때문에 보안에 문제가 많습니다. 그래서 일부 포트만 열면 외부 위협에서 보안을 지킬 수 있습니다. 바로 포트포워딩인데, 포트포워딩을 통해 등록합니다. (단 외부포트 80의 경우 ISP에서 막은 경우가 많습니다. 웹서버의 입장에서는 참 난감하죠. 웹 포워딩이나 도메인에 포트번호가 붙는다거나...)



 좀 더 자세히 포트포워딩을 말하면 공유기 내부 사설주소에서 접속 시에는 리눅스에서 iptables를 지정하지 않는 이상 포트포워딩의 영향을 받지 않습니다. 하지만 외부에서 접속 할때나 사설서버에 공인 도메인이 입혀진 경우 내부에서 접속 시 포트포워딩의 영향을 받습니다.
내부에서 사설주소로 접속 시
외부에서 접속시

3. Archlinux에서 현재 사용중인 리눅스 프로그램의 인터넷 포트를 확인합니다.
netstat -anp | grep LISTEN
이를 통해 사용할 프로그램과 사용하지 않을 프로그램을 확인합니다. 그리고 사용할 프로그램의 인터넷 포트를 공인 아이피에 포트포워딩 하면 포트포워딩 된 포트만 제외하고는 모든 포트가 닫힙니다. (위 그림 참조)

4. 각 공유기 제조사마다 DDNS를 서비스해 주는데, 공유기 회사용 DDNS를 등록해서 사용하거나 자신의 사설 도메인이 있다면 dyndns 항목에서자신의 도메인을 입력하면 됩니다.


2013년 3월 25일 월요일

Archlinux SSH 보안설정 하기(포트) (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 SSH 설정은 Archlinux 한글페이지 에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 SSH 포트 설정은 공유기에서 외부 포트만 막아놓아도 안전을 지킬 수 있는데, 왠만하면 외부에서는 SSH 접속을 하지 않을 것을 권합니다.


2. SSH 포트를 바꾸는 이유

내부에서만 접속하고 외부에서 접속하지 않는다면 이 설정을 할 필요는 없습니다. 하지만 외부에서 SSH를 꼭 접속해야 한다면 공유기에 해당 ip를 포트포워딩 하게 됩니다. 그리고 이 상황에서 SSH 포트는 nmap 같은 포트 스캔너에 의해 스캔을 당하고 보안위협에 노출될 수 있습니다. 다음은 원문입니다.
Even though the port ssh is running on could be detected by using a port-scanner like nmap, changing it will reduce the number of log entries caused by automated authentication attempts

SSH를 외부에서 접속할 때 포트를 바꾸려면 다음 두 가지 설정을 변경하고 공유기에서 해당 포트를 포트포워딩 해야 합니다.(2-2. 공유기 DDNS  및 포트포워딩 방법 ) 그런데 위의 참고 페이지에는 openssh를 설치해야 하는데, 포고 s4의 Archlinux에서는 설치하지 않아도 설정할 수 있습니다. 기본적으로 설치되어 있습니다.


2-1. 우선 openssh를 설치합니다.
(포고s4에는 설치하지 않아도 설정이 됩니다. 이 단계는 건너뛰어도 됩니다.)
pacman -S openssh


2-2. SSH 클라이언트 설정에서 포트와 나머지 정보를 바꿉니다.
nano /etc/ssh/ssh_config

# $OpenBSD: ssh_config,v 1.25 2009/02/17 01:28:32 djm Exp $
...쭈~욱 나오고

Host *
...
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
   Port 888 fff- # 주석을 지우고 원하는 포트 숫자를 씁니다. 예) 777, 999
   Protocol 2 - # 주석을 지우고 '2, 1'을 2로 고칩니다. protocol 1은 불안정하다고 합니다.
# Cipher 3des


SSH데몬 설정에서 포트를 바꿉니다.
nano /etc/ssh/sshd_config

# $OpenBSD: sshd_config,v 1.87 2012/07/10 02:19:15 djm Exp $
...쭈~욱 나오고

# default value.

  Port 888         - #주석을 지우고 원하는 포트 숫자를 입력합니다.
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
  Protocol 2     - #주석을 지우고 숫자를 2로 고칩니다.

hosts.allow , hosts.deny 설정은 포고s4용 archlinux에는 없는 파일이기 때문에 설정하지 않습니다. 잘못 만들어서 설정하면 ssh에 접속이 안되는 일이 발생합니다. (지금 이 글을 쓰는 현재 제가 실수한 사항입니다.ㅎㅎㅎ)


2-4. 설정 후 시스템을 다시 시작합니다.
systemctl restart sshd


2-5. ssh접속 프로그램에서 바꾼 포트 숫자를 기입합니다.
예제) 아이피 : 192.168.156.44 포트 : 888


보너스 (비밀번호를 분실하지 않았다는 전제하에)
SSH 비밀번호 변경
passwd

samba(smbd) 비밀번호 변경
smbpasswd -a root

mysql 비밀번호 변경
mysql -u root mysql -p
update user set password=password('root비밀번호') where user='root'; 입력

트랜스미션 비밀번호 변경
systemctl stop transmission
nano /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-password": "새로운 비밀번호 넣기",

2013년 3월 14일 목요일

포고 서버 시간 동기화 하기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 http://pogoplug.tistory.com/4를 일부 참조하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

이 시간 동기화 때문에 엄청 고생했습니다. 왜냐면 '포고플러그 시리즈 4'용 Archlinux에는 시간 동기화 프로그램인 openntpd가 설치되어서 나오기 때문입니다. 그래서 참고사이트에서 처럼 openntpd를 설치하지 않아도 됩니다.


이걸 모르고 설치만 하려고 했으니 에러가 나오지!

에러코드
warning: openntpd-3.9p1-21 is up to date -- reinstalling            -3.9p1-21이 신버전인데
resolving dependencies...                                                         다시 인스톨?
looking for inter-conflicts...
error: unresolvable package conflicts detected                        - 패키지 충돌 가능성
error: failed to prepare transaction (conflicting dependencies)   -3.9p1-21 패키지를 설치
                                                                                               하는데 실패

2. 시간 동기화(맞추기) 전에 현재 시간 확인하기

그리고 rdate -s 나 ntp 명령어 안먹습니다. 참고하세요.
date                                                   -라고 치면
Wed Mar 13 16:30:40 UTC 2013              -현재 시간이 영어로 나옵니다.


3. openntp를 설치합니다. (이 단계는 넘어가세요)

pacman -Sy openntpd ntp                  - openntp를 설치합니다.


4. 기존 시간 설정 지우기

rm /etc/localtime

이 명령어를 해석하자면 기존의 시간 설정을 지운다는 뜻입니다.
더 확대해서 말하면 기존의 etc폴더에 있는 '시간 동기화 설정파일'인 localtime 파일을 지운다는 뜻입니다. 포고 s4 서버는 시간을 동기화 할때  /usr/share/zoneinfo 경로의 폴더에서 시간파일을 고릅니다. 그러고 나서 시간을 동기화 하고 etc폴더에 localtime이란 파일이름으로 '시간 동기화 설정'을 저장합니다.


5. 새로운시간 설정하기
ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

해석하면 시간을 서울로 맞추겠다는 뜻입니다.
더 확대해서 말하면 /usr/share/zoneinfo 경로의 폴더에서 아시아의 서울 시간으로 localtime을 지정해서 저장하겠다는 뜻입니다. 이렇게 치면 /usr/share/zoneinfo 경로의 폴더에서 'localtime설정파일'을 볼 수 있습니다.

date
Thu Mar 14 01:49:00 KST 2013                    -현재 시간이 나옵니다.

2013년 4월 2일 화요일

samba에서 다른 파티션 추가하기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 파티션 부분을 마운트 하는 방법은 Archlinux 한글페이지에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

저는 750Gb나 되는 대용량 하드디스크를 쓰기 때문에 파티션의 필요성을 항상 느끼고 있었는데, 리눅스와 MS Windows로 컴퓨터를 사용하는 사람으로써 만든 원칙 중에 하나가 부트영역과 데이터 부분을 나누어야 컴퓨터가 안정된다고 생각합니다.

 위처럼 공통적인 관리부분도 존재하지만 리눅스와 MS Windows는 많은 차이가 있었습니다. 그 중 큰 차이점은 리눅스에서는 장치가 추가되어도 자동으로 표시해 주지 않습니다. 설정값을 넣어줘야 MS Windwos상에서 공유 네트워크로 표시될 수 있습니다. 물론 그래픽 표시가 없는 SSH상이라 감안해야 될 사항이지만 MS Windows 와는 많이 불편한게 사실입니다.

windows는 그래픽으로 표시되며 자동으로 표시해 줍니다.

하지만 리눅스는 추가됐는지 안 됐는지 알수가 없습니다.

2.samba에서 다른 파티션에 접속하기

samba에서 다른 파티션에 접속하기 위해서는 첫번째, 해당 디스크가 파티션이 나뉘어 있어야 하고 두번째, samba의 'nano /etc/samba/smb.conf'에서 해당 디스크를 표시해 줘야 하며 세번째, 'nano /etc/fstab'에서 해당 디스크를 표시해 줘야 합니다.

2-1. 파티션을 usb 외장하드 케이스에 장착해서 나누는 방법은 여기를,
       SSH상에서 파티션 나누는 법은 여기를 참고하세요.

2-2. 파티션을 마운트합니다.
fdsik -l              -fdsik -l를 쳐 주는 이유는 파티션 이름 및 경로를 알기 위함입니다.
mount /파티션 경로이름

2-3. fstab파일에 파티션을 등록합니다.
nano /etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>
     /dev/sda2       /       ext3     defaults      0           0

위 사항의 자세한 설명입니다.
  • <file system>에는 드라이브의 경로를 입력하면 됩니다.
  • <dir>은 사용자가 해당 드라이브에 접속할 때 시작하는 곳을 지정하는 것으로써 기본적으로 /입니다. /는 루트 드라이브에 접속되며 폴더를 지정하면 그 폴더에서 시작합니다. 이것을 이용해 빈 숨김 드라이브를 만들 수 있는데, 루트 드라이브에 파일을 저장하고 다시 접속폴더를 지정하면 루트 드라이브에 저장된 파일은 일반적으로 접근할 수 없습니다. (야동ㅎㅎ)
  • <type>는 사용자가 접속하는 드라이브의 시스템 포맷을 입력합니다. ext3, ext2, ntfs 등을 써주면 됩니다.
  • <options>은 사용자가 드라이브에 접속할 때 사용할 수 있는 조건으로 기본적으로 defaults를 씁니다. 이 조건에 따라 읽기, 쓰기 등만 가능할 수 있습니다.
  • <dump>는 파일 시스템을 백업할 때 필요한 사항으로 기본적으로 0입니다. 0은 백업을 만들지 않겠다는 뜻이며, 1은  만들겠다는 뜻입니다.
  • <pass>는 파일 시스템을 체크할 때 필요한 사항으로 기본적으로 0입니다. 0은 체크하지 않으며, 1은 루트 파일 시스템을 체크하며, 2는 다른 파일 시스템을 체크하고자 할때 쓰입니다.
2-4. 재부팅합니다.
/sbin/reboot    - 재부팅해야 드라이브가 표시됩니다.

2-5. 파티션의 이름 및 경로를 알기 위해 df -h를 입력합니다.
 
2-6. samba의 smb.conf 파일에 파티션 표시하기
nano /etc/samba/smb.conf입력합니다.
[Pogoplug]
path = /
read only = no
public = yes
writable = yes
guest ok = no

이 밑에 다음을 붙여 넣습니다.

[원하는 영문 이름]
path = /                             - 파티션 경로를 입력합니다.
read only = no
public = yes
writable = yes
guest ok = no


저장 후 나갑니다.

2-7. samba를 다시 시작합니다.
systemctl restart smbd

'\\아이피주소'로 들어가면 이렇게 표시됩니다.

2013년 3월 14일 목요일

MYSQL에서 비번찾기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

https://wiki.archlinux.org/index.php/MySQL에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 진짜 이느무 비번때문에 POGOPLUG SERIES 4에 초기화를 몇번 했는지 모릅니다. myslq '설정접속'을 하려면 비번이 필요한데, 잘못 설정해서 다시 설치하고 몇 번의 초기화를 했는지 모릅니다. 그래도 설정이 남아있어서 mysql접속이 되지 않았습니다.


2. 비밀번호 찾기

2-1. 우선 MYSQL 패스워드를 초기화합니다

mysqld_safe --skip-grant-tables &
그럼 잠시 무어라 나오는데 기다립니다.

2-2. 다시 mysql에 접속합니다.
mysql -u root mysql

2-3. 비번을 다시 설정합니다.
mysql -u root mysql -p
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit

MYSQL에서 데이터베이스 삭제 및 생성(POGOPLUG SERIES 4용)

1. 시작하기 전에...

http://wiki.kwonnam.pe.kr/database/mysql/basic에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 앞에서 배웠듯이 mysql에서 여러개의 홈페이지를 설치하려면 http폴더 상에 그누보드 실행폴더를 이름만 틀리게 해서 넣고 mysql데이터베이스를 설치하면 됩니다. 그런데 홈페이지가 맘에 안들고 다시 만들고 싶다거나 잘못 만들었다면 무엇을 어떻게 해야 할까요? 우선 mysql데이터 베이스를 삭제해야 하고 그누보드 폴더를 지워야 합니다. (역순입니다.)


2. mysql 데이터베이스 생성 및 삭제 명령어 (상황에 맞는 명령어를 골라 쓰세요.)

우선 SSH에서 mysql에 접속합니다.

mysql -u root -p
Enter password: 비번 입력
그리고나서 상황에 맞는 명령어를 골라씁니다.

데이터베이스를 생성합니다.
mysql> CREATE DATABASE dbname;

현재 존재하는 데이터베이스 목록을 보여줍니다.
mysql> SHOW DATABASES;

특정 데이터베이스를 사용하겠다고 선언합니다.
mysql> USE dbname;

mysql 데이터베이스를 삭제합니다.
mysql> DROP DATABASE [IF EXISTS] dbname;

IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미입니다.
그런데 'ERROR~~~' 고 뜬다면 [IF EXISTS]를 지우고 입력합니다.
mysql> DROP DATABASE dbname;

mysql을 나가기 전에 확인하고 나서 끝났으면 나갑니다.
mysql> exit