본문 바로가기
Linux

Linux-2

by 글로리. 2020. 8. 20.

zsh

zsh 소개

  • 가장 최근에 만들어진 쉘 환경
  • Linux, MacOS 등 모든 Unix환경에서 설치 가능
  • 명령어 자동완성, 명령어 히스토리 기능 등 Bash Shell보다 뛰어남

Oh-my-zsh

  • zsh의 다양한 환경 설정을 손쉽게 설정하게 해주는 Framework
  • 대부분 각종 테마 설정을 위해 사용

네트워크

네트워크 기본 용어

  • TCP / IP
    • TCP 프로토콜 : 전송데이터를 일정 단위(패킷)로 나누고 포장하는 것에 대한 규약
    • IP 프로토콜 : 직접 데이터를 주고 받는 것에 관한 규약
  • IP주소
    • IP주소는 네트워크상에 존재하는 컴퓨터의 고유번호
    • 숫자 4개로 IP주소를 표현, 0부터 255 까지 사용, 예) 192.184.76.216
    • IPv4와 IPv6가 있지만 주로 IPv4를 사용
  • 공인IP / 사설IP
    • 공인IP : 고정IP라 하며 외부에서 접근 가능 / 전 세계에서 유일한IP / 공인IP를 알면 누구나 접속 가능
    • 사설IP : 내부IP라 하며 외부에서 접근 불가 / 공유기에 의해 생성된IP / 누구나 접속가능
  • 호스트이름 / 도메인이름
    • IP주소는 숫자로 이루어져 불편하기 때문에 사용하기 편한 문자열 형태로 이루어진 호스트이름과 도메인이름이 만들어짐
    • 호스트이름 : 인터넷 주소의 처음에 위치하며 서버 컴퓨터에 지정된 문자열 이름 / 예) www
    • 도메인이름 : 해당 기관을 대표하는 인터넷주소를 나타냄 / 예) naver.com
  • 서브넷 마스크(Sebnet Mask)
    • 네트워크 주소와 호스트 주소를 구분하는 값으로 사용
    • IP주소는 네트워크 주소와 호스트 주소로 나뉨
  • 게이트웨이(GateWway) / DNS(Damain Name System)
    • 게이트웨이(GateWway) : 라우터(Router)라고도 하며, 외부 네트워크로 통신하기 위한 통로, 쉽게 인터넷 공유기를 생각하면 됨
    • DNS(Damain Name System) : IP주소를 호스트와 도메인 이름으로 변환해주는 서비스를 제공하는 서버
  • 추가 정리
    • 예) 192.168.0.7 이라는 IP주소가 있을 때
    • 192.168.0 -> 네트워크 주소(그룹단위)
    • 7 -> 호스트 주소(컴퓨터 단위)
    • 위 IP는 192.186.0 의 네트워크 주소를 사용하는 7번째 컴퓨터라는 의미가 됨
    • 호스트 주소가 1이면 게이트웨이 주소
  • PING(Packet Internet Grouper)
    • ping명령은 특정 컴퓨터를 이용할 수 있는지 검사하는 명령
    • IP기반의 네트워크에 연결된 호스트끼리의 접속성을 확인할 경우 많이 사용됨
    • 다른 네트워크에 접속이 원활 하지 않을때 해당 네트워크가 정상적으로 작동중인지 확인하는 방법
    • 보안상의 이유(해킹)로 ping을 막으며 주로 내부 네트워크 안에서만 사용

서비스

서비스의개요

  • 서비스 = 프로세스 = 데몬(Daemon) : 웹 서버, 데이터베이스 서버 등을 운영하기 위한 서버 프로세스
  • 서버 프로세스 : 백그라운드로 실행되는 프로세스, 서비스 매니저 프로그램인 systemd 프로그램이 운영함
  • 추가 정리
    • 백그라운드에서 가동되는 파일들은 파일명 뒤에 '.d'가 붙음
    • '.d'가 붙어있는 파일이 찐파일, 예) mysqld

서비스 관리

  • 독자적인 하나의 동작을 제공
    • http서비스는 http 동작을 제공
  • 실행 및 종료 : systemctl 명령어 사용
    • systemctl start(stop / restart / info) 서비스명
  • 서비스 실행 스크립트 파일 위치
    • /usr/libs/systemd/system 디렉토리에 존재
    • 실행 스크립트 파일은 systemctl 명령어에 의해 제어
  • 서비스 실행 스크립트 파일 이름 : .service

Telnet과 SSH

