반응형

첫 번째 스텝. AWS에 Apache 서비스 올리기

AWS에 웹서비스를 구현하기위한 EC2를 생성하였다.

EC2 생성 전에 VPC, 서브넷 설정관련 사항
https://velog.io/@0x6a0x640x68/Shielders-Rookies-18

원활한 작업을 위해 vscode 와 연동을 진행하였다.
config 폴더에 해당 ec2 퍼블릭 ip와 user , 키 위치 디렉토리를 넣으면 연동이된다

정상적으로 연동이 되었고 아파치 서비스 동작 확인

두번째 스텝. DB와 연동된 게시판과 회원가입 홈페이지 구현

https://www.inflearn.com/course/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EC%98%88%EC%A0%9C-%EC%B4%88%EA%B8%89-1/dashboard

인프런에서 현재 무료로 배포중인 수업중 프론트엔드 개발 시 꼭 해봐야 하는 실무 예제 Part.1 수업 및 MySQL 강의를 통해 프론트엔드와 백엔드를 구현예정이다.

 

현재 DB 연동 이전에 프론트엔드로 뼈대를 만드는 작업중에있다.

빨간색으로 칠한 회원가입, 회원탈퇴, 로그아웃, 본인소개, 프로젝트소개, 게시판, 회원조회, 서비스(미구현 가능성있음)로 홈페이지의 뼈대를 잡았다.

DB와 연동되는 회원가입, 회원탈퇴, 회원조회, 로그인, 로그아웃, 게시판 부분은 PHP를 통하여 구현 예정이고 본인 소개, 프로젝트 소개란은 자바스크립트를 이용해 구현예정이다.

현재까지 진행 내역 및 앞으로 진행 예정

진행중 이슈

1. 본인소개 페이지
- 현재 노션으로 리다이렉트 됨
변경예정
-> 본인소개는 따로 빼서 노션아이콘을 클릭하면 노션으로 가게끔 변경 예정이다.
https://verbose-chokeberry-485.notion.site/_-4b6281ab8a8944918900a3077e8ce9a5 
리다이렉트될 노션 주소이다.

2. 프로젝트 소개 페이지
- 현재 페이지 한개 내용 켜지면 다른 페이지 닫히지 않음
- 한개 내용 한번 더 클릭 시에 페이지 닫히지않음(현재 Notice All close 버튼을 통해 모든 글 한번에 닫음

변경예정 및 수정사항
-> 프로젝트소개 클릭시에(파란색밑줄) 뜨던 부분 수정
-> 페이지에 한 내용만 볼 수 있게 수정예정, 내용 한번더 클릭 시 문서 닫을예정
-> 본문 배경색 하양색에 글씨 검은색으로 수정 예정

홈페이지 구현

오늘은 8개 페이지(회원가입, 회원탈퇴, 로그인,로그아웃, 본인소개, 프로젝트소개, 게시판, 회원조회) 중 회원가입 페이지를 만들었다.

<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" >
	<style>
    .input-form {
      max-width: 680px;

      margin-top: 80px;
      padding: 32px;

      background: #fff;
      -webkit-border-radius: 10px;
      -moz-border-radius: 10px;
      border-radius: 10px;
      -webkit-box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
      -moz-box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
      box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15)
    }
  </style>
<link rel="stylesheet" href="./accordion_1.css">
</HEAD>
<BODY>
	<div class="container">
		<div class="input-form-backgroud row">
      		<div class="input-form col-md-12 mx-auto">
		<h3 style="text-align:center; padding-top:50px" >
            <a href="index.html">회원가입</a>
            <small class="text-muted">myFirst_SideProject_2023</small>
        </h3>
		<form class="validation-form" METHOD="post"  ACTION="insert_result.php" >
          <div class="row">

            <div class="col-md-6 mb-3">
              <label for="userID">ID</label>
              <input type="text" class="form-control" NAME="userID" required>
              <div class="invalid-feedback">
                ID를 입력해주세요.
              </div>
            </div>
            <div class="col-md-6 mb-3">
              <label for="name">이름</label>
              <input type="text" class="form-control" NAME="name" required>
              <div class="invalid-feedback">
                이름을 입력해주세요.
              </div>
            </div>
          </div>

          <div class="mb-3">
            <label for="birthYear">생일</label>
            <input type="text" class="form-control" NAME="birthYear" required>
            <div class="invalid-feedback">
              생일을 입력해주세요.
            </div>
          </div>

          <div class="mb-3">
            <label for="addr">지역</label>
            <input type="text" class="form-control" NAME="addr" required>
            <div class="invalid-feedback">
              주소를 입력해주세요.
            </div>
          </div>

          <div class="mb-3">
            <label for="mobile1">휴대폰</label>
            <input type="text" class="form-control" NAME="mobile1">
          </div>

          <div class="mb-3">
            <label for="mobile2">전화번호</label>
            <input type="text" class="form-control" NAME="mobile2">
          </div>

          <div class="mb-3">
            <label for="height">신장</label>
            <input type="text" class="form-control" NAME="height">
          </div>
          <hr class="mb-4">
          <div class="custom-control custom-checkbox">
            <input type="checkbox" class="custom-control-input" id="aggrement" required>
            <label class="custom-control-label" for="aggrement">개인정보 수집 및 이용에 동의합니다.</label>
          </div>
          <div class="mb-4"></div>
          <button class="btn btn-primary btn-lg btn-block" type="submit" VALUE="회원 입력">가입 완료</button>
        </form>
      </div>
    </div>
