데몬 프로그래밍에 관해서...

shs0917의 이미지

IDS를 공부하고 있습니다. 지금 만들고 있는 IDS(?)는 당연히 데몬으로
돌아가게끔 되어 있습니다. 침입이 탐지 되었을 경우 메일과 로그로써
침입기록을 남기게 되는데요.. 문제점은 침입이 일어난 순간에 관리자가
바로 알 수 있도록 사운드를 내던지.. 콘솔상으로 메시지를 출력을 하던지..
알려줘야 할 필요성이 있는데요... 좋은 방법이 없을까요?
루트에게 메일이 왔을 때 리눅스에서 현재 활성화된 터미널로 메시지를
전달해주는 그런식으로 구현을 하고 싶습니다.
조언 부탁 드립니다.

펑키의 이미지

터미널을 누군가가 모니터링 할수 있는 상황이라면 메일보다는 관리자용 프로그램을 하나 작성하는게 어떠실런지요.? 저도 비슷한 문제에 봉착했었는데 여러가지 방법 다 쓰다가 결국에는 관리자용 프로그램을 별도로 제작해서 관리하는 사람에게 사용하게 하고 문제가 생기면 제게 연락하는 방식을 취했던적이 있습니다. 제가 사용했던 방법은...

한국xx회에서 사용하는 방법이었는데 이곳은 시스템 로그중 중요한 부분은 전부다 도트프린터로 찍히게 해놓았습니다. 그래서 저도 굴러다니던 도트 프린터로 한번 해보았는데 소리가 너무 작아서 실효성 없다고 판단.

삐삐로 전송되게 해놓았는데 가끔 삐삐 회사에서 날려 버리는 경우가 발생.
사운드 프로그래밍을 했는데 서버실 문을 닫아놓으면 소리가 밖으로 않나오더라구요.

shs0917의 이미지

관리 프로그램을 사용하는게 괜찮은 방법인거 같긴 한데요..
어떻게 프로그래밍을 해야할지 감이 안오네요..
일단 메인 프로그램은 데몬으로 돌아가면서 로그를 남기고 있을텐데..
관리 프로그램과 어떻게 통신을 해야 하는지요??
소켓프로그래밍이 그 답이 될수 있을까요? 자세히는 모르지만..
책을 보면서 프로그래밍 하면 될거 같긴 한데...
침입이 일어났을 때 그 침입패킷에 대한 정보만 넘겨주면 되는거니까..
전송량이 많지는 않을듯 하네요..의견 부탁 드립니다.

컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러

shs0917의 이미지

아.. 근데 프로그램에서 삐삐로 전송은 도대체 어떻게 하는거죠??
신기하네요.. 그럼 혹시 휴대폰으로 문자 메시지를 보낼 수 있는
방법은 없나요?? 어이없는 질문일지도..

컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러

mach의 이미지

shs0917 wrote:

루트에게 메일이 왔을 때 리눅스에서 현재 활성화된 터미널로 메시지를
전달해주는 그런식으로 구현을 하고 싶습니다.
조언 부탁 드립니다.

다음을 참고하시기 바랍니다.
$ tty root
$ write root

만일 스크립트보다 저수준에서 구현하시고자 한다면,
1) 어느 tty에 있는가 검사
2) tty를 open();device파일을 직접오픈 ; 퍼미션이 강력해야함(root;또는 해당 디바이스 파일의 모드를 참조)
3) open된 tty에 write()시스템콜을 사용하여 출력
4) 출력후 close()
5) 끝

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

mach의 이미지

shs0917 wrote:
아.. 근데 프로그램에서 삐삐로 전송은 도대체 어떻게 하는거죠??
신기하네요.. 그럼 혹시 휴대폰으로 문자 메시지를 보낼 수 있는
방법은 없나요?? 어이없는 질문일지도..

삐삐로 전송은 전화선과 특수한 보이스카드(10년전에는 조금 고가였는데 요즘 어떤지 모르겠네요.아마 많이 싸졌을듯)가 필요합니다. 이 카드는 보통 ARS등을 구현하는 용도로 사용되는 경우가 많습니다.
PC용도 있고, 해당 보드의 드라이버 및 프로그램 API가 제공되는데, DTMF톤을 발생할 수 있습니다. 전화기의 번호버튼라고 보시면 되지요. #, *까지는 기본이고 외국전화기(우리보다 버튼이 몇개더 많지요)의 버튼들에 해당하는 신호도 보낼수 있습니다. 버튼을 누르면 하이~로우의 주파수가 원격지로 전달되는데 이를 가지고 어느 버튼이 눌렸는지 검사해 주는 기능도 보드가 가지고 있습니다.

