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월 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월 21일 목요일

저의 포고플러그 s4 웹페이지입니다. 그리고 공지

 이 블로그의 글은 마음대로 퍼가셔도 됩니다. 하지만 우클릭이나 펌을 금지한 홈페이지, 블로그에는 스크랩을 자제해 주십시오. 왜냐면 자기는 맘대로 퍼갔으면서 남은 맘대로 퍼가지 못하게 한다는 것이 불공평하다고 생각하기 때문입니다. (뭐 퍼갈때 댓글을 다신다거나 원작자의 링크를 다신다면 저에게는 영광입니다. )

다음 도전할 제품은 라즈베리 파이여기서 소개한 제품에 archlinux를 올려서 tv에서 인터넷을 검색하거나 hd방송 수신이 되게 하는 기능을 가진 스마트 tv박스를 만들 계획입니다. 요즘 전기 절약이다 뭐다해서 저전력 전자기기에 관심이 많이 갑니다. (그런데 시간이 되면 물론 하겠지만 기약이 없네요. 취업도 안되고 그나마 공부를 다시 한다는 것이 행운임)

아래 동영상은 여기서 소개한 미니보드에 안드로이드를 설치해서 높은 화질의 동영상을 재생하는 것을 시연한 것입니다.



댓글을 인용하자면 cpu와 전체 성능이 너무 좋아서 고민이라고 합니다. ( 정말 탐이 날 정도네요. 갖고 싶어요.)

2013년 3월 20일 수요일

보통 사용자로서 리눅스가 대중화되지 못한다고 생각하는 이유

 리눅스는 누구나 이용할 수 있도록 만들어진 운영체제입니다. 비용을 들이지 않더라도 사용할 수 있는 열린 프로그램입니다. 하지만 이것뿐입니다. 정말 불편합니다. 전 windows 프로그래머도 아니고 그렇다고 유사한 직종에서 일하는 사람도 아닙니다. 단지 일상에서 알고 있으면 매우 편하고 돈이 절약되는 기술을 익히고 있었는데, 요즘은 리눅스였습니다.

 리눅스는 초보자가 사용하기에는 어렵고 지속해서 운영하기 어려운 운영체제입니다. GPL 라이센스만 아니라면 사용하는 사람이 없을 것으로 생각하고 있습니다. 한 마디로 표현하자면 리눅스는 컴퓨터를 쓰기만 하는 일반 사용자에게는 쓰레기 같은 운영체제가 아닐까 생각됩니다. 접근을 쉽게 할 수 없고 텍스트 타입이라 명령어 구문을 알아야 리눅스의 일반적인 사용이 가능합니다. 이러한 불편함은 리눅스의 쉬운 접근을 막고 대중에게 널리 쓰이지 못합니다.

 리눅스가 GPL라이선스라 해도 저는 다음과 같은 이유를 들어 리눅스의 대중화가 어렵다고 생각합니다.

 첫 번째, 일반 사용자에게 대중화되지 못해서 없어지거나 소수만 아는 지식으로 전락할 것입니다. 지식은 대중이 공감하고 전파되어 널리 사용되어야 발전하게 됩니다. 그런데 리눅스는 말만 열린 것이지 일반인에게는 전혀 접근할 수 없는 미지의 부분이 많고 일반인이 사용하기 위해서는 높은 수준의 지식이 있어야 합니다. 요즘은 많이 나아져서 설치 화면을 그래픽으로 나타내지만 그래도 뭔가 부족합니다.

 이렇게 봤을 때 MS Wndows가 사용자에게 얼마나 편리한 것인지 느끼게 되었습니다. 혹자는 "Windows도 처음에는 텍스트 기반이었다. 그리고 텍스트 기반을 쓰는 것이 더 빠르고 편하다." 라고 말할 수 있을 것입니다. 저도 1990년대 286을 쓰고 도스로 부팅하던 시절의 컴퓨터를 썼습니다. 하지만 제가 느끼는 MS Windows의 특성이라고 한다면 진짜 중요한 부분은 그래픽과 텍스트를 같이 써서 사용자의 이해를 높임으로써 고급정보에 쉽게 다가갈 수 있게 하였습니다. 예를 들면 msconfig이 대표적입니다.


 주로 웹 처럼 그림으로 설명하고 중요한 부분은 텍스트로 바꿀 수 있도록 하고 있습니다. 그리고 한 곳에 중요한 사항을 몰아둠으로써 사용자가 좀 더 쉽고 높게 접근할 수 있도록 배려했다는 것을 느꼈습니다. 이에 비해 리눅스는 아는 사람만이 접근할 수 있으며, 비슷한 설정이 너무 많습니다. 이것이 리눅스가 대중화되지 못한다고 생각되는 첫 번째 이유입니다.

 두 번째, 리눅스는 일반 사용자를 위한 정확하고 확실한 지원 창구가 없습니다. 영어로 말하면 피드백, 한국어로 말하자면 제품 지원 보증이라고 해석하는데, 왜 이렇게 해석하는지 아리송해하는 사람도 있을 것입니다. 물어보고 대답해 주는 행위라고 해야 하지 않느냐고 할 수 있는데, 어떤 제품에 대해서 물어보고 대답해 주고 하는 것은 단순한 대화의 의미를 떠나 그 제품에 맞는지 그리고 적용되는지에 대한 기술적 검토가 이뤄졌는다는 것입니다.

 제품 지원 보증을 할 수 있는 것은 확실한 지원 창구가 있는 제품을 말합니다. 그러나 리눅스는 전문가가 아닌 비전문가가 대답해 주기 때문에 틀린 경우가 많고 리눅스의 종류가 많아서 질문한 대답의 정확도가 매우 떨어집니다. 특히 Archlinux에 적용되는 문서는 거의 없어서 고생 좀 했습니다. 그리고 다른 사람들이 리눅스 포스팅한 부분을 살펴보면 자신은 실험해 보지도 않고 남에 것을 붙여 넣기한 것이 대부분이었습니다.

