반응형

출처: https://zetawiki.com/wiki/CentOS_php-mcrypt_%EC%84%A4%EC%B9%98


Red Hat, CentOS 6에서 테스트하였습니다.
how to install php-mcrypt on CentOS 6
PHP Mcrypt on CentOS 6
The mcrypt extension is missing. Please check your PHP configuration.
php-mcrypt 설치

1 문제상황 1: phpMyAdmin[편집]

phpMyAdmin에서 아래와 같은 경고 메시지가 나온다.

The mcrypt extension is missing. Please check your PHP configuration.

php-mcrypt 모듈이 없어서 그렇다.

2 문제상황 2: php[편집]

PHP에서 mcrypt 함수를 사용하고 싶은데 안된다.

Fatal error: Call to undefined function mcrypt_create_iv()

3 확인[편집]

[root@zetawiki ~]# php -r "mcrypt_create_iv();"
PHP Fatal error:  Call to undefined function mcrypt_create_iv() in Command line code on line 1

Fatal error: Call to undefined function mcrypt_create_iv() in Command line code on line 1
→ mcrypt_create_iv 함수를 인식하지 못한다.
[root@zetawiki ~]# php -m | grep mcrypt
[root@zetawiki ~]# rpm -qa | grep mcrypt
[root@zetawiki ~]#
→ 설치 안됨.
[root@zetawiki ~]# yum list php-mcrypt
... (생략)
Error: No matching Packages to list
→ CentOS 기본 yum 저장소에는 없음

4 epel-release 설치[편집]

16px-Crystal_Clear_app_xmag.svg.png epel-release 설치 문서를 참고하십시오.

5 php-mcypt 설치[편집]

[root@zetawiki ~]# yum install php-mcrypt
... (생략)
==================================================================================================================
 Package                      Arch                     Version                       Repository              Size
==================================================================================================================
Installing:
 php-mcrypt                   x86_64                   5.3.3-1.el6                   epel                    18 k
Installing for dependencies:
 libmcrypt                    x86_64                   2.5.8-9.el6                   epel                    96 k

Transaction Summary
==================================================================================================================
Install       2 Package(s)

Total download size: 114 k
Installed size: 326 k
Is this ok [y/N]: y
... (생략)
Installed:
  php-mcrypt.x86_64 0:5.3.3-1.el6                                                                                 

Dependency Installed:
  libmcrypt.x86_64 0:2.5.8-9.el6                                                                                  

Complete!

6 확인 2[편집]

[root@zetawiki ~]# php -m | grep mcrypt
mcrypt
[root@zetawiki ~]# rpm -qa | grep mcrypt
php-mcrypt-5.3.3-1.el6.x86_64
libmcrypt-2.5.8-9.el6.x86_64
[root@zetawiki ~]# php -r "mcrypt_create_iv();"
PHP Warning:  mcrypt_create_iv() expects at least 1 parameter, 0 given in Command line code on line 1

Warning: mcrypt_create_iv() expects at least 1 parameter, 0 given in Command line code on line 1
→ mcrypt_create_iv 함수가 인식되었다.

7 아파치 재시작[편집]

  • 웹에도 적용되게 하기 위해서는 httpd를 재시작해야 한다.
