1. 서비스 확인

# ps -aux | grep ftp

root    2485    0.0    0.1    4304    480    ?    Ss    10:02    0:00    /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

와 같이 ftp 서비스가 실행되고 있어야 합니다.


2. ftp 접근 권한 확인

/etc/hosts.deny와 /etc/hosts.allow에서 알맞게 설정해 주세요.


/etc/hosts.deny의 ALL:ALL을 제거 하거나

/etc/hosts.allow에서 in.ftpd : IP 또는 vsftpd: IP를 적어주거나 둘중에 하나를 하면 됩니다.

참고로 저는

/etc/hosts.deny의 ALL:ALL을 #(주석)처리 했습니다


3. 서비스 재시작(/etc/rc.d/init.d/xinetd restart 명령은 안됨)

# /etc/rc.d/init.d/vsftpd restart


참고사항

1. ftp login 시 root 접근 제한

/etc/vsftpd/ftpusers 의 접근 제한 목록에 root가 포함되어 있으면  root로 login이 안됨

보안상의 이유로 root의 접속을 막아 놓는게 좋음


2. /etc/vsftpd/vsftpd.conf 의 주요 설정
# anonymous 사용자의 접속 허용 여부 (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부 (default = NO)
local_enable=YES

# write 명령어 허용 여부 (defualt = NO)
write_enable=YES
# 로컬 계정 사용자용 umask (default = 077)
local_umask=022

# anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO)
# anon_upload_enable=YES
# anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO)
# anon_mkdir_write_enable=YES

# 파일 전송 로그를 남길 것인지 여부 (default = YES)
xferlog_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES)
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=YES
# 파일 전송 로그 파일명
xferlog_file=/var/log/vsftpd.log

# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
ftpd_banner=Welcome to blah FTP service.

# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO)

# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list 에 지정한다.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES


Telnet 설정 및 root 계정 허용하기

①telnet 설치

telnet은 기본적으로 standalone 타입 데몬이 아닌 xinetd 타입 데몬(xinetd 데몬에 종속되는 것을 의미하며 xinetd 데몬이 죽으면 telnet 데몬도 같이 죽음)이다.


- 먼저 telnet이 설치되어 있는 있는지 확인, telnet-server가 설치되어 있지 않으면 /etc/xinetd.d/telnet 파일이 존재하지 않는다.

# rpm -qa telnet-server


- 쉘에 아무것도 나타나지 않으면 설치되지 않은 것, yum을 이용하여 설치

# yum -y install telnet-server


②telnet 설정

설정 파일: /etc/xinetd.d/telnet


- vi 에디터로 연 후 disable=yes를 disable=no로 바꾸어 주고 저장

# vi /etc/xinet.d/telnet

# service xinetd restart


③root 계정으로 telnet 접속 설정

설정 파일: /etc/securetty


[중요]: /etc/securetty 파일은 시스템 관리자가 시스템에 로그인할 수 있는 안전한 터미널에 대한 정보가 저장되어 있다. 보안을 위해서 일반적으로 가상콘솔이 설정되어 있다.  /etc/securetty 파일을 다른 이름을 바꾸거나 삭제하면 된다. console, vc/1 ~ 11, tty1 ~ 11이 적용 됨

# mv /etc/securetty /etc/securetty.old


환경: Redhat Linux 9.0, Fedora Core 4


