본문 바로가기
IT Security/LINUX Basic

16. 리눅스 IP 변경 및 네트워크 설정

by Rosmary 2020. 4. 15.
728x90
반응형

리눅스에 PuTTy와 같은 원격 프로그램으로 접속하기 위해서는, 리눅스에 IP 주소가 부여되어 있어야 한다. 이전의 포스팅에서는 어떻게 리눅스에 부여되어 있는 IP 주소를 확인할 수 있는지 알아보았다.

 

하지만, 리눅스의 IP 주소만 알아낸다고 해서 곧바로 원격 접속을 할 수 있는 것이 아니다. 원격 프로그램을 사용하는 윈도우의 IP 주소가 리눅스의 IP 주소와 통신이 될 수 있도록 맞춰주는 작업이 필요하다. 그럼, IP 주소는 어떻게 맞춰 줘야만 통신이 가능한 것일까? 하나씩 알아보자.

 

 

1. IP 주소 개요.

 

IP 주소는 컴퓨터 통신을 위해 사용하는 주소라고 보면 된다. 인터넷에 연결되지 않은 컴퓨터 A와 컴퓨터 B가 통신을 하기 위해서는 UTP 케이블(보통 랜선이라고 한다)을 두 컴퓨터 사이에 연결해 주는 것으로 끝이 아니라, 두 컴퓨터 IP 주소가 통신이 가능하도록 주소값을 맞춰주는 과정이 필요하다.

 

IP 주소는 숫자 네 개가 점으로 구분되어 표시된다(10.123.29.10와 같이..). 이 주소에 들어가는 4 개의 숫자는 0부터 255까지의 숫자만 사용할 수 있다. 즉, 사용할 수 있는 IP 주소의 범위는 이론적으로 0.0.0.0 ~ 255.255.255.255까지다.

 

하지만 이 IP 주소는 사람이 쉽게 보기 위해 10진 숫자로 만들어놓은 것에 불과하며, 실제 컴퓨터가 인식하는 숫자는 이 십진수를 이진수로 변형한 형태의 IP 주소다. 예를 들어, 192.168.10.1이라는 IP 주소를 컴퓨터는 다음과 같이 받아들인다.

 

192.168.10.1  ->  11000000. 1010100. 00001010. 00000001

* 이진법 변환에 익숙한 분들이라면, 사용 가능한 숫자의 범위가 0부터 255까지인 이유를 금방 알것이다.

 

 

IP 주소를 설정하다보면 서브넷 마스크라고 불리는 녀석도 함께 볼 수 있다.

 

보통 IP 설정하는 부분이 이런식으로 구성되어 있다. 리눅스도 마찬가지.

 

이 서브넷 마스크는 IP주소를 네트워크 ID와 호스트 ID로 나누어주는 역할을 한다. 조금 더 쉬운 설명을 위해, 어떤 사람이 사는 주소를 예로 들어보자.

 

김철수의 주소:  서울특별시 종로구 혜화동 151번지

김영희의 주소:  서울틀별시 종로구 혜화동 130번지

 

철수와 영희는 모두 서울특별시 종로구 혜화동에 거주한다. 하지만 번지수는 다르다. 철수와 영희의 주소를 비교해보면, 번지수를 제외한 모든 내용이 동일하다. 철수와 영희는 동일한 지역에 살고 있고 번지수만 다르기 때문에 서신을 주고 받기 위해 굳이 우체국을 이용할 필요가 없다(이 내용을 기억해두자)

 

IP 주소 역시 마찬가지다. IP 주소의 Network ID는 일종의 지역구(?)라고 보면 되고, Host ID는 번지처럼, 지역구 내에 특정 주소를 구분해주는 것이라 생각하면 된다.

 

그럼, 서브넷 마스크는 IP주소를 어떻게 Network ID와 Host ID로 나누는 것일까?

 

