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 명령 실행 >
|