FTP서버 vsftpd 설치와 운영 (한글로그 패치 포함)
글쓴이 :
좋은진호 (2003년 10월 09일 오전 02:54) 읽은수: 5,839 [ 네트워크 # 트랙백(0) 인쇄용 페이지 본문 email로 보내기 ]
네트워크 작성자 : 좋은진호(truefeel, http://coffeenix.net/)
작성일 : 2003.10.01(수)
수정일 : 2004.01.08(목), chroot_list_enable 글 추가

이 글은 7월에 썼던 'vsftpd에서 한글파일로그와 lastlog 로긴확인하기'를 기초로 작성하였다.

1. vsftpd FTP 서버에 대해

vsftpd는 UNIX 시스템에서 사용할 수 있는 free FTP 서버(라이센스는 GPL)이다.
vsftpd가 내세우고 있는 것은 보안, 성능, 안정성이다. 지금까지 vsftpd의 자체 보안 문제가 있어
보안권고가 나온 적은 없다.(Redhat의 rpm 패키지중에 tcp_wrappers 지원없이 만들어져서 업데이트
rpm은 나온 적 있음)

* 지원 및 테스트된 OS

- Linux (Redhat, SuSE, Debian)
- Solaris (버전에 따라 IPv6나 inet_aton함수때문에 설치가 잘 안될 수 있음)
- FreeBSD, OpenBSD
- HP-UX
- IRIX

* 주요 기능

- 가상 IP별 별도의 환경 설정 기능 (설정파일의 listen_address= 이용)
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd(xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)
- ...

2. vsftpd 설치

※ 설치는 Redhat 기준. 솔라리스의 PAM에 대한 것은 README.solaris 파일 참조한다.

http://vsftpd.beasts.org/ 에서 최신버전(현재 1.2.0)의 소스를 받아온다.

-------------------------------------------------------------
# tar xvfz vsftpd-1.2.0.tar.gz
# cd vsftpd-1.2.0
-------------------------------------------------------------

한글로 된 파일명을 전송할 때 로그에 파일명이 ???? 로 남지 않도록
logging.c 파일을 연 후 140번째 줄의

str_replace_unprintable(p_str, '?');

를 다음처럼 주석 처리한다.

/* str_replace_unprintable(p_str, '?'); */

또한 tcp_wrappers를 통한 접속제어를 사용하려면 builddefs.h 에서

#undef VSF_BUILD_TCPWRAPPERS 를
#define VSF_BUILD_TCPWRAPPERS 로 바꾼다.

-------------------------------------------------------------
# make
# make install (vsftpd 데몬, man page, xinetd 용 설정 파일 설치)
# cp vsftpd.conf /etc (환경설정 파일 복사)
# chmod 600 /etc/vsftpd.conf
# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd (PAM 설정 파일 복사)
-------------------------------------------------------------

/etc/pam.d/vsftpd 첫번째 줄에 다음과 같이 있다.

pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

즉, /etc/ftpusers 파일에 존재하는 ID는 접속할 수 없게된다.(sense=deny)

-------------------------------------------------------------
# FTP 접속을 허용하지 않을 ID를 등록한다.
# /etc/passwd를 참조해서 설치할 서버의 환경에 맞게 등록
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
smmsp
xfs
gdm
mysql
-------------------------------------------------------------

3. vsftpd.conf 의 주요 설정

-------------------------------------------------------------
# anonymous 사용자의 접속 허용 여부 (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부 (default = NO)
local_enable=YES

# write 명령어 허용 여부 (defualt = NO)
write_enable=YES
# 로컬 계정 사용자용 umask (default = 077)
local_umask=022

# anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO)
# anon_upload_enable=YES
# anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO)
# anon_mkdir_write_enable=YES

# 파일 전송 로그를 남길 것인지 여부 (default = YES)
xferlog_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES)
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=YES
# 파일 전송 로그 파일명
xferlog_file=/var/log/vsftpd.log

# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
# ftpd_banner=Welcome to blah FTP service.

# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO)
# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list_file= 에 설정한 파일에
# 지정한다.
# chroot_local_user= 설정과 관련이 있으니 '3. 문제 해결'을 꼭 읽어보라.
#
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list

# -------------------------------------------------------------------
# 기본 설정 파일에는 없는 설정값으로 필요한 설정만 추가한다.
# ※ 중요한 설정은 굵은 글씨로 표시
# -------------------------------------------------------------------

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES

# 사용자가 자신의 home directory를 벗어나지 못하도록 설정
chroot_local_user=YES

# 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명
# message_file=.message

# xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음)
# xferlog_std_format=NO
#
#  - xferlog 표준 포맷은 로긴, 디렉토리 생성등의 로그를 남기지 않음
#   그러나 vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남김
#  - vsftpd 스타일 로그 예
#
#  Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client "127.0.0.1"
#  Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client "127.0.0.1", "/mp3"
#  Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client "127.0.0.1", "/델리
#  스파이스 5집 - [04]키치죠지의 검은 고양이.mp3", 6855473 bytes, 3857.39Kbyte/sec

# 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
anon_max_rate=0
local_max_rate=0
trans_chunk_size=0

# 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능)
# standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함
#
# max_clients=최대 접속자 수, max_per_ip=IP당 접속 수
# max_clients=100
# max_per_ip=3

# Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정
# 디폴트 포트는 21번 포트이다.
# listen=YES
# listen_port=21
-------------------------------------------------------------

필요한 설정이 끝났으면 xinetd를 재실행한다.

-------------------------------------------------------------
# /etc/rc.d/init.d/xinetd restart
-------------------------------------------------------------

4. 문제 해결

1) ftpwho 같은 명령은 있나?
  또한 last를 해도 접속된 걸 확인할 수가 없는데 방법이 없나?

 ftpwho 형태의 명령은 없으며 임시적으로 다음 명령어 등으로 확인할 수 있다.

 # ps -ef|grep vsftpd
 # fuser -v ftp/tcp

 vsftpd v1.2.0이상부터 PAM을 통해 wtmp에 로그를 남기므로 last로 접속여부를 확인할 수 있다.

