7. Network 관련 명령 및 설정

 

  네트워크와 리눅스는 따로 떼어놓고 설명할 수 없을 정도로 리눅스에 있어서 네트워크란 것은 중요하다.

  다음은 리눅스에서의 네트워크 관련 명령어를 알아본다.

 

7-1. ifconfig

 

< 그림 7-1 ifconfig를 실행한 화면 >

 

  ifconfig 명령을 실행하면 자신의 네트워크에 연결된 상태 및 IP정보 Netmask 정보, Broadcast 정보, 주고 받는 패킷의 양등을 알수가 있다.


  그렇다면 그림 8-1과 같은 네트워크의 정보는 어디서 설정을 하는 것인가?

  바로 /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0,1에서 설정이 된다.

  네트워크 인터페이스 카드(NIC)즉 일반적으로 랜카드로 불리는 카드가 1개가 있을때에는 eth0, 2개가 있을때 카드는 eth1으로 설정이 된다.


  서버의 네트워크와 IP를 사용하는 방법은 다음과 같다.


  #/etc/sysconfig/network

     ===================================

     NETWORKING=(network 기능을 설정한다. yes로 입력한다. 기본값)

     HOSTNAME=(서버의 호스트명을 입력한다.)

     GATEWAY=(서버가 속한 네트워크의 gateway주소를 입력한다.

     ===================================


  #/etc/sysconfig/network-scripts/ifcfg-eth0

     ===================================

     DEVICE=(다른 네트워크간의 통신을 위해서 사용할 장치를 설정한다.)

     BOOTPROTO=(고정아이피(static)로 할것인지 유동아이피(DHCP)로 할것인지 결정한다.)

     BROADCAST=(서버가 속한 네트워크의 방송주소를 설정한다)

     IPADDR=(서버의 IP주소를 설정한다)

     NETMASK=(서버의 속한 네트워크의 넷 마스크를 설정한다.)

     NETWORK=(서버가 속한 네트워크의 대역을 설정한다.)

     ONBOOT=(Boot시에 DEVICE를 사용할것인지 결정한다. default yes, no로설정시 네트웍 안됨)

    ====================================

 

 

  < 그림 7-2 network, ifcfg-eth0의 설정 내용 >


 

7-2. route

  route는 같은 클래스 내의 다른 서브넷과의 통신을 하기위한 다리역활을 하는 것으로 다른 서브넷으로 통할수 있는 관문(gateway)의 경로를 설정해 놓은 것이다.

  이렇게 경로를 설정해놓은 것을 route table이라고 한다.

 

< 그림 7-3 route table 설정 >

 

 

  라우팅 table에서 default gateway 가 제대로 설정되어있지 않다면 외부로의 접속이 불가능해 진다.

  default gateway설정은 다음과 같다.


 

route add default gw 211.239.150.1 eth0


  보안과 관련하여  route tables에서도 IP나 NETWORK을 차단할수 있다.

  다른 호스트나 네트웍을 라우팅 테이블에서 차단함으로써 접속을 차단할 수가 있는 것이다.

 

  route add -host 211.239.150.48 reject → 특정 호스트를 차단한다.

  route add -net 211.239.150.0 netmask 255.255.255.0 reject → 특정 네트워크를 차단한다.

  ==========================================================================

  route del -host 211.239.150.48 reject → 특정 호스트 차단을 해제한다.

  route del -net 211.239.150.0 netmask 255.255.255.0 reject → 특정 네트워크 차단을 해제한다.

 

 

7-3 ping

  ping은 가장 기본적으로 서버의 정상가동 여부 및 네트웍의 연결상태를 확인할수 있는

  명령이다.

 

< 그림 7-4 ping 명령 실행 >

 

  위의 명령을 살펴보면 ping의 -c (count) 옵션을 통하여, ping test를 할 횟수를 지정해 주었고, hostway.co.kr의 정상가동 여부를 확인해 보는 것이다.

 

  ping은 위에서처럼 서버의 정상 가동 여부를 확인해 볼수도 있겠지만, TTL을 수정하지 않은 일반 서버의 대략의 OS정보도 확인할 수 있다.

  ping으로 대략의 OS를 확인하는 방법은 ping test시 나오는 ttl의 값을 보고 알 수가 있다.

  ttl time 60번대 - freebsd, 120대 - NT, windown 계열 250 - Unix, Linux계열임을 대략적으로 알 수가 있다.

  <그림 7-4>의 경우에는 ttl을 확인해봤을때 Linux나 Unix계열의 서버임을 알수가 있다.

  그것 뿐만 아니라 -t(ttl) 옵션을 통하여 서버까지의 route개수를 알 수도 있다.

  ttl은 라우터를 1개 지나갈 때마다 1씩 줄어들게 된다.

 

 

<그림 7-5 TTL을 이용한 경로 확인>

 

  위의 그림에 대한 예를 직접 서버에서 ping을 통하여 알아보자.

 

<그림 7-6 (A) ping을 이용한 목적지까지의 route개수>

 

  <그림 7-6>는 현재 사용자의 서버에서 TTL값 2로 hostway.co.kr 까지의 ping을 해본 결과이다.

  이 결과 hostway.co.kr까지는 2개 이상의 router로 연결되었기 때문에 2개의 TTL로서는 도착을 할 수가 없다는 메시지가 출력되고 있다. ( TTL (time to live)의 한계를 넘었다는 메시지 출력 )

 

<그림 7-7 (B) ping을 이용한 목적지까지의 router 개수>

 

  <그림 7-7>은 현재 사용자의 서버에서 TTL값 3으로 hostway까지의 ping test를 실행한 결과이다.

  <그림 7-6>에서는 TTL값 2로 해서 도착할 수 없다는 메시지를 만났으나. TTL 3으로는 hostway의 서버에 도착하여, 정상적인 ping test가 가능하다. 이결과 사용자 서버와 hostway간에는 2개의 라우터가 있음을 확인했다.

 

7-4 netstat

  netstat 명령은 현재 서버에 열린 포트확인 및 사용 프로세서를 확인할 수 있는 명령이다.

  이 명령은 상당히 많은 정보를 제공하며, 반드시 알아두어야 하는 명령중에 하나이다.


  일반적으로 가장 많이 사용하는 netstat명령의 옵션에는 -nap 가 있다.

    -n (numeric) : 연결된 호스트를 도메인이 아닌 IP로 보여준다. 속도가 빠름

    -a (all) : tcp / udp / Listen  하고 있는 포트들 모두를 보여준다

    -t (tcp) : tcp로 연결된 포트를 보여준다. (netstat -ntp)

    -u (udp) : udp로 연결된 포트를 보여준다. (netstat -nut)

    -p (program) : 열린 포트를 사용하고 있는 프로그램을 보여준다


  기타 많은 옵션이 있지만 자주 사용하지는 않으므로 나머지 옵션은 직접 man page를 통하여 살펴보기 바란다.

 

< 그림 7-8 netstat 명령 실행 >