본문 바로가기
정보보안

정보보안7 1차시

by IT매니절 2024. 10. 5.

강의실 컴퓨터가 전부 포맷되어 환경구성부터 진행
로키 리눅스8, VMware 설치, 서브넷 설정, ip 수동 변경, putty 연결 등.

 

dnf -y module reset php
dnf -y module enable php:8.2
dnf -y install \
mariadb mariadb-server php-{cli,fpm,zip,gd,mbstring,curl,xml,pear,bcmath,json,pdo} \
libjpeg giflib libpng freetype httpd php php-mysqlnd git

php 설치하고

sed -i 's/php|phar/php|html|phar/' /etc/httpd/conf.d/php.conf
sed -i 's/^short_open_tag = Off/short_open_tag = On/' /etc/php.ini
sed -i 's/^;date.timezone =/date.timezone = Asia\/Seoul/' /etc/php.ini
sed -i 's/^;security.limit_extensions = .php .php3 .php4 .php5 .php7/security.limit_extensions = .php .html/' /etc/php-fpm.d/www.conf

웹서버 파일을 수정한 뒤

systemctl enable --now php-fpm
systemctl enable --now httpd

서비스 시작

sed -i '21icollation-server=utf8_general_ci'     /etc/my.cnf.d/mariadb-server.cnf
sed -i '22icharacter-set-server=utf8'            /etc/my.cnf.d/mariadb-server.cnf
sed -i '23iskip-character-set-client-handshake'  /etc/my.cnf.d/mariadb-server.cnf
sed -i '24ibind-address=127.0.0.1'               /etc/my.cnf.d/mariadb-server.cnf
systemctl enable --now mariadb

mysql_secure_installation

cat << EOF > ~/.my.cnf
[client]
host = localhost
user = root
password = 111111
EOF
chmod 600 .my.cnf

cat << EOF > ~linuxadmin/.my.cnf
[client]
host = localhost
user = root
password = 111111
EOF
chmod 600 .my.cnf

db 설정

firewall-cmd --permanent --add-service={http,https}
firewall-cmd --reload

방화벽 오픈

echo "<?php phpinfo(); ?>" > /var/www/html/index.html
웹페이지 만듬

접속하면 php 기본 화면이 나온다

 

 

자바 프로그램
JVM (Java Virtual Machine)위에 윈도우, 리눅스, 맥 등이 올라감

Apache 웹서버
정적인 페이지 담당

Apache Tomcat
동적인 페이지 담당

  DNS
     ↓
   Web   →   아파치    →      WAS     →  오라클
브라우저      웹서버        아파치톰캣     MariaDB

 

 

 

JDK (Java Development Kit)
자바 프로그램을 개발하기 위한 도구

JRE (Java Runtime Envirunment)
자바로 컴파일된 파일을 실행하기 위해 필요한 런타임 환경

JDK는 Oracle과 Open 두 가지가 있으며 윈도우에 Oracle JDK를 설치

(OracleJdk : 오라클이 자바를 인수하여 OracleJdk라고 부르며 상업 라이선스로 2019년도부터 유료화. 단, 학습이나 테스트 목적인 경우에는 무료. Oracle JDK 17부터 공개 업데이트 기간에는 무료, 그 이후는 구독 유료라는 듯
OpenJDK : 무료 오픈소스로 구현한 것으로 GPL v2 with the Classpath Exception 라이선스가 적용되어 무료임. 소스코드만 제공하며 실제 배포본은 여러 벤더(오라클, 레드햇, 알리바바 등)가 배포한다. 벤더사별로 많은 버전이 존재한다

자주 언급되는 빌더사는 AdoptOpenJDK, Eclipse Temruin, Oracle Java SE, Oracle OpenJDK 이다)

환경변수에
JAVA_HOME C:\Program Files\Java\jdk-1.8
CLASSPATH %JAVA_HOME%\lib;.;
Path %JAVA_HOME%\bin (기존 Path에 추가)

등록한 후 cmd 창에서 java -version 그리고 javac -version 확인

javac -version에서 제대로 된 출력이 되지 않을 경우(cmd 창을 한 번 재실행 해도 안될 때), Path에 C:\Program Files\Java\jdk-1.8 과 C:\Program Files\Java\jdk-1.8\bin 을 둘 다 적어준다

 

 

이클립스 설치시, 비설치형으로 진행한다 (자바가 먼저 깔려있으면 버전충돌이 일어날 수 있다)

윈도우 x86_64 로 다운로드 받음

 

톰캣도 비설치형으로 진행

 

 

netstar -na|findstr 8080

톰캣이 8080 포트여서 조회를 해보니 미리 떠있는게 있었다

 

보통은 services.msc 입력해서 서비스에서 oracle 관련 서비스들을 중단하면 없어지는데 자꾸 떠있어서 어떤 프로그램인지 확인해본다

 

Sysinternals

Windows와 Linux 시스템 및 애플리케이션을 관리, 문제 해결 및 진단하는 데 도움이 되는 프로그램
공식사이트 : Sysinternals.com
Sysinternals 제품군 다운로드 받아서 tcpview64.exe 실행

8080포트를 잡고있는 WASServer.exe를 kill Process 해주었다

그런데.... 자꾸 죽여도 살아나서 그냥 톰캣 포트를 바꾸기로 했다 ^^; 다른 수업때 설치한 건가보다.

 

서버추가, 경로는 전에 다운로드받은 아파치 톰캣으로 설정해준다

 

