본문 바로가기
구 블로그 보관처

LINUX - shell 접속 불가하고 sFTP만 되는 계정을 만드는 방법

by 행복한 만수킴 2020. 5. 17.

 



  • ​아래 내용은 "http://ms9567.blog.me/60212470069"에서 "SSH 보안 설정"을 한 상태에서 진행이 된 것이다. 
    고로 여러 상황에 따라 다를 수 있음에 주의하자.

  1. ​shell 권한 없는 계정 생성 (http://jmnote.com/wiki/쉘_권한_없는_계정_생성)
    • 명령어 : useradd -s /sbin/nologin 계정명 
    • 명령어 : useradd -s /bin/false 계정            <-- 위 방법과 약간의 차이는 있지만 가능하다고 함.
    • 명령어 : usermod -s /sbin/nologin 계정명    <-- 기존 유저를 변경할 때.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      [root@centos /]# useradd -s /bin/nologin sftpuser
      메일함 파일을 만드는 중: 파일이 있습니다
       
      [root@centos /]# ls -al /home
      합계 32
      drwxr-xr-x.  5 root     root      4096 2014-04-09 22:45 .
      dr-xr-xr-x. 24 root     root      4096 2014-04-09 22:27 ..
      drwx------.  2 root     root     16384 2014-04-07 14:27 lost+found
      drwx------   2 sftpuser sftpuser  4096 2014-04-09 22:45 sftpuser
      drwx------   4 tank     tank      4096 2014-04-09 19:09 tank


  2. 암호 지정 & 확인
    • 명령어 : echo '패스워드' | passwd --stdin 계정명
    • 명령어 : grep nologin /etc/passwd | grep 계정명
    • 명령어 : grep 계정명 /etc/shadow 
      1
      2
      3
      4
      5
      6
      7
      8
      9
      [root@centos /]# echo 'password' | passwd --stdin sftpuser
      sftpuser 사용자의 비밀 번호 변경 중
      passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
       
      [root@centos /]# grep nologin /etc/passwd | grep sftpuser
      sftpuser:x:602:602::/home/sftpuser:/bin/nologin
       
      [root@centos /]# grep sftpuser /etc/shadow 
      sftpuser:$6$dMqUnkrm$eABbYRCUEqDDuj5r8PPB6jt/wD.zBGA1Y3y84pHCwqHguDcog8sujtdTA9oWXrdhxgqDYiTyBX.yn4bIo6P1h1:16169:0:99999:7:::


  3. Shell에 접속 안되는지 확인
    • 명령어 : ​ssh 계정명@192.168.219.238 -p 1234
    • 명령어 : su - 계정명
    • 1
      2
      3
      4
      5
      6
      7
      [root@centos home]# ssh sftpuser@localhost -p9022
      sftpuser@localhost's password: 
      This account is currently not available.
      Connection to localhost closed.
       
      [root@centos home]# su - sftpuser
      This account is currently not available.


  4. sshd_config 변경
    • 명령어 : ​vi /etc/ssh/sshd_config
    • sftp 관련 설정을 internal-sftp로 변경한다.
    • 1
      2
      3
      4
      5
      6
      [root@centos sftp]# vi /etc/ssh/sshd_config
        === 중략 ===
      # override default of no subsystems
      #Subsystem      sftp    /usr/libexec/openssh/sftp-server
      Subsystem      sftp    internal-sftp
        === 중략 ===


  5. ssh 재시작
    • 명령어 : service sshd restart
      1
      2
      3
      [root@centos sftp]# service sshd restart
      sshd 를 정지 중: [  OK  ]
      sshd (을)를 시작 중: [  OK  ]



  6. 파일질라 이용 접속 테스트
    • 접속 성공. "/home/계정명" 로 기본 접속 된다.
      아래는 Filezilla 로그를 캡쳐
      1
      2
      3
      4
      5
      6
      7
      23:09:55    상태:    Connected to 192.168.219.238
      23:09:55    상태:    디렉터리 목록 조회...
      23:09:55    명령:    pwd
      23:09:55    응답:    Current directory is: "/home/sftpuser"
      23:09:55    명령:    ls
      23:09:55    상태:    Listing directory /home/sftpuser
      23:09:55    상태:    디렉터리 목록 조회 성공

  • sFTP Log 파일 보는 법 (사실은 secure 로그)
    암튼 sFTP가 정상 접속 되지 않을 경우 아래 로그를 보고 해결방법을 찾아라.
    • ​tail -f /var/log/secure

 

댓글0