소유권 www-data 관련

kc3z0bc0의 이미지

안녕하세요.

지금까지 윈도우만 사용하다가 개인용 서버 하나 만들어 보고 싶어서 우분투 서버 12.04 깔고 모르는것 검색하고 공부도 하면서

https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10

이글 보면서 우분투서버 12.04 에 owncloud 설치 했습니다.

저 글에서 나머지는 대충 이해 했는데요

소유권 개념을 거의 모르겠습니다. '소유권' 하니까 윈도우에서 사용자계정 개념으로만 생각이 듭니다. 그런데 저 글에서 특정 폴더의 소유권을 www-data로 바꾸어 주는데 저는 www-data라는 소유자(?)도 그룹도 만든적이 없는데 어떻게 되는것인지 모르겠네요.

ps. 검색해 보니까 www-data는 아파치와 관련이 있는것 같던데요..
만약 저 글에서 소유권을 www-data로 바꾸어주지 않는다면 어떤 문제가 발생하나요?

개발자 할것도 아니고 그냥 서버 적당히 관리할정도만 우분투 다룰수 있었으면 좋겠습니다. 기초적인것 부터 공부하고 싶은데 검색으로는 한계가 느껴집니다. 어떻게 하면 될까요? 사이트 추천이라던지, 책을 구매하던지, 조언 부탁드립니다.

nazuna의 이미지

소유권 하니까 윈도우의 사용자 계정 개념으로만 생각이 드신다고 하셨지만 윈도우도 리눅스의 그룹 개념이 있습니다.
윈도우에서는 사용자가 별도로 권한을 조절하지 않아도 동작하는데는 문제가 없기 때문에 느끼지 못하셨을테지만
윈도우의 IIS 또한 설치하면 자동으로 IIS_IUSRS 라는 그룹이 생기고 이 그룹은 웹사이트의 데이터에 대해 권한을 행사하게 되어 있습니다.(도메인 로컬으로 되어 있는데 비 도메인 가입 서버는 어떤지 모르겠습니다)

www-data:www-data 로 주지 않아도 서비스에는 문제가 없을것입니다.
우분투 포럼을 보니 보안을 위해서는 주는게 좋다고합니다.
그런데 보안을 최대한 신경쓰면 편의는 바닥으로 꺼지는 반비례의 관계에 있죠.
www-data에 소유권을 일임하면 ftp로 파일을 업/다운하는 것이 불가능해집니다.(소유권이 유저과 그룹 둘다 www-data에 있기 때문에)
그래서 웹 사이트를 관리할 계정을 만들어 그 계정을 www-data에 속하게 하면 되겠구요.

http://www.ubuntu.or.kr/viewtopic.php?p=114048&sid=ad30700ed4557d6043ad2008f29a967a#p114048

제가 참고했던 글입니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon iis.jpg109.07 KB
익명 사용자의 이미지

어떤 프로그램이 해킹을 당하면 그 프로그램의 권한을 그대로 해커가 가지고 있다고 생각하면 됩니다.

root로 실행시킨 프로그램의 보안이 뚫릴 경우 해커는 root 권한을 가지겠죠.

반면, www-data로 실행시킨 프로그램이 보안이 뚫리면 시스템에서 www-data가 할 수 있는 일만 할 수 있습니다.
기껏해야 디렉토리 하나 정도만 만질 수 있겠죠.

kc3z0bc0의 이미지

권한 개념이 조금씩 잡히고 있는것 같습니다.

그렇다면 해킹을 당한다면 root권한을 빼앗길 확률이 높다는 뜻인가요?
보안을 위해 원래 root권한이었던 디렉토리를 www-data로 바꾸어주고 있는데 말이죠..

cat /etc/passwd 명령하여 존재하는 사용자 들을 모두 확인하여 보았는데 엄청나게 많은 사용자들이 있더군요. 설치한 프로그램 마다 사용자 하나씩 가져가는것 같던데 이부분에서는 보안 향상을 위해 그런것인가요?

익명 사용자의 이미지

하나의 기능 특히 통신을 하는 프로그램의 경우에는 각각 하나의 user만이 만지는게 당연히 안전합니다.
여러 개의 작업을 하는 user는 작업중 하나만 뚫려도 다 해커가 조작 가능합니다.

단 하나의 작업을 하는 user는 작업중 뚫려도 그 프로그램만 조작 가능하죠.
물론 그 프로그램에 다른 user나 root의 정보가 없을 경우에 말이죠.

kc3z0bc0의 이미지

아 그렇다면.. 아파치에서 실행하고 있는 owncloud가 www-data가 아닌 root권한의 디렉토리를 접하고 있다면

아파치가 해킹당할경우 원래는 www-data권한의 파일이나 디렉토리만 조작할수 있지만 아파치가 root권한의 파일들도 건들고 있었기 때문에 root의 권한까지 빼앗긴다는 말인가요?

써놓고 뭔가 잘못이해한것같은 느낌이 드네요..

ymir의 이미지

apache 가 root 소유의 directory 에 쓰기가 가능하려면 apache 가 root 권한으로 실행되거나, 해당 디렉토리에 other 가 write 가능해야 합니다.
(단순히 directory 가 root 라서 위험한 것은 아닙니다.)

apache 가 root 권한으로 실행되면, 나중에 취약점이 발견되어 apache 가 exploit 되었을 경우 곧바로 root 권한의 shell 이 떨어질 수 있기 때문에 위험하죠.
만약, apache 가 www-data 권한으로 실행되고 있었다면, exploit 되었더라도 www-data 권한의 shell 이 떨어지기 때문에..
접근할 수 있는 파일들이 root 에 비해 제한적이게 되고 시스템의 주요 파일들을 보호할 수 있습니다.

/bin/rm -rf / 를 root 가 실행했을 때와, www-data 가 실행했을 때를 생각해 보시면 됩니다.
어차피 공격자는 root shell 을 따기 위해 다시 local exploit 을 하겠지만, 그래도 쉽게 내주는 것보다는 낫죠.

디렉토리에 모든 사용자가 쓰기가 가능하다는 건, apache 외의 모든 프로세스가 접근할 수 있게 되기 때문에..
apache 외의 서비스 데몬을 exploit 해서 web server 에 파일을 올리거나, 권한이 없는 사용자가 임의의 파일을 올리는게 가능해 집니다.
굳이 apache 를 뚫지 않더라도, 다른 경로를 통해 web server 에 해킹용 스크립트나 파일을 올리는게 가능해 지는거죠.

apache 든 mysql 이던 서비스 데몬은 서비스 데몬 고유의 계정을 생성해서 해당 계정 권한으로만 읽기/쓰기가 가능하게..
즉, 권한이 있는 사용자에게만 접근을 허락하고, 권한이 없는 사용자가 임의 접근 할 수 없도록 하는게 좋습니다.

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

kc3z0bc0의 이미지

감사합니다.

익명 사용자의 이미지

반드시 빼앗기는건 아니지만 그럴 가능성이 매우 크다는 겁니다.
해당 사용자가 할 수 있는 일은 그 프로그램을 장악한 해커도 똑같이 할 수 있다고 가정해야합니다.

kc3z0bc0의 이미지

감사합니다. 해킹에대해 전혀모르고 있었는데 그런방법 이었군요

댓글 달기

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