휴대폰은 특정한 SMS사업자를 거치는게 일반적입니다. 망에 접속하기 위해서는 해당 사업자를 거쳐야 합니다. 그래서 SMS업체를 알아보시고 하시면됩니다. 보통은 인터넷을 통해 인터페이스를 제공하고 있지요.
해당 SMS업체에서 API등을 제공할 것입니다. 한달에 얼마 ~ 모 이렇게 사용료가 부가됩니다.

* 근데, 아직도 삐삐 쓰는곳이 있군요.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

maidland의 이미지

현재 로그에 저장되어있는걸 시간적으로 FAX로 오게끔 하는것도 가능하겠군요-ㅁ-

물론 보낼 FAX 번호는 지정해줘야 하겠지만요 :D

>> http://ragnarok.co.kr <<

라그온+ㅁ+ 댄서는 아직 죽지 않았다!!
=-=-=-=-=-=-=-=-=-=-=-

gilbird의 이미지

mach wrote:
shs0917 wrote:
아.. 근데 프로그램에서 삐삐로 전송은 도대체 어떻게 하는거죠??
신기하네요.. 그럼 혹시 휴대폰으로 문자 메시지를 보낼 수 있는
방법은 없나요?? 어이없는 질문일지도..

삐삐로 전송은 전화선과 특수한 보이스카드(10년전에는 조금 고가였는데 요즘 어떤지 모르겠네요.아마 많이 싸졌을듯)가 필요합니다. 이 카드는 보통 ARS등을 구현하는 용도로 사용되는 경우가 많습니다.
PC용도 있고, 해당 보드의 드라이버 및 프로그램 API가 제공되는데, DTMF톤을 발생할 수 있습니다. 전화기의 번호버튼라고 보시면 되지요. #, *까지는 기본이고 외국전화기(우리보다 버튼이 몇개더 많지요)의 버튼들에 해당하는 신호도 보낼수 있습니다. 버튼을 누르면 하이~로우의 주파수가 원격지로 전달되는데 이를 가지고 어느 버튼이 눌렸는지 검사해 주는 기능도 보드가 가지고 있습니다.

휴대폰은 특정한 SMS사업자를 거치는게 일반적입니다. 망에 접속하기 위해서는 해당 사업자를 거쳐야 합니다. 그래서 SMS업체를 알아보시고 하시면됩니다. 보통은 인터넷을 통해 인터페이스를 제공하고 있지요.
해당 SMS업체에서 API등을 제공할 것입니다. 한달에 얼마 ~ 모 이렇게 사용료가 부가됩니다.

* 근데, 아직도 삐삐 쓰는곳이 있군요.

다이얼로직이라는 ARS보드가 다시 떠오르는 군요.
여직원 앉혀놓고 VOX사운드 녹음한거랑 ARS서버 만드느라.
생일날 밤새워가며 고생한 기억이 나는군요.... :cry:

펑키의 이미지

Quote:
관리 프로그램을 사용하는게 괜찮은 방법인거 같긴 한데요..
어떻게 프로그래밍을 해야할지 감이 안오네요..
일단 메인 프로그램은 데몬으로 돌아가면서 로그를 남기고 있을텐데..
관리 프로그램과 어떻게 통신을 해야 하는지요??
소켓프로그래밍이 그 답이 될수 있을까요? 자세히는 모르지만..
책을 보면서 프로그래밍 하면 될거 같긴 한데...
침입이 일어났을 때 그 침입패킷에 대한 정보만 넘겨주면 되는거니까..
전송량이 많지는 않을듯 하네요..의견 부탁 드립니다.

관리 프로그램은 SMTP를 이용하는 방법도 있고 자체적으로 만드시는 방법도 있습니다. 저는 에이전트를 하나 두고 IPC를 해서 사용하고 있습니다. 클라이언트는 VC++를 이용해서 제작했습니다. 클라이언트의 역할은 증권사용 HTS와 비슷하게 만들어 놓았습니다.

PUBLISH/SUBSCRIBE IPC
관리자 <-------------------------> AGENT <-----> 서버

