로그인시 공개 키 인증이 필요하지 않은 root, sudo, sftp 전용 사용자 계정을 설정하는 방법을 알고 싶습니다. 또한 sftp 전용 사용자의 홈 디렉토리를 설정하는 방법도 알고 싶습니다. 상위 레벨의 다른 디렉토리에 액세스 할 수 없습니다.
답변
Ubuntu를 사용하는 호스트 시스템에서 ssh 서비스 설정을 시작하는 데 도움이되는 최상의 리소스는 OpenSSH 서버 입니다. 이를 통해 SSH 파일 전송 프로토콜 (SFTP (Secure File Transfer Protocol))을 사용하여 클라이언트 시스템의 SSH를 통해 파일을 액세스, 전송 및 관리 할 수 있습니다.
솔루션 개요
- Ubuntu
OpenSSH server
에서 호스트 컴퓨터에 설정을하면 사용자는ssh
사용자 이름과 암호 만 사용하여 클라이언트에서 호스트 서버로 연결할 수 있습니다 . 그러나 공개 키 인증을 권장합니다.
” SSH 서버를 설치하기 전에 강력한 암호 가 있는지 확인하십시오 ( 암호를 모두 비활성화 할 수 있습니다 )”
- 호스트에서 생성 된 관리 사용자 계정에는 sudo 권한이 있고 호스트에서 생성 된 표준 사용자 계정에는 권한이 없습니다.
호스트에 OpenSSH 서버 설치 및 구성
호스트에 OpenSSH 서버를 설치하려면
sudo apt-get install openssh-server
호스트에 고정 IP 주소를 지정하면 안정적으로 연결할 수 있습니다.
nm-connection-editor
OpenSSH 서버를 구성하려면 “먼저 sshd_config 파일을 홈 디렉토리로 복사하거나 다음을 수행하여 / etc / ssh에서 읽기 전용 사본을 작성하여 백업하십시오.”
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
” sshd_config
파일을 백업 한 후에는 텍스트 편집기를 사용하여 다음과 같이 변경할 수 있습니다.”
sudo -H gedit /etc/ssh/sshd_config
이러한 변경 사항을 적용하려면 호스트에서 ssh 서비스를 다시 시작해야합니다
sudo service ssh restart
다음 보안 조치를 고려하십시오
- 라우터에서 포트 포워딩을 활성화하지 마십시오. 외부인이 라우터를 외부 포트 22 등에 연결하도록 요청하면 포트 포워딩을 활성화하지 않으면 라우터가 준수하지 않습니다.
- 루트 로그인 비활성화 : 주석 처리
PermitRootLogin without-password
;PermitRootLogin no
호스트에 추가/etc/ssh/sshd_config
- 비표준 SSH 포트를 선택하십시오
Port 22
.Port <new-port-number>
호스트에 추가/etc/ssh/sshd_config
- 로컬 연결 만 허용 : 추가
ListenAddress 192.168.0.10
- 특정 포트에서 특정 사용자 허용 : 호스트 추가
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
또는AllowUsers <username>@111.222.333.*
호스트/etc/ssh/sshd_config
- RSA 키 (암호없는) 연결 만 허용 :
~/.ssh/id_rsa.pub
각 클라이언트 의 내용을 새로운 호스트 줄로 추가하십시오~/.ssh/authorized_keys
. 그런 다음PasswordAuthentication no
호스트에 추가하십시오./etc/ssh/sshd_config
- 공격자의 느리게 시도 : 호스트에서 ufw (복잡하지 않은 방화벽)를 사용하여 들어오는 연결을 10 / 분으로 제한합니다.
sudo apt-get install ufw && sudo ufw limit OpenSSH
- 자세한 내용은 SSH 액세스 보안 유지를 참조하십시오.
필요하다고 생각되면 파일 PasswordAuthentication
에서 활성화 sshd_config
하십시오.
문구가있는 줄을 찾아서 PasswordAuthentication
읽습니다.
PasswordAuthentication yes
새 sshd_config
파일을 저장 한 다음 호스트 ssh
서비스 를 다시 시작 하십시오 .
sudo service ssh restart
인터넷 어디에서나 액세스해야하는 경우 로컬 라우터에서 포트 포워딩을 설정하여 트래픽을 OpenSSH 서버로 보내십시오.
포트 호스트 ssh
서비스는 sshd_config
파일 에서 수신 대기 하고이 포트를 목표로하는 TCP / UDP 트래픽을 OpenSSH 서버의 IP 주소로 전달하도록 라우터를 설정하십시오.
- 일반적으로
192.168.1.1
라우터에 로그인하고 포트 전달을 설정하기 위해 웹 브라우저를 가리킬 수 있습니다 . 인터넷을 통한 SSH 연결을 허용하도록 OpenSSH 서버 및 라우터 구성을 참조하십시오 .
명령 줄 또는 터미널을 통해 호스트에 연결하고 로그인
-
<username>
호스트에서 SFTP 쉘 터미널을 열려면 클라이언트에서 터미널을 열고 다음 명령을 입력하여123.123.1.23
호스트의 IP 주소로 바꾸십시오 .sftp <username>@123.123.1.23
-
호스트의 OpenSSH 서버가 청취하는 포트 번호를 변경 한 경우 다음을 수행하십시오.
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
-
-
<username>
호스트에서 SSH 쉘 터미널을 열려면 클라이언트에서 터미널을 열고 다음 명령을 입력하여123.123.1.23
호스트의 IP 주소로 바꾸십시오 .ssh <username>@123.123.1.23
-
호스트의 OpenSSH 서버가 청취하는 포트 번호를 변경 한 경우 다음을 수행하십시오.
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
-
보다 시각적 인 SFTP 액세스를 위해 GUI 파일 관리자 (예 : 노틸러스)를 통해 호스트에 연결하고 로그인하여 파일 전송 가능
- 클라이언트에서 노틸러스 열기
- 파일> 서버에 연결을 선택하십시오.
- 유형:
SSH
- 서버 : 호스트의 IP 주소를 입력하십시오
- 포트 : 호스트
sshd_config
파일에 지정된 포트 번호 - 사용자 이름 : username
- 비밀번호 : password
14.04에서 :
- 클라이언트에서 노틸러스 열기
- 서버에 연결
- 타입 :`ssh @ 123.123.1.23 :
홈 폴더 외부에서 파일 권한이 제한된 호스트에서 표준 사용자 계정 만들기
호스트에 적절한 파일 권한이 있으면 호스트에서 생성 한 각 표준 사용자 (dodo 권한 없음)가 /home/new_user
디렉토리 를 소유 하지만 나머지 디렉토리 구조에 대해서는 권한이 제한됩니다.
- 제한된 권한이 반드시 파일 이름과 디렉토리 구조를 볼 수 없다는 것을 의미하지는 않습니다.
도움이 되길 바랍니다.
답변
1 단계 : OpenSSH 패키지가 설치되지 않은 경우 설치
sudo apt-get install openssh-server
2 단계 : SFTP 사용자를위한 별도의 그룹을 만듭니다.
sudo addgroup ftpaccess
3 단계 : /etc/ssh/sshd_config
파일을 편집 하고 아래와 같이 변경합니다. 아래 줄을 찾아서 의견을 작성하십시오.
#Subsystem sftp /usr/lib/openssh/sftp-server
파일 끝에이 줄을 추가하십시오.
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
4 단계 : sshd 서비스를 다시 시작하십시오.
sudo service ssh restart
5 단계 : ftpaccess 그룹의 사용자를 추가하고 비밀번호를 작성하십시오.
sudo adduser paul --ingroup ftpaccess --shell /usr/sbin/nologin
6 단계 : 홈 디렉토리 권한 수정
sudo chown root:root /home/paul
7 단계 : 그룹 내부의 업로드 및 수정 권한을 위해 집 안에 디렉토리를 만듭니다.
sudo mkdir /home/paul/www
sudo chown paul:ftpaccess /home/paul/www
그게 다야.
참조 : 우분투에서 SFTP 설정
답변
Denyhosts 는 “jtd”에서 언급 한 것 이외의 다른 도구입니다. SSH 서버에 대한 반복 된 연결 시도를 자동으로 차단할 수 있습니다. 우분투 저장소에 설치할 수 있습니다.
답변
사용자에 대한 액세스 제한
여기서는 사용자가 파일 전송 만 수행하도록 허용하고 터미널 액세스를 비활성화합니다.
이를 위해 구성 파일의 맨 아래에 다음 코드를 추가하십시오.
$ sudo nano /etc/ssh/sshd_config
이제 파일이 열리고 코드를 붙여 넣습니다.
/etc/ssh/sshd_config
. . .
Match User filemg
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
대체 filemg
사용자 이름. 그런 다음 파일을 저장하고 닫습니다.
그게 다야.