[dhcp] 구성

 현재 /etc/dhcpd.conf 파일 구성.

#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $
#

# option definitions common to all supported networks…
option domain-name “dhcp.pchero21.com”;
option domain-name-servers ns.pchero21.com;

option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.128 {
  range 192.168.0.2 192.168.0.127;
  option broadcast-address 192.168.0.127;
  option routers 192.168.0.1;
}

subnet 192.168.0.128 netmask 255.255.255.128 {
  range 192.168.0.140 192.168.0.253;
  option broadcast-address 192.168.0.254;
  option routers 192.168.0.130;
}

# The other subnet that shares this physical network
subnet 192.168.10.0 netmask 255.255.255.0 {
#  range dynamic-bootp 204.254.239.10 204.254.239.20;
#  option broadcast-address 204.254.239.31;
#  option routers snarg.fugue.com;
}

 Debian 에서는 NIC 에 물려있는 subnet 마다 dhcp 구성을 잡아줘야 한다.

 단순히 dhcp-client 의 입장이라도 dhcp-server 구성을 할 경우에는 dhcp-client 로 잡힌 subnet 마저도 사용을 하던, 안하던 dhcp-server 구성에 추가를 해 주어야 한다.

 그래야 정상작동을 한다.

 하지 않을시는….Error 를 유발.

# The other subnet that shares this physical network
subnet 192.168.10.0 netmask 255.255.255.0 {
#  range dynamic-bootp 204.254.239.10 204.254.239.20;
#  option broadcast-address 204.254.239.31;
#  option routers snarg.fugue.com;
}

 부분이 현재 서버 구성에서 그러한 경우…

[FTP] proftpd.conft 설정하기

##############
# Global 섹션  
##############

ServerName                  “ProFTPD Default Installation-WOW”
# 서버 네임을 적어 줍니다. 아무거나 적어도 상관 없습니다.

ServerType                   inetd
# Server Tyre을 가리키는 지시자입니다.
# 서버 유형에는 inetd와 standalone 모드를 선택할 수 있습니다.  

DefaultServer                   on
# 주 IP address 또는 <VirtualHost> 설정 블록에서 지정되어진 address 중의 하나가 아닌 IP address로 들어오는
# connection이 있을때 기본으로 사용되어질 서버 설정을 조절한다

Port                            21
# Proftpd가 사용할 기본 포트를 지정하는 지시자로 기본 포트 변경시에 “21” 을 사용하고 싶은 포트로 변경해 주면 됩니다.
# ADSL이나 케이블 같은 유동 아이피 환경에서는 ISP업체에서 21번 23번 25번 80번 포트등을 필터링 하기 떄문에 ftp 기본
# 포트를 변경해 줘야지 외부에서 접속할 수 있습니다.

Umask                           022
# umask를 설정해주는 지시자로 새로 생성되는 파일이나 디렉토리의 기본 퍼미션을 결정합니다.
# umask 022는 644의 퍼미션을 가진 파일과 755의 퍼미션을 가진 디렉토리를 생성합니다.
# umask에 대한 자세한 내용은 리눅스 기초 강좌 편을 보기 바랍니다.

MaxInstances                    30
# Proftpd가 standalone 모드로 작동할 때 최대로 생성할 수 있는 자식 프로세스를 정의합니다.
# DoS 공격에 대한 보호 목적이므로 적당한 값을 설정해서 사용하기 바랍니다.

User                            nobody
# Proftpd가 실행 될 때 User지시자로 정의된 사용자명으로 실행됩니다.
# 보안상 절대 root로 실행되게 해서는 안됩니다.

Group                           nobody
# 이것 또한 User지시자와 마찬가지고 Proftpd가 실행 될 떄 Group지시자로 정의된 Group 명으로 실행됩니다.

UseReverseDNS                off
# 접속자의 IP 주소를 Reverse Mapping을 하지 않겠다는 설정이다.
# Reserver Mapping이란 IP  주소를 도메인으로 변경하는 것을 말한다.

IdentLookups                     off
# 일반적으로, 클라이언트가 proftpd로 연결했을 때, ident protocol(RFC1413)은 remote username의 확인을 시도되기 위해
# 사용된다. 이것은 IdentLookups 지시자를 통해 조절된다 (proftpd.oops.org의 번역분)

AuthPAMAuthoritative            on
# PAM이 인증에 있어서 최종 단계의 권한을 가지게 합니다.
# 즉 PAM 인증이 실패할 경우 클라이언트와의 연결을 거부합니다.

RootLogin                        off
# ftp로의 root 로그인을 허락 또는 거부 하기 위한 지시자입니다.

