HOME > 이용안내
이용안내
 
작성일 : 19-06-30 14:13
[리눅스서버] SFTP 퍼미션 조정 및 chroot 설정으로 상위폴더 접근 제한하기
 글쓴이 : 제이네트워크
조회 : 31,421  

SFTP 퍼미션 조정 및 chroot 설정으로 상위폴더 접근 제한하기


일반적으로 SFTP를 사용하게 되면 FTP와는 다르게 root 권한을 가지고 있지 않은 일반계정으로도
SFTP를 사용하여 접속하게 되면 접속폴더 상위의 폴더까지 접근이 가능합니다.
개인이 혼자서 사용하는 서버라면 상관없겠지만, 호스팅 서비스를 하거나 여러 사용자들이
접속할 수 있는 서버라면 사용자들 간에 격리가 필요합니다. 그렇지 않다면 사용자 누구나
루트폴더에 접근할 수 있기 때문에 보안, 해킹에 취약한 단점이 있습니다.
이 때, 상위폴더로 접근할 수 없게 설정하는 방법으로는 2가지가 있습니다.
첫번째로는 상위 폴더로 접근할 수 없게 퍼미션을 조정하는 방법이 있고,
두번째로는 SFTP에서 chroot 기능을 이용하여 사용자의 홈 폴더를 root 폴더로 지정하는 방법이 있습니다.

 
1. 퍼미션 조정

 - chmod를 이용하여 주요한 폴더들의 권한을 711로 부여하여 접근을 제어

 예, chmod 711 /home
     chmod 711 /etc 등..

 
2. chroot 설정

 - chroot는 임시로 루트 디렉토리를 설정하는 명령어로, 일반적인 루트 디렉토리가 아닌
   다른 디렉토리(예, /etc, /home 등..)를 임시로 루트 디렉토리인 것처럼 설정할 수 있습니다.
   단, 주의할 점은 chroot를 설정한 계정 또는 그룹은 ssh를 사용할 수 없습니다.
   설정방법은 아래와 같습니다.

 
  ㄱ. ssh 설정 변경

   # vi /etc/ssh/sshd_config

     -> Subsystem sftp /usr/lib/openssh/sftp-server     : 주석처리

     -> Subsystem sftp internal-sftp     : 추가

  ㄴ. 문서 맨 마지막에 Match 구문 추가(user : test)

     -> Match User test

    ChrootDirectory /home/test

            ForceCommand internal-sftp

            X11Forwarding no

           AllowTCPForwarding no

   이 때, ChrootDirectory는 반드시 홈디렉토리가 아닌 다른 디렉토리를 지정해도 상관없습니다.

   # service sshd restart

 

  ㄷ. chroot가 적용된 디렉토리의 소유자를 root로 변경해야 접속이 가능합니다.

   # chown root /home/test

   또한 해당 계정의 권한도 755로 변경합니다.

   # chmod 755 /home/test

 

  이렇게 설정한 뒤 test 계정으로 SFTP를 접속해도 쓰기 권한을 가지고 있지 않기 때문에
  홈 디렉토리 내에서는 아무런 활동을 할 수 없기 때문에 접속이 되지 않습니다. 
  이런 경우 /home/test 안에 임의의 폴더를 생성하여 해당 폴더에 쓰기권한을 부여해주는 방법이 있습니다.

   # mkdir www(임시 디렉토리)

   # chown root:test /home/test/www

   # chmod 775 /home/test/www     : 쓰기 권한 부여

 

   이렇게 설정하게 되면 test 계정으로 SFTP를 접속하게 되면 /home 디렉토리 상위폴더로 접근 불가능 한 chroot가
   적용 된 것을 확인할 수 있습니다.






Cloud server Streaming service Domain Cloud Firewall

 
 

Total 377

