1 2 3 4 5 6 L

Page Header > Subtitle

Ubuntu JSP서버세팅

자바 해석기 설치

#apt-get install openjdk-8-jre-headless

 자바 컴파일러 설치

#apt-get install openjdk-8-jdk

 자바 해석기 버전 확인

#java -version 

 

 자바 컴파일러 버전확인

#javac -version

Apache Tomcat 설치

공식사이트 : http://tomcat.apache.org/ 

 

#apt-get install tomcat8

 

설치된 tomcat 버전 확인

#/usr/share/tomcat8/bin/version.sh

확인

http://서버의아이피:8080

virtual host 설정하기. (도메인 설정하기)


 

** 도메인을 소유하고 있지 않은경우** (혼자 도메인없이 jsp 연습해보고 싶을때)

 sftp 로 서버에 root 계정으로 접속하신 후

/var/lib/tomcat8/webapps/ROOT

위치에 index.jsp 파일을 생성하고 확인해보세요. 

 

* 도메인을 소유한 경우에 대한 설명입니다. (일반적인 호스팅 환경)

먼저 사용자를 등록하자. (myuser 말고 사용하고 싶은 사용자 아이디를 입력하셔도 됩니다.)

#adduser myuser

추가한 사용자로 쉘 전환하기.

#su -l myuser

document root 생성하기.

#mkdir -p www/ROOT

(즉 /home/myuser/www 와 /home/myuser/www/ROOT 폴더를 생성하는 것이다.)

 이 경우 AppBase는 /home/myuser/www 이다.

 #cd www/ROOT

#vi index.jsp

 

HELLO JSP!

<%= new java.util.Date() %>


&#49828;&#53356;&#47536;&#49399; 2015-03-02 &#50724;&#51204; 4.32.13

즉 위의 index.jsp 파일의 위치는 /home/myuser/www/ROOT/index.jsp 이다. 

 

다시 root 쉘로 돌아와서 (myuser 쉘에서 exit 명령어 또는 쉘을 하나 더 열어서 새로 로그인하자)

#vi /etc/tomcat8/server.xml 

 

아래 예시와 같이 Host 구문을 추가하자.

기존 구문을 지우지 말고 복사해서 사용하자.

hellomyjsp.co.kr 는 당신이 소유한 도메인 이름을,

appBase 는 당신이 추가한 사용자 아이디를 고려해서 작성하자.

 

&#49828;&#53356;&#47536;&#49399; 2015-03-02 &#50724;&#54980; 1.14.56 

tomcat 8 재시작

#service tomcat8 restart

결과 확인

웹브라우저에서 환경설정 파일에 적은 주소  http://hellomyjsp.co.kr:8080  접속. 

 

연결 드라이버 설치 (JDBC Mysql Connector 설치)

Java에서 Mysql DB와 Connect 하는 드라이버를 설치해야 한다.

#apt-get install libmysql-java

/usr/share/java/mysql-connector-java.jar 위치에 connector 가 설치된다.

 Tomcat8 라이브러리 폴더에 링크생성

#ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat8/lib/mysql-connector-java.jar

 Tomcat8 재시작

#service tomcat8 restart 

 

보안패치 (fail2ban)

이 곳에서는 fail2ban 이라는 프로그램을 사용하여 서버를 보호하는 방법을 적도록 하겠다.

fail2ban 이란 지정한 시간내에 지정한 횟수만큼 실패 하면 ban 시간만큼 접속을 차단하는 것이다.

여러명이서 같이 쓰는 서버에 좋다. 주로 웹호스팅 서버. 방화벽 세팅하기 귀찮을때에도 이것을 사용한다.

 


 

fail2ban 은 로그기반 프로그램이기 때문에 로그가 쌓이는 시점으로 계산됩니다.

이것 때문에 발생하는 fail2ban maxretry별 최대 로그인 시도가능 횟수.

1 => 1번

2 => 7번

3=> 13번

4=> 19번

5=> 25번

6=>31번

n=> 6*(n-1) + 1 번

SSH의 경우 로그인이 실패(fail)하면 재시도(retry) 5회 하도록 해 줍니다.  재시도는 카운트 되지 않습니다.

SFTP의 경우 로그인이 실패(fail)하면 retry 안하고 바로 연결을 끊기 때문에 로그인 최대 시도횟수가 의도한대로 동작합니다. 

 

