Linux ETC

shell 접속은 차단하고 ftp접속만 허용하기

2008.05.20 20:43

sylee 조회 수:34491

# 여기서는 proftp를 사용한다고 가정합니다.

보통 adduser로 유저를 생성하게 되면, ssh접속권한과 ftp접속 권한을 모두 가지게 된다.

이때 서버를 잘 모르는 사람에게는 ssh(서버에 접속할수 있는 권한)은 주지 않고, ftp만 접속할수 있게끔 설정을 해주는것이 보안에 유리하다.

다음과 같은 방법으로 한다.

1. adduser로 계정을 생성한다.

2. 후에 /etc/passwd 파일에서 해당 계정의 사용쉘을 다음과 같이 해준다.

photosell:x:504:504::/home/photosell:/bin/noshell

저장하고 나와서 빈쉘을 만든다.

3. #touch /bin/noshell
4. #chmod 755 /bin/noshell

5. 그리고 proftp의 설정파일에서
DefaultRoot                                     ~       !groupname

옵션의 주석을 풀어준다. 해당 계정은 자신이 / 이므로 더이상 위로 올라가지 못하도록 하는것이다.

그리고 다음과 같은 옵션이 off로 되어있는지 확인한다.

6.  RequireValidShell                             off

그리고 나서

7. vi /etc/shells (현재 사용가능한 쉘들이 나열되어있다. - 이파일안에 있는 쉘들만이 접속을 할수가 있다.)

8. shells 파일안에 noshell이란 쉘을 등록시켜 주게 되면 된다.

(직접 쉘 생성 외에도  shells파일에 있는 /sbin/nologin 으로 변경해줘도 된다.)

그렇게 되면 ssh로 접속을 하게되면 패스워드가 틀렸다고 나오며, ftp로 접속시에는 정상 접속이 가능하게 된다.