Network/Linux & WindowsServer

CentOS 7 - Linux(DHCP, FTP 설정), Windows(결과 확인) / 1

잇(IT) 2022. 4. 7. 15:05
728x90

- 이번 포스팅은 Linux 환경에서 DHCP와 FTP를 설정해볼 것이다. 확인은 가상 환경의 Windows에서 확인 해 볼 것이다. 


조건.

3.1 DHCP

 1.1 네트워크 10.0.0.0 /24

 1.2 서버는 30대 운영 중, 네트워크의 앞쪽부터 순차적으로 고정 IP 사용 중

 1.3 DHCP서버는 세번째 서버

 1.4 DNS 서버는 첫번째 서버

 1.5 게이트웨이 주소는 네트워크의 마지막

 1.6 기본 임대 시간 2시간 최대 임대시간 4시간

 1.7 W10-1은 백한번째, W11-1은 이백일번째 IP를 우선적으로 사용

 

2. FTP

 2.1 사용자는 aa, bb

 2.2 사용자의 홈디렉토리에 각 500MB aa.txt, bb.txt를 각각 생성한다.

 2.3 passvie mode 최소 포트 60000, 최대 60100 사용 중

 2.4 anonymous 계정 사용 금지

 2.5 /data 디렉토리 생성 후, banner, xferlog, chroot 파일 저장

 2.6 접속 후 3분이 지나면 세션 종료, 데이터 전송 중이라도 1분 후면 열견 끊기

 2.7 aachroot 적용

 2.8 W10-1FTP 접속 가능, W11-1은 접속 불가능하게 TCP_Wrapper 설정

 2.9 그 외 나머지 설정은 일반적인 설정으로 구성



1번 리눅스 서버


-DHCP

 

- DHCP 설치 -> /etc/dhcp/dhcpd.conf 설정 파일에서 -> /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 파일을 복사해온 뒤 DHCP 설정에 필요한 부분을 사용한다.

 

- 리눅스 서버 네트워크 설정에 관련된 내용을 작성하는 곳이다.

맨 윗줄부터

네트워크 주소 범위 작성

DHCPIP 주소를 할당할 범위

DNS IP 주소 작성

도멘인 주소 작성

게이트웨이 주소

브로드캐스트 주소

기본 임대시간

최대 임대시간

 

- DHCP 예약 주소와 관련된 내용이다.

윗줄부터

host 이름 작성

해당 클라이언트 서버 MAC 주소 작성

예약으로 할당 할 특정 IP 주소 작성

 

- DHCP 설정 파일 변경사항을 저장하기 위해 패키지 재시작을 실행한다.

 

- 클라이언트 서버로 이동한다. (W10-1)

 

- 우선 네트워크 설정을 해야한다. ncpa.cpl

 

- MAC 주소 사용의 편의성을 위해 MAC 주소를 임의로 바꿔준다. (/etc/dhcp/dhcpd.conf에서 예약 주소 부분에 MAC 주소와 일치하면 된다.)

 

- cmd창에서 ipconfig /release -> ipconfig /renew를 통해 IP 주소를 새게 할당 받고 ipconfig /allIP 주소를 확인해보면 /etc/dhcp/dhcpd.conf에서 설정한 사항들이 적용된 것을 볼 수 있다.

 

- 다른 클라이언트 서버도 똑같이 작업을 해준다. (W11-1)

 

- 마지막에 cmd창에서 ipconfig /release -> ipconfig /renew -> ipconfig /all을 통해 DHCP 서버로부터 IP를 잘받아왔는지 확인한다.


- FTP

 

- 임의의 사용자 2개를 만들어 놓는다.

 

- vsftpd를 설치 -> /etc/vsftpd/vsftpd.conf 설정 파일에서 사용자가 원하는 조건에 맞게 설정을 변경해준다.

 

- 12 : 익명의 사용자 허용 및 거부 설정

 

- 16 : 로컬 사용자 (/etc/passwd에 존재하는 사용자)의 로그온 허용 및 거부 설정

19 : 로컬 사용자가 파일 시스템에 데이터 쓰기 허용 및 거부 설정

23 : 로컬 사용자의 umask 설정 ex) 022일 경우 파일 생성시 기본 권한 666 - 022 = 644

 

- 37 : ftp 접속자가 디렉토리 이동시 알림 메시지로 설정된 파일 내용을 출력

40 : 사용자의 업로드 다운로드를 로그 파일로 저장(/var/log/xferlog에 기록한다. vsftpd의 경우 xferlog가 로그에 해당된다.)

43 : 데이터 전송 포트

 

- 53 : 40xferlog_enableYES일 경우 로그를 저장할 파일 경로 지정

57 : xferlog 로그의 표준 포맷 허용 및 거부 설정

60 : idle 상태(프로세스가 실행하고 있지 않은 상태)가 설정한 시간만큼 이어질 때 세션을 종료

63 : 파일 업/다운로드시 연결 유지 시간 설정, 시간 초과 시 업/다운로드가 취소, 주석처리되면 기본값으로 300초가 지정

 

 - 87 :  ftp 접속 성공 시 출력하는 메시지 파일 경로 지정

 

- 101 :  사용자 접속 시 자신의 홈 디렉토리를 /로 인식하게 하여 하위 디렉토리로만 이동 가능

102 : chroot에서 제외할 사용자 목록 허용 및 거부 설정