[root@zetawiki ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
  • 이제 phpMyAdmin에서도 경고 메시지가 사라졌을 것이다.

8 같이 보기[편집]

9 참고[편집]


반응형
반응형

출처: https://levin01.tistory.com/1624


1. Proftp 소개  


1. Proftp 소개
Proftpd는 파일전송 프로토콜인 FTP의 일종으로서 보안적이고 신뢰적인 FTP서버가 되기를
희망하며 발전을 하며 Apache 설정파일과 같은 설정 방식을 따른다.
Proftpd는 다음 기능을 제공한다.
☞ Apache 웹 서버를 사용해 본 관리자라면 누구나 직관적으로 이해할 수 있는 지시자와
  지시그룹으로 된 단 하나의 설정 화일.
☞ Apache의 ".htaccess"와 비슷한 각 디렉토리의 ".ftpaccess" 설정.
☞ 쉽게 설정할 수 있는 다중 가상 FTP 서버와 anonymous FTP 서비스.
☞ 시스템 부하에 따라 stand-alone 또는 inetd 중에서 골라서 운영되도록 만들어짐.
☞ anonymous FTP의 root 디렉토리에는 특별한 디렉토리 구조나 시스템 화일이 없어도 됨.
☞ SITE EXEC 명령이 없다. 현대의 인터넷 환경에서 그런 명령은 보안면에서 악몽이다.
  ProFTPD는 어떠한 경우에도 어떤 외부 명령도 실행하지 않는다. 검사를 위해 관리자에게
  소스가 제공된다 (항상 제공될 것이다).
☞ 유닉스 스타일 퍼미션에 기초한 숨겨지는 디렉토리나 화일들 또는 유저/그룹 소유권.
☞ "root" 권한을 따낼 수 있는 공격의 기회를 줄이기 위해 stand-alone 모드에서는 특권이
없는 유저도 운영을 할 수 있도록 설정가능. 주의: 이 기능은 Unix 시스템의 능력에 기초한다.
☞ 기록하기, utmp/wtmp 지원. 기록하기는 wu-ftpd 표준과 호환이며 확장된 기록하기도 가능하다.
☞ shadow 암호 지원, 만료된 계정들 지원 포함.
                                                             <자료출처 : proftpd.oops.org>


2. Proftp 설치파일 확인  


1. 패키지 확인 및 파일설명
]# rpm -qa | grep proftp [Enter]
proftpd-1.2.1-2wl

]# rpm -ql proftpd-1.2.1-2wl  [Enter]
/etc/pam.d/ftp  #ftp사용자 인증할때 사용한다.
/etc/proftpd/conf/ftpusers # ftp접속을 제한하는 사용자를 등록한다.
/etc/proftpd/conf/proftpd.conf #ftp설정파일이다.
/etc/proftpd/conf/proftpd.xinetd #ftp를 xinetd에 넣을때 사용되는 파일이다.
/etc/proftpd/document
/etc/rc.d/init.d/proftpd   #proftpd 대몬파일이다.
/usr/sbin/ftpshut    # proftp대몬을 죽일때 사용한다.
/usr/sbin/in.ftpd
/usr/sbin/in.proftpd  # xinetd에 넣을때 사용되는 대몬
/usr/sbin/proftpd
/usr/sbin/xferstats  #ftp상태를 보여준다.
.............
/var/ftp/incoming   # 디렉토리생성
/var/ftp/pub        # 디렉토리생성
/var/run/proftpd    # 디렉토리생성




3 Proftpd.conf  


1. 설정 파일 분석
]# cat /etc/proftpd/conf/proftpd.conf [Enter]
# ProFTPD configuration file. Need more information of configuration,
# See the References in '/usr/share/doc/proftpd-core-{version}/' directory
# If u have any question, visit our Web Site.http://www.wowlinux.com
# orhttp://proftpd.oops.org
# Thank you - WOWLINUX.COM


#########################
#    Global start       #    ## Global Section
#########################

ServerName "canux.pe.kr FTP Server"
# ftp서버네임을 지정해준다.

ServerType standalone
# 서버타입을 적어주는 곳으로 standalone,xinetd두가지 방법이 있습니다.

DefaultServer on
# ftp서버가 여러개일경우 기본ftp로 설정하는 부분이다.

Port 21
# ftp가 사용할 포트

Umask 022
# 파일생성시 퍼미션 지정

MaxInstances 30
# 최대 자식프로세스 수 지정

User nobody
# ftp가 실행되는 사용자명을 지정한다.

Group nobody
# ftp가 실행되는 그룹명을 지정한다.

DefaultRoot                  ~
# 계정사용자가 ftp로긴시 홈디렉토리외의 상위디렉토리 접근금지

UseReverseDNS off
# 호스트 이름으로 기록할 건지를 설정

