가로선 2022. 3. 21. 17:43

 

   목차   

 

1. DHCP, FTP, HTTP 종합 문제

2. HTTPD

3. DNS

 

 

   DHCP, FTP, HTTP 종합 문제   

 

   문제   

 

< DHCP >
Network 10.0.0.0/24
 - 서버는 30대 정도 운영중, 고정IP 사용중, IP는 네트워크 앞쪽부터 순차적으로

 - dhcp 서버는 11번째 운영중

 - dns 서버는 첫번째에서 운영중, 단 2차 DNS는 Google의 Public DNS를 사용

 - Gateway주소는 마지막 IP사용중

 - 임대시간은 1시간

 - 예약기능 사용해서 W10-1은 101번째 IP, W11-1은 201번째 IP를 우선적으로 사용

< vsftpd >
 - passive mode로 운영
 - Server port 결정, min 60000 max 65000

 - 사용자 cc, dd
    - chroot = cc

 - data 디렉터리에 chroot 설정

    - 파일은 /data/chroot

 - anonymous 사용, upload 불가

 - xferlog 위치 /data/xfterlog

 - 배너 파일 위치 및 파일 이름 /data/ban

 - tcp_wrapper 사용여부와 차단할 IP 
    - W10-1 허용, W11-1 불가

 - idle time & Data Connection time out 
    - idle time 5분, data connection time out 60초

 

< httpd >
Httpd (Apache) + Nginx
# yum install -y httpd
# systemctl start httpd
# tcp 80 방화벽 열기

 

   풀이   

 

문제에 주어진대로 리눅스 서버(DHCP 서버) IP 세팅

 

DHCP 설정파일 수정

 

W10-1에 DHCP할당

 

W11-1에 DHCP 할당

 

문제에 주어진 사용자 생성

 

설정파일들을 담을 /data 디렉터리 생성

 

/data/ban에 배너파일 생성

 

chroot_list를 사용하기 위해 /data/chroot에 사용자 추가

 

anonymous 계정 사용하기 위해 YES로 설정

 

anonymous 계정으로 업로드는 불가하게 하기 위해 주석 처리

 

xferlog를 사용 및 passive mode 사용이므로 port 20번 연결을 주석처리

 

log들의 저장 위치 지정

 

문제에 주어진 대로 timeout 설정(5분, 60초)

 

만든 배너파일을 사용하기 위해 파일로 변경 후, 위치 지정

 

chroot_list 사용을 위해 주석처리를 풀고, 위치 지정

 

chroot 사용에 오류를 없애기 위해 writeable 사용 및 passive mode 설정

    - 최소포트가 60000, 최대포트가 65000이므로 설정

 

tcp_wrapper를 사용하여 W10-1은 접속 허용되도록 설정

 

tcp_wrapper를 사용하여 W11-1은 접속 차단되도록 설정

 

ftp 제어 포트 및 할당된 포트 6 ~ 6.5까지 방화벽 열어주기

 

W10-1에서 ftp가 제대로 접속되는 것을 확인

 

W10-1에서 dd사용자가 chroot설정되있지 않으므로 상위 디렉터리로 이동이 가능한 것을 확인

 

FileZilla에서도 접속 테스트

 

passvie mode이므로 수동형으로 변경

 

cc사용자로 접속이 잘되며, 상위 디렉터리로 옮길 수 없는 것을 확인

 

dd사용자로도 접속이 잘되며, 상위 디렉터리로 옮겨지는 것을 확인

 

W11-1에서 접속시에는 해당 IP가 연결이 거부되어 접속이 안되는 것을 확인

 

http service에 대해 방화벽을 열어준다

 

방화벽이 잘 열린 것을 확인

 

 

   HTTPD   

 - Httpd (Apache) + Nginx

 - 설정파일 : /etc/httpd/conf/httpd.conf

 

ServerRoot 설정

    - Apache root 홈 디렉터리 경로

    - 기본적으로 /etc/httpd이며, 설정시 절대경로로 설정

 

Apache 웹 서버 포트 지정

    - 다른 IP주소와 포트에 대해서 연결할 수 있도록 해준다

        ex) https는 443인데 뒤에 안붙고 www.naver.com 만 사용이 가능
    - 인트라넷 접속 시에는 포트변경하여 사용할 수 있다

 

다른 인증관련 설정파일 포함

    - 필요할 때 가져다 쓰겠다는 느낌

 

user, group 둘다 apache로 지정

    - root권한을 쓸 수는 없으므로 apache로 지정

        - 만약, 해킹을 당할 시 root권한을 뺏기는 것을 방지

 

