nas DS209+II SimpleSMS sms
이 글은 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

<div style="margin-left: 40px;">
  <span style="font-size: 4pt;">●</span> <span style="background-color: rgb(250, 255, 169);">/usr/local/sms</span>에<br /> 폴더를 생성하고, 수정된 <span style="background-color: rgb(255, 218, 237);">sms.lgt</span>와 <span style="background-color: rgb(255, 218, 237);">sms.xpeed</span>를 그 폴더로 복사하고 실행 권한을 줍니다.
</div>

<blockquote>
  <div style="padding: 10px; background-color: rgb(228, 228, 228);">
    [root@fs:/volume1/tmp]# mkdir -p /usr/local/sms<br />[root@fs:/volume1/tmp]# cp sms.* /usr/local/sms/<br />[root@fs:/volume1/tmp]# chmod 705 /usr/local/sms/sms*
  </div>
</blockquote>

<div style="margin-left: 40px;">
  <span style="font-size: 4pt;">●</span> php에서 <span style="background-color: rgb(255, 218, 237);">sms.lgt</span>와<br /> <span style="background-color: rgb(255, 218, 237);">sms.xpeed</span>를 실행할 수 있게 아래 명령을 실행합니다.(<span style="color: rgb(255, 0, 0);">이 명령은 펌웨어 업그레이드 후에도 실행해야 SMS 서비스를 정상적으로 이용할 수 있습니다</span>)
</div>

<blockquote>
  <div style="padding: 10px; background-color: rgb(228, 228, 228);">
    [root@fs:/volume1/tmp]# ln -s /usr/local/sms/sms.lgt /usr/syno/bin/sms.lgt<br />[root@fs:/volume1/tmp]# ln -s /usr/local/sms/sms.xpeed /usr/syno/bin/sms.xpeed
  </div>
</blockquote>

<div style="margin-left: 40px;">
  <span style="font-size: 4pt;">●</span> 첨부된 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>의 내용 중<br /> 붉은 색 부분을 수정합니다.(계정 정보는 위의 아이모리 및 LGT 계정 정보와는 상관없는 것으로 NAS 또는 자신만 접근하기 위한 정보임)
</div>

