AWS 클라우드 인프라 연구 및 구현(Linux, Windows)

김동주·2024년 1월 24일
post-thumbnail

🚩 프로젝트

AWS 환경에서 Linux OS, Windows 서비스 서버 구축

🤼‍ 프로젝트 작업

Linux

내 PC에서 AWS 리눅스서버에 putty로 접속할 수 있도록 설정한다.
* 공개키 인증 방식(public key authentication)

  • 리눅스 서버에 웹서버(ex: httpd or nginx) 기능을 구성하고, 웹서버의 보안을 강화할 수 있는 일부 구성을 진행한다.
  • 리눅스 서버에 FTP 서버(vsftpd) 기능을 구성하고, FTP 서버의 보안을 강화할 수 있는 일부 구성을 진행한다.

Windows

내 PC에서 AWS 윈도우서버에 RDP(원격데스크 톱 연결)로 접속할 수 있도록 설정한다.

  • RDP(Remote Desktop Protocol): 원격데스크톱 연결
  • 윈도우 서버에 웹서버(ex: IIS or httpd or nginx) 기능을 구성하고, 웹서버의 보안을 강화할 수 있는 일부 구성을 진행한다.
  • 윈도우 서버에 FTP 서버 기능을 구성하고, FTP 서버의 보안을 강화할 수 있는 일부 구성을 진행한다.

🌐 AWS(Linux)구축

1. EC2 Linux 인스턴스(서버) 구축

  • 호스팅 서버 위치 설정

    서울에 서버를 생성했는데, 다른 지역으로 접속하게 되면 이전에 생성했던 서버가 안보이니 주의

  • EC2 대시보드 -> 인스턴스 시작 -> 이름 설정

  • 키 페어 생성(ppk)

  • 인스턴스 생성, 인스턴스 요약 확인

  • 미리 설정에 필요한 인바운드 규칙 추가

  • 트레픽 제어 하는 방화벽 설정 FTP 포트 범위인 20-21 설정

  • Putty를 통한 Linux 서버 연결

    Putty Key Generator 실행 -> 저장해놨던 key값 load -> Save private key를 원하는 위치에 저장
    key의 파일 형식이 .ppk면 그대로 진행

  • Key파일 불러오기 -> ‘퍼블릭 IPv4주소’ 또는 ‘퍼블릭 IPv4 주소를 통해 접속

2. Linux Server - web 서버 구축

  • ec2-user 로그인 -> $ sudo –su 명령어를 통해 관리자(root)로 접속
  • ttpd, mod_ssl, firewalld 패키지 설치
yum install –y httpd mod_ssl firewalld

  • http 서비스 기동
 systemctl enable --now httpd

  • firewall 서비스 기동
systemctl enable --now firewalld

  • http,https 방화벽 추가
firewall-cmd —-permanent —add-service={http,https}
firewall-cmd —-list-all

firewall-cmd —-reload

  • web 접속 여부 확인

    curl 명령어를 이용한 확인

vi 편집기를 이용한 서버 확인

3. Linux Server - web 서버 보안

  • ServerTokens 설정 변경을 통한 Server의 버전정보 숨김

    vi /etc/httpd/conf/httpd.conf -> 마지막줄에 ServerTokens Prod 추가

http 재기동후 curl 명령어를 실행후 서버 정보가 숨겨져 있는지 확인

  • .htaccess를 이용한 다른 사용자 접근 금지

    vi 편집기를 통해 /var/www/html/.htaccess에 다음과 같이 내용 입력

htpasswd –mc 명령어를 통해 testuser 생성

  • /etc/httpd/conf/httpd.conf -> AllowOverride 값을 AuthConfig 변경

  • cat /etc/httpd/conf mypasswd (유저 확인)
    chomod 644 /etc/httpd/conf/mypasswd (권한 설정)
    -> httpd 서비스 재기동후 서버 접속

4. Linux Server - FTP 서버 구현

  • ftp, vsftpd 패키지 설치
yum install –y vsftpd ftp 

systemctl enable —now vsftpd
systemctl status vsftpd

  • ftp 방화벽 등록
firewall -cmd --permanent --add-service=ftp
firewall-cmd —-reload
firewall-cmd —list-all

  • HostOS에서 FTP 접속

    알 FTP앱을 이용하여 user01사용자로 FTP 접속
    useradd user01
    user passwd user01 <- user01 사용자 생성