예를 들어 서버 시간 동기화 편만 봐도 리눅스 종류에 따라 먹히고 안 먹히는 명령어가 존재했습니다.


 세번째, 너무 많은 리눅스의 종류가 사용자에게는 행복일 수도 있겠지만, 초보자에게는 그저 높은 절벽일 뿐입니다. 제가 Windows 빠는 아닙니다. 그러나 Wndows는 사용자 중심으로 정말로 잘 만들었습니다. 그냥 따라가기만 하면 됩니다. 중요한 설정은 윈도우가 잡아내며 사용자가 원하지 않을 시에는 최적의 선택을 해 줍니다. 그에 비해 리눅스는 일일이 다 전부를 설치해야 합니다. 물론 금전적 차이를 들자면 리눅스의 승이겠지만 현실은 Windows가 잡고 있음을 알아야 합니다. 많은 종류의 리눅스가 선택의 기쁨이 아니라 다가 설 수 없는 벽이 되가고 있음을 알아야 합니다.

리눅스는 잘 꾸미면 정말 가치있고 효율성 100프로 1000프로인 os입니다. 그런데 그 효율성은 단지 아는 사람에게만 집중됩니다. 나머지에게는 이걸 연구할 시간도 없고 자기 것으로 만들 시간이나 기회, 그리고 능력이 없을 지도 모릅니다. 이것이 아무리 GPL이라고 해도 사용되지 않는다면 그저 방치된 페기물 쓰레기 일지도 모릅니다.

2013년 3월 14일 목요일

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

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

그누보드 파일 업로드 용량 늘기기(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

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' 처럼 접속하려면 여기을 참고하세요. (대신 단점도 있습니다.)


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 상에서 우클릭해서 폴더만들기를 하면 됩니다.)


포고 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 항목에서자신의 도메인을 입력하면 됩니다.


