[Server] Linux - 인터넷, 네트워크 그리고 서버

seonjeong·2023년 12월 2일
0

Server

목록 보기
13/15
post-thumbnail

❤️ 인터넷

google.com을 검색하면 DNS서버에서 google.com이라는 도메인 네임을 찾아 해당 도메인에 맞는 IP 주소를 사용자에게 반송하여 google에 접속할 수 있도록 한다.

  • DNS(Domain Name System) : 도메인 이름과 IP주소를 서로 변환하는 역할을 함

내 컴퓨터의 IP 주소 확인하기

ip addr명령어와 curl ipinfo.io/ip명령어를 통해 내 컴퓨터의 IP 주소를 확인할 수 있다.
각각의 명령어에서 IP 주소가 다르게 나오는데 이는 하나의 통신사 IP를 공유기를 이용하여 장비마다 서로 다른 IP 주소가 할당되기 때문이다.

  • private address : 라우터에 연결된 각 장비의 IP 주소, ip addr 명령어로 확인
  • public address : 라우터의 IP, curl ipinfo.io/ip 명령어로 확인

❤️ 웹 서버(Web Server) - Apache

웹 페이지가 들어 있는 파일을 사용자에게 제공하는 서버 프로그램이다. 웹 서버 소프트웨어에는 Apache, Nginx, Microsoft IIS 등이 있다.

Apache 웹 서버

Apache로 웹 서버를 리눅스에 설치하는 방법을 알아보자.

💡 설치 전에 업데이트 먼저 할 것 : apt-get update

설치

sudo apt-get install apache2

실행 및 종료

sudo service apache2 start  // 실행
sudo service apache2 stop   // 종료
sudo service apache2 restart  // 재실행

웹 서버 구동 확인

elinks를 이용하여 확인

sudo apt-get install elinks  // elinks 설치
  • IP로 접속 : elinks http://[priate address]/
  • localhost로 접속 : elinks http://localhost/
    • localhost == 127.0.0.1 → 자기 자신을 의미

설정(Configuration)

웹 브라우저에서 특정 웹 주소로 요청하면 웹 서버는 요청한 주소에 대한 요청을 처리한다. 이때, 주소에 해당하는 파일을 찾아 웹 브라우저에게 응답을 보낸다.

  • 웹 브라우저가 접속할 때 /etc/apache2에 있는 여러 설정 파일들을 참고한다
  • 사용자 접속이 들어오면 서버 컴퓨터의 설정 파일을 통해 요청한 파일일 읽고 웹 브라우저에게 보내준다.

document root
: 웹 페이지를 찾는 최상위 디렉토리

로그(log)

access.log : 누군가가 웹 서버에 접속할 때마다, 접속한 사람의 정보가 추가된다.
error.log : 웹 서버의 에러를 확인할 수 있다.

  • tail -f /var/log/apache2/access.log : 실시간으로 끝에 추가되는 정보를 화면에 출력

❤️ 원격제어 SSH

SSH(Secure Shell)는 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 이 프로토콜을 사용하는 프로그램들을 의미한다.

SSH 클라이언트와 SSH 서버 관계로 상호작용하면서 SSH 서버가 설치된 운영체제를 제어한다.
SSH는 암호화된 통신을 제공하여 보안적으로 안전한 원격 제어 및 파일 전송을 가능하게 한다.

💡 유닉스 계열에서는 대부분 SSH가 설치되어 있다

설치

sudo apt-get install openssh-server 
sudo apt-get install openssh-client // 다른 컴퓨터로 원격제어할 때 필요

접속

접속하고자 하는 컴퓨터의 사용자명과 IP 주소를 입력한다. 접속 시 비밀번호를 입력하거나, SSH 키를 사용하여 인증을 수행할 수 있다.

ssh [username]@[ip address]
  • 종료 :exit

❤️ 포트(Port)

'논리적인 접속장소'를 뜻하며, TCP/IP를 사용할 때 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용한다.

네트워크 상에서 통신을 할 때 IP 주소를 바탕으로 해당 서버가 있는 컴퓨터에 접근하게 되는데 하나의 IP에서 여러 애플리케이션을 실행할 경우, 컴퓨터에는 여러 개의 서버가 실행하게 된다.

이때, 포트번호를 통해 대상 IP 기기의 특정 애플리케이션의 서버에 접속할 수 있도록 알려주어야 한다.

  • 0 ~ 65535 : 할당 가능
  • 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443
    • SSH - 22

포트 번호 변경 - SSH

/etc/ssh/sshd_config에서 포트번호를 수정하고 재시작하면 변경된 포트번호가 반영된다.

포트 포워딩(port forwarding)

간단히 말해서 포트(Port)를 전달(Forwarding)해주는 것이다. 특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔 다시 전송해준다.

공유기(라우터) 환경설정

💡 공유기에 접속하기 위해서는 공유기마다 방법이 상이하므로 해당 공유기의 문서를 확인할 것

  • 공유기에 내장된 서버에 접근하기 위해서는 공유기 내부에서만 통용되는 IP가 있어야 함
    default gateway : 기본적으로 설정된 라우터 경로. ip route 명령어로 알 수 있음

  • 공유기에 내장된 서버에 접근하려면 다음과 같은 단계를 따를 수 있음

    1. 라우터 관리자 페이지에 로그인
    2. 포트포워딩 탭 찾기
    3. 포트포워딩 규칙 추가
    4. 저장 및 적용
  • 예시 ) iptime 공유기 포트포워딩 설정 방법

참고

[Network] 포트(Port) 개념 정리 및 종류
포트포워딩: 포트포워딩의 정의와 설정 방법



Reference

생활코딩-리눅스 강좌

profile
🦋개발 공부 기록🦋

0개의 댓글