서버에 추가된 Tomcat v9.0 Server at localhost를 더블클릭하면 이런 화면이 나온다

포트번호를 변경할 수 있다

 

설정을 변경하고

요 버튼을 눌러서 저장, 연동한다

 

연동한 순간 아파치 톰캣 폴더에 wtpwebapps 폴더가 생성된다. 방금 본 설정창의 Deploy path에 셋팅된 이름과 같다

멈춰있을때는 아무것도 없다가, 서버를 start 해주면 이렇게 뜬다

접속하면 톰캣페이지 나오고

stop 하면 이렇게 됨

 

Dynamic Web project로 프로젝트 생성.

Generate web.xml 체크해주고 만든다

 

hello.html 만들고 문서 안에서 Run As > Run on Server 하여 실행하면 브라우저에 뜬다

 

workspace상의 webProject 내용물

 

아파치 톰캣에도 webProject 폴더가 생긴다. 그 안에 hello.html이 있다. (복사)

workspace의 webProject 폴더를 지우면, 이클립스를 다시 실행했을때 동기화하면서 아파치톰캣의 webProject 폴더도 삭제된다

JSP 파일도 생성해서 확인

 

 

 

리눅스에서 설치

톰캣
dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel tomcat tomcat-webapps tomcat-admin-webapps

vi /etc/tomcat/tomcat-users.xml

58 주석풀고

59 한줄추가

 

서비스 활성화
systemctl enable --now tomcat

 

8080 : 기본 톰캣 포트
8005 : http 처리용 내부 접속용 포트

 

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

방화벽 열고

접속

 

리눅스의 경우

/usr/share/tomcat/webapps/ROOT/

 

윈도우의 경우

경로차이.

 

 

MariaDB JDBC 드라이버 설치
wget https://dlm.mariadb.com/3852266/Connectors/java/connector-java-3.4.1/mariadb-java-client-3.4.1.jar
가져와서
cp mariadb-java-client-3.4.1.jar /usr/share/tomcat/lib
톰캣 라이브러리 경로에 복사
java 파일의 소스코드 Class.forName("org.mariadb.jdbc.Driver"); 를 이용하여 로딩한다

javac JdbcTest1.java
자바소스 컴파일
java JdbcTest1
자바클래스 파일 실행
java -cp .:/usr/share/tomcat/lib/mariadb-java-client-3.4.1.jar JdbcTest1
jar 경로를 넣어 자바 클래스 파일 실행
systemctl restart tomcat.service
드라이버 인식을 위해 톰캣 재시작

 

 

mysql

CREATE USER user1@localhost IDENTIFIED BY '1';
CREATE DATABASE user1;
GRANT ALL PRIVILEGES ON user1.* TO user1@localhost;
USE user1

user1을 생성하고, 권한을 부여한다

 

아래 테이블 생성

vi /etc/tomcat/tomcat-users.xm

admin-gui을 roles에 추가하고

manager-gui 한줄추가

(유저에게 admin-gui, manager-gui 권한을 추가해주는 것

참고 : https://blog.naver.com/blueday9404/221182080709 )

 

systemctl restart tomcat.service

톰캣재시작

 

보안상 기본적으로 접근불가상태

 

윈도우 cmd에서 실행

ssh -L 8070:127.0.0.1:8080 tunneluser@192.168.100.10 -f -N

(8070 포트를 통해 나의 8080포트로 접속한다는 뜻)

cmd에서 패스워드를 입력하면 멈춰있다

접속이 안되는 것 같지만, 다른 cmd에서 8070이 LISTENING 되어있는 것을 확인하고

 

로컬호스트 8070포트로 다시 접근해보면, 아이디와 패스워드를 묻는다

설정해놓은 정보를 입력하면

무사히 접속이된다

(나 자신의 8070포트를 통해 8080포트로 재접근한 상황)

 

 

.war 파일
웹 어플리케이션 아카이브 파일.
자바 웹 어플리케이션을 패키징하고 배포하는데 사용되는 포맷 형식.
배포를 간소화하고, 이식성을 확보하며, 배포 및 관리 과정을 효율적으로 관리할 수 있도록 도와준다

 

테스트용 .war 파일을 배치한다.

정보들 확인가능

 

# ls ~tomcat/webapps
ROOT  host-manager  jumsu.war  manager

리눅스쪽의 webapps에 jumsu.war 파일이 올라간 것을 확인할 수 있다

 

/jumsu 애플리케이션의 시작 버튼을 누르면

음 뭔가 문제가 있다고 한다 강사님이 확인하시기로....

 

SE리눅스 때문이어서 setenforce 0 로 비활성화하고

다시 해보면 정상실행

 

jumsu.war 파일이 폴더로 압축해제된다

# ls ~tomcat/webapps/jumsu
META-INF   jumsuDelete.jsp  jumsuWriteOk.jsp  logout.jsp
WEB-INF    jumsuList.jsp    login.jsp         register.jsp
index.jsp  jumsuWrite.jsp   loginok.jsp       registerOk.jsp

 

압축해제가 되었으니 jumsu의 회원가입 페이지에 접근할 수 있다

'정보보안' 카테고리의 다른 글

정보보안7 3차시  (0) 2024.10.12
정보보안7 2차시  (0) 2024.10.06
정보보안6 8차시  (0) 2024.09.29
정보보안6 7차시  (0) 2024.09.28
정보보안6 6차시  (0) 2024.09.22