ServerAdmincanux@canux.pe.kr
# 서버관리자메일주소지정한다. 문제발생시 관리자한테 메일을 발송한다.

IdentLookups off

AuthPAMAuthoritative on
# ftpusers를 사용하여 인증여부 설정

RootLogin off
# root관리자 로긴허용 여부 설정 만약 허용하고 싶을때는 ftpusers파일에서 root 각주처리

DenyFilter \*.*/
# 특수문자에 대해서 거부설정

DeferWelcome off
# 인증전 서버 이름이 화면에 뿌려지는 것인지 허용여부

TimesGMT off
# 타임아웃을 설정안함

#RateReadBPS 256
# 초당 전송 대역폭(BPS)

#RateReadFreeBytes 5120
#RateReadHardBPS on

TimeoutIdle 0
# client에서 아무런 작업을 하지 않을때 연결을 끊는 것을설정 0이면 연결제한을 안한다

TimeoutNoTransfer 0
# TimeoutIdle,TimeoutNoTransfer는 User가 접속 후 아무 작업도 하지 않을 경우 접속 종료 시간 설정

TimeoutLogin 300
# client가 인증을 유지할수 있는 시간을 초단위로 지정

DisplayLogin /etc/proftpd/conf/welcome.msg
# 로그인시 뿌려지는 메세지의 경로

DisplayFirstChdir .message
# 각 디렉토리별로 접근시 뿌려지는 메세지 파일 이름