Telnet서버

  • 오랫동안 전통적으로 사용되어 온 가장 기본적인 원격 접속 방법이나 데이터들이 암호화 되지않아 보안에 취약하여 현재는 많이 사용하지 않음
  • 동작 과정
    • 1) 클라이언트(telnet, PuTTY)가 Telnet서버의 아이피 주소(192.168.83.3)로 접속요청
    • 2) Telnet서버에서 로그인 할 수 있는 로그인 메세지 발송

SSH 서비스 개요

  • SSH 서비스는 전송되는 데이터가 암호화 처리되는 보안이 강화된 원격 접속 서비스
  • 동작 과정은 Telnet과 비슷하나 SSH서버에서 데이터 전송시 암호화 처리가 되어 발송됨
  • SSH 서버 설치 과정 : SSH 서버 설치 -> SSH 서비스 시작 -> 방화벽 포트 설정 -> SSH 접속 시험

FTP(File Transfer Protocol)

FTP의 개념

  • 안정적인 파일전송이 가능한 파일 전송 프로토콜
  • 기본적으로 21번포트를 사용함(보안을 위해 다른 포트로 변경하여 사용 가능)
  • 서버의 종류 : vsftpd, proftpd, pure-ftpd 등
    • vsftpd : 상대적으로 설정파일이 복잡함. 접속/전송 속도가 빠름 (권장)
    • proftpd : 설정이 손쉬우나 접속/전송 속도가 느림
  • 클라이언트의 종류
    • 리눅스 기본 설치 프로그램 : FTP, ncftp, lftp 등
    • 윈도우용 프로그램 : 알 FTP(알 드라이브) 등
    • 모든 운영체제를 지원하는 프로그램 : Filezila (권장)

FTP 서버에 접속이 가능한 사용자

  • 일반 사용자
    • 리눅스 서버에 등록된 사용자
    • 접속 디렉토리 - 사용자 디렉토리
  • 익명 사용자
    • 모든 FTP서버에 기본적으로 등록됨
    • ID : anonymous, PW : anonymous 아이디를 사용하는 사용자의 이메일 주소
    • 리눅스 내부적으로 FTP 사용자로 지정되고 손님 자격으로 접속을 허용함

FTP 전송 모드

  • 액티브 모드는 접속과 데이터 전송에 각각 하나씩의 포트만을 사용
  • 패시브 모드는 데이터 전송에 필요한 포트번호 구간을 지정하기 때문에 데이터 전송에 여러개의 포트를 사용하므로 전송 효율이 더 좋음.
  • 액티브 모드 : 접속처리 - 21번포트, 데이터전송 - 20번 포트
  • 패시브 모드 : 접속처리 - 21번포트, 데이터전송 - 1024번 이후 포트

HTTPD(http demon)

httpd

  • httpd 서버 종류
    • 서버 패키지 종류 : Apache, IIS(Internet Infomation Server) 등
    • 클라이언트의 종류 : IE(Internet Explorer), Chrome, Safari 등
  • httpd 동작 과정
    • 1) 웹 브라우저(IE, Chrome)에서 HTML문서 요청
    • 2) httpd 서버(Apache, IIS)에서 HTML문서 전송
  • 추가 정리
    • 웹 사이트는 포트번호를 따로 설정하면 사용자도 입력해야 하기 때문에 포트번호(80) 그대로 사용
    • 홈페이지의 주소가 폴더명으로 끝나며 폴더안에 index.html파일이 없으면 403에러 발생한다.

PHP

PHP 개요 : 하나의 웹 사이트가 만들어지기 위해서 필요한 요소들

  • 웹 퍼블리셔
    • Front-End : 페이지의 내용(html+css+js)를 구성
    • HTML : 페이지의 구조 정의
    • CSS : 구조(HTML)에 대한 디자인 구성
    • JS(Javascript) : 동적 기능 처리
  • 웹 프로그래머
    • Back-End : 사용자가 입력한 내용을 Database에 저장하거나 저장된 내용을 활용하여 페이지의 내용 구성
    • PHP, JSP, ASP 등이 있다.
    • DataBase : 회원정보, 게시물, 상품목록, 장바구니 등 정보가 실제로 저장되는 영역
    • Oracle, MySQL, MSSQL, Cubird 등이 있다.
  • AMP(Apache + PHP + MySQL)
    • Apache : 웹 서버 소프트웨어, 웹 브라우저를 통한 외부 접속을 가능케 함.
    • PHP : Apache가 .php확장자를 갖는 파일의 소스코드를 실행하게 하는 확장 모듈
    • MySQL : Database 관리 시스템

'Linux' 카테고리의 다른 글

Linux(개발환경 구축하기)  (0) 2020.08.22
Linux(명령어 정리)  (0) 2020.08.21
Linux-1  (0) 2020.08.10

댓글