본문으로 바로가기

특정 이더넷 장치 Down / UP 하는 방법

 

root@main /root]# ifconfig eth0 down
[root@main /root]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:172.20.1.1  Bcast:172.20.255.255  Mask:255.255.0.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:290 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:47265 (46.1 KiB)  TX bytes:636 (636.0 b)

 

[root@main /root]# ifconfig eth0 up

[root@main /root]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:172.20.1.1  Bcast:172.20.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fea8:33f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:291 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:47607 (46.4 KiB)  TX bytes:874 (874.0 b)


IP 주소, 서브넷 마스크, 서브넷 브로드케스트 주소 변경

[root@main /root]# ifconfig eth0 down
[root@main /root]# ifconfig eth0 100.1.1.1
[root@main /root]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:100.1.1.1  Bcast:100.255.255.255  Mask:255.0.0.0
          inet6 addr: fe80::20c:29ff:fea8:33f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:293 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:47791 (46.6 KiB)  TX bytes:1412 (1.3 KiB)

껏다키면 원래아이피로 돌아온다...사라진다.(임시로)


[root@main /root]# ifconfig eth0 down
[root@main /root]# ifconfig eth0 100.1.1.1 netmask 255.255.255.0 broadcast 100.1.1.255
[root@main /root]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:100.1.1.1  Bcast:100.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fea8:33f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:293 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:47791 (46.6 KiB)  TX bytes:2040 (1.9 KiB


[root@main /root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

  1 DEVICE=eth0
  2 TYPE=Ethernet
  3 UUID=909153ef-7c23-4a7f-8f30-7a0c7dc65ad9
  4 ONBOOT=yes
  5 NM_CONTROLLED=no
  6 BOOTPROTO=none
  7 HWADDR=00:0C:29:A8:33:F7
  8 IPADDR=172.20.100.1
  9 PREFIX=16
 10 DEFROUTE=yes
 11 IPV4_FAILURE_FATAL=yes
 12 IPV6INIT=no
 13 NAME="System eth0"
~                                                                                          
~                                                                                          
~                                                                                          
~                                                                                          
"/etc/sysconfig/network-scripts/ifcfg-eth0" 13L, 233C 저장 했습니다      
[root@main /root]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:172.20.1.1  Bcast:172.20.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fea8:33f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:306 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:49138 (47.9 KiB)  TX bytes:2508 (2.4 KiB)

[root@main /root]# service network restart
인터페이스 eth0 (을)를 종료 중:                            [  OK  ]
인터페이스 eth1 (을)를 종료 중:                            [  OK  ]
loopback 인터페이스 종료 중:                               [  OK  ]
loopback 인터페이스 활성화중 입니다:                       [  OK  ]
eth0 인터페이스 활성화중 입니다:  Determining if ip address 172.20.100.1 is already in use for device eth0...
                                                           [  OK  ]
eth1 인터페이스 활성화중 입니다:  Determining if ip address 192.168.2.200 is already in use for device eth1...
                                                           [  OK  ]
[root@main /root]# ifconfig eth0         
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:172.20.100.1  Bcast:172.20.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fea8:33f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:306 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:49138 (47.9 KiB)  TX bytes:3074 (3.0 KiB)

껏다키면 바뀐것대로

서브인터페이스
[root@main /root/바탕화면]# ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

[root@main /root/바탕화면]# ifconfig eth0:1
eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

[root@main /root/바탕화면]# ifconfig eth0:2
eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

[root@main /root/바탕화면]# ifconfig eth0:3
eth0:3    Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


[root@main /root]# ifconfig eth0:1
eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:A8:33:F7 
          inet addr:100.1.1.1  Bcast:100.255.255.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

[root@main /root]# ifconfig eth0:1 down

라우팅 테이블

[root@main /root]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.2.254   0.0.0.0         UG    0      0        0 eth1

기본경로
route add -net default gw 172.20.1.254
route del default gw 172.20.1.254

DNS 서버 지정

root@main /root]# cat /etc/resolv.conf
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.

[root@main /root]# nslookup www.naver.com

 

host지정

참고

1.인터넷에서 호스트는, 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터를 말한다. 호스트는 특정한 호스트번호를 갖는데, 이는 네트웍 번호와 합해져서, 고유의 IP 주소를 이루게된다.


vi /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
3 172.20.1.1 main main.com <- 설정 추가

Hostname 설정

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=main
GATEWAY=192.168.1.254
NTPSERVERARGS=iburst

SELinux 비활성화
sestatus
SELinux status:                 disabled

vi /etc/selinux/config
1 # This file controls the state of SELinux on the system.
2 # SELINUX= can take one of these three values:
3 # enforcing - SELinux security policy is enforced.
4 # permissive - SELinux prints warnings instead of enforcing.
5 # disabled - No SELinux policy is loaded.
6 SELINUX=enforcing <- disabled 수정
7 # SELINUXTYPE= can take one of these two values:
8 # targeted - Targeted processes are protected,
9 # mls - Multi Level Security protection.
10 SELINUXTYPE=targeted

ARP 테이블 정보 확인

ARP (Address Resolution Protocol) 정의
논리적 주소(IP Address)를 기반으로 물리적 주소(MAC Address)를 알아오는 프로토콜이다.


root@main /root]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.254 ether 00:50:56:e7:32:90 C eth1
192.168.1.1 ether 00:50:56:c0:00:08 C eth1
[root@main /root]# arp -d 192.168.2.254