2) 한글 파일명이 전송될 때는 vsftpd.log 에 ???? 로 남는다. 해결책은?

 vsftpd는 출력할 수 없다고 판단하는
 ASCII 코드 31 이하, 128~159, 177 문자를 모두 ? 로 바꿔서 저장을 한다.
 따라서 이 부분을 처리하지 않고 저장하도록 소스를 수정한 후 컴파일하면 해결된다.

3) 사용자가 홈디렉토리를 못 벗어나게 하고 싶는데?

/etc/vsftpd.conf에 다음을 추가하면, 모든 사용자는 자신의 홈디렉토리만 접근할 수 있다.

chroot_local_user=YES

또한 특정 사용자로만 제한을 하고 싶다면 다음과 같이 한다. /etc/vsftpd.chroot_list에는 제한할
사용자 ID를 한줄에 하나씩 나열하면 된다.

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

주의할 것은 chroot_local_user=YES와 chroot_list_enable=YES를 함께 사용할 경우에는
/etc/vsftpd.chroot_list에 포함된 사용자 ID만 제한없이 홈디렉토리를 벗어날 수 있다.
즉, 반대로 작용한다.

standalone으로 FTP서버가 동작중이면 재실행 필요. standalone에 대해서는 6)번에서.

4) root로 접속할 수는 없나?

 가능하면 root 접속은 허용하지 않기를 바란다.
 /etc/ftpusers 파일에서 root를 빼면 접속이 가능하다.

5) ID/비밀번호가 정확히 맞는데 로긴할 때 자꾸 530 Login incorrect. 라고 나온다.

 /etc/ftpusers (또는 vsftpd.ftpusers)에 등록된 사용자인지 확인한다.
 여기에 등록된 사용자는 로긴할 수 없다. 이럴 때 /var/log/messages에 다음과 같은 로그가 남는다.

 Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd

6) standalone으로 운영하고 싶다.
  (즉, apache나 sendmail처럼 xinetd 통하지 않고 운영을 원한다.)

 /etc/xinetd.d/vsftpd (vsftpd가 아닌 다른 파일명일 수 있음) 에서 disable = yes 로 변경하여
 xinetd로 서비스 하지 않도록 설정한다. xinetd 를 재실행하면 이제 xinetd를 통한 ftp 서비스는 종료된다.

 레드햇의 경우 /etc/rc.d/init.d/xinetd restart

 이제 vsftpd 데몬를 실행한다. (소스로 설치시 기본 경로는 /usr/local/sbin)

 # /usr/local/sbin/vsftpd &

7) 다른 포트(기본 21번)를 사용하고 싶다. (예를 들어 11121번 포트를 원할 때)

 * xinetd를 이용하는 경우

  /etc/service 에 'ftp2  11121/tcp' 한 줄을 추가한다.
  그리고 /etc/xinetd.d/vsftpd (vsftpd가 아닌 ftp와 같은 다른 파일명일 수 있음) 에서
  service ftp 를 service ftp2로 바꾸고, xinetd 를 재실행한다.

 * standalone으로 운영하는 경우

  /etc/vsftpd.conf 에서 listen_port=11121 을 추가하고 vsftpd 서버를 재실행한다.

 바뀐 포트로 운영중인지 확인은 netstat -atnp(리눅스) 또는 netstat -an(그 이외 유닉스)

8) 업로드 파일 크기를 제한하는 방법은 없나요? 이를테면 5MB이상의 파일은 업로드 못한다든지.