104 : chroot_list_enableYES일 경우 해당 목록 파일 경로 지정

 

- 115 : standalone모드는 YES, xinetd모드는 NO

 

- 126 : 사용자 PAM 인증 시 사용할 설정 파일 이름 지정 (/etc/pam.d/vsftpd)

127 : /etc/vsftpd/user_list에 지정된 사용자 접속 허용 및 거부 설정

129 : 리눅스에서 여러가지 서비스들의 접근을 제어

130 : 패시브 모드 허용 및 거부 설정 NO일 경우 active 모드

131 : 패시브 모드시 사용할 시작 포트 번호

132 : 패시브 모드시 사용할 마지막 포트 번호

 

- banner_file=/ftp/banner.txt에서 설정한 /ftp/banner.txt파일에 ftp 접속 성공시 출력하는 메시지를 작성한다.

 

- chroot에서 제외할 사용자 목록을 작성한다.

 

- /etc/hosts.allow : vsftpd 접속을 허용할 IP 주소를 입력한다.

 

- /etc/hosts.deny : vsftpd 접속을 거부할 IP주소를 입력한다.

 

- FTP를 사용하기 위해서 기본적으로 방화벽으로 막혀 있기 때문에 방화벽을 허용 시켜주어야 사용할 수 있다.

포트 번호 21FTP 제어 포트이기 때문에 FTP 사용을 위해 열어주어야 한다.

포트 번호 60000-60100은 현재 passvie모드를 사용할 것이기 떄문에 사용가자 지정한 포트 번호의 방화벽을 열어주는 것이다.

 

- 방화벽 허용 목록을 확인하기 위해 firewall-cmd --list-all 명령어를 사용해 방화벽 허용 목록을 확인 할 수 있다.

 

- ftp로 파일을 전송하기 위해 임의의 파일을 생성한다.


- 실제 HOST PC

- FTP를 보다 쉽고 간편하게 사용하고 확인하기 위해 filezilla 프로그램을 설치해준다.

 

가상 머신이 아닌 Host PC에 설치된 filezilla 설치 파일을 가상 머신의 클라이언스 서버 윈도우 환경에 복사해준다. (VMware Tools가 설치되어 있다면 드래그해서 복사 할 수 있다.)

 

- 클라이언트 서버 환경에서도 FTP filezilla를 사용하기 위하여 방화벽 허용을 설정해주어야 한다.

 

- 제어판 -> Windows Defender 방화벽 -> 인바운드 규칙 -> 새 규칙

- ftp 방화벽을 허용해주기 위해 System32 아래 있는 ftp 실행 파일 경로를 설정해준다.

 

- 설정을 마치게 되면 다음과 같이 인바운드 규칙에 FTP가 추가된 것을 확인 할 수 있다.

 

- filezilla도 마찬가지로 인바운드 규칙에 설정해준다.

 

- 위의 설정을 마치게 되면 filezilla도 마찬가지로 인바운드 규칙에 적용된 것을 확인 할 수 있다.

 

- filezilla 프로그램을 실행시킨 다음 ftp 서버를 연결하기 위한 설정을 해주어야 한다.

 

- 리눅스 서버 IP를 설정, 사용자를 설정해준 다음 현재 passvie 모드를 사용할 것이기 때문에 수동형으로 바꾸어 준다.

 

- 리눅스 서버에서 생성한 사용자로 접속을 해준다.

 

- 1 : aa 사용자의 경우 chroot_list에 포함된 사용자이기 때문에 최상위 디렉토리가 자신의 홈디렉토이다.

2 : 현재 aa 사용자 홈 디렉토리에 존재하는 파일 및 디렉토리를 볼 수 있다.

aa 홈 디렉토리에 있는 파일을 클라이언트 서버에 드래그 하여 복사한다. (cmd에서 ftp를 사용하는 것과 같다.)

cmd에서 netstat -na -p tcp 명령어를 사용하여 cmd에서 파일 전송 시 파일을 전송한 서버의 IP, port 번호와 파일을 받은 서버의 IP, port를 확인 할 수 있다.

 

- 리눅스에서도 마찬가지로 파일 전송 시 파일을 전송한 서버의 IP, port 번호와 파일을 받은 서버의 IP, port를 확인 할 수 있다.

net-tools 패키지를 설치해준다.

 

- netstat -nat 명령어를 사용하면 파일 전송 시 파일을 전송한 서버의 IP, port 번호와 파일을 받은 서버의 IP, port를 확인 할 수 있다.

passvie 모드로 port 번호를 60000-60100으로 설정해주었기 때문에 60000-60100 사이의 60038의 포트 번호가 사용된 것을 확인 할 수 있다.

 

 

- 1 : bb 사용자로 로그인 했을 경우 chroot_list에 포함되어 있지 않기 때문에 사용자의 홈 디렉토리가 최상위 디렉토리로 지정되지 않기 때문에 홈 디렉토리 상위 디렉토리로 이동 할 수 있는 것을 볼 수 있다.

 

- 다음은 위 사진의 파일에서 deny 시켜준 클라이언트 서버(W11-1, 10.0.0.222)에 마찬가지로 사용자 aa를 접속 시켜본다.

 

파일에서 deny로 접속을 막았기 때문에 서버에 연결하지 못한다는 오류 메시지가 뜨는 것을 확인 할 수 있다.

 

- 다른 사용자인 bb 사용자 역시 접속을 못하는 것을 확인 할 수 있다.

728x90