[root@main /root]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.254 (incomplete) eth1
192.168.1.1 ether 00:50:56:c0:00:08 C eth1

[root@main /root]# ping -c 1 168.126.63.1
[root@main /root]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.254 ether 00:50:56:e7:32:90 C eth1
192.168.1.1 ether 00:50:56:c0:00:08 C
: wq!

chkconfig --list iptables
iptables        0:해제  1:해제  2:해제  3:해제  4:해제  5:해제  6:해제


[root@main /root]# iptables -L  방화벽 해지 및 확인
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[root@main /root]# cat /etc/services | grep -w telnet 서비스 포트 번호 확인
telnet          23/tcp
telnet          23/udp
hp-3000-telnet  2564/tcp                # HP 3000 NS/VT block mode telnet
tl1-telnet      3083/tcp                # TL1-TELNET
tl1-telnet      3083/udp                # TL1-TELNET
scpi-telnet     5024/tcp                # SCPI-TELNET
scpi-telnet     5024/udp                # SCPI-TELNET


리눅스 서비스 운영 방식(Standalone & xinetd)
Standalone

부팅될때 자동으로 실행되는 서비스들이 사용함
- 서버는 서비스 데몬을 준비한 상태로 운영함
- 서비스가 메모리에 항상 상주해야함  즉, 서비스를 하려면 해당 서버가 메모리에 미리 올라와 있어야 한다.
- 응답 속도가 빠르다.
- '/etc/init.d' 스크립트 파일을 참조함
- 서비스 요청이 많은 경우 효율적이다.

sendmail, apache, mysql , name server, nfs, httpd


ex)예제


[root@main /root]# pgrep -lf httpd
[root@main /root]# service httpd start  ---->서비스 시작
httpd (을)를 시작 중: httpd: Could not reliably determine the server's fully qualified domain name, using 172.20.1.1 for ServerName
                                                           [  OK  ]
[root@main /root]# pgrep -lf httpd
3057 /usr/sbin/httpd
3059 /usr/sbin/httpd
3060 /usr/sbin/httpd
3061 /usr/sbin/httpd
3062 /usr/sbin/httpd
3063 /usr/sbin/httpd
3064 /usr/sbin/httpd
3065 /usr/sbin/httpd
3066 /usr/sbin/httpd
3067 /usr/sbin/httpd
[root@main /root]# service httpd stop ---> 서비스 종료
httpd 를 정지 중:                                          [  OK  ]