<Directory /*>
          AllowOverwrite                on
         
# 모든 디렉토리내의 파일에 대해 같은 이름의 파일을 전송할 때 덥어 쓰기를 허락 또는 거부하기 위한 지시자
          # 입니다.

</Directory>

#  아래부터는 anonymous접속에 대한 설정들 입니다.
##################                                                
#  anonymous 섹션                                                                          
##################

<Anonymous ~ftp>
# anonymous 설정을 시작합니다.
# anonymous설정은 </Anonymous> 까지 입니다.

          User                           ftp
          Group                          ftp
         
# anonymous접속의 경우 Proftpd가 실행 할 때 사용자명 “ftp” 그룹명 “ftp”로 실행됩니다.  

          UserAlias                      anonymous      ftp
         
 # anonymous로 ftp에 접속한 사용자들에 대해 접속자명을 ftp로 alias해 줍니다.
          # 즉 anonymous로 접속한 사용자들은 사용자명 “ftp”의 권한을 가지게 됩니다.

          MaxClients                        10   “Sorry, maxium users %m — try again later”
         
# 동시 접속자수를 정의하는 지시자로 정의한 수를 초과할 때 ” ” 안의 문자열을 사용자에게 출력합니다

          MaxClientsPerHost             2   “Sorry, Allow only one client for host”
         
# 하나의 호스트당 최대 접속수를 정의하는 지시자로 정의한 수를 초과 했을 때 ” ” 안의  문자열을 사용자에게
          # 출력합니다.

          DisplayLogin                        welcome.msg
         
# ftp로그인 때 보여지는 메시지 파일 이름을 정의합니다.

          DisplayFirstChdir                  .message
         
# 각 서브 디렉토리로 이동할 경우 보여줄 메시지 파일을 정의합니다.

          RequireValidShell                  off
         
 # /etc/shells에 없는 shell binary로그인 여부를 결정합니다..
          # 특별한 이유가 없다면 off로 설정해서 쓰기 바랍니다.

          HideUser                                root
         
# HideUser로 설정된 유저 소유의 파일은 보이지 않는다.
          # 하지만 anonymous에게 일긱 권한이 있으면 아무런 소용이 없다.

# Anonymous’s Uploads Directory
# 업로드 디렉토리에 대한 설정입니다.
# 만약 업로드 디렉토리 이름을 변경하고 싶으면 아래의 uploads를 적당한 이름으로 변경해야 됩니다.

<Directory uploads/*>
        AllowOverwrite              on
       
# 덮어 쓰기를 허용합니다.

        AllowRetrieveRestart        on

        AllowStoreRestart           on
       <Limit DELE RMD>
               DenyAll
             
# 디렉토리 삭제(RMD) 권한을 주지 않습니다.

       </Limit>

       <Limit READ STOR MKD>
       
# 파일 읽기(READ), 업로드(STOR), 디렉토리 생성(MKD)에 대한 제어를 합니다.
       # 읽기(READ)권한은 다운로드를 의미합니다.
       # 와우 리눅스 7.0에는 MKD가 MDK로 잘못 설정되어 있습니다.

       AllowAll
     
  # 읽기(READ), 업로드(STOR), 디렉토리 생성(MKD)에 대해 모두 허락합니다.
       # 하지만 특정 권한에 DENY 설정을 하지 않는 이상 AllowAll 설정을 하지 않아도 Dney 설정된 권한을 제외한 나머지
       # 권한을 가집니다.

       </Limit>
</Directory>

# Anonymous’s Public Directory
# pub디렉토리에 대한 설정입니다.

<Directory pub/*>
      <Limit READ>
      AllowAll
     
# 읽기(READ)권한을 허락합니다.
      </Limit>

      <Limit  STOR  DELE  RMD   MKD>
      DenyAll
     
# 업로드(STOR), 파일 삭제(DELE), 디렉토리 삭제(RMD), 디렉토리 생성(MKD)을 허락합니다.

     </Limit>
</Directory>
</Anonymous>

1. Order를 이용한 권한 제어
위에서 다루었던 proftpd.conf는 단순히 AllowAll 과 DenyAll만을 사용해 권한 제어를 했는데 Order 명령을 이용해서
접근제어와 권한 제어를 할 수 있습니다.

특정 호스트만 로그인을 허용할 때
<Limit LOGIN>
Order       allow,deny
Allow       from 203.241.205.,.rootman.co.kr
Deny        from all
</Limit>

Order 명령에서 Allow 와 Deny는 공백 문자가 아닌 쉼표(,)로 구분합니다.
Allow 와 Deny의 대상을 입력할 때도 대상들의 구분은 공백이 아닌 쉼표(,)로 구분합니다.
위의 설정은 203.241.205의 네트워크 주소를 가지거나 rootman.co.kr을 포함해 하위 호스트들만 접근이 가능하고 그외 호스트에 대해서는 Login을 받아 들이지 않습니다.

예)
203.241.205.97          —> 로그인 가능(203.241.205의 네트워크 주소를 가진다)
203.241.202.16          —> 로그인 불가(203.241.205의 네트워크 주소를 가지지 않는다)
linux.rootman.co.kr  —> 접속 가능(rootman.co.kr의 하위 호스트이다)
microsoft.com          —> 접속 불가(rootman.co.kr의 하위 호스트가 아니다)
order명령은 LOGIN외에 READ, MKD, DELE, RMD, STOR등에도 적용할 수 있습니다.

2. 그외 설정
2-1 ftp 루트( / ) 디렉토리 지정
DefaultRoot                  ~
사용자가 fpt로 접속해서 자신의 홈 디렉토리 외에 다른 곳에는 접근하지 못하게 합니다.
~(물결표시)는 사용자의 홈 디렉토리를 가리킵니다. 즉 자신의 홈 디렉토리가 루트( / ) 디렉토리가 됩니다.
이 지시자를 설정 하지 않으면 기본적으로 DefaultRoot는 /로 설정되어 있기 때문에 사용자는 최상위 경로( / ) 까지 접근 할 수 있습니다.

예)
DefaultRoot           ~aaa,bbb,ccc
–> aaa, bbb, ccc 그룹에 속하는 ftp 접속 떄 자신의 홈 디렉토리가 루트( / ) 디렉토리가 된다.

DefaultRoot           ~ !aaa
–> aaa 그룹에 속하는 사용자들을 제외한 나머지 접속자들은 자신의 홈 디렉토리가 루트 ( / ) 디렉토리가 된다.

2-2 심볼릭 링크 파일 보여주기
ShowSymlinks            On  또는 Off
디렉토리에서 심볼릭 링크가 된 파일을 보여 주는냐, 보여 주지 않느냐에 대한 설정입니다.
이 설정이 안 되어 있을 때에는 기본적으로 계정 사용자 접속의 경우에는 심볼릭 링크파일이 보여지고 anonymous사용자 접속의 경우는 심볼릭 링크 파일을 보여주지 않습니다.
전체 사용자에게 On 또는 Off를 설정하고 싶다면 Global 섹션에 포함 시키면 됩니다.

2-3 숨김파일 보여주기
LsDefaultOption   “-a”
이 설정을 함으로써 점( . ) 으로 시작하는 파일 또는 디렉토리명을 보여 줍니다. 즉 숨김 파일에 대한 설정입니다. 하지만 요즘 사용하는 ftp클라이언트에서도 이 기능을 제공합니다.

3. welcome.msg 파일에 사용할 수 있는 유용한 것들
호스트명 : %L
남은 용량 : %f
현재 접속자 수 : %N
최대 접속자 수 : %M
리모트 호스트 : %R
사용자명 : %U
관리자 메일 : %E

[리눅스 일반] 일반 명령어(useradd, passwd 등등)의 실행이 안될때

먼저, root권한으로 useradd나 adduser를 이용하여 계정을 생성하고 passwd명령어로 새계정의 패스워드를 주려고 할때에

일단 이 명령어가 실행이 되고 있을때에는 /etc/passwd파일과 /etc/shadow파일이 변경이 되면 안되기 때문에
/etc/passwd.lock 파일과 /etc/shadow.lock파일이 생성이 된다.

 이 파일이 존재하는 한 root라 하더라도 /etc/passwd파일과 /etc/shadow파일의 수정및 핸들링을 불가능하게 됨.

그래서, useradd와 passwd명령어를 사용하는 도중에 , /etc/passwd.lock파일과 /etc/shadow파일이 생성이 된채로 명령어가 끝나지 않았는데, 갑자기 접속연결이 끊어진 것임.

물론, useradd와 passwd명령어가 정상적으로 종료가 되었다면 당연히 lock파일은 자동삭제가 됨.

하지만, 정상적인 종료가 아닌 실행도중에 끝이났기때문에 lock파일이 계속존재하게 되고, 이후부터는 useradd명령어와 passwd라는 명령어가 전혀 안되는 것임.

이경우 조치는 간단하다.

/etc/passwd.lock 파일과 /etc/shadow.lock파일을 삭제하기만 하면 된다.

 시스템이 부팅이되면, lock파일은 자동으로 삭제가 된다. 아니
그것 보다는 시스템이 종료할때에 임시파일(lock파일도 일종의 임시파일임)들이 자동으로 삭제가 된다. 이로 인하여 시스템을 재부팅하는것도 하나의 방법일 수도 있음.

하지만, lock파일을 삭제만 하면 시스템을 재부팅할 필요는 없다

[FTP] proftpd 설치이후 이유없이 로그인이 안될때

 컴파일시

 –enable-autoshadow –enable-shadow
 
 옵션을 주어 컴파일을 한다.

 내용은

 –enable-autoshadow : shadow 패스워드를 인식하도록 지원한다. 단, shadow 패스워드를 반드시 사용하는 시스템에서만 사용이 가능함.

 –enable-shadow : shadow 패스워드를 지원하기 위하여 강제적으로 컴파일한다.

 이다.