관리자 이메일 주소 설정

    - 서버 오류 발생시 클라이언트로 전송할 오류 메세지에 보여질 관리자 이메일 주소

    - 보안을 위해 요즘은 팀메일을 많이 넣는 추세이다

 

/ 디렉터리 설정

    - 일반 사용자들의 최상위 디렉터리 접근을 막음

    - 사용자 인증도 막음

 

웹 컨텐츠 디렉터리 지정

    - 아파치 서버의 웹문서가 있는 경로 지정

 

컨텐츠 디렉터리 상위에 접근 가능

 

디렉터리 리스닝 기능 설정

    - 특정 디렉터리를 입력했을 때 하위 디렉터리들의 목록이 나열되는 것

        ex) apahce.org의 distribution directory 생각

    - 활성화하게 되면 보안에 매우 취약하다(지우는 것이 좋다)

 

시작 페이지

    - index.html파일로 시작되는 파일로 서비스를 시작

    - 중요한 부분이다

 

사용자 인증관련 정보

    - .ht(사용자 인증관련 정보)에 대해 접근 거부

 

에러 로그 기록 저장위치 설정

 

에러 로그에 대한 경고 레벨 및 로그 기록 수준 설정

    - warning 경고 레벨 수준부터 로그를 기록하겠다고 설정

 

멀티미덩 파일 설정

    - 멀티미디어 파일들은 사용하기 위해 mime에 등록 필수

 

해당 파일을 포함

    - 원래 httpd설정파일이 1000줄이 넘지만, 해당 설정으로 인해 줄게되었다

 

 

시작페이지인 index.html이 없을 때 http 서버 접속했을 때 나오는 페이지

 

index.html 생성

 

간단히 설정하여 생성

 

설정한대로 10.0.0.11접속시 나오게 되는 것을 확인

 

 

   DNS   

 - Domain Name System, Service, Server

 - URL을 IP Address로 변환
 - /etc/hosts를 예전엔 복사해서 사용
 - URL 검색 순서
    - 첫번째 cache memory 확인 
        - ipconfig /displaydns 캐시확인
        - ipconfig /flushdns : 메모리에 있는 캐시삭제
    - /etc/hosts 참조
    - DNS (고정 IP설정 or DHCP 서버에서 수신하는) 참조

 

   cache memory 확인하는지 테스트   

 

administrator 계정을 사용하여야 하므로 컴퓨터 관리에서 활성화시켜준다

 

administrator 비밀번호 설정

 

우클릭 - 속성 - administrator 계정 활성화

 

아래 화살표가 사라진 것을 확인(활성화)

 

public dns(=kornet) 설정

    - 현재 설정이 10.0.0.1로 되어있어 실습을 위해 설정

 

nslookup 사용

    - nslookup : 도메인 네임을 얻거나 IP 주소 매핑

                            다른 특정한 DNS 레코드를 도메인 네임 시스템에 질의할 때 사용

    - 권한 없는 응답이 오는 것은 지정된 DNS서버에 저장되어 있는 cache가 응답하는 것

        - buffer : 일괄처리(여러작업 모아서 한번에)
        - cache : 이전에 한번이라도 서비스한게 있으면 기억해두었다가

                         같은 작업이 생기면 빠르게 서비스함

 

naver의 dns 주소로 변경

 

네이버로 dns가 설정되어 권한없는 응답이 뜨지 않는 것을 확인

    - naver의 dns는 private dns이므로 naver를 제외한 다른 주소들을 찾지 못함

 

   /etc/hosts 참조하는지 테스트   

 - W10-1의 Internet Explorer에서 진행

 

인터넷 옵션 설정

 

DNS 캐시 초기화

    - ipconfig /flushdns : DNS 캐시 초기화

    - ipconfig /displaydns : DNS 캐시 리스트 확인

    - 캐시가 존재하지 않을 시 /etc/hosts를 참조하는지 확인하기 위함

 

해당 디렉터리에 있는 hosts 파일

 

naver.com의 ip 하나 사용

 

hosts파일에 naver의 ip를 daum.net으로 지정

    - 해당 설정을 하기 위해서는 administrator 계정만 가능하다

 

주소창에 daum.net을 입력하면 naver.com으로 넘어가는 것을 확인

    - 캐시가 없으므로, /etc/hosts를 참조에 daum.net이 naver.com이라는 것을 확인

 

   URL 검색   

 

