반응형
반응형

Docker 네트워크 구성 실습
실습환경 : Kali
1.Docker란?
2.실습

구성도

1.Docker란?

  • 서비스 단위 빠른 개발: 개발자가 특정 비즈니스 로직에 대해서만 집중하여 개발 가능
  • 배포 용이: 개별 서비스 단위로 개발, 패키징, 빌드, 테스트, 배포로 각 서비스마다 유연한 스케줄
  • 서비스 단위 고효율 저비용 Scale-Out 구조: 서비스 단위로 스케일링이 가능하여 불필요한 서비스는 줄이고 더 많은 자원이 필요한 서비스는 확장가능

2.실습

1) 도커를 통한 nginx 서버 web01, web02, web03설치

볼륨설정을 통해 해당 서버의 디렉토리를 바꿔주었다.


Web01


Web02


Web03

2) nginx.conf 설정

로드밸런싱을 위해 nginx.conf파일을 설정하였다.

해당 웹서버에서 로드밸런싱되어 모두 확인되는걸 볼 수 있다.

반응형

'공부 > 리눅스' 카테고리의 다른 글

[Linux] CentOS7 오라클 연동 APO(Apache+PHP+Oracle) 설치😄  (0) 2023.04.05
[Linux] FTP 보안명세 구현🤗  (0) 2023.04.05
리눅스 마스터 2급  (0) 2020.01.30
11.07 리눅스  (0) 2019.11.07
반응형

목차
1. 오라클 인스턴스 클라이언트 설치
2. Apache 설치
3. PHP 설치
4. Apache, PHP 설정
5. 서버 실행 후 연동 확인

1. 오라클 인스턴스 클라이언트 설치

1) 오라클 인스턴스 클라이언트 다운

설치할 오라클 인스턴스 클라이언트는 오라클 한국어 사이트인 https://www.oracle.com/kr/index.html 에서 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm 와 oracle-instantclient12.2-devel12.2.0.1.0-1.x86_64.rpm 두 개의 파일을 윈도우로 다운받았고 ftp를 통해 리눅스로 보냈다.

2) 오라클 인스턴스 클라이언트 설치

rpm 명령어를 통해 파일을 설치한다.

이 작업을 수행하면 /usr/lib/oracle/12.2를 오라클 베이스 디렉토리로 설치된다.

3) 접속 환경 설정

sqlnet.ora 파일과 tnsnames.ora 파일을 생성한다.

[root@apo ~]# mkdir -p /usr/lib/oracle/network/admin/
[root@apo ~]# vi /usr/lib/oracle/network/admin/sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES)

[root@apo ~]# vi /usr/lib/oracle/network/admin/tnsnames.ora

oracle =    
  (DESCRIPTION =
   (ADDRESS = (PROTOCOL = tcp) (HOST = 오라클서버 아이피) (port = 1521))  
   (CONNECT_DATA = (SID = DB12))    
  )

2. Apache 설치

1) 아파치 다운

아파치 설치파일인 httpd-2.2.34.tar.gz 를 /usr/local/에 다운받고 압축을 해제한다.

[root@apo local]# tar xvfz httpd-2.2.34.tar.gz
[root@apo local]# cd ./httpd-2.2.34

2) 아파치 설치

configure -> make -> make install 순으로 컴파일 설치한다.

[root@apo httpd-2.2.34]# ./configure --prefix=/app/apache --enable-rewrite --enable-so
[root@apo httpd-2.2.34]# make
[root@apo httpd-2.2.34]# make install

3) 아파치 접속테스트

아파치 서버를 실행하고 브라우저를 이용해서 접속 테스트를 진행한다.

서버가 시작되기는 하지만 시작될 때 'httpd: Could not reliably determine the server's fully qualified domain name, using fe80::2efd:a1ff:fe72:a9f0 for ServerName' 경고가 발생할 수 있다. 이런 경우 httpd.conf(/app/apache/conf/httpd.conf) 파일에 'ServerName localhost' 를 추가하면 경고가 없어진다. ServerName 항목은 주석 처리되어 있을 것이다.

3. PHP 설치

1) php 설치전 패키지 설치

PHP 설치전 컴파일을 위해 libxml패키지를 설치한다.
[root@apo ~]# yum install -y libxml2*

2) php 다운

php 설치파일인 httpd-2.2.34.tar.gz 를 /usr/local/에 다운받고 압축을 해제한다.
[root@apo local]# tar xvfz php-5.6.39.tar.gz