<Directory /*>
 AllowOverwrite on
 # ftp / 디렉토리내에서 같은 이름의 파일이 전송받을때 덮어쓰기를 허용할지 거부할지 설정
</Directory*>

#########################
#    Global   END       #
#########################

#########################
#   Anonymous   start   #    ## Anonymous Section
#########################

<Anonymous ~ftp>

 User ftp
 #Anonymous로 접속할경우 사용자를 ftp로 인식한다.
 
 Group ftp
 #Anonymous로 접속할경우 그룹명을 ftp로 인식한다.

 UserAlias anonymous ftp
 #Anonymous접속한 사죵자의 접속자명을 ftp로 별칭
 
 MaxClients 10 "Sorry, maxium users %m -- try again later"
 #동시접속자수를 제한하는것으로 10이 초과시 " "안의 메시지를 출력한다.
 
 MaxClientsPerHost 2 "Sorry, Over 2 connection not allow"
 #한 호스트당 접속할수있는 최대 사용자수로 초과시 " "안의 메시지를 출력한다.
 
 DisplayLogin welcome.msg
 # ftp로 로긴할때 출력해지는 파일지정
 
 DisplayFirstChdir .message
 # 각 디렉토리별로 접근시 뿌려지는 메세지 파일 이름
 
 RequireValidShell off
 # Anonymous로 접속가능하게 할려면 off로 설정

#  HideUser root
# 지정한 사용자권한의 화일을 안보이도록 설정

#  HideGroup root
# 지정한 그룹권한의 화일을 안보이도록 설정

# Anonymous/'s Uploads Directory
 <Directory incoming/*>
   AllowOverwrite on
   # 같은이름의 파일을 덮어쓰기를 설정
   
   AllowRetrieveRestart on
   # FTP REST 명령을 통하여 file을 재전송 하는 것을 허용
   
   AllowStoreRestart on
   # client로 부터 server로 보내지는 store file 전송을 client가 "restarting" 하는 것을 허락하거나 거부
   
   <Limit DELE RMD>
   # 디렉토리삭제,삭제에 대한설정
   
     DenyAll
     # 디렉토리삭제,삭제에 전부 거부한다.
     
   </Limit>
   <Limit READ STOR MDK>
   # 읽기,저장디렉토리생성에 대한 설정
   
     AllowAll
     # 읽기,저장,디렉토리생성을 허락한다.
     
   </Limit>
   
   <Limit LOGIN>
   # 사용자로긴에 관한 설정
   
   Order deny, allow

   Deny from 203.249.73.2, 211.203.178.5, 211.112.37., .deny.com
   # 위의 아이피나 도메인명에서는 접속을 거부한다.

   Allow from all
   # 위의 거부목록을 제외한 나머지 머신에서는 접속이 가능하다.

   </Limit>
   
 </Directory>

# Anonymous\'s Public Directory
 <Directory pub/*>
 # pub/*아래파일에 대한 설정
 
   <Limit READ>
   # 읽기권한에 대한 설정
   
     AllowAll
     # 읽기권한 허락한다.
     
   </Limit>
   <Limit STOR DELE RMD MKD>
   # 저장,삭제,디렉토리생성,삭제에 대한 설정
   
     DenyAll
     # 저장,삭제,디렉토리생성,삭제를 거부한다.
   </Limit>
 </Directory>

</Anonymous>
#########################
#   Anonymous    end    #    ## Anonymous Section
#########################


4. /etc/proftpd/conf/welcome.msg  


1. welcome.msg설정
ftp사용자가 접속했을때 보여주는 메세지내용이다.
]# cat /etc/proftpd/conf/welcome.msg
ftp://%L/
Available Disk Space : %F
Now Login Users : %N/%M
Remote Host : %R Remote User : %u
Uptime : %T
Admin-Mail : %E

ftp접속후 나온결과
ftp://canux.pe.kr/
Available Disk Space : 408516
Now Login Users : 1/unlimited
Remote Host : 127.0.0.1 Remote User : UNKNOWN
Uptime : Wed Mar 27 05:55:03 2002
Admin-Mail :canux@canux.pe.kr


여기서 쓰이는 변수는 다음과 같은 뜻을 나타냅니다.
변수 설명
%L 서버명
%u 접속 계정명
%F 남은 용량
%T 접속 시간
%N 현 사용자
%E 관리자 e-mail
%M 최대 사용자
&C 현재 디렉토리
%R 리모트 호스트명


5. Xinetd Deamon 합류  


1. xinetd에 끼워넣기
rpm버젼을 설치했을경우 /etc/xinetd.d/에 proftpd설정파일은 /etc/proftpd/conf/proftpd.xinetd파일이다.
이파일을 이름을 proftpd로 바꾸어서 복사하면 된다.
만약 화일이 없다면 패키지 검사를 해보면된다.
]# rpm -ql proftpd | grep proftpd.xinetd [Enter]
/etc/proftpd/conf/proftpd.xinetd

]# service proftpd stop [Enter]
Shutting down proftpd: No way to suspend [  OK  ]

]# cat /etc/proftpd/conf/proftpd.conf | grep ServerType [Enter]
ServerType                      inetd    # 7.x대라고 xinetd를 적어주면 안된다.

]# vi /etc/xinetd.d/proftpd [Enter]
service ftp
{
       disable                 = no    #사용가능하도록 no로 설정
flags                   = REUSE
       protocol                = tcp
       socket_type             = stream
       instances               = 50
wait                    = no
       user                    = root
       server                  = /usr/sbin/in.proftpd
       log_on_success          = HOST PID
       log_on_failure          = HOST RECORD
nice = 10
}
위에서 바꿀내용은 사용여부만을 바꾸어주면 된다. 만약 소스로 설치했다면 server의 대몬경로를 수정해야 한다.

]# service xinetd restart [Enter]
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

]# ftp 0 [Enter]
Connected to 0.
220 BCB1COOL Server (Proftpd FTP Server) [test.ilinuxbay.com]
500 AUTH not understood.
500 AUTH not understood.
KERBEROS_V4 rejected as an authentication type
Name (0:root): canux
331 Password required for canux.
Password:
230-ftp://test.ilinuxbay.com/
Available Disk Space : 408508
Now Login Users : 1/unlimited
Remote Host : 127.0.0.1 Remote User : UNKNOWN
Uptime : Wed Mar 27 14:05:51 2002
Admin-Mail :canux@canux.pe.kr
230 User canux logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
21 Goodbye
]#


6. ftp 관련 명령어  


1. proftp관련 명령어
- ftpusers
ftp접근사용자를 제한하는것으로 이파일안에 있는사용자는 ftp를 사용할수 없다.
]  # cat /etc/pam.d/ftp [Enter]
 auth       required     /lib/security/pam_listfile.so item=user sense=deny \
                         file=/etc/proftpd/conf/ftpusers onerr=succeed

 ]# cat /etc/proftpd/conf/ftpusers [Enter]
 # ftp로긴을 거부하는 사용자 목록
 root
 bin
 daemon
 adm
 lp
 sync
 shutdown
 halt
 mail
 news
 uucp
 operator
 games
 nobody
 gdm
 mysql
 canux
 ]#

- ftpshut
 지정한 시간에 모든 proftd server들을 shutdown 한다. 이 명령은 자동으로 shtudown 진행을
 준비하고, 자동으로 현재 proftpd connection을 끊을 수 있으며, 새로운 연결을 거부하도록
 할 수 있다. 명령은 suhtdown이 임박함을 proftpd process에 알리기 위하여 /etc/shutmsg와
 같은 control file을 이용하여 사용할 수 있다.

ftpshut [ -l min ] [ -d min ] time [ warning-message ]

 옵션 설명
 time time은 ftp server를 down시킬 시간을 말한다. now'라는 단어는 즉시 shutdown을
 지시하며 +number 또는 HHMM. 이라는 두 개의 형식 중 하나는 미래의 시간에 shut down을 지시한다.
 첫번째 형식은 number 분 후에 server를 down 하며 두번째 지시자는 하루 중 정확한 시간을
 지시하며 24시간 clock 형식을 사용한다. (예 오후3시 30분 : 1530 )

 -l min shutdown 전에 새로운 ftp access를 거부하는 것을 분단위의 숫자로 지정한다.
 만약 -l 옵션을 지정하지 않으면, 기본으로 10분이 적용된다.
 (만약 shutdown 까지 10분이 채 남지 않는다면 즉시 적용된다.)

 -d min shutdown 전에 현재 ftp connection들을 종료하는 것을 분 단위의 숫자로 지정한다.
 -d 옵션을 지정하지 않으면 기본으로 5분이 적용된다. shutdown이 5분 이내로 남았다면 즉시
 접속이 종료된다.


 warning-message(경고 메세지)

 새로운 접속을 거부하거나 현재 연결되어 있는 session을 종료시킬 때 부가적으로 메세지를
 준비할 수 있다. 메시지는 아래와 같은 변수를 이용해서 작성할 수 있다.

 %s proftpd가 종료하는 시간

 %r 새로운 접속이 거부되기 시작하는 시간

 %d 현재 접속이 종료되는 시간

 %C 현재 작업중인 directory (where applicable)

 %L local host name (of virtualhost name)

 %R remote host name

 %T local time (형식 : Thu Nov 15 17:12:42 1990)

 %U login time 시에 주어진 username

 ]# ftpshut -l 5 -d 5 /etc/proftpd/conf/warn.conf  [Enter]

반응형
반응형

분  시  일 월 요일 명령
10   *   *  *   *     echo 'Hello'

 
설명
   분: 0~59
   시: 0~23
   일: 1~31
   요일: 0~6 (0: 일요일, 6: 토요일)


1분단위의 경우

*/1 * * * * 명령어