이런식입니다. 서버는 IPC를 이용해(데이터 사이즈가 작으니깐 MSG QUEUE를 이용) 에이전트에게 데이터를 넘겨 줍니다. 이때 에이전트는 관리지가 접속해 들어와서 어떠한 정보에 대해 SUBSCRIBE를 했는지에 따라 그 정보를 관리자에게 날려줍니다. HTS의 호가 정보 날려 주는것과 동일합니다.

만약 서버가 이미 제작이 되어 있는것이고 단지 파일로만 로그를 남길수가 있다면 그 파일을 수시로 열어서 파싱해서 원하는 결과값을 얻어 내셔야 할겁니다.

서버와 에이전트가 소켓통신을 해도 되지만 같은 기계안에 있는것이라서 구지 소켓통신은 하지 않게 해놓았습니다. 원래 제가 했던것은 서버를 그룹으로 나누어서 해놓았었는데 H.A를 하다가 마는 바람에 용두사미가 되어 버렸습니다.

그리고 삐삐나 저런것 했던것은 제가 미국회사에 일할때 지역 삐삐업자들이 기업이 삐삐를 몇대 이상 사용하면 삐삐단말기를 하나씩 주었습니다. 회사가 긴급성을 요하는 업무들이 많은 곳이어서 모든 직원들이 문자삐삐와 넥스텔이라는 무전기/휴대폰 겸용전화기를 하나씩 가지고 다녀야했습니다. 이 단말기(작은 키패드 같은것)를 이용하는데 그 프로토콜 규격이 나와 있어서 그걸 보고 모뎀으로 프로그램을 만든겁니다.

shs0917의 이미지

출력방향은 간단히 콘솔을 FILE *에 열어서 fprintf로 출력해서
해결했습니다..
뭐 일단 해결은 된 셈인데요..
갑자기 데몬을 관리할 수있는 프로그램을 하나 작성하고 싶어졌네요..
욕심히 하나둘 늘어나는..
서로 다른 프로세스끼리 데이터를 주고받는 부분에 대한 참고할만한
소스같은거 있음 부탁 드릴께요.. 프로젝트 남은 기간이 며칠 없어서..
차근차근 공부하기에는 시간이 좀 급하네요..

컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러

rokmn3309의 이미지

실시간이고. 응답이 용이할것 같은데
전 S.M.A.R.T 기능을 넣을때 sms를 메일과 메신저로 했습니다.

shs0917의 이미지

S.M.A.R.T라는 기능이 확실히 무엇을 의미하는 것인지 모르겠군요..
제가 초보라서.. MSN으로 메시지를 보낼 수 있다면 정말 좋겠네요..
근데.. 대체 어떤 방식으로 MSN으로 메시지를 보내는 거죠??
MSN이 몇번 포트를 사용하는지.. 뭐 기타등등.. 조언 부탁 드립니다.

컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러

madkoala의 이미지

먼저, S.M.A.R.T 라는 기능에 대해 설명드리면,
S.M.A.R.T. 는 Self-Monitoring, Analysis and Reporting Technology의 약자로 하드디스크의 상태를 모니터링하고, 드라이브의 온도를 체크하며, 데이터 손실 및 앞으로 일어날 디스크의 문제점에 대한 예측을 장착된 특유의 알고리즘을 이용해 체크해내는 기술입니다.
(출처는 인터넷입니다.)

그리고, MSN으로 메시지를 보내는 방법은, 메신저 API를 이용하시면 가능합니다.
MSN 메신저는 일반 서버 접속시 1863번 포트를 이용하고, 파일 전송시에는 6891번부터 6900번까지의 포트를 이용합니다.
메신저 API는 MS에 의해서 제공되고 있으니 찾아보시면 될 거구요..
예전에 마소에서인가.. 메신저 에이전트(심심이 같은)를 만드는 강좌를
했던 걸 본 기억이 있는데 자세히는 기억이 안 나는군요 -_-;;

shkwon81의 이미지

고립 장비에서 SMS 보내는 법..

특별히 인터넷의 SMS 업체에 연결하지 않더라도..

컴퓨터와 핸드폰을 RS-232로 연결한 후, 핸드폰에 대한 AT Command
제어를 통해 문자 메시지를 날릴 수 있죠 -_-b

이야기 같은 통신 에뮬레이터로 전화 거는 거 비슷하다고 생각하시면
됩니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.