/home/user01 디렉토리안에 test1 파일 생성

HostOS에서 확인

5. Linux Server - FTP 서버 보안 설정

  • anonymous사용자 접근 제한 설정

    vi/etc/vsftpd/vsftpd.conf ->
    anonymous enable=YES -> anonymous enable=NO

  • FTP 접속시 Banner 메세지 출력

    vi /etc/vsftpd/vsftpd.conf
    -> banner_file=/etc/vsftpd/banner.txt 추가

vi banner.txt

HostOS 접속시 Banner 문구 확인

  • chroot 설정

    FTP 사용자 자신만 홈 디렉토리 아래 있는 디렉토리 이동 설정
    vi /etc/vsftpd/vsftpd.con

  • 최대 사용자 접근 제한 설정

    vi /etc/vsftpd/vsftpd.conf

🙇 AWS(Windows)구축

1. EC2 Windows 인스턴스(서버) 구축

  • EC2 대시보드 -> 인스턴스 시작 -> 이름 설정 -> Windows 이미지 선택
  • key 페어 생성 ->.pem 파일 형식으로 생성
  • 네트워크 설정
  • 인바운드 규칙 추가
  • 프라이빗 키 파일 업로드
  • 생성받은 암호 입력

2. Window Server - FTP 웹 서버 setting]

  • ftp 서버 설치

    서버 관리자 -> 기능 및 역할 추가 -> Server Roles -> Web Server[v] -> Next

Role Services -> FTP Server[v] -> Next

Confirmation -> Restart the destination server automatically if required[v] -> Install

close

  • ftp 방화벽 서비스 설정 확인

    <Win + R> -> firewall.cpl -> Windows Defenfer -> FTP Server[v]

<Win + R> -> firewall.cpl -> Windows Defenfer -> World Wide Web Serrvices(HTTP)[v]

<Win + R> -> services.msc -> Microsoft FTP Service -> Running

2. Window Server - web 서버 구성

  • WEB 연결 확인

    퍼블릭 IPv4 주소 or 퍼블릭 IPv4 주소로 연결

  • index.htm을 이용한 web 연결(우선 순위를 사용)

    localDisk(C;) -> inetpub -> wwwroot -> index.htm 파일생성 -> 내용 입력

web 서버 연결

3. Window Server - web 서버 보안

  • IIS 데이터 ACL 적용

    Share this folder[v] -> Permissions -> Everyone -> Read[v]

Adbanced Sharing -> Share this folder -> Permissions -> SYSTEM, Administrator 추가

모든 권한 [v]

Directory Browsing 체크

4. Window Server - FTP 서버 구현

  • anonymous로 FTP 접속하기

    이름 설정 -> C:\inetpub\ftproot 위치 설정

No SSL[v] -> 익명의 사용자 read[v] 권한 부여

FTP SERVER 생상 완료

anonymous로 FTP 접속 확인

5. Window Server - FTP 서버 보안

  • TESTUSER 유저 생성

    FTP Group 유저만 FTP서버에 접속할 수 있게 하기

  • 그룹[FTP Groups] 생성 후 TESTUSER 그룹에 추가하기

  • 기존 FTP 서버 사용 유저를 변경시키지 말고 새로운 FTP 서버를 구축해서 테스트해본다.

  • 새로운 FTP 서버에 유저 그룹 추가후 모든 권한 확인

    FTP Groups를 추가한 후 모든 권한을 부여한다.

  • TESTUSER을 통해 FTP 접속 확인

6. Window Server - HostOS에서 Window FTP서버로 접속하기

  • FileZilla 설치 -> SFTP -> Key페어 업로드

  • 사이트 관리자 -> 새 사이트 -> 퍼블릭 Ipv4 or 퍼블릭 IPv4 DNS 입력 -> 포트 –21 설정 -> 평문 FTPAKS 사용
    선택 -> 비밀번호 묻기 -> FTP 서버에 등록되어 있는 TESTUSER 유저로 접속

  • 전송 설정 -> 능동형[v]

  • 설정 암호 입력후 연결

  • 디렉토리와 텍스트 파일을 만들어 점검

profile
더욱 더 발전된 엔지니어가 되기 위한 개인 공부 블로그(DevOps/Cloud)

0개의 댓글