3) php 설치

TNS_ADMIN, LD_LIBRARY_PATH와 같이 오라클 관련 경로 설정에 정의된 내용이 시스템에 존재하 는지 반드시 확인하며 설치한다.

[root@apo local]# cd php-5.6.39/
[root@apo php-5.6.39]# ./configure --with-apxs2=/app/apache/bin/apxs --with-oci8=instantclient,/usr/lib/oracle/12.2/client64/lib --enable-sigchild
[root@apo php-5.6.39]# make
[root@apo php-5.6.39]# make install
[root@apo php-5.6.39]# cp php.ini-development /usr/local/lib/php.ini

4. Apache, PHP 설정

1) apache 설정파일 httpd.conf 파일 수정

/app/apache/conf/httpd.conf 파일의 내용을 수정한다. APO 서버 설정과 동일하다.

추가 내용 
LoadModule php5_module     modules/libphp5.so 
AddType application/x-httpd-php .php .html .htm .inc    

2) PHP 설정파일 php.ini 파일 수정

/usr/local/lib/php.ini 파일의 내용을 수정한다. APO 서버 설정과 동일하다.

short_open_tag = On 
default_charset = "EUC-KR"  (UTF-8 변경 가능) 
include_path=".:/usr/local/lib" 
upload_tmp_dir = /tmp 
date.timezone = Asia/Seoul 
error_reporting = E_ALL & ~E_NOTICE

3) 아파치 실행할때 tns 및 경로 설정

/app/apache/bin/apachectl를 열어서 다음의 내용을 추가한다.

[root@apo ~]# vi /app/apache/bin/apachectl

.............

[root@apo ~]# oracle install
export TNS_ADMIN=/usr/lib/oracle/network/admin
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

5. 서버 실행 후 연동 확인

  • 연동확인할때 데이터베이스서버는 리스너를 구동시키고, 데이터베이스를 startup 시켜두어야한다.

1) index.html 파일수정

/app/apache/htdocs/index.html 파일을 다음과 같이 수정한다.

<?  
 $server = "oracle";  
 $user_name = "php";  
 $password = "php";  
 $conn=@oci_connect($user_name, $password, $server) or die('Could not connect:');  
 echo("Oracle 12c \$conn : $conn<br>");  
 $st=oci_server_version($conn);  
 echo("$st<br>");  
 phpinfo(); 
?>

2) 아파치를 재실행 한다.

[root@apo ~]# /app/apache/bin/apachectl stop
[root@apo ~]# /app/apache/bin/apachectl start

반응형

'공부 > 리눅스' 카테고리의 다른 글

Docker 네트워크 구성 실습  (0) 2023.04.07
[Linux] FTP 보안명세 구현🤗  (0) 2023.04.05
리눅스 마스터 2급  (0) 2020.01.30
11.07 리눅스  (0) 2019.11.07
반응형

FTP 서버의 보안 명세 구현 실습😀

: 다음 사용자에 대한 보안 명세를 FTP 서버로 구현한다.

  • 자료 배포 디렉토리 : /home/ftp
  • 리눅스 모든 사용자가 해당 디렉토리에서 다운 가능.
  • root를 제외하고 자신의 홈디렉토리를 벗어날 수 없다.
  • ftpadmin 계정에서만 파일 업로드 가능.
  • 일반 사용자 업무 계정인 st01, st02, st03 계정은 ftp접속 불허

작업 수행

목차

  1. 계정생성
  2. vsftpd 설치 및 서버 실행
  3. 자료 배포 디렉토리 생성 및 권한설정
  4. CHroot 설정
  5. userlist 설정

1. 관리자 계정 생성과 자료배포용 디렉토리 생성

그룹 생성
ftpadmin (GID:3000)

계정 생성
ftpadmin (UID:3001,3000)

2. Vsftpd 설치 및 서버 실행 명령어

yum list vsftpd   //설치확인         
yum install -y vsftpd //설치    
systemctl start vsftpd //실행

3. 자료배포 디렉토리 생성 및 권한설정

mkdir /home/ftp
chgrp ftpadmin /home/ftp
chmod 775 /home/ftp

4. Chroot 설정

Root를 제외하고 자신의 홈 디렉토리를 벗어날수 없음