</div>
</BODY>


</HTML>

우선 편의를 위해 모든 데이터를 text로 전달했다.

 

<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" >
	<style>
    .input-form {
      max-width: 680px;

      margin-top: 80px;
      padding: 32px;

      background: #fff;
      -webkit-border-radius: 10px;
      -moz-border-radius: 10px;
      border-radius: 10px;
      -webkit-box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
      -moz-box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
      box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15)
    }
  </style>
<link rel="stylesheet" href="./accordion_1.css">
</HEAD>
<BODY>
<div class="container">
		<div class="input-form-backgroud row">
      		<div class="input-form col-md-12 mx-auto">
		<h3 style="text-align:center; padding-top:50px" >
            <a href="index.html">회원삭제</a>
			<small class="text-muted">myFirst_SideProject_2023</small>
        </h3>
<FORM METHOD="post"  ACTION="delete_result.php">
<div class="row">

<div class="col-md-6 mb-3">
  <label for="userID">ID</label>
  <INPUT TYPE ="text" class="form-control" NAME="userID" >
  <div class="invalid-feedback">
	ID를 입력해주세요.
  </div>
</div>
<div class="col-md-6 mb-3">
  <label for="name">이름</label>
  <INPUT TYPE ="text" class="form-control" NAME="name" >
  <div class="invalid-feedback">
	이름을 입력해주세요.
  </div>
</div>
</div>
	위 회원을 삭제하겠습니까?	
  <div class="mb-4"></div>
  <button class="btn btn-primary btn-lg btn-block" type="submit" VALUE="회원 탈퇴">회원 탈퇴</button>
</FORM>

</BODY>
</HTML>

우선 편의를 위해 모든 데이터를 text로 전달했다.
delete_result.php로 데이터를 전달해 DB서버에 데이터를 업데이트할 예정이다.

 

현재 ubuntu에서 모든서버들이 올라가있어 주요정보통신시설 취약점 진단 가이드를 참고하여 ubuntu 진단 스크립트를 작성중에 있다.

bob3rdnewbie.tistory.com에 N3wbieH4cker의 코드를 참고하였다.


#!/bin/sh

# Coded by N3wbieH4cker
# bob3rdnewbie.tistory.com



# check priv
if [ "$EUID" -ne 0 ]
	then echo "root 권한으로 스크립트를 실행하여 주십시오."
	exit
fi


alias ls=ls
CF=`hostname`"_scan_result_"`date +%F__%T`.txt

echo > $CF 2>&1



echo "**********************************************************************"
echo "*                    리눅스 취약점 진단 스크립트                     *"
echo "**********************************************************************"
echo "*   항목에 따라 시간이 다른 항목에 비하여 다소 오래 걸릴수 있습니다  *"
echo "*   스캔 보고서는 hostname_scan_result_시각.txt  파일로 저장 됩니다  *"
echo "*   기준은 [주요 정보통신 기반 시설 취약점 분석,평가기준] 문서입니다 *"
echo "**********************************************************************"
echo ""

sleep 3


echo "**********************************************************************" >> $CF 2>&1
echo "*                           리눅스 스크립트                          *" >> $CF 2>&1
echo "**********************************************************************" >> $CF 2>&1
echo "" >> $CF 2>&1


echo "############################# 시작 시간 ##############################"
date


echo "############################# 시작 시간 ##############################"  >> $CF 2>&1
date >> $CF 2>&1


echo "============================  시스템  정보 ===========================" >> $CF 2>&1
echo >> $CF 2>&1

echo "1. 시스템 기본 정보" >> $CF 2>&1
echo "    운영체제	: " `lsb_release -a` >> $CF 2>&1
echo "    호스트 이름	: " `uname -n` >> $CF 2>&1
echo "    커널 버전	: " `uname -r` >> $CF 2>&1
echo >> $CF 2>&1

echo "2. 네트워크 정보" >> $CF 2>&1
ifconfig -a >> $CF 2>&1
echo >> $CF 2>&1

echo 
echo
echo >> $CF 2>&1
echo >> $CF 2>&1

echo "************************** 취약점 체크 시작 **************************" 
echo


echo "************************** 취약점 체크 시작 **************************" >> $CF 2>&1
echo >> $CF 2>&1
echo >> $CF 2>&1


echo "============================== 계정 관리 =============================" 
echo "============================== 계정 관리 =============================" >> $CF 2>&1

echo "01. root 계정 원격 접속 제한"
echo "01. root 계정 원격 접속 제한" >> $CF 2>&1

if [ -z "`grep permitrootlogin no\? /etc/ssh/sshd_config`" ]
	then
		echo "    ==> [안전] 콘솔 로그인만 가능합니다" >> $CF 2>&1
	else
		echo "    ==> [취약] 콘솔 로그인 이외의 로그인이 가능합니다" >> $CF 2>&1
fi
echo >> $CF 2>&1
echo

echo "02. 패스워드 복합성 설정(및 정책)"
echo "02. 패스워드 복합성 설정(및 정책)" >> $CF 2>&1
반응형

'공부 > 보안' 카테고리의 다른 글

[보안] Docker취약점 분석 실습  (0) 2023.04.08
[보안] Bandit  (0) 2023.04.06
[보안] DVWA를 통한 해킹실습  (0) 2023.04.05
[보안] Metasploit를 이용한 취약점진단 실습  (0) 2023.04.05
클라우드 운영 실습  (0) 2023.04.05

+ Recent posts