컴퓨터는 IP 주소를 이진법으로 구분한다고 했다. 그리고 서브넷 마스크는 IP와 유사하게 3자리 이하의 숫자 4개로 구성되어 있다. IP 주소와 일반적으로 많이 사용하는 서브넷 마스크를 이진법으로 나열하면 다음과 같이 나타낼 수 있다.

 

IP 주소:          192.168. 10.1  ->  11000000.  1010100.  00001010.  00000001

서브넷마스크:  255.255.255.0  ->  11111111. 11111111. 11111111.  00000000

 

이진법으로 나열된 IP주소와 서브넷 마스크를 보면 대략 Network ID와 Host ID가 구분되는 지점이 명확히 보인다. IP주소 중 서브넷 마스크가 1로 연달아 표시되어 있는 부분은 Network ID로, 서브넷 마스크가 0으로 연달아 표시된 부분은 Host ID다. 즉, IP 주소 192.168.10.1에 서브넷 마스크 255.255.255.0을 분석해보면 다음과 같이 나타난다.

 

Network ID:  192.168.10

Host ID     :  1

 

따라서, 위의 주소를 가지는 컴퓨터와 통신을 진행하기 위해서는 Network ID는 동일하되, Host ID는 다른 IP 주소가 필요하다. 

 

만약 Network ID주소가 다른 IP 주소와 통신을 하기 위해서는, 우체국의 역할을 하는 네트워크 장비가 필요하다. 다시 사람들이 사용하는 주소를 예시로 들자면, 서울시 종로구 혜화동에 사는 사람이 부산시 사하구 괴정동에 있는 사람과 서신을 주고 받기 위해서는 우체국 몇 개를 거쳐 가야하는 것처럼 말이다.

 

 

2. 공유기 환경 내에서 IP주소

 

서두에 사용가능한 IP 주소 범위는 0.0.0.0 ~ 255.255.255.255까지라고 언급했다. 이를 다른 표현으로 말하자면, 255 * 255 * 255 * 255개(약 42억개 정도)의 사용 가능한 IP 주소가 존재한다는 말이다. 하지만 전 세계 인구가 60억에 가까운데다, 한 사람이 여러 대의 통신장비(스마트폰, 노트북)을 휴대하고 있는 상황이기에, 약 42억 개의 IP 주소를 관리하지 않는 이상, 금새 고갈되어 버릴 것이다.

 

이 때문에 탄생한 것이 공유기다. 다시 사람의 주소를 예로 들자면, 공유기는 마치 공동 주택 또는 아파트와 같은 개념이라고 보면 된다. 단독 주택일 경우에는 한 사람이 하나의 번지수만 사용가능하지만, 공동주택의 경우 건물에 부여된 번지수에 여러 사람이 거주하고 있기 때문에, 하나의 번지수를 공유한다고 보면 된다. 공유기도 마찬가지다. 외부에 표시되는 IP 주소는 모두 동일하지만, 공유기 내부에 존재하는 각 컴퓨터나 스마트폰의 IP 주소는 별도의 내부 IP 주소를 사용한다.

 

 

공유기의 내부 IP는 보통 192.168.1.또는 172.30.1로 시작하는 IP주소를 가진다.

 

 

위의 그림과 같이 공유기는 일종의 우체국 역할을 함과 동시에, 내부 사용자에게 특정 IP주소를 할당해주는 역할을 한다. 즉, 철수는 192.168.1.1, 영희는 192.168.1.2, 민수는 192.168.1.3...과 같은 식으로 공유기로부터 내부 주소를 할당받으며, 내부 사용자가 인터넷과 통신을 진행하면, 공통 외부 IP인 220.96.92.123으로 인터넷과 통신을 하게 된다.

 

** 네이*에서 "IP 주소 확인"이라고 검색하면, 같은 Wi-Fi를 사용하는 모든 기기는 동일한 IP가 나타나는데, 이는 공유기 외부에 설정된 IP다. 궁금하신 분들은 스마트폰과 노트북을 동일한 Wi-Fi로 잡고 확인해보면 된다.

 

 

3. 게이트웨이 주소

 

