본문 바로가기

Linux

scponly 설정하기

Linux 서버를 운용하다 보면, Machine to Machine 통신이 필요한 경우가 있습니다. 특히, 단순히 파일 전송을 위해 계정을 만들어야 할 경우가 있는데, scponly를 사용하면 많은 부분에서 보안 문제를 해결할 수 있습니다. 아래 예제는 CentOS에서 적용하는 방법입니다.

1. /usr/sbin/scponlyc 확인

[sems@LEMon33 ]$ ls -l /usr/sbin/scponlyc

-rwsr-xr-x 1 root root 24088 Oct 15  2014 /usr/sbin/scponlyc

 

2.     root 계정으로 아래의 Directory를 만든다.

예시 user 계정 : jftp

root directory : /ap_log, home directory : /ap_log/corelogs

[root@LEMon33 ]# mkdir /ap_log

[root@LEMon33 ]# mkdir /ap_log/bin

[root@LEMon33 ]# mkdir /ap_log/dev

[root@LEMon33 ]# mkdir /ap_log/etc

[root@LEMon33 ]# mkdir /ap_log/lib64

[root@LEMon33 ]# mkdir /ap_log/usr

[root@LEMon33 ]# mkdir /ap_log/usr/bin

[root@LEMon33 ]# mkdir /ap_log/usr/lib64

[root@LEMon33 ]# chown jftp /ap_log/corelogs

 

l  scponly설정이 안되어 있을 경우.

usermod -s /usr/sbin/scponlyc jftp 명령으로 설정

3.     directory 별로 필요한 파일들을 복사한다.

/ap_log/bin에는 /bin 에 있는 아래의 파일들을 복사한다.

cp /bin/chgrp /ap_log/bin

 

[root@LEMon33 bin]# ls -l

total 660

-rwxr-xr-x 1 root root  55472 May 17 14:09 chgrp

-rwxr-xr-x 1 root root  52472 May 17 14:09 chmod

-rwxr-xr-x 1 root root  57464 May 17 14:09 chown

-rwxr-xr-x 1 root root  28176 May 17 14:09 echo

-rwxr-xr-x 1 root root  49504 May 17 14:09 ln

-rwxr-xr-x 1 root root 117024 May 17 14:09 ls

-rwxr-xr-x 1 root root  49384 May 17 14:09 mkdir

-rwxr-xr-x 1 root root 113368 May 17 14:09 mv

-rwxr-xr-x 1 root root  31656 May 17 14:09 pwd

-rwxr-xr-x 1 root root  57440 May 17 14:09 rm

-rwxr-xr-x 1 root root  40480 May 17 14:09 rmdir

 

/ap_log/lib64에는 /lib64 전체를 복사한다.(하위 directory는 필요 없음)

cp /lib64/* /ap_log/lib64/

 

/ap_log/dev에는 /dev/null 파일을 복사한 후 파일 권한을 변경한다.

cp /dev/null /ap_log/dev

chmod 666 /ap_log/dev/null

 

/ap_log/etc에는 /etc에 있는 아래의 파일들을 복사한다.

[root@LEMon33 ap_log]# ls -l etc

total 76

-rw-r--r-- 1 root root   944 May 17 14:09 group

-rw-r--r-- 1 root root 63403 May 17 14:09 ld.so.cache

-rw-r--r-- 1 root root    28 May 17 14:09 ld.so.conf

-rw-r--r-- 1 root root    52 May 17 15:05 passwd

 

/ap_log/usr/bin에는 /usr/bin에 있는 아래 파일들을 복사한다.

[root@LEMon33 usr]# ls -l bin

total 648

-rwxr-xr-x 1 root root 414968 May 17 14:10 rsync

-rwxr-xr-x 1 root root  63552 May 17 14:10 scp

 

/ap_log/usr/lib64에는 /usr/lib64 전체를 복사한다.

cp /usr/lib64/* /ap_log/usr/lib64/

 

4.     passwd 파일 설정

/etc/passwd 파일을 열어서 아래와 같이 수정한다.

jftp:x:301:300::/ap_log//corelogs:/usr/sbin/scponlyc

 

/ap_log/etc/passwd 파일을 열어서 모든 라인을 삭제하고 jftp만 남겨둔다.

jftp:x:301:300::/ap_log//corelogs:/usr/sbin/scponlyc

 

5.     확인

scp 프로그램으로 접속하면 /ap_log directoryroot directory로 설정되어 다른 Directory는 접근 불가한 것을 확인할 수 있습니다.(아래의 winscp 화면 캡처 첨조)

 

'Linux' 카테고리의 다른 글

Shell Script: if 조건문  (0) 2021.03.03
Shell Script 연산자 정리  (0) 2021.02.11
PC에서 VirtualBox Ubuntu와 통신하기  (0) 2021.02.09
VirtualBox Ubuntu 20.04 해상도 설정  (0) 2021.02.07
Shell Script - 변수  (0) 2021.02.06