vi /etc/vsftpd/vsftpd.conf

 chroot_local_user=No
 chroot_list_enable=YES
 Allow_writeable_chroot=YES
 chroot_list_file=/etc/vsftpd/chroot_list

vsftpd.conf파일의 설정내용

  • chroot_local_user와 chroot_list는 주석처리되어있기 때문에 주석을 제거.

Allow_writeable_chroot 는 추가.
vi /etc/vsftpd/chroot_list

Root 추가

Mount –bind /home/ftp /home/[각 계정 홈 디렉토리]/ftp

// chroot 설정은 외부 디렉토리로 연결된 link 디렉토리에 접근도 금지때문에 /home/ftp 디렉토리에 대한 마운트 설정

chmod 775 /home/[계정]/ftp

5. userlist 설정

st01,st02,st03 계정은 ftp 접속을 불허

vi /etc/vsftpd/vsftpd.conf

userlist_enable=YES
userlist_deny=YES

vi /etc/vsftpd/user_list

st01, st02, st03 추가

// user_list 파일에 등록된 사용자는 접속이 불허된다.

반응형

'공부 > 리눅스' 카테고리의 다른 글

Docker 네트워크 구성 실습  (0) 2023.04.07
[Linux] CentOS7 오라클 연동 APO(Apache+PHP+Oracle) 설치😄  (0) 2023.04.05
리눅스 마스터 2급  (0) 2020.01.30
11.07 리눅스  (0) 2019.11.07
반응형

ls 옵션

-a, -all : 디렉토리 내의 모든 파일 출력

-l : 파일정보를 표시

-s : 1k 블록 단위로 파일 크기표시

-t : 최근의 파일부터 출력

-c : 파일 최근 변경 시간에 따라 정렬해서 출력

-R : 현재 작업 디렉토리와 하위 디렉토리 모두 출력

 

mkdir

-p : 지정한 하위 디렉토리까지 한번에 생성

 

shutdown 

 -r 

 시스템을 재시작한다 

 -P

 시스템 종료를 강제한다. (소문자 안돼요)

 -h  

 시스템을 종료한다 

 -c 

 예약된 셧다운 명령을 취소한다 

 -k

 실제로 셧다운 명령을 수행하지 않고 경고 메시지만 전달한다 

 +m

 m분 후에 시스템을 셧다운한다.

reboot - 재시작 

/etc/passwd

 

            root:x:0:0:root:/root:/bin/bash

              ①  ②③④    ⑤    ⑥     ⑦          

 

① 필드 1 : 사용자명

② 필드 2 : 패스워드(/etc/shadow 파일에 암호화되어 있음)

③ 필드 3 : 사용자 계정 uid

④ 필드 4 : 사용자 계정 gid

⑤ 필드 5 : 사용자 계정 이름(정보)

⑥ 필드 6 : 사용자 계정 홈 디렉토리

⑦ 필드 7 : 사용자 계정 로그인 쉘



/etc/shadow

 

            root:$1$9L2L0oTwd:12751:0:99999:7 : : :

              ①              ②            ③   ④   ⑤  ⑥⑦⑧⑨

 

① 필드 1 : 사용자명

② 필드 2 : 패스워드

③ 필드 3 : 패스워드 파일 최종 수정일

④ 필드 4 : 패스워드 변경 최소일

⑤ 필드 5 : 패스워드 변경 최대일

⑥ 필드 6 : 패스워드 만료 경고기간

⑦ 필드 7 : 패스워드 파기 기간(패스워드 파기후 게정 비활성 기간)

⑧ 필드 8 : 계정 만료 기간

⑨ 필드 9 : 예약 필드



/env

리눅스 명령어 env는 현재 지정되어 있는 환경 변수들을 출력하거나, 새로운 환경 변수를 설정하고 적용된 내용을 출력하는 명령어다.

 

nawk - 패턴 검색과 언어 처리

netstat - 현재 네트웍 상황 보기

nice - 낮은 우선권에서 명령 실행

nm - 심블 이름 목록 보기

nroff - 문서 포멧 도구

 

od - 8진수, 10진수, 16진수, ascii 덤프

passwd, chfn, chsh - 비밀번호, 핑거정보, 쉘 바꾸기

paste - 여러파일의 서로 관련 있는 줄 연결시키기

pidof - 실행중인 프로그램의 프로세스 ID 찾기

pine - 메일 관련

ping - 네트웍 확인하기

popd - pushd 취소

pr - 문서 파일 양식화 도구