standalone 서비스 실행 방법

/etc/init.d/sendmail start      => sendmail 서비스 시작

/etc/init.d/sendmail stop      => senmdial 서비스 종료

/etc/init.d/sendmail restart   => sendmail 서비스 재시작

(또는 service sendmail start | service sendmail restart | service sendmail stop 로 실행)

※ 다른 standalone 방식의 서비스도 다 이런식으로 서비스 된다.

 

-----------------------------------------------------------------------
Xinetd : 연결 되었을 때만 (서비스를 요청할 때)


서버는 클라이언트 연결시에만 서비스를 활성화하여 운영함
- 클라이언트 연결시에만 서비스가 메모리에 상주함
- 응답 속도가 standalone 보다 느리다.
- '/etc/xinetd.d' 파일을 참조함
- 서비스 요청이 적은 경우 효율적이다.

- Ex) telnet, pop3, finger


FTP 클라이언트
[root@main /root]# yum -y install vsftpd
[root@main /root]# service vsftpd start
vsftpd 에 대한 vsftpd 을 시작 중: [ OK ]
[root@main /root]# sestatus
SELinux status: enabled

[root@main /root]# chkconfig --level 5 vsftpd on
[root@main /root]# chkconfig --list vsftpd     
vsftpd          0:해제  1:해제  2:해제  3:해제  4:해제  5:활성  6:해제

open FTP 서버 접속
user 로그인 실패시 다시 로그인할때 사용
! FTP 프롬프트에서 쉘 명령어 사용
acsii 전송 모드를 ACSII 타입으로 지정
bin 전송 모드를 Binary 타입으로 지정
get 하나의 파일을 다운로드 실시
mget 다수의 파일들을 다운로드 실시
put 하나의 파일을 업로드 실시

mput 다수의 파일들을 업로드 실시
cd 디렉토리 변경/이동
mkdir 디렉토리 생성
rmdir 디렉토리 삭제
hash 파일송수신시 '#' 마크를 이용하여 전송상태 표시
prompt 비대화식 파일 송수신
close 접속 종료
quit FTP 를 종료하고 쉘로 돌아감

 


익명계정(anonymous) 접속 방법
name : anonymous
패스워드 없이 그냥 엔터
특이한 점은 다른 디렉토리로 이동 불가능하다.


FTP 서버

1. FTP 서버 유형

 

 


 vsftpd
 
  가장 널리 사용하는 FTP 서버이며, 보안성이 우수하다.
 

 proftpd
 
  다양한 옵션과 설정들이 지원되지만, 다른 FTP 서버에 비해서 설정 문법이 복잡하다.
 

 pureftpd
 
  잘 사용하지 않는 FTP 서버이며, 간단하게 FTP 서버를 운영할 경우 사용한다.
 

 

lcd
서버가 아닌 클라이언트의 현재 디렉토리를 변경함


FTP 동작 모드

Passive Mode(수동)
- FTP 연결 및 메세지 교환은 21 번 포트를 이용한다.
- 파일 및 디렉토리 목록 전송은 임의의 포트를 이용한다.

Active Mode(능동)
- FTP 연결 및 메세지 교환은 21 번 포트를 이용한다.
- 파일 및 디렉토리 목록 전송은 20 번 포트를 이용한다.


vsftpd 서버(Very Secure FTP Daemon)

 

 - 안정적이고 속도가 빠르며, 보안이 우수하다. 그리고 레드헷 리눅스에서 기본으로 채택하는 FTP 서버이다.

 - 기본적으로 Standalone 방식으로 동작한다.


 

[root@main /root]# service vsftpd stop

vsftpd 종료 중:                                                 [  OK  ]

 

[root@main /root]# service vsftpd start
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]

[root@main /root]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd
/etc/vsftpd  

/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf  <- vsftpd 설정 파일
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-2.2.2
~ 중간 생략 ~

 

 