만약, 서울에 사는 사람들이 부산이나 대전으로 편지를 쓴다고 가정해보자. 서울 사람들이 쓴 모든 편지는 서울의 우체국에 모이게 될 것이고, 서울 우체국은 서울 시내의 주소는 모두 자신들이 관리하고 있기에 서울쪽으로의 서신은 모두 처리하겠지만, 그 외의 주소는 정보가 없기 때문에 다른 우체국으로 넘겨줘야한다. 서울 우체국은 중앙 우체국으로 부산 및 대전으로 가는 편지를 모두 전송하게 되고, 중앙 우체국은 각 편지의 주소를 확인한 뒤, 각 지역의 우체국으로 편지를 분류해서 보내준다.

 

앞서, 공유기 또한 일종의 우체국 역할을 한다고 이야기를 했다. 공유기가 기억하고 있는 주소는 내부 주소들과, 외부 공인 IP 1개 뿐이다. 따라서, 내부 IP 주소에서 출발한 서신이 외부로 나가도록 하기 위해서, 내부 컴퓨터에서도 외부로 나가는 통신을 어디로 보낼 것인지 설정하는 과정이 필요하다. 보통 공유기 환경 내에서 이 주소는 공유기 자체의 내부 IP 주소가 된다. (IPTIME의 경우 192.168.1.1, KT 공유기는 172.30.1.254이다)

 

 

 

4. VM 웨어의 설정

 

리눅스를 설치한 VM웨어의 Machine설정을 보면 Network Adapter라는 항목이 존재한다.

 

 

Network Connection 방식이 4가지가 있는데, 이들 중 Bridged와 NAT를 많이 사용한다.

 

이 Network Adapter를 선택하면, Network Connection 방식 4가지가 보이는데, 기본값으로 NAT로 되어 있을 것이다. 

 

(1) NAT

 

NAT로 설정되어 있는 경우, VM웨어가 설치된 컴퓨터를 마치 공유기처럼 사용하겠다는 이야기다. 즉, 아래의 그림과 같이 나타낼 수 있겠다.

 

 

 

 

따라서 NAT로 Network Adapter가 설정된 경우, 리눅스나 윈도우에서 IP 주소를 변경할 필요가 없다. 내 컴퓨터에서 리눅스 IP로 통신할 수 있는 일종의 우체국 기능을 제공하기 때문이다.

 

 

(2) Bridged

 

만약, 리눅스가 설치된 노트북이나 컴퓨터가 공유기 환경 아래에 있다면, 리눅스 IP를 공유기 내부 IP로 설정하는 것도 가능하다.Network Connection을 Bridged로 설정하면 된다.

 

 

즉, 리눅스가 실제 구동되고 있는 곳은 "내 컴퓨터"지만, IP는 마치 공유기 내부 IP중 하나를 사용하도록 만드는 것이다. 이 경우, "내 컴퓨터"의 IP Network ID와 동일하고, Host ID는 상이하도록 리눅스 IP를 수정해주면 된다.

 

자... 그럼 본격적으로 리눅스 IP 주소를 변경하는 방식에 대해 알아보자.

 

 

5. 리눅스 IP 주소 변경

 

필자는 이번 포스팅을 위해, VM Network Connection 설정을 Bridged로 변경했다. 그리고 변경할 IP 주소는 172.30.1.111로 설정하기로 했다. 

 

 

 

 

아직은 리눅스 IP를 172.30.1.111로 설정하지 않았기 때문에 컴퓨터에서 ping 명령어로 172.30.1.111의 존재 여부를 확인하면 위의 그림과 같이 대상 호스트에 연결할 수 없다는 답변만 돌아온다.

 

 

현재 필자의 IP 주소는 ens33 인터페이스에 172.30.1.30로 설정되어 있다.  Bridged로 설정을 변경하자마자, 공유기에서 dhcp로 할당한 IP주소다. 이 상태에서도 사실 PC와의 통신에는 문제가 없지만, 설정한대로 변경을 위해 그냥 진행한다.

 

 

