우 분투 서버 는 SFTP 를 어떻게 설정 합 니까?
4205 단어 ubuntu server
업무 가 필요 하기 때문에 우 분투 서버 에 SFTP 를 어떻게 설정 하 는 지 연 구 했 습 니 다. 기록 은 다음 과 같 습 니 다.
필요: 서버 에 SFTP 파일 서 비 스 를 개통 하여 일부 사용자 가 파일 을 업로드 하고 다운로드 할 수 있 도록 합 니 다.그러나 이들 사용 자 는 SFTP 로 만 파일 을 전송 할 수 있 고 SSH 단말 기 를 사용 해 서버 에 접근 할 수 없 으 며 SFTP 는 시스템 파일 (이른바 'Jail (교도소)' 에 접근 할 수 없다.시스템 관리 자 는 SFTP 로 파일 을 전송 할 수도 있 고 SSH 원 격 관리 서버 를 사용 할 수도 있다.
토론 하기 편리 하도록 sftp - users 사용자 그룹 내 사용자 가 SFTP 를 사용 할 수 있 도록 허락 하지만 SSH Shell 을 사용 할 수 없 으 며 이 그룹 사용 자 는 '감옥' (시스템 루트 디 렉 터 리 수정) 이 될 것 이 라 고 가정 합 니 다.sftp - users 그룹 에 사용자 'alice' 를 만 들 것 입 니 다.나 는 ssh - users 가 SFTP 와 SSH 를 사용 하 는 것 을 허락 할 것 이다.시스템 관리자 의 계 정 이름 은 admin 입 니 다.
01 단계, OpenSSH 서버 가 설치 되 어 있 지 않 으 면 먼저 설치 합 니 다.
sudo apt-get install openssh-server
02 단계, SFTP 접근 을 위 한 사용자 그룹 을 만 들 고 권한 관리 에 편리 합 니 다.
sudo addgroup sftp-users
03 단계, SFTP 사용 자 를 만 들 고 권한 을 설정 합 니 다.이 두 번 째 줄 은 alice 를 모든 다른 사용자 그룹 에서 제거 하고 sftp - users 그룹 에 가입 하 며 Shell 접근 을 닫 는 것 을 의미 합 니 다.usermod 명령 을 깊이 알 고 싶다 면 아래 의 "man usermod" 명령 으로 도움말 문 서 를 볼 수 있 습 니 다.
sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice
04 단계, SSH 사용자 그룹 을 만 들 고 관리 자 를 이 그룹 에 추가 합 니 다.
sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin
05 단계, '감옥' 의 루트 디 렉 터 리 와 공유 디 렉 터 리 를 준비 합 니 다."감옥" 의 루트 디 렉 터 리 는 다음 과 같은 요 구 를 만족 시 켜 야 합 니 다. 소유 자 는 루트 이 고 다른 사용자 도 기록 권한 을 가 질 수 없습니다.따라서 SFTP 사용자 가 파일 을 업로드 할 수 있 도록 '감옥' 루트 디 렉 터 리 에 일반 사용자 가 쓸 수 있 는 공유 파일 디 렉 터 리 를 하나 더 만들어 야 한다.관리자 가 SFTP 를 통 해 업로드 한 파일 을 관리 하 는 데 편리 하도록 이 공유 파일 디 렉 터 리 를 admin 소유 로 설정 하여 sftp - users 가 읽 고 쓸 수 있 도록 합 니 다.이렇게 하면 관리자 와 SFTP 사용자 그룹 구성원 들 이 이 디 렉 터 리 를 읽 고 쓸 수 있 습 니 다.
sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared
06 단계, SSH 프로필 수정.
sudo nano /etc/ssh/sshd_config
sshd 에서config 파일 의 마지막 부분 에 다음 과 같은 내용 을 추가 합 니 다.
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
이 내용 들 의 뜻 은:
ssh - uers 및 sftp - users 만 SSH 를 통 해 시스템 에 접근 할 수 있 습 니 다.
sftp - users 사용자 에 게 "/ home / sftp root" 를 이 그룹 사용자 의 시스템 루트 디 렉 터 리 로 설정 합 니 다 (따라서 이 디 렉 터 리 이외 의 다른 시스템 파일 에 접근 할 수 없습니다).TCP Forwarding 과 X11 Forwarding 금지;이 그룹 사용자 에 게 SFTP 만 사용 하도록 강요 합 니 다.
자세 한 정보 가 필요 하 다 면 'man sshd config' 명령 을 사용 할 수 있 습 니 다.이렇게 설정 하면 SSH 사용자 그룹 은 SSH 에 접근 할 수 있 고 다른 제한 을 받 지 않 습 니 다.반면 SFTP 사용자 그룹 은 SFTP 로 만 접근 할 수 있 고 감옥 디 렉 터 리 에 갇 혀 있다.
07 단계, 새 설정 을 적용 하기 위해 시스템 을 다시 시작 합 니 다.
sudo reboot now
완성 되 었 습 니 다!
더 나 은 토론: SSH 사용자 그룹 은 모든 시스템 파일 에 원 격 으로 접근 할 수 있 습 니 다. 모든 상황 에서 적용 되 는 것 은 아 닐 수도 있 습 니 다.어떤 경우 에는 SSH 사용자 도 감옥 에 가두 고 싶 을 수도 있다.이 때 는 SFTP 와 유사 한 설정 (usermod - s / bin / false 를 사용 하지 않 는 것 을 제외 하고 SSH 사용자 가 접근 할 수 있 는 시스템 파일 을 감옥 루트 디 렉 터 리 에 해당 하 는 위치 로 복사 해 야 합 니 다.구체 적 인 정 보 는 인터넷 에서 찾 을 수 있 습 니 다. 저 는 실천 검증 이 없 기 때문에 여러분 을 오도 하지 않 습 니 다.(위의 이 튜 토리 얼 은 제 가 인터넷 에서 옳 은 것 같 지만 그렇지 않 은 많은 자료 에서 자신의 실험 을 통 해 정리 한 것 입 니 다. Ubuntu Server 12.04 LTS 64 - bit 시스템 에서 검증 을 통 과 했 습 니 다. 사용 할 수 있 을 것 같 지만 실제 적 으로 많은 튜 토리 얼 이 누락 된 것 을 매우 원망 합 니 다!)
참고:
http://yhf8377.blog.163.com/blog/static/176860177201210217219800/
http://ihacklog.com/post/how-to-enable-secure-shell-in-ubuntu.html
http://blog.csdn.net/xiaosu_521/article/details/2157011http://www.linuxidc.com/Linux/2011-01/31022.htm