URL 검색(출처 : https://krnic.or.kr/jsp/resources/dns/dnssecInfo/dnssecInfo.jsp)

    - 가운데의 DNS 서버가 Public DNS이다(도메인 관리서버)

    - 그림에서 처럼 사용자가 해당 url을 찾는다고 가정하자

    - Public DNS에 사용자가 물어보았을 때, public DNS는 전 세계의 root DNS에 물어본다

        - 1차 도메인인 kr과 같은 종류의 답을 듣게 된다

    - 후에, kr을 관리하는 DNS에 물어본다

        - 해당 DNS에서 등록된 DNS를 알게 된다

    - 마지막으로, 해당 DNS에 물어본다

        - 해당 DNS에서 URL의 IP를 알게 된다

    - Public DNS가 알게 된 IP를 사용자에게 전달하여 웹페이지에 접속하게 해준다

    - Public DNS가 이처럼 질의응답 하는 것을 순환쿼리(Recursive Query)라 한다

        - naver같은 Private DNS는 불가능

 

   DNS 서버 구성   

 - /etc/named.conf
 - /etc/named.rfc1912.zones
 - /var/named

 

bind, bind-utils, bind-libs 설치

 

/etc/named.conf 설정

    - 서버에는 랜카드가 1쌍으로 4개씩 달려있다(내부, 외부, 스토리지, 예비)

    - listen-on port ~ ; : 1쌍마다 IP가 존재하는데,

                                          그 중에서 무슨 IP로 DNS 서비스를 할 것인지 설정하는 줄

    - allow-query : 누구에게 질의를 허용할 것인지

    - 모두 any로 설정

 

외부 순환쿼리 허용

    - Public DNS 서버 사용을 위해 허용

 

dnssec

    - 인증서 쓰면 종단간 신뢰성 확보를 되기 때문에 dnssec을 많이 사용

 

/etc/named.rfc1912.zones 설정(정방향)

    - nameserver를 구성

    - master : 주 영역, slave : 보조 영역

    - file이름 지정한 것을 /var/named에서 생성해야 작동

    - allow-update : 업데이트를 허용해줄 slave의 IP를 넣어주면 되지만 없으므로 패스 

 

정방향 관련 설정이 있는 파일을 복사하여 knlee.xyz 생성

 

knlee.xyz(=zone) 설정

    - 문자로 끝나면 반드시 끝에 .을 찍자!

    < 1 >

    - TTL : Time To Live(데이터 유지 시간)

    - @ : 기본 도메인 설정

    - IN : 네트워킹 주소 클래스(INternet)

    - SOA : 해당 도메인의 모든 자원에 대한 권리를 알려주는 레코드 등록

        - 여기서 부터 DNS가 시작한다고 선언하는 것

    - 그 옆에는 네임서버, 팀메일을 주로 작성

    < 2 >

    - 보조영역이 주영역의 데이터를 동기화 하는 시간 설정

        - 안될 시 재시도, 만료 등 설정

    < 3 >

    - nameserver와 그에 대한 IP 정의

    - naverserver, mail 서버 설정

    - A : 호스트 레코드(도메인을 IP로 연결)

    - ns, mx는 레코드 값 꼭 따로 설정 필수!

 

방화벽 설정

    - DNS는 평소에는 UDP를 사용하지만, 전송 데이터가 512byte 넘어가거나,

      영역 전송할 때는 TCP를 사용하므로 둘 다 방화벽을 열어준다

 

권한 부여

    - 클라이언트가 해당 파일의 내용을 읽을 수 있어야 한다

 

만든 DNS서버로 변경

 

nslookup을 통해 접속 확인

    - 역방향 설정 전이므로, 기본 서버에 UnKnown이 나오게 된다

 

ftp도 설정하였으므로, 해당 NS로 접속 가능

 

리눅스에서는 DNS 변경 전

    - 구글 DNS에서 knlee.xyz에 대한 정보를 받아 온다

 

DNS 변경

 

설정에 놓은 서버들이 제대로 출력되는 것 확인

 

역방향 설정

    - /etc/named.rfc1912.zones에서 설정

    - 반대로 적어준다 생각하면 편함

    - 정방향 zone의 신뢰성을 높이기 위해 사용

 

파일 이름 지정한 것을 named.loopback 내용을 복사하여 생성

 

xyz.knlee(=zone) 설정

    - PTR : 역방향 zone이 되면서 정방향의 A 역할

    - 11을 넣어 10.0.0.11의 문자 주소 정의

 

knlee.xyz와 똑같이 other권한에 r권한을 준다

 

역방향 조회 영역 설정이 된 것을 확인

 

   DNS 서버 삭제   

 

설치한 패키지들 삭제

 

zone 설정 파일 삭제 및 방화벽 풀어준 포트들 삭제