리눅스 네트워크 설정

날아올라돼지야·2024년 8월 31일
0

이 강의에서는 리눅스에서 네트워크를 설정하고 관리하는 방법을 다룹니다. 주제는 IP 주소와 호스트네임 설정, 네트워크 인터페이스 관리 (ifconfig, ip), 그리고 SSH를 통한 원격 접속 및 관리입니다.
각 과정마다 명령어와 실습을 포함시켜 리눅스의 네트워크 개념을 완전히 이해할 수 있도록 도와드리겠습니다.

1. IP 주소와 호스트네임 설정

1.1. IP 주소란 무엇인가?

먼저 IP 주소의 기본 개념을 이해해야 합니다. IP 주소는 네트워크에서 각 장치를 식별하는 유일한 주소입니다. 이는 두 가지 유형으로 나뉩니다:

  • IPv4: 가장 일반적인 형태로, 32비트 주소 체계입니다. 예: 192.168.1.1
  • IPv6: 128비트 주소 체계로, 더 많은 주소를 제공하며, 미래의 확장성을 위해 설계되었습니다. 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

IP 주소는 네트워크 인터페이스에 할당되어 있으며, 각 네트워크 인터페이스는 하나 이상의 IP 주소를 가질 수 있습니다.

1.2. 호스트 네임이란?

호스트네임은 네트워크에서 특정 컴퓨터를 식별하는 이름입니다. IP 주소는 숫자로 구성되어 있어 기억하기 어려우므로, 호스트네임을 통해 쉽게 네트워크 상의 장치를 구분할 수 있습니다. 예를 들어, myserver.local과 같은 이름이 호스트 네임이 될 수 있습니다.

1.3. IP 주소 및 호스트네임 설정 방법

리눅스에서 IP 주소와 호스트네임을 설정하는 방법을 알아보겠습니다.

1.3.1. IP 주소 설정

IP 주소를 설정하는 방법에는 여러 가지가 있습니다. 여기서는 ifconfigip 명령어를 사용하여 설정하는 방법을 다룹니다.

  • ifconfig 명령어 사용하기 (구 버전)

    ifconfig 명령어는 예전부터 사용된 네트워크 설정 명령어입니다. 이제는 ip 명령어로 대체되었지만, 여전히 많은 시스템에서 사용됩니다.

    sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up

    위 명령어는 eth0 네트워크 인터페이스에 IP 주소 192.168.1.100을 할당하고, 서브넷 마스크를 255.255.255.0으로 설정합니다.

  • ip 명령어 사용하기 (현재 권장되는 방법)

    ip 명령어는 더 강력하고 유연한 네트워크 설정 도구입니다. 네트워크 인터페이스를 관리하고 IP 주소를 설정할 때 사용합니다.

    sudo ip addr add 192.168.1.100/24 dev eth0
    sudo ip link set eth0 up

    위 명령어는 eth0 네트워크 인터페이스에 192.168.1.100이라는 IP 주소를 할당하고, 서브넷 마스크를 24 비트 (즉, 255.255.255.0)로 설정합니다. 마지막 명령어는 인터페이스를 활성화합니다.

1.3.2. 호스트네임 설정

호스트네임은 /etc/hostname 파일에서 설정할 수 있습니다. 예를 들어, 호스트네임을 myserver로 설정하려면 다음과 같이 합니다:

  1. 호스트네임 확인

    현재 호스트네임을 확인하려면:

    hostnamectl
  2. 호스트네임 변경

    다음 명령어를 사용하여 호스트네임을 변경할 수 있습니다:

    sudo hostnamectl set-hostname myserver
  3. /etc/hosts 파일 수정

    /etc/hosts 파일을 열어 호스트네임과 IP 주소를 연결하는 항목을 추가합니다:

    sudo nano /etc/hosts

    파일에 다음과 같은 내용을 추가합니다:

    127.0.0.1   localhost
    127.0.1.1   myserver

    이로써 호스트네임이 변경되고, 네트워크에서 해당 이름으로 인식될 수 있게 됩니다.

실습 1: IP 주소 및 호스트네임 설정

  1. 현재 설정 확인

    ip addr show
    hostnamectl
  2. 새 IP 주소 설정

    sudo ip addr add 192.168.1.150/24 dev eth0
    sudo ip link set eth0 up
  3. 호스트네임 변경

    sudo hostnamectl set-hostname mynewserver
  4. /etc/hosts 파일 수정

    sudo nano /etc/hosts

    다음을 추가:

    127.0.1.1   mynewserver

2. 네트워크 인터페이스 관리

네트워크 인터페이스는 컴퓨터가 네트워크에 연결되는 물리적 또는 가상 장치입니다. 리눅스에서는 ifconfigip 명령어를 사용하여 네트워크 인터페이스를 관리할 수 있습니다.

2.1. ifconfig 명령어

ifconfig 명령어는 네트워크 인터페이스의 설정을 확인하거나 변경할 때 사용됩니다. 그러나 현재는 deprecated(사용 중단)되었으며, ip 명령어로 대체되었습니다.

  • 인터페이스 정보 확인

    ifconfig
  • 인터페이스 비활성화

    sudo ifconfig eth0 down
  • 인터페이스 활성화

    sudo ifconfig eth0 up

2.2. ip 명령어

