Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

보안교과서

[SeSAC 성동캠퍼스] sesac 1기 성동캠퍼스 리눅스 11/09 본문

SK쉴더스

[SeSAC 성동캠퍼스] sesac 1기 성동캠퍼스 리눅스 11/09

dogeconfig 2023. 11. 9. 17:35

전날 복습 

 

<WAS-WEB 연동하기>
--WAS 설치 및 설정--
** Tomcat 소스 설치하기 **
1. 터미널로 was서버에 접속하기
#ssh root@10.0.2.5

3. 톰캣 소스 다운로드
# wget http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.4/bin/apache-tomcat-9.0.4.tar.gz

4. 압축 해제 & 경로 이동
# tar xvzf ./apache-tomcat-9.0.4.tar.gz
# mkdir /usr/local/tomcat
# mv ./apache-tomcat-9.0.4/* /usr/local/tomcat/

5. java sdk 설치
# sudo apt-get install openjdk-8-jdk

5. 톰캣 실행
#/usr/local/tomcat/bin/startup.sh
=============
톰캣 구동 확인 : 포트번호 = 8080
=============
--WEB 설정-- 
# 
vi /etc/nginx/sites-available/default
server {
        listen 80 default_server;

        server_name _;

        location / {
                index index.html index.htm index.jsp;
                proxy_pass http://was_server:8080;
        }
}

수정 후, 저장


7. nginx 재구동
#systemctl start nginx (또는 service nginx start)

8. 브라우저를 통해 웹서버로 요청한 결과가 고양이

 

오류 

was서버에서는 

  • netstat -anp | grep [port number] 정상적으로 확인하기
  • tomcat 작동하는 것 확인하기
  • web 서버 설정할 때 나의 설정 was_server ip를 그대로 써줘야한다.

database

#mysql 서버 설치하는법 

db서버에서 한다. 

sudo apt-get install mariadb-server

sudo netstat -anp | grep (mariadb or mysql)

sudo systemctl enable mariadb
#sudo를 써서 실행가능하겠지만 
**mariadb 특정버전에서 서버 구동이 로컬서버
디폴트설정이다. 그래서 이 부분에서 변경을 해줘야한다.**

#vi /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address   = 0.0.0.0

#나와서
systemctl restart mariadb

sudo systemctl enable mariadb
#로 접속한다.
mysql -u root -h localhost

 

MYSQL 기본 명령어 

https://leechoong.com/posts/2018/mysql_basic/

 

MySQL 기본 명령어 • 리충닷컴

MySQL의 기본 명령어들을 정리한다. 생성, 삽입, 조회, 수정, 삭제 MySQL 접속 필자는 MAMP Stack(Mac Apache, MySQL, Php)을 설치하여 사용한다. 이 환경 기준으로 정리할 예정이다. 설처한 폴더/mysql/bin로 접

leechoong.com

강사님이 알려주셨던 사이트 

use mysql 
#쓰면 MariaDB []에서  MariaDB [mysql]


show databases;


show tables;

 create database TESTDB1;
Query OK, 1 row affected (0.001 sec)

use TESTDB1;

show tables;
#아무것도 안나옴  그러니 테이블 만들자

create table test_1 (se
-> name varchar(15)
->phone varchar(10) ) ;
#QUERY OK 뜸

show tables;
#그림1
desc test_1;

select name,phone from test_1;
#이름 폰번 가져온다

select name, phone from test_1;

DELETE FROM test_1 WHERE name="name2";
#이름을 테이블에 가져온다
select * from test_1;
#다 가져온다

SELECT *FROM test_1 WHERE name="user2";
#유저2 의 정보 가져옴


UPDATE test_! SET phone="3333-4444" WHERE name="user2"
#전화번호 변경

그림1

 

 

 

 

 

 

=========

 

was로 이동해서 
mysql 입력하면 

설치하라고 뜬다,.
 sudo apt-get install mariadb-client-core-10.3

 

 mysql -u mydb -p -h 10.10.10.4 

비번 abcd ...

use

 



cd /usr/local/tomcat/webapps/ROOT