[root@main /root]# ls /etc/init.d/vsftpd
/etc/init.d/vsftpd   <- Standalone 방식이기 때문에 '/etc/init.d'에 스크립트 파일이 있음

 

 

[root@main /root]# pgrep -fl vsftpd
2176 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf


4. 'vsftpd.conf' 설정 파일

 

 - 'vsftpd.conf' 설정 파일은 '/etc/vsftpd' 디렉토리에서 관리한다. 설정 파일을 알아보기 이전에 백업을 실시한다.

 

[root@main /root]# cd /etc/vsftpd
[root@main /etc/vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh


[root@main /etc/vsftpd]#
[root@main /etc/vsftpd]# cp vsftpd.conf vsftpd.conf.bak


'chroot' 기능

 

'chroot'는 특정 디렉토리를 최상위 디렉토리로 보이도록 해주는 기능/명령어이다.

 

Ex) /a/b/c

 

chroot /a/b

 

최상위 디렉토리가 '/c' 로 처리됨, 그렇기 때문에 '/c'의 상위 디렉토리인 '/a', '/a/b' 디렉토리로 접근 불가능

 

 

일반 계정으로 FTP 서버를 접속하면, 다른 디렉토리로 이동이 가능하다. 이때, chroot 기능을 이용하면, 일반 계정으로 접속시 디렉토리가 상위 디렉토리로 처리되기 때문에 다른 디렉토리로 이동이 불가능해진다.

 

 - clone1에서 'user1' 계정으로 main FTP 접속 실시 (chroot 기능이 없는 경우)

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): user1
331 Please specify the password.
Password: centos
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> pwd
257 "/home/user1"
ftp>
ftp> cd /etc/sysconfig
250 Directory successfully changed.
ftp>
ftp> pwd
257 "/etc/sysconfig"
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

-  'vsftpd' 설정 파일에서 다음과 같은 설정을 맨 마지막 라인에 추가하고, 서비스를 재시작한다.

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 

 


~ 중간 생략 ~

 

123 chroot_local_user=YES


 

: wq!
 


 

 
[root@main /etc/vsftpd]# service vsftpd restart
vsftpd 종료 중:                                            [  OK  ]
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]

 

 

 - clone1에서 'user1' 계정으로 main FTP 접속 실시

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): user1
331 Please specify the password.
Password: centos
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> pwd
257 "/"
ftp>
ftp> cd /etc/sysconfig
550 Failed to change directory.
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

 - 'chroot' 기능 주석 처리 실시

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 

 


~ 중간 생략 ~

 

123 # chroot_local_user=YES


 

: wq!


@ FTP 서버 접속 사용자 제한
 

'userlist_deny=YES'인 경우, 다음과 같이 2개의 파일 중 한개의 파일에도 사용자가 설정되어 있다면 FTP 접속이 불가능하다.

 
[root@main /etc/vsftpd]# ls
banner.txt  ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh

 

 

'userlist_deny=NO'인 경우, 'user_list' 파일에 정의된 사용자만 FTP 접속이 가능하다.

 

[root@main /etc/vsftpd]# ls
banner.txt  ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh


 

 

 - 'user_list' 파일에 'user1'을 추가한다.

 

[root@main /etc/vsftpd]# vi user_list

 

 

 


~ 중간 생략 ~

 

20 user1

 

: wq!
 


 

 

 

-  'vsftpd' 설정 파일에서 다음과 같은 설정을 맨 마지막 라인에 추가하고, 서비스를 재시작한다.

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 


~ 중간 생략 ~

 

124 userlist_deny=NO


 

: wq!
 


 

 

[root@main /etc/vsftpd]# service vsftpd restart
vsftpd 종료 중:                                            [  OK  ]
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]


 

 

 - clone1에서 'user1' 계정으로 main FTP 접속 실시

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): user1
331 Please specify the password.
Password: centos
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

 - clone1에서 'user2' 계정으로 main FTP 접속 실시


