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월 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