SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux
차례:
이 자습서에서는 사용자를 홈 디렉토리로 제한하는 SFTP Chroot Jail 환경을 설정하는 방법에 대해 설명합니다. 사용자는 SFTP 액세스 만 가지며 SSH 액세스는 비활성화됩니다. 이 지침은 Ubuntu, CentOS, Debian 및 Fedora를 포함한 최신 Linux 배포판에서 작동합니다.
SFTP 그룹 생성
각 사용자에 대해 OpenSSH 서버를 개별적으로 구성하는 대신 새 그룹을 작성하고 모든 루트 사용자를이 그룹에 추가합니다.
다음
groupadd
명령을 실행하여
sftponly
사용자 그룹을 작성하십시오.
sudo groupadd sftponly
원하는대로 그룹 이름을 지정할 수 있습니다.
SFTP 그룹에 사용자 추가
다음 단계는
sftponly
그룹으로 제한하려는 사용자를 추가하는 것입니다.
이것이 새로운 설정이고 사용자가 존재하지 않는 경우 다음을 입력하여 새 사용자 계정을 만들 수 있습니다.
sudo useradd -g sftponly -s /bin/false -m -d /home/username username
-
-g sftponly
옵션은-g sftponly
에 사용자를 추가합니다.-s /bin/false
옵션은 사용자의 로그인 쉘을 설정합니다. 로그인 쉘을/bin/false
하면 사용자는 SSH를 통해 서버에 로그인 할 수 없습니다.-m -d /home/username
옵션은 useradd에게 사용자 홈 디렉토리를 작성하도록 지시합니다.
새로 만든 사용자의 강력한 암호를 설정하십시오.
sudo passwd username
그렇지 않으면 제한하려는 사용자가 이미 존재하는 경우
sftponly
그룹에 사용자를 추가하고 사용자의 쉘을 변경하십시오.
sudo usermod -G sftponly -s /bin/false username2
사용자 홈 디렉토리는 root가 소유해야하며
755
권한이 있어야합니다.
sudo chown root: /home/username
sudo chmod 755 /home/username
사용자 홈 디렉토리는 루트 사용자가 소유하므로 홈 디렉토리에 파일 및 디렉토리를 작성할 수 없습니다. 사용자의 집에 디렉토리가없는 경우 사용자가 완전히 액세스 할 수있는 새 디렉토리를 작성해야합니다. 예를 들어 다음 디렉토리를 만들 수 있습니다.
sudo mkdir /home/username/{public_html, uploads}
sudo chmod 755 /home/username/{public_html, uploads}
sudo chown username:sftponly /home/username/{public_html, uploads}
웹 응용 프로그램이 사용자의
public_html
디렉토리를 문서 루트로 사용하는 경우 이러한 변경으로 인해 권한 문제가 발생할 수 있습니다. 예를 들어, WordPress를 실행중인 경우 파일을 소유 한 사용자로 실행되는 PHP 풀을 작성하고 웹을
sftponly
그룹에 추가해야합니다.
SSH 구성
SFTP는 SSH의 하위 시스템이며 모든 SSH 인증 메커니즘을 지원합니다.
텍스트 편집기로 SSH 구성 파일
/etc/ssh/sshd_config
십시오.
sudo nano /etc/ssh/sshd_config
일반적으로 파일 끝에서
Subsystem sftp
시작하는 행을 검색하십시오. 행이 해시
#
시작하는 경우 해시
#
제거하고 다음과 같이 수정하십시오.
Subsystem sftp internal-sftp
파일 끝쪽으로 다음 설정 블록:
Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
ChrootDirectory
지시문은 chroot 디렉토리의 경로를 지정합니다.
%h
는 사용자 홈 디렉토리를 의미합니다. 이 디렉토리는 루트 사용자가 소유해야하며 다른 사용자 나 그룹이 쓸 수 없어야합니다.
SSH 구성 파일을 수정할 때 특히주의하십시오. 잘못된 구성으로 인해 SSH 서비스가 시작되지 않을 수 있습니다.
완료되면 파일을 저장하고 SSH 서비스를 다시 시작하여 변경 사항을 적용하십시오.
sudo systemctl restart ssh
CentOS 및 Fedora에서 ssh 서비스의 이름은
sshd
.
구성 테스트
SFTP chroot를 구성 했으므로 chroot 사용자의 신임 정보를 사용하여 SFTP를 통해 원격 시스템에 로그인을 시도 할 수 있습니다. 대부분의 경우 FileZilla와 같은 데스크탑 SFTP 클라이언트를 사용하지만이 예에서는 sftp 명령을 사용합니다.
sftp 명령과 원격 서버 사용자 이름 및 서버 IP 주소 또는 도메인 이름을 사용하여 SFTP 연결을여십시오.
sftp [email protected]
사용자 비밀번호를 입력하라는 메시지가 표시됩니다. 연결되면 원격 서버에 확인 메시지와
sftp>
프롬프트가 표시됩니다.
[email protected]'s password: sftp>
아래와 같이
pwd
명령을 실행하고 모든 것이 예상대로 작동하면 명령이
/
를 반환해야합니다.
sftp> pwd Remote working directory: /
ls
명령을 사용하여 원격 파일 및 디렉토리를 나열 할 수도 있으며 이전에 작성한 디렉토리를 볼 수 있습니다.
결론
이 학습서에서는 Linux 서버에서 SFTP Chroot Jail 환경을 설정하고 홈 디렉토리에 대한 사용자 액세스를 제한하는 방법을 학습했습니다.
기본적으로 SSH는 포트 22에서 수신 대기합니다. 기본 SSH 포트를 변경하면 자동 공격의 위험을 줄임으로써 서버에 추가적인 보안 계층이 추가됩니다. SSH 키 기반 인증을 설정하고 비밀번호를 입력하지 않고 서버에 연결할 수도 있습니다.
ssh sftp 보안웹 기반 메일을 기본값으로 설정하는 방법

Answer 회선 포럼에서 loops07은 Outlook을 Yahoo로 바꾸는 방법을 묻습니다. 기본 이메일 프로그램으로 Mail. 내 답변에는 Gmail이 포함됩니다.
기본 폴더보기를 설정하는 방법

Mark Kline은 Windows가 세부보기에서 모든 폴더를 열도록하는 방법을 알고 싶어합니다.
앱 별 화면 밝기를 설정하는 방법, Android에서 시간 초과를 설정하는 방법

Android에서 앱 별 화면 밝기 및 시간 제한을 손쉽게 설정하고 제어하는 방법은 다음과 같습니다.