포고 서버 시간 동기화 하기(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                    -현재 시간이 나옵니다.

그누보드 설치하기 (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

MYSQL설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

http://www.nextlab.co.kr:8080/nw/를 100% 참고하였습니다.

참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아서systemctl로 대체합니다.


2. MYSQL설치하기

pacman -Sy mysql


3. MYSQL 설정

nano /etc/mysql/my.cnf
(윈도우 탐색기에서 열어도 됩니다)

(1) 기본 스토리지 엔진을 MyISAM으로 합니다.
[mysqld]항의 아래 default-storage-engine 값을 추가합니다.
default-storage-engine=MyISAM

(2) 네트워크 기능 활성화 설정
아래 skip-networking 앞에 주석(#)을 추가합니다.
#skip-networking
이제 SQLyog 같은 MYSQL 클라이언트툴로 접속이 가능합니다.


4. root 권한 설정

아래와 같이 mysql을 실행하면서 보안관련 설치를 하고 재실행합니다.
systemctl start mysqld && mysql_secure_installation
systemctl restart mysqld
(만약 이 때 fail이 떨어지면 /var/lib/mysql/alarm.err 로그 파일을 읽어서 원인을 확인하면 됩니다.)
mysql에 접속해서 root의 권한을 설정합니다. root비밀번호에는 SSH 비밀번호와 동일하게 입력합니다. 또 아래 명령어 구문에서 괄호가 나오는데 괄호의 따옴표 안에 비밀번호를 입력합니다. 저는 괄호밖인 password='여기'에 적어서 한동안 고생했습니다.

mysql -u root mysql -p
mysql>update user set password=password('root비밀번호') where user='root';
mysql>insert into user(host,user,password) values('%', 'root', password('root비밀번호'));
mysql>grant all privileges on *.* to root@"%" identified by '새비밀번호' with grant option;
mysql>flush privileges; 
mysql>exit

mysql 재실행합니다. (아래 mysql이 아니라 mysqld 입니다.)
systemctl restart mysqld

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 연동 작업까지 성공한 것입니다.

SAMBA 설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

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

samba는 MS WINDOWS에서 리눅스의 폴더와 파일에 접근할 수 있도록 하는 프로그램입니다. 그리고 참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아 systemctl로 대체합니다.


2. samba 설치하기

pacman -Sy samba avahi


3. samba 설정

nano /etc/samba/smb.conf
'nano' 라고 하는 리눅스용 편집기를 이용해서 smb.conf를 새로 생성합니다. MS Windows 계열의 메모장 같은 기능을 합니다. 사용법은 저장시 ctrl+o, 엔터 그리고 나가기는 ctrl+x입니다. 그리고 항목 이동시 마우스가 되지 않고 키보드 커서로 이동해야 합니다.

nano에 다음의 내용을 copy & paste 합니다. (putty에서는 오른쪽 마우스 클릭이 paste 입니다.)

[global]
workgroup = WORKGROUP
server string = ALARM
netbios name = ALARM
security = user
null passwords = yes
map to guest = bad user
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
disable netbios = yes
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
[Pogoplug]
path = /
read only = no
public = yes
writable = yes
guest ok = no

smbpasswd -a root
smaba 패스워드를 새로 지정합니다. (왠만하면 비번은 SSH비번과 통일하는 것이 좋아요)


4. windows 7에서 에러해결법

nano /etc/security/limits.conf

설정 맨 밑에 아래 내용을 추가합니다.
*               -       nofile          16384

5. samba 접속하기

systemctl start smbd
samba를 실행해야 window에서 접속할 수 있습니다. 또 samba 프로세스 이름이 'samba'에서 'smbd'로 바뀌었습니다. 폴더 주소창에 \\Pogoplug의 IP 또는 도메인을 입력하고 엔터를 치면 접속됩니다.

메모리 스왑영역 설정 및 Pacman 서버 리스트 변경(POGOPLUG SERIES 4용)

1. 시작하기 전에...

메모리 스왑은 http://blog.acu.pe.kr/42
SD메모리 스왑설정은 http://afrivirt.wordpress.com/2010/06/04/4/
pacman 서버변경은 http://comfixlog.tistory.com/14를 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux가 설치되었을 때를 기준으로 설명합니다.


2. 메모리 스왑의 필요성

POGOPLUG SERIES 4는 낸드와 램 용량이 각각 128MB/128MB으로 작아서 프로그램을 많이 실행하게 되면 버벅거리게 됩니다. 그래서 저장장치에 스왑영역을 설정하여 부족한 낸드와 램 용량을 보완합니다. 한 마디로 스왑은 MS windows 에서 설정되는 가상메모리라고 생각하시면 됩니다. 그리고 스왑영역은 실시간으로 읽기 때문에 빠른 저장장치에 스왑을 만들어야 하는데, 앞에서 빠른 저장장치를 쓰라는 이유가 이런 이유이기도 합니다.


3. 스왑영역 설정하기 (512MB 정도)

dd if=/dev/zero of=/swapfile bs=1M count=512 # 기본 드라이브에 스왑파일을 생성
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfiledufhugudfuighdfguidhrdighidf # 스왑메모리를 실행합니다.

dd if=/dev/zero of=/swapfile bs=1M count=512 - 뜻은 기본 경로의 디스크에 512메가를 스왑으로 지정하겠다는 것입니다.
chmod 600 /swapfile - 권한을 주겠다는 뜻
mkswap /swapfileds5- swapfile을 만들어라


3-1. 스왑영역을 삭제하고 싶다면?

스왑영역을 삭제하려는 이유는 빠른 파티션이나 독립된 디스크에 설치하려고 하는 이유, 또는 스왑영역을 확장하거나 축소하기 위해서 삭제하려고 하는 경우도 많습니다. 이를 위해서는 먼저 스왑영역을 삭제해야 합니다.
(이 명령어는 기본 경로의 메모리나 디스크에 설정한 스왑영역을 삭제할 때만 됩니다. 그 외에 추가된 sd메모리나 하드디스크 같은 곳에 생긴 스왑영역은 삭제할 수 없습니다.)

swapoff /swapfile - 스왑영역 사용을 중지 (스왑파일명을 입력하면 됩니다.)
rm /swapfilesdf55 - 스왑파일을 지움


3-2. SD메모리에 스왑영역 만들기 및 삭제

 포고플러그 시리즈 4에서 스왑 설정은 독립된 디스크에 설치하라고 많이 권합니다. 왜냐하면, 스왑영역은 실시간으로 읽기 때문에 메인 저장소(저같은 경우 HDD)에서 분리해 줄 경우 전력 낭비를 막을 수 있고 메인 저장소에 꼭 필요한 엑세스만을 해 주기 때문에 내부, 외부에서 빠르게 접속할 수 있습니다. 또한, HDD는 SD메모리 보다 전력소모가 큰 이유 때문에 분리해 주기도 합니다.

우선 스왑 파티션을 만듭니다.
3-2-1. 우선 메모리 이름을 확인합니다.
          fdisk -l                         # 확인된 장치이름이 mmcblk0p1임
3-2-2. sd메모리에 스왑 영역 전용의 파티션을 만듭니다.
          fdisk /dev/확인된 장치이름
3-2-3. p, d, n, p, 1, 엔터, 엔터, t, l, 82, w 을 차례대로 입력합니다.
3-2-4. 'fdisk -l /dev/확인된 장치이름'을 입력합니다.


그 다음 스왑영역을 만듭니다.
3-2-5. 'mkswap /dev/확인된 장치이름'을 입력합니다.
3-2-6. 'mkswap -f /dev/확인된 장치이름'을 입력합니다.


스왑영역을 사용하도록 설정합니다.
3-2-7. 'swapon -p 1 /dev/확인된 장치이름'을 입력합니다.
3-2-8. 'swapon -s /dev/확인된 장치이름'을 입력합니다.
마지막으로 free명령을 써서 스왑영역이 사용되는지 확인합니다.


스왑영역을 지웁니다.
3-2-09. swapon -s를 입력합니다.
3-2-10. 'swapoff /dev/확인된 장치이름'을 입력합니다.
3-2-11. swapon -s를 입력합니다.


4. pacman 서버 변경 및 추가의 필요성

 pacman이란 Archlinux를 업데이트 하거나 실행 프로그램을 자동으로 설치해 주는 프로그램으로 서버를 통해 설치 프로그램 관련 데이터를 받습니다. 이 데이터를 받는 서버가 몇개 있는데, 현재는 위치기반으로 중국서버를 자동으로 연결하고 있습니다. 하지만 중국서버는 불안정해서 자주 다운되고 속도가 느린 경우가 많습니다. 이런 이유로 pacman의 기본 서버 설정을 자동 위치기반에서 미국이나 다른 빠른 서버로 고정해 주는 것입니다. (바꾸고 나서 속도의 신세경을 경험했음. 중궈 서버 나~빠요.)

nano /etc/pacman.d/mirrorlist

## Geo-IP based mirror selection and load balancing

# Server = http://mirror.archlinuxarm.org/arm/$repo ← #을 추가합니다.

(거의 끝 부분)

## California

 Server = http://ca.us.mirror.archlinuxarm.org/arm/$repo ← #을 제거합니다.
https://www.archlinux.org/mirrorlist/

2013년 3월 10일 일요일

Archlinux에서 필요한 기본 실행명령어와 참조사이트(POGOPLUG SERIES 4용)

1. 시작하기 전에...

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

 '포고플러그 시리즈 4에 적용되는 Archlinux' 기초 명령어를 모아 봤습니다. 이 명령어만 알아도 포고 4에 Archlinux를 설치하고 기타 프로그램을 설치할 수 있습니다. 또한 리눅스에서 명령어를 입력할 때는 띠어 쓰기가 중요합니다. 띠어쓰기의 차이가 명령어를 실행되고 안되고의 차이를 만듭니다.


프로그램 설치

pacman -Sy 프로그램 이름
pacman -S 프로그램 이름 (vsftp설치 시)


프로그램 제거

pacman -Rsn 프로그램 이름


프로세스 실행명령어 (rc.d 명령이 안될 때는 systemctl로 대체하세요.)

systemctl start 프로세스 이름


프로세스 실행중단(rc.d 명령이 안될 때는 systemctl로 대체하세요.)

systemctl stop 프로세스 이름


프로세스 재시작어어 (rc.d 명령이 안될 때는 systemctl로 대체하세요.)

systemctl restart 프로세스 이름


디스크확인 및 파티션 상태

fdisk -l


디스크 상태보기(파티션이나 폴더 상태)

df -h


파일제거

rm -rf 파일명 - (삼바에서 접속해서 지워도 됩니다. 그냥 windows에서 파일 마우스로 선택하고 del키 누르면 됩니다.ㅎㅎㅎ 삼바에서는 거의 필요가 없어요)


ext3로 디스크나 메모리를 포맷

mkfs.ext3 /dev/장치명 - (archlinux가 설치 후 파티션으로 나눠진 부분이나 새로 마운트 된 메모리, 디스크를 포맷할 때 사용함)


메모리 확인

free - (램이나 스왑영역의 메모리량과 사용량 등을 보여줍니다.)


재부팅

/sbin/reboot 



다음은 참조 사이트입니다. 찾아가 보세요.

사이트 설명
ArchLinuxARM Archlinux의 설치 원본사이트
이PD의 포고서버 Archlinux를 설치할 때 반드시 참조해야 하는 사이트
아쿠의 노멀로그 꼭 필요한 설치 명령어만 나열되어 있음
Archwiki MySQL MySQL에서 비번 모를 때 사용하는 명령어 모음
까먹지말자! MySQL에서 데이터베이스 삭제 시 필요한 명령어 제공
pogoplug user 고급 설정 설명이 자세히 나온 사이트

포고에 아크를 입히다.2 (포고플러그 시리즈 4)

1. 시작하기 전에...

Archlinuxarm, 이PD의 포고서버를 참고하였습니다.  포고플러그에 리눅스 설치는 기기가 고장날 수 있는 위험성이 있으며, 이 문서는 포고플러그 시리즈 4에 Archlinux 설치할 때를 기준으로 설명합니다.

 이제부터는 SSH상에서 Archlinux를 설치하는 방법을 설명하겠습니다. 캡쳐의 한계가 있어서 글로 대체합니다. 그리고 putty는 오른쪽 마우스 클릭이 붙여넣기 기능 하며, 명령어 입력에는 띠어쓰기가 중요합니다.




 3-1. 포고플러그의 내부 프로세스를 모두 중단합니다.

 killall hbwd


3-2. 파티션을 생성합니다.

 /sbin/fdisk /dev/sda

후에 화면에 차례대로 O엔터, P엔터, N엔터, P엔터, 1엔터, W엔터 칩니다. 이 명령어들은 파티션을 하나로 잡습니다. 이 명령에서 숫자 1은 파티션 개수를 의미합니다.
(포고플러그 4의 Archlinux에서는 HDD의 용량 표시를 GB가 아닌 실린더 단위, MB, KB로 표시합니다.)


 3-3. ext3 파일 시스템 포맷으로 디스크를 포맷합니다.

cd /tmp
wget http://archlinuxarm.org/os/pogoplug/mke2fs # 시간이 조금 걸립니다.
chmod +x mke2fs
./mke2fs -j /dev/sda1 yhfyuuyuyuuguigguguyuuig # 실행시간은 디스크에 따라 다릅니다.
mkdir alarm
mount /dev/sda1 alarm


3-4. ArchLinux를 다운로드하는 동시에 설치합니다.

cd alarm
wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
tar -xzvf ArchLinuxARM-armv5te-latest.tar.gz # 시간이 오래 걸립니다.

rm ArchLinuxARM-armv5te-latest.tar.gz
sync



3-5. 드라이브를 언마운트합니다.

cd .. umount alarm


3-6. 부트를 설치합니다.  

여기가 모든 설치과정 중에 가장 중요합니다. 부팅을  할수 있도록 해주는  프로그램을 설치해 주는 단계인데, 잘못하고 넘어가면 Archlinux를 처음부터 다시 설치해야 하는 불상사가 생깁니다. 혹시 부트 설치과정 중에 에러가 생기지 않았나 확인하세요. 저는 '에러 메세지'를 '설치완료 메세지'로 착각해서 두번이나 다시 설치하는 짓을 했습니다. (뭐 덕분에 이런 글도 쓰지만요...)

cd /tmp
wget http://archlinuxarm.org/os/ppv4/ppv4-install.sh
chmod +x ppv4-install.sh
./ppv4-install.sh



3-7. 재부팅합니다.

 /sbin/reboot

그럼 SSH접속이 끈기고 다시 부팅되면 재로그인 합니다.

login as: root
root@192.168.1.3's password: root를 입력합니다.
Last login:


3-8. 비밀번호를 바꿉니다.

passwd
새로운 패스워드를 설정하고 엔터를 누릅니다. 그러면 설정됩니다.


3-9. 드라이브 연결시 automount가 되도록 합니다.

pacman -Sy udev-automount


3-10. pacman을 업그레이드 합니다.

pacman -Syu

포고에 아크를 입히다.1 (포고플러그 시리즈 4)

1. 시작하기 전에...

 인터넷에 보면 E02버전이나 B01버전의 archlinux 설치법은 나와있어도 포고플러그 시리즈 4에 대한 설치법은 안나와 있습니다. 그 이유를 추측하자면 E02모델에 비해 낸드나 램의 용량이 적고 CPU 클럭이 작아서 그런것이 아닌가 합니다. 그래서 더더욱 '포고플러그 시리즈 4' 를 선택안하는 것으로 생각합니다.

2. 포고플러그 시리즈 4의 장점

모든 사이트에서 말하지만, 포고에 리눅스를 설치하면 기기가 고장날 수 있습니다. 하지만 포고플러그 시리즈 4는 초보자가 막 다루어도 벽돌이 안되고 초기화가 매우 쉽습니다. E02모델 같은 경우 스크립트를 짜고 잘못돠면 sata부팅을 해야되는데, 포고플러그 시리즈 4는 USB메모리에 폴더만 만들고 부팅시키면 끝입니다. 또 하나의 장점이라고 한다면 HDD 인식을 잘합니다. E02모델의 인식오류 같은 증상은 없었습니다. 부족한 낸드와 램용량은 HDD에 스왑영역을 설정하면 됩니다. 대신 빠른 저장장치가 필요합니다. (5400RPM이면 괜찮음) 초보자에게는 시리즈 4를 추천합니다.
파일 이동속도가 빨라졌다는 게 가장 장점인 것 같습니다.

 그리고 리눅스의 토렌트 프로그램인 트랜스미션은 포고플러그의 활용을 더욱 높여 주었습니다. (7w 저전력으로 마구마구 받아주마ㅎㅎㅎ)


 또한 공짜 웹서버를 이용할 수 있게 되었는데, 웹서버 개념도 모르던 제가 ArchLinux를 설치하면서 웹서버의 하드웨어와 소프트웨어까지 구성하게 되었습니다. 활용도가 굉장히 좋습니다. (외부 다운로드 링크도 따로 뺄 수 있구요)

아직 초기단계입니다.

 그러면 이제부터 간략하게 포고플러그에 ArchLinux를 설치할 때 필요한 것들과 절차를 알아보겠습니다. (포고플러그에 리눅스 설치는 기기가 고장날 수 있는 위험이 있습니다.)

 저는 포고플러그 4에 ArchLinux를 설치할 때 과정을 크게 3가지로 나눕니다.
  1. SSH 접속 프로그램 다운받기
  2. SSH 접속 설정
  3. SSH 환경에서 명령어 입력으로 ArchLinux를 설치하기

1. SSH 접속 프로그램은 여기서 받으세요. (putty 다운링크)

2. SSH 접속 설정

  2-1. 포고플러그 홈피에서 SSH설정을 합니다.(물론 포고에 회원가입을 합니다.)

1. 로그인 후 security에서 위에 체크항목을 체크합니다.
2. 설정창에 비밀번호를 입력하면 포고의 SSH가 활성화 됩니다.

  2-2. putty를 실행하고 ip를 입력하면 됩니다.

빨간 동그라미가 표시된 곳에 입력하고open을 클릭합니다.

  2-3. 그럼 다음과 같은 화면이 나오는데, 이러면 SSH접속이 성공한 것입니다.

  

다음장에...

2013년 3월 2일 토요일

포고플러그(pogoplug)에 많이 실망하다.(최악입니다.)

 집에서 노트북을 쓰다 보면 데이타 저장공간이 매우 부족해짐을 느낌니다. 이번에 SSD를 장착해서 여분의 HDD도 생기고 이래저래 고민이 되었습니다. 그러다가 생각한 것이 네트워크 외장하드, NAS입니다. NAS는 미니 서버라고 생각하면 되는데, 가격의 형성은 CPU에 따라 천차만별로 달라집니다. NAS를 얼마나 많이 활용하냐는 CPU능력과 지원 소프트웨어에 따라 달라집니다. 지원 소프트웨어가 많아도 CPU능력이 작으면 소프트웨어를 활용하기 어렵기 때문입니다.
nas는 cpu와 지원 소프트웨어에 따라 활용도가 달라집니다.

CPU성능이 좋으면 가격도 올라가기 때문에 적절한 선에서 선택한 것이 포고플러그(pogoplug)였습니다. 그런데 한 마디로 실망했습니다.
(포고를 선택한 이유는 13~4만원 대 국내 NAS와 CPU성능 면에서는 비슷하다는 판단을 했기 때문입니다.)

최소한 POGOPLUG에 바란 것은 딱 세 가지 였습니다. (개조하지 않고 혼자서 쓸 경우)
  1. 내부 네트워크에서 공유기 한계치의 속도를 일정하게 뽑아 줄 것. (여기서 말하는 한계치는 100Mbps)
  2. 내부 네트워크에서 다른 프로그램의 저장 공간으로 활용할 수 있을 것. (컴퓨터에서 토렌트 프로그램을 실행하고 파일이 저장되는 곳만 외장 하드에 지정하는 것을 말함 )
  3. 외부에서 접속이 쉬운 인터페이스에 접속 후 파일 다운/업 속도를 80Mbps로 보장 할 것.

그런데 정말 실망입니다. 내부 네트워크에서 파일을 옮길 시 속도가 들쑥날쑥합니다. (5Mbps~11.3Mbps) 특히 단일 파일을 옮길 때는 10MB/s로 나오는데, 다수의 묶인 파일을 지정해서 이동하면 4MB/s ~ 5MB/s로 뚝 떨어집니다. PC에서 포고플러그로 다수 파일을 이동하면 4MB/s ~ 5MB/s 대로 떨어집니다.(PC→포고플러그 ; 5MB/s)
다수 파일을 pc에서 포고로 이동하는 속도입니다.

 그리고 토렌트 프로그램의 파일을 포고플러그 드라이브에 저장하면 토렌트 속도가 11MB/s 나오던 것이 1.5MB/s로 뚝 떨어집니다. 그리고 다운을 받다가 속도가 떨어지더니 토렌트 프로그램에서 'write to disk;지정된 경로를 찾을 수 없습니다'가 뜨면서 다운로드가 중단됩니다.



 또한, 외부에서 접속 시 속도가 안나옵니다. 외부에서 접속 시 그림파일 표시 및 동영상 재생? 바라지도 않습니다. 파일을 다운로드 받고 업로드 할때 빠르기만 하다면 이것으로 만족합니다. 그런데 외부 접속속도도 제대로 나오지 않고 느립니다. (유저들 말로는 외부에서 접속할 때는 포고플러그의 회사 서버를 거치기 때문에 느리다고들 합니다.)

포고플러그가 외부에서 접속 시 포고플러그 서버를 거치지 않고, 공유기를 통한 직접 접속기능이 있었다면 아마 괜찮게 쓸 것 같습니다. 포고플러그에 문의 메일과 제안 메일을 보냈지만 별 소용이 없었습니다. 영어로 샬라샬라하지만 별소용 없었습니다.
(차라리 라즈베리 파이를 살 걸 그랬나?)

요약하면...

1. 내부 네트워크 속도가 일정하지 않다.
2. 토렌트 저장 드라이브로 활용이 불가능하다.
3. 외부 접속 속도가 느리고 그림이나 동영상 재생? 안된다.