AIX서버에서 사용자 인증 처리에 대한 질문을 드립니다.

anaud2의 이미지

안녕하세요

리눅스에서 FTP데몬을 조금 변형해서 FTP데몬프로그램을 만들었는데요 AIX에서 포팅을 위해 준비를 하고 있습니다.

하던중 의문이 생기는 사항이 생겼는데요 리눅스의 경우 사용자 password는 암호화하여(crypt) /etc/shadow파일에 저장이 되어있고 이것을 읽어 들이는 함수getspnam(char *name)을 가지고 shadow파일을 읽어들여서 암호화된 사용자 password를 읽어 들일수 있죠 사용자가 패스워드를 입력을 하면 crypt()를 사용 서로 같은지 대조를 해봐서 알수가 있는데요

그런데 AIX의 경우 /etc/shadow파일이 없고 /etc/security/passwd파일이 있습니다. 이렇게 되니까 소스를 수정을 해야할것 같은데 /etc/security/passwd 파일을 읽어 들이는 함수가 있는지와 man페이지에서 crypt함수가 없던데 어떻게 인증을 처리를 해야하는지 의문이 생겨서 질문을 드립니다.

유닉스 계열은 다 비슷할거란 생각을 했는데 전혀 다르네요..;

도움 부탁드립니다.

ymir의 이미지

setpwdb(), endpwdb(), getuserpw() 를 통하 암호화 된 password 를 얻어 올 수 있고..
setuserdb(), enduserdb(), getuserattr() 를 통해 account 에 대한 attribute 를 얻어 올 수 있습니다..

기본적으로 PAM 과 유사한 LAM 을 지원하고, 5.x 대부터는 PAM 도 지원이 가능한 걸로 들은 거 같은데..
단순히 인증이 주 목적이고 서로 다른 OS 에 포팅해야 하는 상황이라면..
직접 password db 에 access 하는 것 보다는, PAM 을 알아보시는게 좋을 것 같습니다..

PAM 을 사용하지 않고 직접 local auth 를 수행한다면, account 의 유효성이라던가..
passwd 또는 account 의 expiration 등 고려해야 할 사항이 한 둘이 아니게 됩니다.

특히나 HP-UX 로 건너간다면, Normal Mode 와 Trusted Mode 등 변수가 더 늘어납니다.
(Tru64 의 경우에는 Basic Security Mode / Enhanced Security Mode)

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

anaud2의 이미지

답변 감사합니다.
당초에 FTP 데몬을 수정한 부분은 인증에 관한 부분을 수정을 한것입니다. 일반적인 인증이 아닌 특수 사용자에게 다른인증을 제공하는 목적으로 만들어진것이구요
그럼에도 사용자 패스워드를 사용한 인증이 필요한 이유는 일반사용자에 관해서 일반적인 인증을 해주기 위함인데요

PAM같은경우 커버로스방식이라고 해야될까요 제3자에 인증을 받는 부분이 필요한거 같은데요 저희 윗분이 pam보다는 원래 특수사용자인증을 위해 수정이 된 FTP이고 기본적으로 일바사용자에 대해서 패스워드 인증을 받는 부분이기 때문에 pam보다는 일반적으로 passwd인증을 하는 방법을 찾아라고 하니..

제 생각에는 password db를 access하는게 좋을거 같습니다. account의 유효성과 passwd, account의 expiration등에 대해서는 원래 생각을 못했었는데
보안적인 취약성이 생길수 있겠네요 일단 기본 인증을 만들고 그부분에 대해서 고민을 해보겠습니다.

생각지 못한부분을 짚어주어 감사드립니다.^^

댓글 달기

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