현재 1.2.1버전까지 vsftpd 자체에 설정하는 방법은 없습니다.

5. 참고할만한 문서

* vsftpd 1.2.0 설치 문서
 
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-1.2.0/INSTALL
* vsftpd.conf man page
* vsftpd에서 한글파일로그와 lastlog 로긴확인하기 (좋은진호)
 
http://coffeenix.net/board_view.php?bd_code=4
* vsftpd에서 전송속도 제한 (bandwidth limit) (좋은진호)
 
http://coffeenix.net/board_view.php?bd_code=21
<  커널 컴파일 | SSH 다중 세션 종료 스크립트  >


1. /etc/xinetd.d/telnet 설정

# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no    <- yes를 no로 바꾼다.
}


2. 서비스 재시작

# /etc/init.d/xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]


1. 설치 확인
# rpm -qa | grep tftp

2. 설치
# yum install tftp
# yum install tftp-server

3. /etc/xinetd.d/tftp 설정
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no    <- yes를 no로 변경
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

-s /tftpboot 에서 -s 옵션은 다른 디렉토리로의 이동 금지 옵션
                           -c 옵션은 새로운 화일 생성 가능(default는 새로운 화일 생성 금지, 같은 이름의 화일이 있으면 upload 가능)

4. 서비스 재시작
# service xinetd restart

5. 동작 확인
# netstat -al | grep tftp
udp        0      0 *:tftp                      *:*

6. /tftpboot 디렉토리 확인
# cd /tftpboot
tftp 접속을 하면 /tftpboot 디렉토리가 홈디렉토리임


1.Default Gateway 설정 파일

파일 이름 : /etc/sysconfig/network

NETWORKING=yes
: 통신이 되도록 지원할 것인가의 여부(yes or no)

HOSTNAME=proneer.co.kr
: 서버의 호스트네임(Hostname)을 설정

GATEWAYDEV=eth0
: Default Gateway 장치명

GATEWAY=192.168.0.1
: 시스템 전체의 Default Gateway(각 interface에서 따로 gateway를 설정하면 그것이 우선)

FORWARD_IPV4=no
: 시스템이 라우터 역할을 할 것인지 여부, 패킷 포워딩을 수행할 경우는 yes 그렇지 않을 경우는 no 설정


2.Network Interface Card(NIC) 설정 파일

파일 이름 : /etc/sysconfig/network-scripts/ifcfg-ethx
: ifcfg-eth의 x는 0부터 시스템에 설치되어 있는 NIC 숫자 만큼 늘어난다.

DEVICE=eth0
: 네트워크 디바이스의 장치명, 리눅스는 ethx로 네트워크 디바이스 장치명이 정해져 있음

BOOTPROTO=static
: NIC에 IP를 Dynamic으로 설정할 것인지 아니면 Static으로 설정할 것인지 정함(dhcp = 유동 IP 설정으로 DHCP Server를 통하여 IP 설정, static = 고정 IP 설정으로 관리자가 IP를 직접 입력)

IPADDR=192.168.0.2
: eth0에 IP 주소를 설정

BROADCAST=192.168.0.255
: Broadcast 주소를 설정

NETMASK=255.255.255.0
: Netmask 값을 설정

NETWORK=192.168.0.0
: 해당 네트워크의 Network ID 설정

ONBOOT=yes
: 해당 NIC를 시스템이 부팅할 때 활성화할지 여부(yes or no)

USERCTL=no
: 해당 NIC를 root를 제외한 사용자가 On/Off 가능하게 할지 여부(yes or no)

GATEWAY=192.168.0.1
: 해당 NIC의 Default Gateway를 설정한다. /etc/sysconfig/network 파일에서 설정한 gateway 보다 우선한다.


3.DNS 설정 파일

파일 이름 : /etc/resolv.conf

search nameserver.or.kr
: 호스트네임만 지정했을 경우 뒤에 자동으로 chosun.ac.kr를 붙임

nameserver 168.126.63.1
: 네임서버의 IP를 지정, 네임서버의 지정 개수는 제한이 없고 응답이 없을 경우 다음에 지정한 네임서버를 사용


중요 : 변경된 정보를 적용하기 위하여 시스템을 재부팅하거나 아래와 같은 명령을 사용
: /etc/rc.d/init.d/network restart       or     /etc/init.d/network restart


linux IP Setting Methods


