[1,2교시 - 데이터베이스 운영 보안]
/ null 검색
- null은 =이나 !=으로 검색하는것이 아니라 'is null'이나 'is not null'로 조회한다.
select * from emp where comm is not null;
select * from emp where comm is null;
/ 연습문제 1
- EMP 테이블에서 sal이 1000보다 큰 사람 중에서 comm이 1000보다 작거나 또는 null인 사람을 출력하시오.
SELECT * FROM emp
WHERE SAL > 1000 AND (comm < 1000 OR comm IS NULL);
/ & 사용법
- 쿼리의 특정 부분에 '&변수명'을 입력하면 쿼리를 실행할 때 변수를 입력받을 수 있다.
/ ORDER BY 절
- 오름차순 : ASC(기본값)
- 내림차순 : DESC
SELECT * FROM EMP ORDER BY EMPNO ASC;
SELECT * FROM EMP ORDER BY EMPNO DESC;
/ SQL 실제 실행 순서
- FROM : 각 테이블 확인
- ON : 조인 조건 확인
- JOIN : 테이블 조인 (병합)
- WHERE : 데이터 추출 조건 확인
- GROUP BY : 특정 칼럼으로 데이터 그룹화
- HAVING : 그룹화 이후 데이터 추출 조건 확인
- SELECT : 데이터 추출
- DISTINCT : 중복 제거
- ORDER BY : 데이터 정렬
/ 집합연산자
- SELECT절은 같은 개수의 컬럼을 조회해야 한다.
- SELECT절의 컬럼의 데이터형이 동일해야 한다.
- 두 집합의 컬럼명은 달라도 상관없다.
- 여러개의 컬럼을 조회할 경우, 모든 컬럼에 대해 연산을 수행한다.
- ORDER BY 문은 맨 마지막에만 사용할 수 있다.
1. UNION : 합집합(중복제거), 정렬O
2. UNION ALL : 합집합(중복포함), 정렬X
3. INTERSECT : 교집합
4. MINUS : 차집합, 쿼리의 순서가 중요하다.
-- UNIONN EXAMPLE
SELECT 'S' mem_type, studno, name, deptno1 FROM STUDENT
union
select 'P' mem_type, profno, name, deptno from PROFESSOR;
-- 연습문제
-- student(table), 101(학과코드1), 201(학과코드2), 복수전공학생의 이름을 출력하시오.
-- INTERSECT 사용
SELECT STUDNO, name, deptno1, deptno2 from STUDENT where deptno1 = 101
INTERSECT
SELECT STUDNO, name, deptno1, deptno2 from STUDENT where deptno2 = 201;
-- 연산자 사용
SELECT STUDNO, name, deptno1 from STUDENT where deptno1 = 101 AND deptno2 = 201;
[3,4,5교시 - 정보시스템 진단]
# net share
- 공유되어 있는 디렉토리 표시
- $가 붙은 디렉토리 : 숨은 공유, 관리 공유, 관리자를 위해..
- IPC$ : null 세션(이것이 있으면 id/pw인증 없이 접근할 수 있음)
- ADMIN$ : Windows update
- 취약점이 될 수 있어서 제거하는것이 필요함
- 그냥 삭제하면 다시 살아나서 레지스트리를 수정하여 영구적으로 삭제해야 한다.
/ 레지스트리
- 나중에 하이브(Hive) 5개 속성을 공부하게 된다.
/ 실습진행
- 개인pc에 개인공유 폴더를 만든다.
- 교수자가 개인pc에 접근하여 파일을 넣어줄것이다.
- E드라이브에 폴더를 새로 만든 후 속성에 들어간다.
- 암호 보호 공유 끄기는 암호없이 들어올 수 있도록 할때 선택한다.
- 지금은 우리끼리 실습이라 끄기로 선택했다.
/ 웹서버(Web Server) 설치
- IIS(Internet Information Server)
- Web Server + FTP Server
- Server Manager화면에 들어가 있다.
/ 먼저 웹서비스가 설치되어 있는지 확인한다.
# netstat -anp tcp | find "80"
# netstat -anp tcp | findstr 80
/ 서비스 목록도 확인해본다.
# services.msc
- 설치된다면 world wide web어쩌고가 보일텐데 없다.
/ DDNS
- Dynamic DNS
- 아이피가 바뀌더라도 항상 도메인과 아이피를 연결시켜주어서 고정아이피마냥 도메인을 사용할 수 있다.
- 공유기에서 설정할 수 있다.
/ 설치하기
- 여기서 추가할 수 있다.
- 또는 오른쪽 상단 관리에서도 추가 및 제거를 할 수 있다.
- 중간에 항목을 보면 BitLocker라는것이 있다.
- BitLocker가 무엇인지 검색해보기
- 여기서도 밑에 조금 내려보면 FTP Server가 있는데 자동설치가 아니라 따로 설치해야 한다.
- 지금은 일단 그냥 넘어간다.
/ 서버 관리자 달라진 점
- 서버 관리자 왼쪽 상단에 iis가 생겼다.
- 이제 서비스 목록에서도 확인해볼 수 있다.
- 오른쪽 상단의 도구에도 iis항목이 생겼다.
- 윈도우버튼 > 윈도우 관리도구 에 'IIS(인터넷 정보 서비스) 관리자'도 생겼다.
- cmd에서 'start inetmgr'을 입력하면 IIS 관리자가 뜬다.
- cmd에서 netstat으로 80포트 확인이 된다.
# netstat -anp tcp | findstr 80
/ 서비스 확인
# services.msc
- 하고 World Wide Publishing 서비스 찾기
- 찾으면 더블클릭 해보기
/ 서비스 시작&스탑
# net stop w3svc
# net start w3svc
/ IIS 관리자
- 좌측 트리를 확장해보면 사이트가 하나 만들어져 있다.
- 서버(FIRST) 클릭했을때랑 사이트(Default Web Site)를 클릭했을때 나오는 항목이 조금 다른데 광역으로 설정하는것과 특정 사이트에 설정하는 항목이 조금 달라서 그런것이다.
- 사이트를 여러개둘때 80포트가 겹쳐서 포트를 다르게 두기도 하는데 꼭 80포트를 써야겠을때는 속성을 변경하기도 한다.
/ 바인딩을 변경해보기
- 바인딩 편집을 해서 80포트 하나로 여러 도메인을 쓸 수 있다.
- 근데 이때는 ip로 접근할 수 없다는 단점이 있다.
- 지금 실습에서는 뭐 굳이 할 필요 없어서 따로 설정안하고 설명만 듣고 넘어간다.
/ 기본 설정 눌러보기
- 실제 경로의 : Systemdrive 어쩌고 저쩌고는 'C:\inetpub\wwwroot'이며 웹사이트가 구축되어 있는 기본 홈 디렉토리이다.
- 해당 디렉토리는 IIS를 설치해야 생긴다.
/ 사이트 중지&시작
- IIS 오른쪽 부분에서 작동 가능하다.
/ index페이지 열어보기
- 오른쪽 부분의 *.80 찾아보기를 클릭한다.
/ 고급설정
- 이제까지 여기저기서 보았던 설정들을 확인해볼 수 있다.
/ MIME 형식 확인
- 제공할 수 있는 확장자 형식을 확인할 수 있다.
/ 기본 문서 확인
- 특별히 정해주지 않아도 접근했을때 기본적으로 화면에 보여주는 페이지이다.
- 가장먼저 접속하게 되는 페이지
- 홈 디렉토리에 없는 Default.htm 등이 맨 위에 있어서 iisstart.htm을 맨 위로 올려본다.
- 순서가 있어서 홈디렉토리에 모든 파일이 있을 경우 맨 위에 있는것이 화면에 보여지게 된다.
- 지금은 Default.htm가 홈 디렉토리에 없어서 iisstart.htm가 두번째에 있어도 이것이 제일 먼저 보여지게 된다.
/ 오류 페이지
- 오류 메시지에 대한 페이지를 설정한다.
/ HTTP 서버 응답 코드(Response code)
- 200번대 : 성공
> 200 : 요청 정상 처리
> 204 : 요청 정상 처리되었지만 컨텐츠는 없다.
- 300번대 : 전달(Redirection)
> 301 : 요청된 리소스 경로가 바뀌어서 새로운 URI를 사용해야 한다. (영구)
> 302 : 요청된 리소스 경로가 바뀌어서 새로운 URI를 사용해야 한다. (임시)
> 304 : Not Modified. 요청된 리소스가 마지막 요청이후로 변경되지 않았다. 캐싱하고 있는 값을 사용해도 된다는 의미
- 400번대 : 클라이언트의 요청이 잘못된 쪽
> 400 : Bad Request. 클라이언트의 잘못된 요청
> 403 : Forbidden. 금지된 경로. 접근금지응답. 권한/인증/액세스 거부
> 404 : Not Found. 클라이언트가 요청한 리소스가 서버에 없음
> 405 : Method Not Allowed. 허용되지 않는 HTTP메서드를 사용함
- 500번대 : 서버 에러 응답
> 500 : Internal Server Error. 웹 사이트 서버에 문제가 있음. 서버는 정확한 문제에 대해 더 구체적으로 설명할 수는 없다.
> 502 : Bad Gateway. 인터넷상의 서버가 다른 서버로부터 유효하지 않은 응답을 받은 경우
> 503 : Service Unavailable. 서버가 요청을 처리할 준비가 되지 않았다. 유지보수중이거나 과부하가 걸린 경우 발생
/ 웹사이트를 만들어보기
- 홈 디렉토리를 C드라이브 > inetpub에 만든다. 기존의 'wwwroot'를 복사해서 'wwwroot2'를 만든다.
- IIS 좌측 > 사이트 우클릭 > 웹 사이트 추가
- 사이트 이름, 경로, 포트 등을 설정하고 확인을 클릭한다.
- 사이트를 클릭하면 목록에서 확인이 된다.
- 기본 홈디렉토리의 'iisstart.htm'파일 수정
- 타이틀이나 다른 내용들을 수정하고 저장해본다.
- netstat 확인
# netstat -anp tcp | findstr 80
/ ping 확인
- 8080은 방화벽이 아직 열려있지 않아서 tcping이 가지 않는다.
- 방화벽 열어주기
# wf.msc
- 이제 cmd에서 tcping이 간다.
- 브라우저에서도 접근이 된다.
- 브라우저 접근하는 중에 netstat으로 확인해보면 ESTABLISHED가 확인된다.
/ 로그 확인
- 'C:\inetpub\logs\LogFiles'에 가보면 W3SVC2 폴더가 생성되어 있다.
- 폴더안의 파일을 열어보면 로그를 확인할 수 있다.
- 'W3SVC1' 폴더는 기존에 IIS를 설치할때부터 있던 기본 사이트에 대한 로그폴더이다.
'정보보안학원 > 과정평가형 일지' 카테고리의 다른 글
54일차 - 정보시스템 진단 (0) | 2022.07.07 |
---|---|
53일차 - 데이터베이스 보안 운영, 정보시스템 진단 (0) | 2022.07.05 |
51일차 - 네트워크 보안 운영 (0) | 2022.07.01 |
50일차 - 데이터베이스 보안 운영, 정보 시스템 진단 (0) | 2022.06.30 |
49일차 - 데이터베이스 보안 운영, 시스템 보안 운영 (0) | 2022.06.30 |