Extra Form
PHP PHP 7.3
CMS Rhymix

안녕하세요, 오랜만에 질문 드립니다. ^^

새해복 많이 받으시구요~

오래전에 제가 다운받아 놓은 리눅스 퍼미션 설정이 있는데요.

중간중간에 보이는 1733은 어떤걸 말하는 건지 잘 모르겠네요...^^;

똑같이 chmod 1733 /dev/shm 하면 될까요?

지금도 아래 이미지처럼 설정해 놓으면 최소 보안은 되는건지요?

permission-etwas0227.jpg

  • Lv36

    사용하시는 배포판(우분투, 센토스 등)에서 기본 세팅해놓은 퍼미션을 건드리지 않는 것이 좋습니다. 배포판 및 버전마다 설치 경로가 다르기 때문에 어느 배포판의 어느 버전인지 따지지 않고 획일적으로 적용하면 안됩니다.

     

    그리고 중요한 시스템 폴더의 속성을 임의로 변경하면 에러 작렬합니다. 특히 저렇게 오래된 정보를 따라하신다면 매우 높은 확률로 서버가 터질 수 있습니다. 10여년 전과 지금은 리눅스에서 각 서비스의 실행 권한을 구분하는 방식이 전혀 달라졌거든요. 더이상 아파치를 nobody로 실행하지도 않고, systemd가 사용하는 계정만 기본적으로 서너 개가 됩니다. 각 계정은 설치 시점부터 자신에게 필요한 폴더를 이미 소유하고 있으며, 다른 폴더들의 퍼미션도 그 구조에 맞춰져 있습니다. 상위 폴더의 퍼미션을 임의로 축소하여 root 외에는 아무도 사용할 수 없는 환경을 만들어 놓으면 제대로 돌아가는 것이 하나도 없을 거예요.

     

    다른 건 몰라도 보안과 관련된 사안이라면 출처를 알 수 없는 이상한 주문보다 리눅스 배포판 제작자들의 판단을 신뢰하는 것이 좋습니다.

  • Lv36 ?
    기진곰님, 답변 감사드립니다.
    저렇게 퍼미션 변경했다가 큰일 날뻔 했네요.
    새해 복 많이 받으시구요.
    그런데, 궁금한 게 있습니다.
    설치 완료된 후 퍼미션을 그대로 두라는 말씀이시지요?
    일반 계정으로 로그인 해보니 /etc 디렉토리 뿐만 아니라 모든 디렉토리를 순회 하더라구요.
    그래도 괜찮은 걸까요? 단, /home 디렉토리는 자신것만 보였습니다.
    /home 디렉토리의 퍼미션은 711 이었거든요.
  • ? Lv36

    네, 일반 계정 권한으로 접근할 수 있는 디렉토리나 파일들 중 보안상 민감한 것은 하나도 없다는 것이 기본적인 전제입니다. 누구든지 동일한 배포판을 설치하기만 하면 동일한 내용을 볼 수 있을 테니까요. 물론 /etc/shadow처럼 진짜 중요한 파일들은 이미 퍼미션이 축소되어 있고, /sbin에 있는 시스템 관리 유틸리티들도 일반 사용자 권한으로 실행하려고 하면 그냥 에러뿜고 리턴합니다. (흔히 동네북 취급을 받는 /etc/passwd는 644가 정상이며, 이름과 달리 비번이 저장되어 있지 않습니다.)

    단, 기본 제공되는 폴더나 파일이 아니라 나중에 추가하시는 것들은 용도에 따라 퍼미션을 적당히 바꿔서 쓰셔야 합니다. 예를 들어 SSL 인증서를 설치하신다면 개인키 파일은 반드시 root 소유로 600 퍼미션이 주어져야 합니다. 일반 유저가 개인키 파일을 읽을 수 있으면 안 되니까요. 인증서가 여러 개라면 특정 폴더에 SSL 관련 파일들을 모두 모아놓고 그 폴더를 711로 지정하셔도 됩니다. 마찬가지로, 다른 계정의 아파치 설정을 볼 수 없도록 하려면 폴더를 하나 만들어서 VirtualHost 설정 파일들을 모두 모아놓고 Include 처리한 후 퍼미션을 축소하는 것이 가장 깔끔합니다. (예: 우분투라면 /etc/apache2/sites-available 및 /etc/apache2/sites-enabled입니다.)

    결론: O/S에서 기본 제공하는 것은 O/S에 맡기고, 내가 추가하는 것은 내가 잘 관리하자.^^

  • Lv36 ?
    아하 시원하게 답변해 주셔서 감사합니다!
    이제 나름의 신념이 잡혀가는 듯 하네요. ^^