리눅스의 모든 설정 파일은 /etc 폴더 내에 존재한다. 네트워크와 관련된 설정파일도 /etc 내에 존재하며, IP 변경을 위한 설정 파일은 /etc/sysconfig/network-scripts 경로에 존재한다.

 

 

 

 

해당 폴더 내에 존재하는 파일을 확인해보면, ifcfg로 시작되는 파일이 존재하는데, 이는 interface Config의 줄임말이다. 즉, 각 interface의 설정과 관련된 파일이며, 우리는 ens33이라는 이름의 인터페이스 IP 주소를 변경할 예정이다. 해당 파일을 cat으로 확인해보면 다음과 같은 내용이 나온다.

 

 

 

 

현재 파일을 통해, ens33 인터페이스가 공유기로부터 dhcp로 IP를 할당받아 사용하고 있음을 알 수 있다.(BOOTPROTO=dhcp) 수동으로 IP 주소를 지정해주기 위해, 해당 내용을 다음과 같이 변경하고, IP 주소 및 서브넷 마스크와 게이트웨이를 다음과 같이 추가해주자.

 

 

 

 

저장하고 나오면, 해당 설정을 적용하는 과정이 필요하다. 이 과정은 network를 관장하는 서비스를 재기동 시켜주는 절차가 필요한데, 재기동을 위한 명령어는 다음과 같다.

 

 

CentOS7에서는 systemctl restart network,이며 CentOS6 사용자는 service network restart를 입력하면 된다.

 

network 서비스가 재기동되면 ip add를 입력하여 주소가 정확히 변경되었는지 확인하고, ping 명령어도 사용해보면.

 

 

IP 주소가 변경되었고, 윈도우에서 변경된 IP로 Ping 명령어 결과가 올바르게 돌아오는 것도 확인할 수 있다.

 

위와 같이 의도한 결과가 나오는 것을 확인할 수 있다.

 

 

6. 원격 접속.

 

이제 오늘의 목표인 원격 접속을 진행해보자. IP 주소를 변경했고, ping까지 잘 날아가는 상황이라면, 원격 접속은 어렵지 않다. PuTTy를 열어보자.

 

 

 

PuTTy를 실행하면 위와 같은 작은 창이 하나 뜨는데, 변경해준 IP 주소를 Host Name에 입력해주고 open을 클릭하기만 하면 된다. PuTTy는 SSH 라고 불리는, 암호화된 원격 접속을 지원하는 프로토콜이며, 이 프로토콜을 사용하기 위해 통신 port 22번을 사용한다(일반적인 원격 프로그램은 이 포트 기본값이 22로 지정되어 있다)

 

 

 

 

Open 을 클릭하면, 처음 접속 시, 위와 같은 경고창이 뜨는데, 확인을 누르면 바로 로그인 화면이 나타난다. 리눅스의 계정과 패스워드를 입력하고 접속을 시도하면 다음과 같이 리눅스 CLI 환경이 등장하게 된다.

 

 

 

 

 


지금까지, 원격 접속을 위한 IP에 대한 기본적인 설명, 리눅스 IP 변경방법 및 원격 접속 방법에 대해 설명했다. 사실 IP는 필자가 하나의 포스팅에 전부 설명하지 못할 정도로 알아야 할 내용이 많다. 하지만 원격 접속과 관련된 부분을 설명하기 위해 IP 개요 부분을 조금 부족하게 설명한 것도 없지않다. 따라서, IP나 기타 네트워크 통신의 기본 개요를 조금 더 알고 싶으신 분들은, 필자의 이전 블로그에서 네트워크 부분을 참조하거나, 조금 더 전문적인 정보를 원하는 분들이라면 Network 기초 관련 서적을 읽어보시기를 권한다.

 

다음 포스팅에서는 이 SSH 접속과 관련된 설정에 대해 알아보려 한다.

 

 

** 2022-10-07 추가: VMWare의 NAT 설정 및 외부 통신으로 에러가 발생하는 분들은 이 포스팅을 참고하자.

 

 

 

FIN. 

반응형

댓글