이렇게 하면 1분단위가 되는데 30초 단위로 명령이 실행되고자 한다면 sleep 을 이용하면 된다.

* * * * * * 명령어 & sleep 30; 명령어

이렇게 하면 명령어가 실행된뒤 30초간 sleep 한뒤 다시 명령어를 실행 그렇게 계속 반복하도록 하는 것이다.

물론 수정후 데몬을 재시작 해주셔야겠죠
/etc/init.d/crond restart


예시 : 5초단위로 task라는 job을 돌여야 하는 경우

* * * * * ~/dostuff.sh

dostuff.sh:

(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &

 

 

 

 1분을 12회 실행 - 5초간격

/root/5seconds.sh & sleep 5

*/1 * * * * root cat /dev/null > /root/5seconds.txt; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5; /root/5seconds.sh & sleep 5 

 

//1초 마다 실행

(sleep 1   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &
(sleep 2   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &
(sleep 3   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &
(sleep 4   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &
(sleep 5   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &
(sleep 6   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &

.....

(sleep 60   && wget -O - -q -t 1 http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php) &


파라메터

wget -q --post-data 'pwd=adc123' http://219.240.39.221/sm_dev/myinc/cron/chk_Sentinel.php > /dev/null 2>&1 


- '*' 표시는 해당 필드의 모든 시간을 의미한다.

-  3,5,7 와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
     ex) 10 1,5,7 * * * echo 'Hello'

     매일 1시 10분, 5시 10분, 7시 10분에 실행된다.

-  2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다. 
    ex) 10 1-7 * * * echo 'Hello'

    매일 1시부터 7시까지 매시 10분에(7시 10분 포함)에 실행된다.

-  2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다.

    ex) 1-59/3 1-7 * * * echo 'Hello'

    매일 1시부터 7시까지 1분, 4분(1+3), 7분(1+3+3) ... 58분까지 3분간격으로 실행된다.

[출처] Cron으로 초 단위 실행|작성자 yes


반응형
반응형

 1. ProFTPd 의 모든 설정은 이 파일에서 하게 됨.

 – proftpd.conf 설정예.

 –
proftpd.conf 파일의 전체적인 구성을 보면 모든 ftp 서비스에 대한 설정을 하는 Global 설정 부분이 있으며 그
다음에 anonymous 접근에 관한 설정이 있고 그 다음에 가상 ftp 호스트를 설정하는 부분이 있음. proftpd.conf
파일 설정시에 주의해야 할 것은 설정 지시자와 설정내용 사이에는 반드시 [TAB] 키로 띄워야 함.

 – ServerName 지시자
ServerName   “pchero21.com;s ftp service”
: ServerName 는 ftp 서버의 이름을 설정함. 대부분 ftp 사이트의 도메인명을 입력하거나 아니면 서비스명등을 입력하게 됨.

 – ServerType 지시자
ServerType   standalone
:
ServerType 설정에서는 ftp 서버데몬을 xinetd 모드로 할 것인가 아니면 standalone 모드로 운영을 할
것인가에 대한 설정을 하는 것임. 위의 설정을 standalone 모드로 운영할 경우의 설정이며 만약 xinetd 모드로 운영할
경우에는 다음과 같이 설정하면 됨.
ServerType   inetd

 – DefaultServer 지시자
DefaultServer   on
:
한대의 리눅스서버에서 여러 개의 ftp 서비스를 가상 ftp 서버로 설정하여 운용할 경우에 기본적으로 운용할 서버설정을 하는
것임. 하나의 proftpd 를 이용하여 여러 개의 가상 ftp 서버를 운용할 경우에 기본서버로 응답하게 하려면 on 을
설정하고 기본서버로 응답하지 않게 하려면 off 로 설정하면 됨.

 – DefaultRoot 지시자
DefaultRoot   ~ !wheel
: DefaultRoot 지시자는 ftp 사용자들이 자기의 홈디렉토리 상위로 이동하지 못하도록 설정하는 지시자임.
 
위의 설정은 wheel 그룹에 등록된 사용자들을 제외한 나머지 모든 사용자들에게 대한 자기자신의 홈디렉토리를 최상위 디렉토리로
인식하도록 함. 따라서 wheel 그룹에 등록된 사용자들을 제외한 나머지 모든 ftp 사용자들은 자기 자신의 홈디렉토리
상위디렉토리로 이동할 수 없음. 참고로 서버관리자는 대부분 wheel 그룹에 등록해서 사용함. 따라서 관리자에 속하는 사용자들을
wheel 그룹에 등록해 두고 이 설정을 사용한다면 관리자들은 제한없이 상위 디렉토리로 이동이 가능하면서 일반사용자들은 자기의
홈디렉토리를 벗어나지 못하므로 효율적인 설정이 됨.

 – Port 지시자
 Port   8021
:
ftp 서비스의 기본 사용포트를 지정한 것임. /etc/services 파일에 ftp 서비스의 포트설정이 되어 있어야만 정상적인
ftp 서비스가 가능함. 이 설정은 ftp 가 standalone 모드로 운영이 될 경우에만 유효한 것으로 만약 ftp 를
xinetd 환경에서 서비스를 한다면 /etc/xinetd.d/proftpd 파일에서 사용포트를 지정해 주면 됨.

 – Umask 지시자
 Umask   022   022
: Umask 설정은 ftp 로 접속한 사용자들이 파일 업로드시에 생성되는 파일퍼미션과 디렉토리퍼미션을 설정하는 것임.
 022 로 설정을 하였을 경우에는 업로드되는 파일의 퍼미션은 644 가 되며 생성되는 디렉토리의 퍼미션은 755 가 됨.
 002 로 설정을 하였을 경우에는 업로드되는 파일의 퍼미션은 664 가 되며 생성되는 디렉토리의 퍼미션은 775 가 됨.
 007 로 설정을 하였을 경우에는 업로드되는 파일의 퍼미션은 660 이 되며 생성되는 디렉토리의 퍼미션은 770 이 됨.
 070 으로 설정을 하였을 경우에는 업로드되는 파일의 퍼미션은 604 가 되며 생성되는 디렉토리의 퍼미션은 705 가 됨.
 Umask 의 설정을 파일과 디렉토리의 보안정책을 어떤식으로 가져갈 것인가에 따라서 달리 설정하면 됨.

 – MaxInstance 지시자
 MaxInstance   30
:
ftp 서비스 요청이 있을 경우에 ProFTPd 는 자식프로세스를 생성하여 개별 ftp 서비스 요구에 응답을 하게 됨. 이때
생성될 수 있는 ftp 자식프로세스의 최대수를 지정해 둔 것임. 즉, 동시에 서비스가능한 ftp접속수라고 이해 하면 됨. 또한
이 설정은 ProFTPd 서버 실행을 standalone 으로 했을 때에만 적용이 되는 것임. xinetd 로 서비스될 경우에는
적용되지 않음. 그리고 ftp 보안이라는 관점에서 이 설정이 갖는 중요한 의미는 DoS (Denal of Service)
공격방어를 어느정도 할 수 있다는 것임. DoS 공격은 수많은 서비스요구를 동시다발적으로 하여 ftp 서비스를 다운시키는
공격임. 여기서 설정된 기본 30개 이상의 ProFTPd 의 자식프로세스가 생성되지 않으므로 30개 넘게 요구가 있을 경우에는
DoS 공격이라고 판단하여 응답을 하지 않게 됨.

 – User, Group 지시자
 User   proftpd
 Group   nogroup
:
ProFTPd 의 실행시에 여기서 설정된 계정 (User) 과 그룹 (Group) 으로 실행이 됨. 어떤 이름으로 해도
상관없으나 반드시 실제 존재하는 계정으로 설정이 되어야 함. 즉 /etc/passwd 내에 존재하는 실제 계정 중 하나로 설정이
되어 있어야 한다는 것임. 다만 주의해야 할 것은 시스템에 특별한 권한이 있는 계정으로 설정을 해서는 안됨. 또한 앞서 소스를
컴파일하여 설치한 후에 proftpd 의 초기 실행시에 에러가 발생했던 것은 여기서 설정하는 Group 지시자 값이
nogroup으로 설정되어 있었기 때문임.

 – RootLogin 지시자
 RootLogin   off
:
이 설정은 시스템의 root 계정으로 ProFTPd 접속을 혀용할 것인가를 설정하는 것임. 위의 설정이 off 로 되어있는
것처럼 ProFTPd 의 초기 설정에는 root 계정으로 ftp 접속이 되지 않음. 만약 root 계정으로 ftp 접속을
허용하려면 on 으로 설정하면 됨. 하지만 서버 보안을 위해서 가능한 기본설정인 off 로 해두고 root 원격접속은 막아두는
것이 현명한 것임.

 – RateReadBPS 지시자, RateWriteBPS 지시자
: RateReadBPS
지시자는 파일을 서버에서 클라이언트로 다운로드할 때의 사용가능 대력포글 설정해 둔 것이며, RateWriteBPS 는 파일을
클라이언트에서 서버로 업로드 할 경우에 사용가능한 대역폭을 설정해 둔 것임. BPS 는 bit per second 의 약어로서
초당 전송가능한 bit 수를 의미함. 이 설정을 융통성있게 설정하면 ftp 를 효율적으로 운용할 수 있음. 즉 한명의 ftp
사용자가 모든 대역폭을 모두 차지하는 것을 방지할 수 있으며, 또한 ftp 서비스가 서버의 모든 네트웍 대역폭을 차지함으로
인하여 서버의 또 다른 서비스 (ex. www, email 등) 의 장애를 예방할 수 있음.

 – RateReadFreeBytes 지시자, RateWriteFreeBytes 지시자
: RateReadFreeBytes 지시자는 대역폭의 제한없이 download 를 허용할 bytes 수를 지정한다. RateWriteFreeBytes 지시자는 대역폭의 제한없이 upload 를 허용할 bytes 수를 지정한다.

 – DisplayLogin 지시자
 DisplayLogin   welcome.msg
: 이 설정은 ftp 접속시에 보여줄 메시지 파일을 설정한 것임. 위의 설정 예에 의하면 ftp 서버로 접속하였을 경우에 welcome.msg 라는 파일을 보여주게 된다는 것임.

 – DisplayFirstChdir 지시자
 DisplayFirstChdir   .message
:
앞서 설명한 DisplayLogin 이라는 지시자가 ftp 접속시에 보여주는 메시지내용을 설정한 것이라면 이
DisplayFirstChdir 은 ftp 접속 후에 특정 디렉토리로 이동하였을 경우에 그 디렉토리의 안내문을 보여주기 위한
설정파일임. 즉, ftp 접속후에 특정 디렉토리로 이동하게 되면 이동한 그 디렉토리내에 존재하는 .message 파일의 내용을
자동으로 보여주게 됨.

 – <Direcroty> ~ </Direcroty> 지시자
 <Direcroty /*>
    AllowOverwrite   on
 </Direcrtory>
:
이 디렉토리지시자는 개별디렉토리 이하에서의 설정을 할 수 있는 부분임. 이 설정은 주로 개별 사용자들의 ftp 디렉토리를 별도로
설정할 경우에 상둉하는 것임. 중요한 것은 이 설정에서 * 를 사용할 수 있다는 것이며, 또한 앞서 설정한 내용과 중복될
경우에는 여기서 설정한 개별 디렉토리내용이 지정한 디렉토리 내에서는 우선한다는 것임.

 – <Anonymous ~ftp> ~ </Anonymous> 지시자
: 이 설정은 anonymous ftp 에 대한 설정을 한 것임. Anonymous 접속시에 여기서 설정한 내용의 적용을 받는다는 의미가 됨.

 – <Limit> ~ </Limit> 지시자
: 이 설정이 위치하는 디렉토리내에서 사용할 수 있는 ftp 명령어들의 제약을 하기 위한 것임.

 – MaxLoginAttempts 지시자
: 동일한 클라이언트에서 ftp서버로 접속시도할 수 있는 최대허용횟수를 제한함.

 – RequireValidShell 지시자
:
이 지시자는 ftp 접속시에 쉘 (shell) 을 요구할 것인가 말것인가를 결정하는 지시자. 즉, 이 값이 on 으로 되어있다면
/etc/passwd 파일내에 설정된 각 사용자의 쉘종류가 유효한 쉘 사용자만 접속이 가능하게 됨. 반대로 이 값이 off 로
설정되어있다면 /etc/passwd 파일내에 설정된 각 사용자의 쉘종류가 유효하지 않은 쉘사용자라도 ftp 접속은 가능하게 됨.

반응형

+ Recent posts