번호 제   목   글쓴이 날짜 조회
97 [DB] mysql 디비생성 스크립트 관리자 2011-05-16 30427
96 [메뉴얼] Asrock IKVM Menual 제이네트워크 2014-03-31 30425
95 [DB] mysql 로그파일 줄이기 관리자 2011-05-17 30340
94 [기타] [CloudFlare]클라우드플레어 사용시 클라이언트 실제 IP ADDRESS 찾기 제이네트워크 2019-01-19 30173
93 [메일] 리눅스 sendmail 로 폼메일사용시 nobody@localhost.localhost.com 으로 발송될 경우 (1) 제이네트워크 2016-07-06 30168
92 [리눅스서버] [아파치SSL 에러] File size limit exceeded$HTTPD -DSSL 해결법 제이네트워크 2016-06-22 30133
91 [리눅스서버] CentOS(리눅스)버전, 혹은 APM(apache, php, mysql) 버전 확인하려고 할때 사용하는 … 제이네트워크 2015-09-07 30087
90 [wowza] IP CAMERA 및 DVR영상(rtsp)을 wowza server 3.x 통해서 스트리밍하기(wowza restreaming) 제이네트워크 2014-08-26 30078
89 [윈도우서버] 윈도우서버 com+ dll 등록방법] 제이네트워크 2019-04-11 30060
88 [DB] Mssql 시스템 프로지져 삭제 복구 관리자 2011-06-17 30046
87 [리눅스서버] CentOS 5.11.x 에서 php-5.1.4 소스설치시 mysqli 에러로 make 안될때 제이네트워크 2017-07-25 29987
86 [리눅스서버] vsftpd.conf 설정내용 제이네트워크 2019-08-14 29893
85 [리눅스서버] swap 메모리 추가하기 제이네트워크 2017-12-07 29678
84 [리눅스서버] [BIND - 네임서버 존파일에서 SRV 레코드 추가] 제이네트워크 2016-11-18 29673
83 [메일] [아웃룩 outlook] 아웃룩 보낼편지함 삭제 안될 경우 해결법 제이네트워크 2016-08-02 29626
82 [윈도우서버] 윈도우서버 com+ / dll 등록후 세션 로그아웃시 dll 적용안될 때 제이네트워크 2019-04-11 29498
81 [리눅스서버] INIT: no more processes left in this runlevel 메세지 발생후 부팅에러 제이네트워크 2016-08-01 29453
80 [리눅스서버] [Centos7.x 에서 vsftp접속문제] 500 OOPS:vsftpd:refusing to run with writable root inside chroo… 제이네트워크 2017-04-19 29449
79 [리눅스서버] [Apache] worker 방식 접속자 튜닝방법 제이네트워크 2016-08-26 29438
78 [리눅스서버] [리눅스서버]CentOS- 5.11.yum 오류날때 제이네트워크 2017-07-24 29437
77 [리눅스서버] [리눅스서버] [리눅스서버]CentOS-6.9 yum 오류날때 제이네트워크 2017-11-08 29433
76 [DB] mysql 컴파일 시 LinuxThreads not found 발생할 경우 관리자 2011-06-17 29326
75 [PHP] Internet explorer 11 한글 링크 클릭시 두번 클릭해야 되는 현상(한글인코딩문제… 제이네트워크 2015-03-03 29286
74 [리눅스서버] cband 설치 제이네트워크 2016-11-30 29256
73 [윈도우서버] iis 버전 버젼 version 확인 방법 제이네트워크 2019-01-14 29231
72 [쉘스크립트] /bin/sh^M: bad interpreter: No such file or directory 오류 발생 시 제이네트워크 2016-01-22 29220
71 [윈도우서버] 윈도우 설치 중 새 시스템 파티션을 만들거나 기존 시스템 파티션을 찾을 … 제이네트워크 2019-04-24 29135
70 [DB] MySQL DB Table 유실로 인한 장애시 Mysql Binary 로그를 통한 복구 (2) 제이네트워크 2015-01-21 29102
69 [DB] mysql에서 name server 질의 하지 않게 설정 제이네트워크 2014-01-24 29094
68 [DB] 서버이전 - mysql 버전 문제로 인한 암호화 방식 해결 방안 관리자 2011-06-17 29091
67 [DB] mysql 언어셋의 euckr과 utf8 언어셋을 같이 사용하기 관리자 2011-05-17 29082
66 [DB] mysql에서 kill process 하기 관리자 2011-05-16 29079
65 [리눅스서버] [NFS 에러] mount.nfs: Stale NFS file handle 제이네트워크 2017-06-21 28770
64 [DB] [mysqldump 에러] Got errno 28 on write 발생시 제이네트워크 2016-03-29 28607
63 [윈도우서버] [iis 7.5] 한글도메인 입력 ( 값이 예상 범위를 벗어났습니다 ) 에러시 제이네트워크 2016-08-26 28592
62 [DB] [MS-SQL SERVER 2008 로그 파일 사이즈 줄이기] 제이네트워크 2015-05-12 28588
61 [DB] mysql 패스워드 분실시 재설정 방법 관리자 2011-05-17 28336
60 [DB] [mysql] 테이블 복사하기 (데이타포함, 비포함) 제이네트워크 2015-04-28 28325
59 [메일] [다음- 스마트워크 MX 레코드 설정방법] 제이네트워크 2018-02-19 28284
58 [DB] [mysql]mysqldump 로 백업시 lock table 에러로 백업이 안되는 경우 제이네트워크 2015-09-17 28201
 1  2  3  4  5  6  7  8  9  10