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 directory가 root 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 |