계정 생성을 하면 기본적으로 ssh 접속이 되게 되있는 것 같습니다.
그래서 /etc/passwd 를 열어 해당 사용자를 찾아
/bin/bash/ 를 /sbin/nologin 으로 변경했는데
ftp 접속이 안되네요.
ssh 접속은 안되면서, ftp는 사용가능하게 할려면 어떻게 해야하는지
방법을 좀 알 수 있을까요?
*서버환경
- 우분투 8.10 server
- vsftpd
- ssh
계정 생성을 하면 기본적으로 ssh 접속이 되게 되있는 것 같습니다.
그래서 /etc/passwd 를 열어 해당 사용자를 찾아
/bin/bash/ 를 /sbin/nologin 으로 변경했는데
ftp 접속이 안되네요.
ssh 접속은 안되면서, ftp는 사용가능하게 할려면 어떻게 해야하는지
방법을 좀 알 수 있을까요?
*서버환경
계정 설정이 아니라 서버 설정을 통해서 허용여부를 설정해보세요.
[quote="haze11":tcu522iu]계정 설정이 아니라 서버 설정을 통해서 허용여부를 설정해보세요.[/quote:tcu522iu]
답변 감사합니다.
근데 사실 이해가 안되네요.
서버설정에 대해 좀 더 세부적으로 알 수 있을까요?
[quote="bulletproof":2a3t0dn7][quote="haze11":2a3t0dn7]계정 설정이 아니라 서버 설정을 통해서 허용여부를 설정해보세요.[/quote:2a3t0dn7]
답변 감사합니다.
근데 사실 이해가 안되네요.
서버설정에 대해 좀 더 세부적으로 알 수 있을까요?[/quote:2a3t0dn7]
ufw(iptables)로 ssh는 본인 아이피만 허용한다.
또는
vsftp를 userlist를 이용하여 등록된 FTP 유저만 가능케 한다.
정도 같습니다.
ufw 이용
sudo ufw enable
sudo ufw default deny port 22
sudo ufw allow from 접속아이피 to any port 22
vsftp userlist 이용법
vaftp 설정 파일 /etc/vsftpd.conf 에
[i:2a3t0dn7]userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
[/i:2a3t0dn7]/etc/vsftpd.userlist 에 사용가능 아이디 기록
[quote="강분도":1lo8z8xs][quote="bulletproof":1lo8z8xs][quote="haze11":1lo8z8xs]계정 설정이 아니라 서버 설정을 통해서 허용여부를 설정해보세요.[/quote:1lo8z8xs]
답변 감사합니다.
근데 사실 이해가 안되네요.
서버설정에 대해 좀 더 세부적으로 알 수 있을까요?[/quote:1lo8z8xs]
ufw(iptables)로 ssh는 본인 아이피만 허용한다.
또는
vsftp를 userlist를 이용하여 등록된 FTP 유저만 가능케 한다.
정도 같습니다.
ufw 이용
sudo ufw enable
sudo ufw default deny port 22
sudo ufw allow from 접속아이피 to any port 22
vsftp userlist 이용법
vaftp 설정 파일 /etc/vsftpd.conf 에
[i:1lo8z8xs]userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
[/i:1lo8z8xs]/etc/vsftpd.userlist 에 사용가능 아이디 기록[/quote:1lo8z8xs]
감사합니다. 적용해보겠습니다.
참고로
userlist_deny=NO
를 추가하셔야 userlist가 활성화됩니다.
(뒷북일지도 모르겠으나)
vsftpd는 모르겠는데 proftpd 같은 경우는
RequireValidShell
이라는 설정 항목이 있습니다. 저게 on일 때 사용자의 기본 shell을 nologin 같은 것으로 변경하면 ftp도 login이 안되죠. 아마 default가 on인 것으로 기억… vsftp도 비슷한 설정항목이 있는지 찾아보세요. 많은 경우 /usr/share/(패키지이름)/ 에 가보면 예제로 쓰이는 설정파일이 있을 텐데 거기서 찾아보시면 될 듯 합니다.
[quote="khrhee":c3hyrnpx]참고로
userlist_deny=NO
를 추가하셔야 userlist가 활성화됩니다.[/quote:c3hyrnpx] 맞습니다 보충 댓글 [b:c3hyrnpx]감사 합니다.[/b:c3hyrnpx]
[quote="Lbird":c3hyrnpx](뒷북일지도 모르겠으나)
vsftpd는 모르겠는데 proftpd 같은 경우는
RequireValidShell
이라는 설정 항목이 있습니다. 저게 on일 때 사용자의 기본 shell을 nologin 같은 것으로 변경하면 ftp도 login이 안되죠. 아마 default가 on인 것으로 기억… vsftp도 비슷한 설정항목이 있는지 찾아보세요. 많은 경우 /usr/share/(패키지이름)/ 에 가보면 예제로 쓰이는 설정파일이 있을 텐데 거기서 찾아보시면 될 듯 합니다.[/quote:c3hyrnpx]vsftp 예제는 /usr/share/(패키지이름)/ 가 아니라 /usr/share/doc/(패키지이름) 뒤 디렉별로 존재 합니다.
제가 찾아보니 vsftpd에는 비슷한 옵션은 없고 유저리스트와 게스트옵션등이 비슷한 기능을 하며
또한 질문과 크게 연관도 없어 보입니다.
[code:c3hyrnpx]RequireValidShell 지시자는 /etc/shells 에 없는 쉘로 로그인 하는 것
을 허락하거나 거절하는 것에 대하여 server, virtual host, anonymous
로그인을 설정한다. 기본적으로 proftpd 는 /etc/shells 에 유저들의
기본 shell 이 없으면, 로그인을 허락하지 않는다. /etc/shells 가 없
다면, 모든 shell 들을 유효한 것으로 취급을 한다.
[/code:c3hyrnpx]
저도 뒷북 칩니다.
하핫… 부끄
제가 질문드리는 것이 이 글타래주제와 연관이 되는 지 확신이 안 서지만…일단 질문드립니다…
제 질문의 요지는
'친구에게 제 vsftpd에 접속권한만 주고 싶은데(SSH나VNC등의 접속은 안되게…)
과연 어떻게 하면…가장 쉬운 방법일까??'입니다…
제 사양은
8.04이고
kernel은 linux-image-2.6.24-24-generic (커널이라는 게 이거 맞죠??ㅡㅡ;;
vsftpd은 2.0.6-1ubuntu1.1이며 mode는 standalone(?)이 아닌 다른 모드(서비스에 등록되는…)입니다…
우선…
vsftpd는 제대로 동작중이고…접속도 제대로 됩니다…
그러면…예를 들어…
id : han
pw : mail
이라는 아이디로 ftp에 접속해서
/media/sdb1/Echo_manual_무지중요_절대_삭제하지_말_것
라는 폴더의 내용을 받아가게 하고 싶은데…
아무래도 강분도님께서 적어주신…
내용중…
[quote="강분도":3uy7nhar]
ufw(iptables)로 ssh는 본인 아이피만 허용한다.
또는
vsftp를 userlist를 이용하여 등록된 FTP 유저만 가능케 한다.
정도 같습니다.
ufw 이용
sudo ufw enable
sudo ufw default deny port 22
sudo ufw allow from 접속아이피 to any port 22
vsftp userlist 이용법
vaftp 설정 파일 /etc/vsftpd.conf 에
[i:3uy7nhar]userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
[/i:3uy7nhar]/etc/vsftpd.userlist 에 사용가능 아이디 기록[/quote:3uy7nhar]
/etc/vsftpd.userlist 에 사용가능 아이디 기록
이 부분이 해결책인 듯 한데…
아이디만 기록하면…pw는 어찌 기록하는 걸까요??
그러니까…
/etc/vsftpd.userlist 에 기록하는 형식은 어찌 해야 하는 걸까요??
우선
파일을 만들어서
id pw
이런 식으로 기록했더니 접속이 안되더군요…ㅡㅡ;;;
[quote="khrhee":3uy7nhar]참고로
userlist_deny=NO
를 추가하셔야 userlist가 활성화됩니다.[/quote:3uy7nhar]
이것도 물론 했구요…
그리고 각각의 id에 접근가능한 폴더를 어디에 기록해야 할까요??
p.s. 친구에게 저 폴더아래에 있는 내용을 전해줘야 하는데…39기가…
그동안 주로 했던 방법은…그냥…외장하드에 저장해서…택배로 보내기…였는데…
이번에는 그냥 ftp한 번 사용해 보려고 하는데…
모르는 게 많아서…^^;;;;;;;;;;;;
p.s.1 질문을 정리 좀 해보려 했는데…죄송합니다…ㅠㅠ
[quote="rednwhite":3073t8av]'친구에게 제 vsftpd에 접속권한만 주고 싶은데(SSH나VNC등의 접속은 안되게…)
과연 어떻게 하면…가장 쉬운 방법일까??'입니다…
[/quote:3073t8av]
그냥 ssh-sever 은 설치 하지 말던가
데탑이면 보통 ssh-server 은 설치 되지 않았을 것입니다.
ssh 데몬은 띄우지(실행) 하지 않는거죠
vsftp 만 돌리면 되죠 ^^
서버 데몬 확인 법
netstat -ntlp
또는 nmap localhost
햔재 우분투 데탑에 vsftpd 만 설치 했다면
ssh-server 는 돌아가지 않고 있을 것입니다.
가장 쉬운 방법이요 ? [b:3073t8av] 아무것도 안하셔도 될듯 합니다.[/b:3073t8av]
SSH의 사용자 계정 접근 제한은 PAM을 통해 이루어집니다
[code:1uscxo1y]eripeh@eripeh-laptop:~$ sudo vi /etc/pam.d/sshd[/code:1uscxo1y]
해당 파일을 열어서 아래의 내용을 추가합니다
[code:1uscxo1y]
auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sshusers onerr=succeed
[/code:1uscxo1y]
pam정책중 list를 구성하여 접근목록을 구성해주는것이지요
(참고로 vsftp의 경우 vsftpd.ftpusers라는 리스트를 사용하는데 이것도 pam을 통해 이루어지는 겁니다)
item항목엔
user/tty/rhost/ruser/group/shell 별로 설정이 가능합니다
sense항목엔 어떤 정책을 사용할것인지 기입해주는 곳인데 이곳엔
allow 및 deny가 들어가게 됩니다
그 내용은 밑에서 살펴 보기로 하고
file항목은 접근리스트를 구성할 파일을 지정해줍니다
onerr항목은 sense값의 반대로 지정해주시면 됩니다
deny일 경우 succeed
allow일 경우 fail
저렇게 작성하시고 저장하고 나온 후에 아래 명령을 실행합니다
[code:1uscxo1y]eripeh@eripeh-laptop:~$ sudo vi /etc/ssh/sshusers[/code:1uscxo1y]
열어보니 파일에 아무 내용이 없지요?
여기다가 접근을 허용할 계정 및 접근을 거부할 계정을 적어주는겁니다
그에 따른 설정은 아래에 나와있습니다
위 /etc/pam.d/sshd 내용 중 sense항목 기억하시나요?
대략1,2분전에 언급을 하였으니 기억나실겁니다
sense=deny 일 경우
/etc/ssh/sshusers에 eripeh(계정명)라고 적어두면
eripeh라는 계정은 ssh로 접속을 할 수가 없게 됩니다
마찬가지로
sense=allow 일 경우
/etc/ssh/sshusers에 eripeh라고 적어두면
eripeh라는 계정은 ssh로 접속을 할수 있게 되는 겁니다. 다만 나머지 계정은 막히겠죠
pam정책을 구성해주고 나면 바로 적용되니 바로 테스트해보시기 바랍니다
참고 -
/etc/passwd에 /sbin/nologin을 추가 하게 되면 콘솔, ssh, ftp등등 모두 계정로그인이 안됩니다
ssh는 특정 ip나 ip대역으로밖에 막지 못하기 때문에 PAM을통한 인증으로 계정접근제한을 할 수 있습니다
즐거운 우분투생활 되세요 ~