이 강의에서는 리눅스에서 네트워크를 설정하고 관리하는 방법을 다룹니다. 주제는 IP 주소와 호스트네임 설정, 네트워크 인터페이스 관리 (ifconfig, ip), 그리고 SSH를 통한 원격 접속 및 관리입니다.
각 과정마다 명령어와 실습을 포함시켜 리눅스의 네트워크 개념을 완전히 이해할 수 있도록 도와드리겠습니다.
먼저 IP 주소의 기본 개념을 이해해야 합니다. IP 주소는 네트워크에서 각 장치를 식별하는 유일한 주소입니다. 이는 두 가지 유형으로 나뉩니다:
192.168.1.1
2001:0db8:85a3:0000:0000:8a2e:0370:7334
IP 주소는 네트워크 인터페이스에 할당되어 있으며, 각 네트워크 인터페이스는 하나 이상의 IP 주소를 가질 수 있습니다.
호스트네임은 네트워크에서 특정 컴퓨터를 식별하는 이름입니다. IP 주소는 숫자로 구성되어 있어 기억하기 어려우므로, 호스트네임을 통해 쉽게 네트워크 상의 장치를 구분할 수 있습니다. 예를 들어, myserver.local
과 같은 이름이 호스트 네임이 될 수 있습니다.
리눅스에서 IP 주소와 호스트네임을 설정하는 방법을 알아보겠습니다.
IP 주소를 설정하는 방법에는 여러 가지가 있습니다. 여기서는 ifconfig
와 ip
명령어를 사용하여 설정하는 방법을 다룹니다.
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
)로 설정합니다. 마지막 명령어는 인터페이스를 활성화합니다.
호스트네임은 /etc/hostname
파일에서 설정할 수 있습니다. 예를 들어, 호스트네임을 myserver
로 설정하려면 다음과 같이 합니다:
호스트네임 확인
현재 호스트네임을 확인하려면:
hostnamectl
호스트네임 변경
다음 명령어를 사용하여 호스트네임을 변경할 수 있습니다:
sudo hostnamectl set-hostname myserver
/etc/hosts 파일 수정
/etc/hosts
파일을 열어 호스트네임과 IP 주소를 연결하는 항목을 추가합니다:
sudo nano /etc/hosts
파일에 다음과 같은 내용을 추가합니다:
127.0.0.1 localhost
127.0.1.1 myserver
이로써 호스트네임이 변경되고, 네트워크에서 해당 이름으로 인식될 수 있게 됩니다.
현재 설정 확인
ip addr show
hostnamectl
새 IP 주소 설정
sudo ip addr add 192.168.1.150/24 dev eth0
sudo ip link set eth0 up
호스트네임 변경
sudo hostnamectl set-hostname mynewserver
/etc/hosts 파일 수정
sudo nano /etc/hosts
다음을 추가:
127.0.1.1 mynewserver
네트워크 인터페이스는 컴퓨터가 네트워크에 연결되는 물리적 또는 가상 장치입니다. 리눅스에서는 ifconfig
와 ip
명령어를 사용하여 네트워크 인터페이스를 관리할 수 있습니다.
ifconfig
명령어는 네트워크 인터페이스의 설정을 확인하거나 변경할 때 사용됩니다. 그러나 현재는 deprecated(사용 중단)되었으며, ip
명령어로 대체되었습니다.
인터페이스 정보 확인
ifconfig
인터페이스 비활성화
sudo ifconfig eth0 down
인터페이스 활성화
sudo ifconfig eth0 up
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
현재 인터페이스 확인
ip addr show
인터페이스 비활성화 및 활성화
sudo ip link set eth0 down
sudo ip link set eth0 up
가상 네트워크 인터페이스 추가
sudo ip link add link eth0 name eth0.100 type vlan id 100
ip addr show eth0.100
가상 네트워크 인터페이스 제거
sudo ip link delete eth0.100
SSH는 Secure Shell의 약자로, 네트워크를 통해 안전하게 원격으로 컴퓨터에 접속할 수 있게 해주는 프로토콜입니다. SSH는 데이터를 암호화하여 안전한 통신을 보장합니다.
SSH는 서버-클라이언트 모델을 기반으로 합니다. 클라이언트는 원격 컴퓨터에 접속하기 위해 SSH 클라이언트를 사용하고, 서버는 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
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
SSH 서버 설치
sudo apt update
sudo apt install openssh-server
SSH 서버 상태 확인
sudo systemctl status ssh
원격 접속 시도
ssh tester@192.168.1.150
SSH 포트 변경
sudo nano /etc/ssh/sshd_config
Port 22
를 Port 2222
로 변경하고 저장한 후 SSH 서비스를 재시작합니다.
sudo systemctl restart ssh
새 포트로 SSH 접속
ssh -p 2222 tester@192.168.1.150
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
SSH 키 생성
ssh-keygen -t rsa -b 4096
공개 키를 원격 서버에 복사
ssh-copy-id tester@192.168.1.150
SSH 키 기반 접속
ssh tester@192.168.1.150
이로써 리눅스에서의 기본 네트워크 설정과 관리에 대한 강의를 마치겠습니다. 이 강의를 통해 IP 주소와 호스트네임 설정, 네트워크 인터페이스 관리, 그리고 SSH를 통한 원격 접속 및 관리를 모두 이해할 수 있게 되셨기를 바랍니다. 실습을 통해 직접 손으로 경험해보는 것이 중요하므로, 각 명령어와 설정을 반복적으로 시도해보세요.