<blockquote>
  <div style="padding: 10px; background-color: rgb(228, 228, 228);">
    // 본 스크립트에 접근을 허용하기 위한 사용자 계정 설정<br />$uid = &#8216;<span style="color: rgb(255, 0, 0);">YOUR_ID</span>&#8216;;<br />$pwd = &#8216;<span style="color: rgb(255, 0, 0);">YOUR_PASSWORD</span>&#8216;;</p> 
    
    <p>
      // 보내는 사람 전화번호 기본값<br />$sender = &#8216;<span style="color: rgb(255, 0, 0);">01012345678</span>&#8216;;
    </p>
    
    <p>
      <span style="color: rgb(0, 153, 102);">// 아래에서 자신이 이용할 수 있는 서비스는 주석을 해제(//를 삭제)하시기 바랍니다.</span><br />$sms = array( &nbsp; &#8221;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: rgb(255, 0, 0);">//<span style="color: rgb(0, 0, 0);">, &#8216;/usr/syno/bin/sms.xpeed&#8217; &nbsp;&nbsp; &nbsp;&nbsp; // XPEED , 월 300건(1일 20건) 무료</span></span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: rgb(255, 0, 0);">//<span style="color: rgb(0, 0, 0);">, &#8216;/usr/syno/bin/sms.lgt&#8217; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // LGTelecom, 월 50건 무료</span></span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );</div> </blockquote> 
      
      <div style="margin-left: 40px;">
        <span style="font-size: 4pt;">●</span> 수정된 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>를 웹에서 접근 가능한 디렉토리(/volume1/web/sms/)에 올립니다.
      </div>
      
      <blockquote>
        <div style="padding: 10px; background-color: rgb(228, 228, 228);">
          [root@fs:/volume1/tmp]# mkdir /volume1/web/sms<br />[root@fs:/volume1/tmp]# cp sendmsg.php /volume1/web/sms
        </div>
      </blockquote>
      
      <p>
        <span style="background-color: rgb(201, 237, 255);"><br /></span>
      </p>
      
      <h4>
        <span style="background-color: rgb(201, 237, 255);">4. 관리자 페이지에서 SMS 알림 설정</span>
      </h4>
      
      <p>
        관리자 페이지의 [홈 >> 시스템 >> 공지] 메뉴에서 SMS 탭을 선택하고, &#8216;추가&#8217; 버튼을 클릭하면 아래와 같은 화면이 나옵니다.<br />공급자 이름에는 아무것이나 입력하시고, SMS URL에는 위에서 설정한 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>가 위치한 URL을 다음과 같은 형식으로 입력합니다.<br /><span style="color: rgb(255, 0, 0);">http://nas 아이피/sms/sendmsg.php</span>?uid=myid&pwd=mypwd&from=010&to=019&msg=hi<br />위에 URL에서 파라미터는 신경 쓰지 않아도 됩니다. 각 파라미터에 대한 값은 자동으로 들어가게 되니까요.<br />NAS의 아이피 및 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>의 경로만 설정하면 됩니다.<br /><img loading="lazy" decoding="async" src="/wp-content/uploads/1/526637565.gif" class="aligncenter" width="650" height="364" alt="사용자 삽입 이미지" /><br />위 화면에서 &#8216;다음&#8217;을 클릭하면 아래와 같은 화면이 나옵니다.<br />매개변수 설정하는 화면인데요.. 각 매개변수는 아래 화면에서와 같이 설정하면 됩니다.<br />이 부분에 버그가 있어서 콤보박스에서 해당 항목을 선택할 경우 잘 선택되지가 않습니다. 이때는 에디터 창에다 직접 입력하세요. 예를 들면 uid 옆의 입력 창에서 &#8216;사&#8217;를 입력하고 화살표 아래 방향 키를 눌러서 &#8216;사용자 이름&#8217;을 선택하고 엔터키를 치면 자동으로 설정됩니다.<br /><img loading="lazy" decoding="async" src="/wp-content/uploads/1/884842492.gif" class="aligncenter" width="650" height="365" alt="사용자 삽입 이미지" /><br />위 화면에서 &#8220;종료&#8221; 버튼을 클릭하시고, 아래 화면에서 &#8220;SMS 서비스 제공 업체&#8221;에 위에서 추가한 것으로 선택을 하고, &#8220;사용자 이름&#8221;과 &#8220;패스워드&#8221;에 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>에서 설정한 계정 정보를 입력합니다. 전화번호는 자신의 전화번호를 입력하면 되겠죠.<br />&#8220;확인&#8221; 버튼을 클릭하여&nbsp; 변경된 정보를 저정하고, &#8220;테스트 SMS 메시지 전송&#8221; 버튼을 클릭하여 테스트 메시지가 전송되는지 확인합니다. 메시지가 잘 오면 모두 정상적으로 설정이된 것이고, 안 온다면 처음부터 다시 살펴보세요^^<br /><img loading="lazy" decoding="async" src="/wp-content/uploads/1/391077140.gif" class="aligncenter" width="650" height="454" alt="사용자 삽입 이미지" /><br />이상으로 시스템 에러를 SMS로 받아보는 모든 설정을 마쳤습니다.
      </p>
      
      <p>
        참고로 SMS 알림이 발생하는 상황은 아래와 같습니다.
      </p>
      
      <div style="margin-left: 40px;">
        # 볼륨이 충돌합니다. (내부 볼륨, DX5/RX4 또는 시스템 볼륨 포함)<br /># 볼륨이 저하되었습니다. (내부 볼륨, DX5/RX4 또는 시스템 볼륨 포함)<br /># DX5/RX4가 더 이상 존재하지 않습니다.<br /># 내장 디스크가 충돌합니다.<br /># DDNS 등록에 실패했습니다.<br /># UPS 연결이 끊겼습니다.<br /># 내부 팬이 멈췄습니다.<br /># DX5/RX4 팬이 멈췄습니다.<br /># 과열로 인해 시스템이 종료되었습니다.
      </div>
      
      <h4>
        <span style="background-color: rgb(201, 237, 255);">5. 보너스</span>
      </h4>
      
      <p>
        아래 화면은 위에서 구축한 SMS 서비스를 이용하여 Window$에서 간단히 문자 메시지를 보내는 프로그램(SimpleSMS)입니다.
      </p>
      
      <p>
        <img loading="lazy" decoding="async" src="/wp-content/uploads/1/220314484.gif" class="alignleft" width="176" height="202" alt="사용자 삽입 이미지" />자신의 NAS에 있는 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>를 이용하여 SMS를 보내는 프로그램입니다.
      </p>
      
      <p>
        현재 여러 무료 SMS 제공 업체를 이용한 통합 SMS 전송 프로그램들이 있는데요.. 혹시나 계정 정보가 누출되지 않을까 걱정이 되기도 하죠..<br />SimpleSMS는 자신이 구축한 서버를 이용하니 혹시 계정 정보가 누출되지 않을까 하는 걱정은 안해도 됩니다.
      </p>
      
      <p>
        다운로드: <a style="color: rgb(0, 0, 255);" href="https://isulnara.com/myAPP/SimpleSMS/SimpleSMS.exe">https://isulnara.com/myAPP/SimpleSMS/SimpleSMS.exe</a>
      </p>
      
      <p>
        이 SimepleSMS를 이용하기 위해서는 먼저 &#8220;설정&#8221; 버튼을 클릭하여 다음과 같이 설정합니다.
      </p>
      
      <p>
        <img loading="lazy" decoding="async" src="/wp-content/uploads/1/207895355.gif" class="alignleft" width="284" height="149" alt="사용자 삽입 이미지" />위에서 구축한 자신의 SMS 서버 정보를 설정합니다.
      </p>
      
      <p>
        서버에는 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>의 URL을 입력합니다. 이 팁을 그대로 따라 했을 경우는<br />http://yourdomain or ip/sms/sendmsg.php가 됩니다.
      </p>
      
      <p>
        아이디 및 암호에는 <span style="background-color: rgb(255, 218, 237);">sendmsg.php</span>에서 설정한 계정 정보를 입력합니다.
      </p>
      
      <p>
        이번에 구축한 SMS 서비스를 이용하기 위한 다른 방법으로는
      </p>
      
      <div style="margin-left: 40px;">
        <span style="font-size: 4pt;">●</span> 쉘에서 직접 명령 내리기 &#8211; &#8220;/usr/local/sms/sms.xpeed 보내는사람번호 받는사람번호 메시지&#8221; 형식으로 명령을 내려서 문자를 전송할 수도 있습니다. NAS 시작 시 문자 보내기 등에 응용할 수 있겠죠.
      </div>
      
      <div style="margin-left: 40px;">
        <span style="font-size: 4pt;">●</span> 웹에서 HTML 화면 구성해서 SMS 보내기 등에 응용할 수 있습니다.
      </div>
      
      <p>
        이상으로 로그를 SMS로 받아오는 것과 간단히 나만의 SMS 서버를 구축하여 보았습니다.
      </p>
      
      <p>
        아이모리나 LGT의 서비스를 사용할 수 없는 분들은 다른 무료 서비스에 적용해보세요..
      </p>