printenv - 현재 환경 변수들의 내용과 그 값 알아보기

prof - profile 자료 보기

ps - 현재 프로세스 정보 보기

pstree - 프로세스 상관관계 알기

ptx - permuted(순열화된?, 교환된?) 색인 만들기

pwd - 현재 작업 디렉토리 보기

 

quota - 한 사용자에게 지정된 디스크 할당량보기

 

ranlib - archiverandom 라이브러리로 변화

rarp - rarp 테이블 관리하기

rcp - 리모트 카피

rcs - RCS 파일 속성 바꾸기

rcsdiff - RCS revisions 비교

rdev - 루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기

rdate - 네트웍으로 시간 설정하기

reboot - 재부팅하기

rev - 한 줄의 문자열 꺼꾸로

rmmod - 모듈 지우기

readonly - 읽기 전용으로 표시하기

renice - 프로세스 우선 순위 바꾸기

reset - 터미널 초기화하기

restore - 다시 저장하기

rlogin - 리모트 로그인

rm - 파일 지우기

rmdir - 디렉토리 지우기

roffbib - 도서목록형 데이터베이스 보기 또는 양식화

route - 라우팅 테이블 추가/삭제하기

rpm - 프로그램 추가/삭제

rpm2cpio - rpmcpio로 변환하기

rsh - 원격으로 명령어 실행하기

rup - 로칼 머쉰의 호스트 상태 보기(RPC version)

rusers - 호스트에 로그인한 사용자 출력하기

rwall - 호스트 사용자에게 메시지 뿌리기

rwho - 현재 접속자 보기

 

script - 화면 갈무리

sed - stream editor

set - 변수값 설정하기

setup - 시스템 관련 설정하기

sh - 유닉스 표준 쉘

showmount - 호스트의 마운트 정보 보여주기

shutdown - 전원 끄기

size - 오브젝트 파일의 크기들을 보여줌

sleep - 지정한 시간 만큼 실행 보류

sort - 줄 정열과 검색

sortbib - 도서목록형 데이터베이스 정열

source - 스크립트 번역하기

spell, hashmake, spellin, hashcheck - 맞춤범 검사 - 물론 영어겠지요

split - 파일 나누기

ssh - 암호화된 원격 로그인하기

strings - 오브젝트 파일이나, 실행 파일에서 문자열 찾기

strip - 오브젝트 파일에서 심벌 테이블과 중복된 비트 삭제

stty - 터미널라인 설정 보여주기

su - super-user, 임시적으로 새 ID로 바꿈

suspend - 셸 중단하기

swapoff - 스왑 해제하기

swapon - 스왑 활성화하기

symorder - 심벌 순서 바꿈

sync - 버퍼 재설정하기

syslogd - 로그인 과정 설정하기

 

tabs - 터미날 tab 크기 지정

tac - 거꾸로 보기

tail - 문서 끝부분 출력하기

talk - 다른 사용자와 이야기하기

tar - 여러 파일 묶기 또는 묶긴 파일 풀기

tbl - nroff 또는 troff의 도표 작성 도구

tcpdchk - tcp wrapper 설정하기

tcpmatch - 네트웍 요청에 대해 예측하기

tee - 표준 입력으로부터 표준 출력 만들기

telnet - TELNET 프로토콜을 이용한 원격 리모트 호스트 접속

test - 주워진 환경이 참인지, 거짓인지를 돌려줌

tftp - 간단한 ftp.

time - 명령 실행 시간 계산

times - 셸에서의 사용자와 시스템 시간 출력하기

top - cpu 프로세스 상황 보여주기

touch - 파일 날짜 관련 부분을 바꿈

tr - 문자열 바꿔주기

troff - 문서 양식화 도구

true, false - 쉘 스크립트에서 사용되는 참/거짓을 리턴하는 명령

tsort - topological sort

tty - 현재 터미날 이름 보기

type - 유형 보기

 

ue - MICROemacs

ul - 밑줄 처리해서 보여주기

ulimit - 제한하기

umask - 매스크 모드 설정하기

umount - 장치 해제하기

unalias - 별명 제거하기

uname - 시스템 정보 보기

unexpand - 공백 문자를 탭으로 변환하기

unifdef - cpp 입력 줄에서 ifdef 부분 바꾸거나 지움

uniq - 중복되는 빈줄 지우기

units - 프로그램 변환도구

useradd - 사용자 계정 만들기