ip 명령어는 네트워크 설정을 관리하는 데 사용되며, 현재 표준으로 자리 잡고 있습니다. 다음은 몇 가지 주요 사용법입니다.

  • 인터페이스 정보 확인

    ip addr show
  • 네트워크 인터페이스 비활성화

    sudo ip link set eth0 down
  • 네트워크 인터페이스 활성화

    sudo ip link set eth0 up
  • 네트워크 인터페이스 추가 및 제거

    가상 네트워크 인터페이스를 추가할 수도 있습니다.

    sudo ip link add link eth0 name eth0.10 type vlan id 10

    인터페이스를 제거하려면:

    sudo ip link delete eth0.10

실습 2: 네트워크 인터페이스 관리

  1. 현재 인터페이스 확인

    ip addr show
  2. 인터페이스 비활성화 및 활성화

    sudo ip link set eth0 down
    sudo ip link set eth0 up
  3. 가상 네트워크 인터페이스 추가

    sudo ip link add link eth0 name eth0.100 type vlan id 100
    ip addr show eth0.100
  4. 가상 네트워크 인터페이스 제거

    sudo ip link delete eth0.100

3. SSH를 통한 원격 접속 및 관리

SSH는 Secure Shell의 약자로, 네트워크를 통해 안전하게 원격으로 컴퓨터에 접속할 수 있게 해주는 프로토콜입니다. SSH는 데이터를 암호화하여 안전한 통신을 보장합니다.

3.1. SSH 기본 개념

SSH는 서버-클라이언트 모델을 기반으로 합니다. 클라이언트는 원격 컴퓨터에 접속하기 위해 SSH 클라이언트를 사용하고, 서버는 SSH 서버 데몬이 실행되어 클라이언트의 접속을 대기합니다.

3.2. SSH 서버 설치 및 설정

리눅스에서 SSH 서버를 설정하려면 openssh-server 패키지를 설치해야 합니다.

  • SSH 서버 설치

    sudo apt update
    sudo apt install openssh-server
  • SSH 서버 상태 확인

    sudo systemctl status ssh
  • SSH 서버 시작 및 정지

    sudo systemctl start ssh
    sudo systemctl stop ssh
  • SSH 서버 자동 시작 설정

    sudo systemctl enable ssh

3.3. SSH 클라이언트를 통한 원격 접속

SSH 클라이언트를 사용하여 다른 컴퓨터에 원격으로 접속할 수 있습니다.

  • SSH 접속

    ssh username@remote_host_ip

    예를 들어:

    ssh tester@192.168.1.150
  • 기본 포트 변경

    SSH의 기본 포트는 22번입니다. 보안을 위해 포트를 변경할 수 있습니다.

    sudo nano /etc/ssh/sshd_config

    파일에서 Port 22를 다른 포트 번호로 변경합니다. 예를 들어 Port 2222로 변경한 후, SSH 서비스를 재시작합니다.

    sudo systemctl restart ssh

    이후 접속할 때는 포트 번호를 지정해야 합니다.

    ssh -p 2222 username@remote_host_ip

실습 3: SSH 설정 및 원격 접속

  1. SSH 서버 설치

    sudo apt update
    sudo apt install openssh-server
  2. SSH 서버 상태 확인

    sudo systemctl status ssh
  3. 원격 접속 시도

    ssh tester@192.168.1.150
  4. SSH 포트 변경

    sudo nano /etc/ssh/sshd_config

    Port 22Port 2222로 변경하고 저장한 후 SSH 서비스를 재시작합니다.

    sudo systemctl restart ssh
  5. 새 포트로 SSH 접속

    ssh -p 2222 tester@192.168.1.150

3.4. SSH 키 기반 인증

SSH는 비밀번호 대신 키 기반 인증을 사용할 수 있습니다. 이 방법은 보안성을 높이는 데 유용합니다.

  • SSH 키 생성

    ssh-keygen -t rsa -b 4096

    이 명령어는 RSA 키 쌍을 생성합니다. 키 파일을 저장할 위치와 비밀번호를 묻습니다. 기본 위치와 비밀번호 없이 생성해도 무방합니다.

  • 공개 키를 서버에 복사

    생성한 공개 키를 원격 서버에 복사합니다.

    ssh-copy-id username@remote_host_ip

    이 명령어는 ~/.ssh/authorized_keys 파일에 공개 키를 추가합니다.

  • 키 기반 접속

    이제 비밀번호 없이 SSH 키로 접속할 수 있습니다.

    ssh username@remote_host_ip

실습 4: SSH 키 기반 인증 설정

  1. SSH 키 생성

    ssh-keygen -t rsa -b 4096
  2. 공개 키를 원격 서버에 복사

    ssh-copy-id tester@192.168.1.150
  3. SSH 키 기반 접속

    ssh tester@192.168.1.150

이로써 리눅스에서의 기본 네트워크 설정과 관리에 대한 강의를 마치겠습니다. 이 강의를 통해 IP 주소와 호스트네임 설정, 네트워크 인터페이스 관리, 그리고 SSH를 통한 원격 접속 및 관리를 모두 이해할 수 있게 되셨기를 바랍니다. 실습을 통해 직접 손으로 경험해보는 것이 중요하므로, 각 명령어와 설정을 반복적으로 시도해보세요.

profile
무슨 생각하며 사니

0개의 댓글

관련 채용 정보