[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): user2
530 Permission denied.
Login failed.
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

 - clone1에서 'root' 계정으로 main FTP 접속 실시

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): root
c530 Permission denied.
Login failed.
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

 - 'userlist_deny=NO' 주석 처리 실시

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 


~ 중간 생략 ~

 

124 # userlist_deny=NO

 

: wq!
 


 

 

 - 'user_list' 파일 'user1' 삭제

 

[root@main /etc/vsftpd]# vi user_list

 

 

 

 

~ 중간 생략 ~

 

20 user1 <- 삭제

 

: wq!
 

 

 

@'root' 계정 FTP 접속 방법 (보안상 권장 X)

 

 - clone1에서 'root' 계정을 이용하여 main FTP 서버로 접속이 가능한지 확인하도록 한다.

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): root
530 Permission denied.
Login failed.
ftp> quit
221 Goodbye.


 

 

 - 'root' 계정으로 FTP 접속은 기본적으로 불가능하지만, 다음과 같이 사용자 관련 파일을 수정하면 가능하다.

 

[root@main /etc/vsftpd]# ls
banner.txt  ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh


 

 

[root@main /etc/vsftpd]# vi ftpusers

 


  1 # Users that are not allowed to login via ftp
  2 root <- 삭제
  3 bin
  4 daemon
  5 adm
  6 lp
  7 sync
  8 shutdown
  9 halt
 10 mail
 11 news
 12 uucp
 13 operator
 14 games
 15 nobody
 

: wq!
 


 

 

 

[root@main /etc/vsftpd]# vi user_list

 


  1 # vsftpd userlist
  2 # If userlist_deny=NO, only allow users in this file
  3 # If userlist_deny=YES (default), never allow users in this file, and
  4 # do not even prompt for a password.
  5 # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
  6 # for users that are denied.
  7 root <- 삭제
  8 bin
  9 daemon
 10 adm
 11 lp
 12 sync
 13 shutdown
 14 halt
 15 mail
 16 news
 17 uucp
 18 operator
 19 games
 20 nobody
 

: wq!
 


 

 

[root@main /etc/vsftpd]#
[root@main /etc/vsftpd]# service vsftpd restart
vsftpd 종료 중:                                            [  OK  ]
vsftpd에 대한 vsftpd을 시작 중: 

 

 

 - clone1에서 'root' 계정으로 main FTP 접속 실시

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): root
331 Please specify the password.
Password: centos
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> pwd
257 "/root"
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 
FTP 서버 접속 사용자수 제한

 

 - FTP 서버로 접속할 수 있는 사용자수는 기본적으로 무제한이다. clone1과 clone2에서 main FTP 서버로 접속을 확인한다.

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root):
[root@clone1 /root]#


 

[root@clone2 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root):
[root@clone2 /root]#


 

 - clone1, clone2에서 'ctrl+c'를 실시하여 FTP 서버 접속을 종료한다.

 

 

 - 'vsftpd' 설정 파일에서 다음과 같은 설정을 맨 마지막 라인에 추가하고, 서비스를 재시작한다.

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 


~ 중간 생략 ~

 

130 max_clients=1

 

: wq!
 


 

 

[root@main /etc/vsftpd]# service vsftpd restart
vsftpd 종료 중:                                            [  OK  ]
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]


 

 

- clone1에서 main FTP 접속 실시


[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root):

 

 

- clone2에서 main FTP 접속 실시

 

[root@clone2 /root]# ftp main
Connected to main (172.20.1.1).
421 There are too many connected users, please try later.
ftp>
ftp> quit
[root@clone2 /root]#


 

 

- clone1에서 'user1' 계정으로 FTP 로그인 이후, 로그 아웃을 실시한다.

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): user1
331 Please specify the password.
Password: centos
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

 - FTP 접속 사용자 수 제한 주석 처리 실시

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 


~ 중간 생략 ~

 

131 # max_clients=1

 

