이 글은 NAS에서 발생한 시스템 에러 로그를 SMS로 전송 받는 것과 NAS를 SMS 서버로 만드는 것에 대한 것입니다.

사용된 장비: DS-209+II
사용된 SMS 서비스: LG 데이콤 아이모리(http://www.imory.co.kr/), LGT 무료 부가 서비스(http://lgtelecom.com)

첨부파일: https://isulnara.com/myAPP/SimpleSMS/sms.zip (sms.lgt, sms.xpeed, sendmsg.php)

0. 시작하기 전에

무료 SMS를 사용하기 위해 아래 서비스를 사용하였습니다.
– LG 데이콤의 아이모리를 이용하였습니다. XPEED 사용자는 부가서비스를 신청(무료)하면 무료로 월 300건(1일에 20건)을 이용할 수 있습니다.
– LG Telecom의 부가 서비스를 이용하였습니다. 가입자의 경우 월 50건을 무료로 이용할 수 있습니다.
다른 SMS 서비스 업체를 이용하시려면 첨부된 파일 중 sms 스크립트를 직접 수정하여야 됩니다.
위에 언급된 서비스를 모두 이용 가능할 경우 하나의 서비스에서 보낼 수 있는 건수를 초과하면 다른 서비스를 이용하여 전송하게 됩니다.

1. curl 설치

이 부분은 최신 펌웨어에서는 기본으로 설치되어 있어서 생략 가능합니다.(2010/03/28)

먼저 curl의 설치가 필요합니다. (당연히 아래 명령을 이용하기 위해서는 bootstrap이 설치 되어 있어야 겠죠. https://isulnara.com/tt/201 참조)

[root@fs:/volume1/tmp]# ipkg install libcurl

2. /usr/syno/etc/php.ini 수정

SMS 전송 스크립트를 실행(php에서 exec 명령 사용)하기 위해서 아래와 같이 수정합니다. (빨간 색으로 처리된 것이 수정된 부분입니다)

#safe_mode_exec_dir = /usr/syno/bin
safe_mode_exec_dir =

변경된 사항을 적용하기 위해서 웹서버를 재시작해야 됩니다. 관리자 페이지에서 웹서비스를 재시작 시키면 됩니다.(홈>>네트워크 서비스>>웹 서비스 – Web Station 활성화 체크 해제 ->확인 -> 다시 체크 -> 확인)

3. 프로그램 설치 및 설정

첨부된 sms.lgtsms.xpeed를 텍스트 에디터에서 열어서 붉은 색 부분을 자신의 아이모리 계정 정보로 수정합니다. 두 서비스 중 하나면 사용할 경우에는 해당되는 파일만 수정하면 됩니다.
# 사용자 ID
UID=YOUR_ID

# 암호
PWD=YOUR_PASSWORD

/usr/local/sms
폴더를 생성하고, 수정된 sms.lgtsms.xpeed를 그 폴더로 복사하고 실행 권한을 줍니다.
[root@fs:/volume1/tmp]# mkdir -p /usr/local/sms
[root@fs:/volume1/tmp]# cp sms.* /usr/local/sms/
[root@fs:/volume1/tmp]# chmod 705 /usr/local/sms/sms*
php에서 sms.lgt
sms.xpeed를 실행할 수 있게 아래 명령을 실행합니다.(이 명령은 펌웨어 업그레이드 후에도 실행해야 SMS 서비스를 정상적으로 이용할 수 있습니다)
[root@fs:/volume1/tmp]# ln -s /usr/local/sms/sms.lgt /usr/syno/bin/sms.lgt
[root@fs:/volume1/tmp]# ln -s /usr/local/sms/sms.xpeed /usr/syno/bin/sms.xpeed
첨부된 sendmsg.php의 내용 중
붉은 색 부분을 수정합니다.(계정 정보는 위의 아이모리 및 LGT 계정 정보와는 상관없는 것으로 NAS 또는 자신만 접근하기 위한 정보임)
// 본 스크립트에 접근을 허용하기 위한 사용자 계정 설정
$uid = ‘YOUR_ID‘;
$pwd = ‘YOUR_PASSWORD‘;

// 보내는 사람 전화번호 기본값
$sender = ‘01012345678‘;

// 아래에서 자신이 이용할 수 있는 서비스는 주석을 해제(//를 삭제)하시기 바랍니다.
$sms = array(   ”
                    //, ‘/usr/syno/bin/sms.xpeed’       // XPEED , 월 300건(1일 20건) 무료
                    //, ‘/usr/syno/bin/sms.lgt’            // LGTelecom, 월 50건 무료
                  );

수정된 sendmsg.php를 웹에서 접근 가능한 디렉토리(/volume1/web/sms/)에 올립니다.
[root@fs:/volume1/tmp]# mkdir /volume1/web/sms
[root@fs:/volume1/tmp]# cp sendmsg.php /volume1/web/sms


4. 관리자 페이지에서 SMS 알림 설정

관리자 페이지의 [홈 >> 시스템 >> 공지] 메뉴에서 SMS 탭을 선택하고, ‘추가’ 버튼을 클릭하면 아래와 같은 화면이 나옵니다.
공급자 이름에는 아무것이나 입력하시고, SMS URL에는 위에서 설정한 sendmsg.php가 위치한 URL을 다음과 같은 형식으로 입력합니다.
http://nas 아이피/sms/sendmsg.php?uid=myid&pwd=mypwd&from=010&to=019&msg=hi
위에 URL에서 파라미터는 신경 쓰지 않아도 됩니다. 각 파라미터에 대한 값은 자동으로 들어가게 되니까요.
NAS의 아이피 및 sendmsg.php의 경로만 설정하면 됩니다.
사용자 삽입 이미지
위 화면에서 ‘다음’을 클릭하면 아래와 같은 화면이 나옵니다.
매개변수 설정하는 화면인데요.. 각 매개변수는 아래 화면에서와 같이 설정하면 됩니다.
이 부분에 버그가 있어서 콤보박스에서 해당 항목을 선택할 경우 잘 선택되지가 않습니다. 이때는 에디터 창에다 직접 입력하세요. 예를 들면 uid 옆의 입력 창에서 ‘사’를 입력하고 화살표 아래 방향 키를 눌러서 ‘사용자 이름’을 선택하고 엔터키를 치면 자동으로 설정됩니다.
사용자 삽입 이미지
위 화면에서 “종료” 버튼을 클릭하시고, 아래 화면에서 “SMS 서비스 제공 업체”에 위에서 추가한 것으로 선택을 하고, “사용자 이름”과 “패스워드”에 sendmsg.php에서 설정한 계정 정보를 입력합니다. 전화번호는 자신의 전화번호를 입력하면 되겠죠.
“확인” 버튼을 클릭하여  변경된 정보를 저정하고, “테스트 SMS 메시지 전송” 버튼을 클릭하여 테스트 메시지가 전송되는지 확인합니다. 메시지가 잘 오면 모두 정상적으로 설정이된 것이고, 안 온다면 처음부터 다시 살펴보세요^^
사용자 삽입 이미지
이상으로 시스템 에러를 SMS로 받아보는 모든 설정을 마쳤습니다.

참고로 SMS 알림이 발생하는 상황은 아래와 같습니다.

# 볼륨이 충돌합니다. (내부 볼륨, DX5/RX4 또는 시스템 볼륨 포함)
# 볼륨이 저하되었습니다. (내부 볼륨, DX5/RX4 또는 시스템 볼륨 포함)
# DX5/RX4가 더 이상 존재하지 않습니다.
# 내장 디스크가 충돌합니다.
# DDNS 등록에 실패했습니다.
# UPS 연결이 끊겼습니다.
# 내부 팬이 멈췄습니다.
# DX5/RX4 팬이 멈췄습니다.
# 과열로 인해 시스템이 종료되었습니다.

5. 보너스

아래 화면은 위에서 구축한 SMS 서비스를 이용하여 Window$에서 간단히 문자 메시지를 보내는 프로그램(SimpleSMS)입니다.

사용자 삽입 이미지자신의 NAS에 있는 sendmsg.php를 이용하여 SMS를 보내는 프로그램입니다.

현재 여러 무료 SMS 제공 업체를 이용한 통합 SMS 전송 프로그램들이 있는데요.. 혹시나 계정 정보가 누출되지 않을까 걱정이 되기도 하죠..
SimpleSMS는 자신이 구축한 서버를 이용하니 혹시 계정 정보가 누출되지 않을까 하는 걱정은 안해도 됩니다.

다운로드: https://isulnara.com/myAPP/SimpleSMS/SimpleSMS.exe

이 SimepleSMS를 이용하기 위해서는 먼저 “설정” 버튼을 클릭하여 다음과 같이 설정합니다.

사용자 삽입 이미지위에서 구축한 자신의 SMS 서버 정보를 설정합니다.

서버에는 sendmsg.php의 URL을 입력합니다. 이 팁을 그대로 따라 했을 경우는
http://yourdomain or ip/sms/sendmsg.php가 됩니다.

아이디 및 암호에는 sendmsg.php에서 설정한 계정 정보를 입력합니다.

이번에 구축한 SMS 서비스를 이용하기 위한 다른 방법으로는

쉘에서 직접 명령 내리기 – “/usr/local/sms/sms.xpeed 보내는사람번호 받는사람번호 메시지” 형식으로 명령을 내려서 문자를 전송할 수도 있습니다. NAS 시작 시 문자 보내기 등에 응용할 수 있겠죠.
웹에서 HTML 화면 구성해서 SMS 보내기 등에 응용할 수 있습니다.

이상으로 로그를 SMS로 받아오는 것과 간단히 나만의 SMS 서버를 구축하여 보았습니다.

아이모리나 LGT의 서비스를 사용할 수 없는 분들은 다른 무료 서비스에 적용해보세요..