vi login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%
String uid = request.getParameter("name");
String pwd = request.getParameter("pwd");
String DB_URL = "jdbc:mysql://10.10.10.4:3306/mycl";
String DB_USER = "mydb";
String DB_PASSWORD = "abcd";
String sel = "";
ResultSet rs = null;
Connection conn;
Statement stmt;

try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
    stmt = conn.createStatement();
    //사용자정보조회
    sel = "select * from userInfo where uname='" + uid + "' and pass='" + pwd + "'";
    rs = stmt.executeQuery(sel);

 

web서버에서는 nginx 재실행 

systemctl restart nginx

DB 서버에서는 톰켓 재실행 

#톰켓 재실행 

/usr/local/tomcat/bin/shutdown.sh    

/usr/local/tomcat/bin/startup.sh

 

그러면 web ip로 로그인해서 [ip].login.jsp로 실행하면 

success가 나와야한다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%
String uid = "admin"; // request.getParameter("name");
String pwd = "1234" ; //request.getParameter("pwd");
String DB_URL = "jdbc:mysql://10.10.10.6:3306/myd";
String DB_USER = "mydb";
String DB_PASSWORD = "abcd";
String sel = "";
ResultSet rs = null;
Connection conn;
Statement stmt;

try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
    stmt = conn.createStatement();
    //사용자정보조회
    sel = "select * from userInfo where uname='" + uid + "' and pass='" + pwd + "'";
    rs = stmt.executeQuery(sel);
    if (rs.next()) {
        out.println("Success");
    }
    else
        out.println("fail");
    conn.close();
} catch(Exception e) {
    out.println(e.getMessage());
}
%>

위 코드는 success가 나와있을 때의 페이지를  코드이다. 5,6 줄에 ; 와 // 주석처리를 통해서 하니까 나왔다.. 

 

다음은 login.html을 통해서 로그인 ID/PWD를 입력받도록 하고,

 

로그인 성공 시, main.html

 

주어진 코드를 활용해서 변경 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
로그인 창!
</head>
    <body>
        <form action = "login.jsp" method = "GET">
       User ID : <input type="text" name="name" />
       <br />
       Password : <input type="password" name="pwd" />
            <input type="submit" name="로그인" />
   </form>
    </body>
</html>

미션)

login.html을 통해서 로그인 ID/PWD를 입력받도록 하고,

로그인 성공 시, MAIN.html 페이지를 얄어서 보여준다 
로그인 실패 시, login.html로 돌아간다.
이때, login.html에는 이전에 입력했던 값이 남아있으면 안된다.

전송 method는 post 방식을 사용하고, post 방식으로 동작하는지는 
access.log를 통해서 확인할 수 있다.

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
로그인 창!
</head>
    <body>
        <form action = "login.jsp" method = "post">
       User ID : <input type="text" name="name" />
       <br /> 
       Password : <input type="password" name="pwd" />
            <input type="submit" value="로그인" />
   </form>
    </body>
</html>

 

 

 

 

 

 

 

 

 

create database mycl;
use mycl;

create table userInfo (
uid int,
uname varvhar(20),
pass varchar(128),
profile varchar(200),
priority int );

insert into userInfo (uid, uname, pass, profile, priority)values(0, "admin", "1234", "관리자", 0);
insert into userInfo (uid, uname, pass, profile, priority)values(1, "user1", "abcd", "행인1", 0);
insert into userInfo (uid, uname, pass, profile, priority)values(2, "user2", "abcd", "행인2", 0);
insert into userInfo (uid, uname, pass, profile, priority)values(3, "user3", "abcd", "행인3", 0);
database


sudo apt-get install mariadb

sudo netstat -anp | grep (mariadb or mysql)

sudo systemctl enable mariadb

sudo mysql - u root -h localhost
#sudo로 접속을 했는데 원격지에서는 접속이 안될 수도 있다.
#mariadb 특정버전에서 서버구동이 로컬서버 디폴트설정이다.
# 그래서 vi /etc/mysql/mariadb.conf.d/50-server.cnf
#bind-address = 0.0.0.0으로 수정해줘야한다 .

나와서 재실행
#systemctl restart mariadb