: wq!
 


 

 

 

 

 9) 동일한 IP 주소로 여러개 접속 차단

 

 - clone1에서 Putty 2개를 이용하여 main FTP 서버로 동시 접속을 확인한다.

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root):


 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root):


 

 

 - clone1, clone2에서 'ctrl+c'를 실시하여 FTP 서버 접속을 종료한다.

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): ctrl+c

[root@clone1 /root]#


 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): ctrl+c

[root@clone1 /root]#


 

 

 - 'vsftpd' 설정 파일에서 다음과 같은 설정을 맨 마지막 라인에 추가하고, 서비스를 재시작한다.

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 


~ 중간 생략 ~

 

132 max_per_ip=1


: wq!
 


 

 

[root@main /etc/vsftpd]# service vsftpd restart
vsftpd 종료 중:                                            [  OK  ]
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]


 

 

- clone1에서 Putty 2개를 이용하여 main FTP 서버로 동시 접속하면, 2번째로 접속한 clone1는 연결이 거부 된다.


[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root):

 

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
421 There are too many connections from your internet address.
ftp>
ftp> quit
[root@clone1 /root]#


 

 

- clone1에서 'user1' 계정으로 FTP 로그인 이후, 로그 아웃을 실시한다.

 

[root@clone1 /root]# ftp main
Connected to main (172.20.1.1).
220 (vsFTPd 2.2.2)
Name (main:root): user1
331 Please specify the password.
Password: centos
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> quit
221 Goodbye.
[root@clone1 /root]#


 

 

 - 동일한 IP 주소로 여러개 접속 차단 주석 처리 실시

 

[root@main /etc/vsftpd]# vi vsftpd.conf

 


~ 중간 생략 ~

 

133 # max_per_ip=1

 

: wq!
 


 

 

 

 

 10) 로그 저장

 

  - FTP 접속 및 파일 전송시 로그를 저장한다.


[root@main /etc/vsftpd]# vi vsftpd.conf

 

 

~ 중간 생략 ~

 

39 xferlog_enable=YES

 

~ 중간 생략 ~

 

: wq!

 


 

 

[root@main /etc/vsftpd]# cat /var/log/xferlog


Tue Mar 15 15:20:39 2016 1 172.20.1.101 0 /etc/issue* a _ o r user1 ftp 0 * i
Tue Mar 15 15:21:01 2016 1 172.20.1.101 47 /etc/issue a _ o r user1 ftp 0 * c
Tue Mar 15 15:21:16 2016 1 172.20.1.101 46 /etc/issue.net a _ o r user1 ftp 0 * c
Tue Mar 15 15:28:55 2016 1 172.20.1.101 122872 /bin/cp b _ o r user1 ftp 0 * c
Tue Mar 15 15:28:55 2016 1 172.20.1.101 49384 /bin/mkdir b _ o r user1 ftp 0 * c
Tue Mar 15 15:30:21 2016 1 172.20.1.101 49384 /bin/mkdir b _ o r user1 ftp 0 * c
Tue Mar 15 15:30:42 2016 1 172.20.1.101 122872 /bin/cp b _ o r user1 ftp 0 * c
Tue Mar 15 15:30:42 2016 1 172.20.1.101 49384 /bin/mkdir b _ o r user1 ftp 0 * c
Tue Mar 15 15:31:59 2016 1 172.20.1.101 122872 /bin/cp b _ o r user1 ftp 0 * c
Tue Mar 15 15:32:00 2016 1 172.20.1.101 49384 /bin/mkdir b _ o r user1 ftp 0 * c
Tue Mar 15 15:32:51 2016 1 172.20.1.101 122872 /bin/cp b _ o r user1 ftp 0 * c
Tue Mar 15 15:32:51 2016 1 172.20.1.101 49384 /bin/mkdir b _ o r user1 ftp 0 * c


 a : ACSII Mode 전송

 b : Binary Mode 전송

 o : 다운로드

 i : 업로드