Fail2ban 설치

#apt-get install fail2ban

 

설치 후 방화벽 확인

#iptables -L

&#49828;&#53356;&#47536;&#49399; 2015-03-29 &#50724;&#51204; 1.40.18

fail2ban 이라는 항목이 추가되었으며 패킷을 컨트롤 할 수 있게된다. 

 

아무것도 설정하지 않으면 패키지 기본값이 적용된다.

ssh 연결에 대해서 최근 10분간 6회이상 비밀번호가 틀리면,  ban조건이 충족한 때로부터 10분동안 ssh 접속차단(drop)된다. 

아무것도 설정안해도 충분히 보호가 되지만 몇가지 설정을 해보도록하자.

fail2ban 환경설정

jail(감옥) 파일을 수정한다.

#vi /etc/fail2ban/jail.conf 

 

&#49828;&#53356;&#47536;&#49399; 2015-03-29 &#50724;&#51204; 1.48.57
상단의 [DEFAULT] 항목을 보자.

ignoreip 에는 ban 이 절대 되지 않을 아이피를 적는다. (123.234.123.234/32 형태로 적는다. 추가시 스페이스바로 구분.)

bantime 은 접속을 차단할 시간이다. 600은 10분을 의미한다.

findtime 은 통계를 찾을 시간이다.

maxretry 는 fail 횟수이다.

 

 

&#49828;&#53356;&#47536;&#49399; 2015-03-29 &#50724;&#51204; 1.57.16

 

maxretry 항목을 당신의 요구사항에 맞게 변경하자.

원래 3이었는데 6으로 재정의(redefine) 된다. 6이면 충분하다. 비밀번호 틀리기도 어렵다.

 

 

ssh 의 경우 로그인의 성공이나 실패여부를 모두 /var/log/auth.log 에 저장한다.

위의 경우

1) 고객의 ssh 신규접속

2) fail2ban 프로그램이 /var/log/auth.log 파일을 읽어서 최근 600초(10분)동안 6회이상 실패한 기록이 있으면

3) 600초 동안 연결차단

 

* 라엘이의 설정예제

신뢰된 아이피 및 ban 시간만 변경함.

&#49828;&#53356;&#47536;&#49399; 2015-03-29 &#50724;&#51204; 2.12.39

 

* 설정 변경후 적용을 위해서 서비스 재시작

#service fail2ban restart 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

Server

번호 제목 글쓴이 날짜 조회수
67 Simple CORS using .htaccess file. 미도어묵 03-08 689
66 HTTPS/DNS 차단 이해하기 미도어묵 02-14 738
65 HTTP proxying cloudflare custom port 미도어묵 01-02 715
64 Nginx HTTPS Let's Encrypt 무료 인증서 설치하기 우분투 16.04 미도어묵 10-17 356
63 리눅스 sftp log 남기기 미도어묵 01-25 454
62 PHP | [CentOS 7] PHP 5.4 to PHP 7.1 업그레이드 미도어묵 01-22 618
61 우분투(ubuntu) kernel 업그레이드 시 boot 용량 부족, 의존성 문제 미도어묵 01-11 524
60 firewall.sh , reboot.sh 미도어묵 01-10 337
59 사용자 계정 추가, mysql 계정추가등 shell script 미도어묵 01-10 342
58 Ubuntu 한 서버에서 PHP, JSP 동시에 사용하기 미도어묵 01-08 352
57 Ubuntu JSP서버세팅 미도어묵 01-08 342
56 pid 값으로 강제 종료 스크립트. 미도어묵 12-22 336
55 mysql(mariadb) 테이블별 mysqldump 백업 - shell script 미도어묵 12-22 350
54 Cloudflare - Get visitors real IP without extension(cloudflare_realip.conf) 미도어묵 12-18 334
53 shell script 일정 이상 cpu 점유시 강제 kill 미도어묵 12-07 351
52 리눅스 모니터링 툴 htop 미도어묵 11-09 386
51 [OS X, Ubuntu] 터미널에서 tmux 사용해 보기 미도어묵 11-09 410
50 우분투 보안 업데이트만 설치하기 미도어묵 11-07 365
49 nginx config , rewrite, allow, deny(web && node) 미도어묵 11-01 338
48 특정 IP만 SSH 접속 허용하기 미도어묵 09-30 383