Run Level Process
0 시스템의 Shutdown,halt.
1 1인 관리자 모드(Single 모드).
2 멀티유저 로컬 프로세서 데몬.NFS
3 멀티유저 리모트 프로세서 데몬 (일반적인 상태).
4 싱글유저 스테이트 (root만 접속가능) 단 root 화일 시스템만 보임.
5 X 로그인
6 리부팅(reboot).

종료방법
#init 0
#telinit 0
#shutdown -i0 -g0 -y (일반적인종료)
#shutdown -h 종료후 halt 상태로
#shutdown -r 리부팅.
#init s  싱글상태로 전환
#reboot  (리부팅)

NetWork Configuration
#ifconfig -a    -인터페이스 점검.
( ping telnet traceroite nslookup dmesg netstat -nr )

/etc/init.d/network restart  (start,stop)

1. 호스트네임,게이트웨이설정.
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localhost
GATEWAYDEY=eth0
GATEWAY=192.168.1.1


2. 네트웍 인터페이스 설정.
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none (dhcp)
BROADCAST=192.168.1.255
IPADDR=192.168.1.5
NETMASK=255.255.0.0
omBOOT=yes

3.DNS서버주소
/etc/resolv.conf
search servername.org
nameserver 192.168.1.1
nameserver 192.168.1.5

4.호스트alies
/etc/hosts
127.0.0.1             localhost.host          localhost
192.168.1.5          localhost

5.호스트명선행처리
/etc/host.conf
order     hosts,bind

# /etc/nologin  접속금지 메세지 설정 (존재하면 접속 불가)
접속이 금지됩니다. 담에 다시 접속해 주세요.

#free - 사용중인 메모리양
/etc/issue.net 파일 (telnet login 시에 보여지는 파일)
/etc/motd 파일 (login 후에 환영메세지)

/proc/sys/net/ipv4/icmp_echo_ignore_all 
1            <- (ping 응답 안하게 설정, default 0 )
 
※ 리눅스에서의 네트워크 장치 이름

    랜카드 장착시 -> '/dev/eth0'  ,  '/dev/eth1'  ,  ...


☆ Gateway , Router
※ 게이트웨이 를 별도로 추가시
    # route  add  default  gw  <게이트웨이 주소>  dev  <장치 이름>
    예)  # route  add  default  gw  192.168.184.254  dev  eth0

☆ Net Mask  &  Class
- 넷마스크 : 네트워크의 규모를 등급별로 결정함.
- C 클래스 : 256개의 IP주소 사용가능
                 예)  네트워크 주소 : 192 . 168 . 184 . 0
                       넷마스크 주소 : 255 . 255 . 255 . 0
- B 클래스 : 65536개의 IP주소 사용가능 ( 2^16 )
                 예)  네트워크 주소 : 192 . 168 . 0 . 0
                       넷마스크 주소 : 255 . 255 . 0 . 0
- A 클래스 : 2^24 개의 IP주소 사용가능
                 예)  네트워크 주소 : 192 . 0 . 0 . 0
                       넷마스크 주소 : 255 . 0 . 0 . 0
※ 설치 가능한 컴퓨터 갯수
    네트워크 주소, 브로드 캐스트 주소, 게이트 웨이 주소 3개를 제외한
    갯수의 컴퓨터를 네트워크 내부에 설치할 수 있다. (C클래스의 경우 256-3 = 253대)

☆ DNS 서버 주소
- URL을 해당 컴퓨터의 IP주소로 변환해주는 서버 컴퓨터의 주소
- 설정 파일  :  /etc/resolv.conf
                   ------------------------------------
                    ........
                    Default  Server : *****                       // DNS 제공자
                    nameserver < ***.***.***.*** >         // 해당 DNS 서버 IP
                    ........
                    ------------------------------------

☆ 네트워크 관련 명령어
ⓐ # system-config-network
    - 네트워크 연결방식을 DHCP 클라이언트 또는 고정 IP 주소를 사용할지 결정
    - IP 주소 , 서브넷 마스크 , 게이트웨이 정보
    - DNS 정보
    - 네트워크 카드 드라이버 설정 , 장치 (eth0) 설정
ⓑ # system-config-network-tui
    - Text User Interface  :  네트워크 설정의 텍스트 모드
