웹페이지에서 암호 변경..

leilei의 이미지

제목 그대로 쉘계정 암호를 바꾸는 웹페이지를 하나 만들면 어떨까 싶은데요...

메일서버와 웹서버가 따로 있는 상황인데가..
어찌하면 좋을지 별 생각도 안나는군요.. :oops:

웹서버는 순수 내부용이고 파월안에 들어 있다보니 보안엔 별로 신경을 안쓰고 있습니다.

C/C++ 등으로 만든걸 php등으로 웹에서 컨트롤하는 정도는 해 보았는데.. 이 경우는 좀처럼 좋은 아이디어가 안떠오르네요.. OTL

한동안 너무 다른 분야만 해서 일까요? 아님 나이 때문일까요.. 쿨럭~
어디.. 좋은 방법이 없을까요? :?

mirr의 이미지

웹이 돌아가는 데몬의 권한 즉, www 혹은 기타 웹계정권한으로 돌아가기 때문에
힘들듯 하군요......
그러다고해서 웹권환을 올리면 다른악의적 이용도 가능할 수 있겠죠...

제 생각엔 퍼미션이 웹권한으로 돌아가고 있기때문에 특정 계정의
비밀번호를 구분해서 변경시켜준다는것은 안될걸로 생각되는군요..

내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.

아빠곰의 이미지

php가 외부프로그램을 실행시키고, 그 외부프로그램에 setuid를 줘서 관리자 권한으로 실행되게 하면 어떨까요?

물론, 악용되면 안되니, 프로그램 위치를 잘 숨기고, 아무나 실행시키지 못하도록 설정해둬야겠죠.

----
아발발다빠따반반나다발딸발발다빠따따맣밤밤따받따발발다따밝다발발다빠따따밤반다빠따다맣밥발
발다따밥다발발다따박다발발다빠따따밞밭밭다따다맣아희

sh.의 이미지

setuid를 설정하는 것 보다는 sudo 를 이용하도록 하고, sudoers 설정파일을 통해서 특정한 명령만 실행하도록 하는게 더 안전하지 않을까요?

sio4의 이미지

leilei wrote:
제목 그대로 쉘계정 암호를 바꾸는 웹페이지를 하나 만들면 어떨까 싶은데요...

메일서버와 웹서버가 따로 있는 상황인데가..
어찌하면 좋을지 별 생각도 안나는군요.. :oops:

웹서버는 순수 내부용이고 파월안에 들어 있다보니 보안엔 별로 신경을 안쓰고 있습니다.

두 번째 단락의 이해가 조금 헷갈리는데, 목적이 "메일사용자가 자신의 암호를 바꿀 수 있고록 하기 위해" 라면 오래된 기억이지만 pop3 프로토콜을 이용하여 암호 변경을 지원하는 뭔가가 있었습니다. 물론 클라이언트가 지원해야 하는 부분이긴 하지만...

또는, 쉘을 내어줄 생각이 없어서 웹 인터페이스를 생각한 것이라면 제 경우에는 일반 메일 사용자의 쉘을 passwd로 변경하여 운영했던 적도 있었습니다. passwd 프로그램이 쉘로써 돌아갈 때 어떤 취약점이 있는지는 "그러던지 말던지" 하고 썼었습니다. :-)

써놓고 보니 순 동문서답이군요. :-(

--
"The love you take is equal to the love you make." The End, by Beatles

leilei의 이미지

sio4 wrote:

또는, 쉘을 내어줄 생각이 없어서 웹 인터페이스를 생각한 것이라면 ...

네 그렇습니다.. 조금 다른 점은 쉘을 줘 봐야 사용 못하는 사용자들이란거죠.. T_T

주된 업무는 아니기에 그냥 그렇게 살고는 있습니다만..
틈틈히 고민하고 살고 있습니다..

sudo나 기타의 방법으로 적당한 권한을 줄 수 있다고 해도..
메일서버쪽에 접근을 해서 패스워드를 바꿀려니 만만치가 않네요.. :oops:

sh.의 이미지

혹시 메일 서버는 어떻게 구성이 되어있나요?

예를 들어 qmail 인 경우에는 mysql로 계정 관리를 할 수 있도록 패치할 수가 있는데, 이런 경우에는 쉽게 해결이 될것 같거든요.

sio4의 이미지

bs0048 wrote:
혹시 메일 서버는 어떻게 구성이 되어있나요?

예를 들어 qmail 인 경우에는 mysql로 계정 관리를 할 수 있도록 패치할 수가 있는데, 이런 경우에는 쉽게 해결이 될것 같거든요.

sendmail 도 그렇고 대체로 사용자 데이터를 DB에 저장하여 사용하는 방법이 참 유용합니다. 다만, 관리자 입장에서 새로 시스템 구성해주는 작업 등이 필요하므로 성가신 일이죠. 어쨌든, 투자할 의향이 있다면 이 방법이 여러모로 좋은 것 같습니다. :-)

이전에 적은 /usr/bin/passwd를 쉘로 지정하고 사용자들로 하여금 메일서버에 telnet으로 접속하도록 하는 방법은 "컴맹 환경"에서도 통했었습니다. 그리고 이렇게 했을 경우, 딱히 sudo 등의 방식을 쓰지 않아도 대화식으로 암호변경을 할 수 있도록 웹스크립트/CGI 작성이 가능합니다.

보안이야 뭐,... :-) 웹서버에서만 telnet 접속이 가능하게 할 수 도 있고 :-)

--
"The love you take is equal to the love you make." The End, by Beatles

sh.의 이미지

sio4님의 글을 읽다 문득 생각이 난 것인데
php의 경우 openssh extension을 설치하면 다른 서버로의 ssh연결을 다룰수가 있습니다. telnet도 가능한 방법이지만 보안이라던가 좀 개운하지 않은 면이 있는데 php에서 직접 ssh로 연결해서 셸명령을 내리거나 할 수도 있겠네요. 물론 openssh extension을 사용하지 않고 exec() 함수를 이용해서 $ ssh mail.server.com -l user "changemailpassword" 이런 식으로 직접 명령을 줄 수도 있습니다. 비밀번호를 지정하지 않은 키를 등록해두면 편하겠네요.

purple의 이미지

어쩌면 배보다 배꼽이 더 커질 수도 있습니다만

셸 계정 정보를 저장하는 곳을 기존의 /etc/passwd 에서 ldap로 바꾸는 방법도 있습니다. nss_ldap, pam_ldap가 이것을 가능하게 해줍니다.

웹 페이지에서 암호를 바꾸게 하는 것은 php로 ldap에 접속하여 바꾸도록 하면 됩니다.

사용자 인증이 필요한 대부분의 프로그램들이 ldap를 지원하므로 여러 서비스에서 동일한 계정을 사용하도록 통합할 수 있다는 장점이 있습니다. 하지만 좀 복잡하지요. :)

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.