userdel - 계정 삭제하기

usermod - 사용자 계정정보 수정하기

unset - 설정 변수 해제

uptime - 시스템 부팅시간, 부하 평균 보여주기

users - 로그인된 사용자 보여주기

uucp, uulog, uuname - 시스템 간의 복사

uuencode, uudecode - 이진 파일을 아스키파일로 인코딩, 반대로 디코딩

uusend - 리모트 호스트에 파일 보내기

uux - 리모트 시스템 명령 실행

 

vacation - 자동으로 편지 답장하기

vgrind - grind nice program listings

vi, view, vedit - ex 바탕의 편집기

vtroff - 문서 양식화 도구

 

w - 현재 누가 접속해 있으며, 무엇을 하고있는지 보기

wait - 프로세스가 마치기를 기다림

wall - 모든 사용자에게 메시지 보내기

wc - 문자, 단어, 라인수 세기

whatis - 명령어의 간단한 설명보기

whereis - 찾는 명령의 실행파일, 소스, 맨페이지 경로 보여줌(패스에 해당하는 모든 디렉토리를 뒤져서 해당 명령어를 찾음)

which - 특정명령어의 위치가 어디인지를 찾아줌

while - 루프 명령어

who - 시스템에 접속되어 있는 사람만 보여줌

whoami - 현재 사용하고 있는 자신이 누군지 보여줌

write - 다른 사용자의 화면에 메시지 보내기

 

xargs - 명령행 인자 처리 명령

xcopy - 반복적으로 복사하기

XFree86

xstr - extract strings from C programs to implement shared strings

 

yacc - yet another compiler-compiler: 파싱. 형태소분석 프로그램 생성기

yes - 항상 yes만 응답하는 명령

ypchfn - NIS에서 사용하는 chfn 명령어

ypchsh - NIS에서 사용하는 chsh 명령어

yppasswd - NIS에서 사용하는 passwd 명령어

zcat - 압축 파일 보기

zcmp - 압축 파일 비교하기

zforce - 강제로 gz 만들기

zgrep - 압축 상태에서 grep 실행하기

zmore - 압축 상태에서 more 실행하기

znew - .Z 파일을 .gz로 다시 압축하기

 

 

 

반응형

'공부 > 리눅스' 카테고리의 다른 글

Docker 네트워크 구성 실습  (0) 2023.04.07
[Linux] CentOS7 오라클 연동 APO(Apache+PHP+Oracle) 설치😄  (0) 2023.04.05
[Linux] FTP 보안명세 구현🤗  (0) 2023.04.05
11.07 리눅스  (0) 2019.11.07
반응형

OS ( operating system) : 운영체제

  -- 하드웨어, 소프트웨어를 관리하는 시스템의 한 부분

나 대신 컴퓨터에 명령어를 전달해주는 프로그램

 

== 모니터, 키보드, 마우스 등..

== 자원 ( resource) 관리 == 메모리 , CPU 스케줄링, 파일 입출력, 응용프로그램 관리등..

 

 프롬프트 구조

ex) [      root              @                korea                 ~]                                     # 

         사용자명         at기호            호스트명   현재 작업중인 경로           접속한 사용자의 종류

          (계정명)         (구분자)          (서버명)                                        #:관리자 $: 관리자아닌 일반사용자

명령어 사용형식

 

-명령어

-명령어 + [옵션]

-명령어 + [옵션] + [file/directory]

 

- clear : 화면 정리 명령어

 

경로

-리눅스에서는 경로 표기 방식을 절대경로, 상대경로 표기방식 사용

 

 

cd ( change directory ) == 디렉토리 이동사용 명령어

mkdir ( make directoy ) == 빈 디렉토리 생성

pwd ( print working directory ) == 현재 작업중인 경로 표시 == 현재 위치 표시

 

절대경로

-최상위 디렉토리를 기준으로 시작하는 경로

ex)

 

1. cd /home/test/c/d/

2. cd /home/test/c/

3. cd /home/

4. cd /home/korea/

5. cd /home/korea/a/b/

5. cd / home/test/c/d/ 

 

상대경로

-현재위치에서 이동하는 경로

ex)

 

1.cd .  or    cd ./

2.cd .. or    cd ../

3.cd ../../            or           cd ..엔터 cd ..엔터

4.cd ./test/

5.cd ./a/b/

6.cd ../../../test/c/d/

 

반응형

+ Recent posts