ⓒ # service  network  restart
    - 네트워크 설정 변경후 변경 내용을 시스템에 적용 (네트워크 서비스 재시작)
ⓓ # ifconfig < 장치 이름 >
    - 해당 장치의 IP 주소 설정 정보를 출력
ⓔ # nslookup
    - DNS 서버작동 테스트
ⓕ # ping
    - 네트워크에 응답 테스트

☆ 네트워크 설정 변경 관련 파일
 /etc/sysconfig/network                                 // 기본 정보
 /etc/sysconfig/network-scripts/ifcfg-eth0       // eth0 에대한 정보 몽창..
/etc/resolv.conf                                            // DNS 서버정보 및 호스트 이름 정보

☆ 네트워크 카드 교체
- 실제로 네트워크 카드에 문제가 발생시 적용시킬수 있다.
1. 네트워크 카드를 제거.
2. 네트워크 카드를 새로 장착.
3. root 로 부팅~
4. # system-config-network
5. "하드웨어" 탭  →  'eth0' 지우기
                       [새로만들기]  →  하드웨어 타입 'Ethernet' 선택
                       →  <네트워크 아답터 설정 창>  →  아답터 'AMD PCnet32' 선택
6. "장치" 탭  →  [새로만들기]  →  '이더넷 연결' 선택  →  'AMD PCnet32' 선택
                       →  <네트워크 셋팅 설정 창>  →  '정적으로 설정된 IP 주소들' 선택
                       →  네트워크 정보 입력
7. "DNS" 탭  →  DNS 주소 확인
8. 완료 (창닫기 or  메뉴 [파일]-[끝내기] 선택)
9. # service  network  restart            // 서비스 재시작
10. # ping  www.google.co.kr          //  응답확인
11. # ifconfig  eth0                          //  네트워크 설정 확인

☆ 네트워크 설정 - Text Mode
# vi  /etc/sysconfig/network         // 확인
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
   다음 사항을 수정한다.
   ----------------------------------------------------
   ..............
   NETMASK = *** . *** . *** . ***              // 넷마스크
   IPADDR = *** . *** . *** . ***                  // IP 주소
   ..............
   GATEWAY = *** . *** . *** . ***             // 게이트 웨이 주소
   ..............
   ----------------------------------------------------
# service  network  restart

☆ 네트워크 설정 - Command Mode
# ifconfig  eth0  <IP 주소>  netmask  <넷마스크>  broadcast  <브로드캐스트 주소>  up
# route  add  -net  <네트워크 주소>  netmask  <넷마스크>  eth0
# route  add  default  gw  <게이트웨이 주소>  dev  eth0
# vi /etc/resolv.conf          // DNS 설정
# service  network  restart

※  인터넷이 잘 안될때 , DNS 서버 고장을 의심해보자

ⓐ DNS 서버 작동 확인하기
    # nslookup
    > server                     // 사용중인 DNS 서버 주소확인,  "Default server :" 이후에 나오는 주소가 DNS주소
    > www.google.co.kr
       ;; connection timed out; no servers could be reached
        위와 같은 에러 메시지가 나온다면 DNS 서버가 고장나거나, DNS 서버의 주소가 잘못된것.

ⓑ 다른 컴퓨터에서 DNS 주소 따오기
     windows 인경우 : cmd 창에서 'nslookup' 명령으로 DNS 주소 획득~
     linux 인 경우 :  위 ⓐ방법으로 확인

ⓒ 가져온 DNS 주소 확인하기
    # nslookup
    > server  <새로운 DNS 주소>
    > www.google.co.kr               // DNS 서버 작동 확인

ⓓ 정상 작동하는 DNS 주소 적용하기
    # vi  /etc/resolv.conf               // 'nameserver' 부분 수정



VS FTP 설정 파일


/etc/vsftp.conf


listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

ascii_upload_enable=YES
ascii_download_enable=YES

chroot_local_user=YES

ls_recurse_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key


.bash_profile

##### LANGUAGE SECTION #####
#export LANG="ko_KR.eucKR"
#export LC_ALL="ko_KR.eucKR"

##### PROMPT TYPE EDIT SECTION #####
PS1='^[[44;1;36m [ ${USER}@lab4 ] ^[[44;1;33m${PWD} ^[[0m \n^[[44;1;33m ^[[44;1;36m#  ^[[0m  '

#####  dir COLOR EDIT SECTION  #####
#eval "`/usr/bin/dircolors -b ~/.dir_colors`"

#####  ALIAS SECTION  #####
alias ss='. ~/.bash_profile'
alias vi='/usr/bin/vim -T ansi'
alias ls='ls -CFh --color=always'
alias ll='ls -alh -F --color=always'
alias la='ls -alh -F --color=always'
alias dir='/bin/ls -alhF --color=always | more'
alias f='/usr/bin/finger'
alias ff='f;w'
alias cls='clear'

#####  PROMPT EDIT SECTION  #####
echo
echo "     ^[[44;1;36m    $(date)     ^[[0m"
echo
echo "^[[0m^[[1;32m $(w) ^[[0m"
echo



.vimrc

set magic
set noshowcmd
set fileencoding=korea

set nowrap
set shiftwidth=3
set tabstop=3
set nowritebackup
set showmode
"set hardtabs=3
set nobackup
set nocompatible
set background=dark
set number
set ruler

syntax on

hi Comment          ctermfg=Gray guifg=#80a0ff
hi Constant         ctermfg=Magenta guifg=#ffa0a0
hi Special          ctermfg=Magenta guifg=Orange
hi Identifier       ctermfg=LightGreen guifg=#40ffff
hi Statement        ctermfg=Cyan guifg=#ffff60 gui=bold
hi PreProc          ctermfg=green guifg=#ff80ff
hi Type             ctermfg=Yellow guifg=#60ff60 gui=bold
hi Ignore           ctermfg=Black guifg=bg

au BufNewFile,BufReadPost *.c,*.h,*.pc,*.ec     set cindent shiftwidth=2
au BufNewFile,BufReadPost *.java        set cindent shiftwidth=2
au BufNewFile,BufReadPost *.cpp,*.cc    set cindent shiftwidth=2
au BufNewFile,BufReadPost *.jsp         set cindent shiftwidth=2
au BufNewFile,BufReadPost *.phtml       set cindent shiftwidth=2
au BufNewFile,BufReadPost *.pl          set cindent shiftwidth=2
au BufNewFile,BufReadPost *.html                                set cindent shiftwidth=2
au BufNewFile,BufReadPost *.tcl                                 set cindent shiftwidth=2
au BufNewFile,BufReadPost *.php                                 set cindent shiftwidth=2
au BufNewFile,BufReadPost *.tex                                 set autoindent



.dir_colors

# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.

# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.

# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM linux-c
TERM mach-color
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM dtterm
TERM xterm
TERM xterm-color
TERM xterm-debian
TERM rxvt
TERM screen
TERM screen-w
TERM vt100

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00   # global default, although everything should be something.
FILE 00  # normal file
DIR 08;36   # directory
LINK 01;36  # symbolic link.  (If you set this to 'target' instead of a
            # numerical value, the color is as for the file pointed to.)
FIFO 40;33  # pipe
SOCK 01;35  # socket
DOOR 01;35  # door
BLK 40;33;01   # block device driver
CHR 40;33;01   # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file

# This is for files with execute permission:
EXEC 01;32

#program-source file
.cpp  01;31
.h    01;31
.c    08;33
.java 01;33
.out  08;32
.html 01;35
.htm   01;35
.cgi   01;35
.shtml 01;35

.bash_profile   01;31
.bashrc        01;31
.vim           01;31
.svim       01;31
.vimrc         01;31
.vimrc         02;31
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')

# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32

.tar 01;31 # archives or compressed (bright red)
.tgz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.zip 01;31
.z   01;31
.Z   01;31
.gz  01;31
.bz2 01;31
.deb 01;31
.rpm 01;31
.jar 01;31

# image formats
.jpg 01;35
.jpeg 01;35
.png 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.mpg 01;35
.mpeg 01;35
.avi 01;35
.fli 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35

# audio formats
.ogg 01;35
.mp3 01;35
.OGG 01;35
.MP3 01;35



'업무 > Linux' 카테고리의 다른 글

vsftpd 설정하기  (0) 2008.08.22
Fedora Core 6에서 고정 IP 잡기  (2) 2008.07.10
Linux IP 설정 파일들  (0) 2008.07.08
Linux에서 path 잡는다고 삽질했습니다.  (0) 2008.05.19
27일자 임베디드 리눅스 교육 자료  (0) 2008.03.27

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,