[22] SELinux(소개), NIC, route, netstat, arp, nslookup, dig

|


- 2014.12.05



1. SELinux


과거엔 리눅스는 소스코드가 공개되어 보안에 취약하다는 인식이 있었지만

SELinux라는 새로운 보안 모델이 나오면서 보안이 많이 향상되었다.

단, 보안과 편의성은 반비례 한다는 사실을 알아야 한다.


1) 설정 변경 문서


# vi /etc/sysconfig/selinux

disabled 등으로 변경 시 리부팅 해야 적용됨





2. NIC


NIC = Network Interface Card


NIC 설정 문서 파일

# vi /etc/sysconfig/network-scripts/ifcfg-장치명


장치 활성화 및 비활성화

# ifconfig eth2 up

# ifconfig eth2 down


IP주소 변경

# ifconfig eth2 192.168.1.144


IP, B/d, Subnetmask 변경

# ifconfig eth2 10.10.10.10 netmask 255.255.255.0 broadcast 10.10.10.255

장치 down 후 up 하면 원상복귀 된다.

즉, 일시적인 변경을 위한 명령어이다.


영구 변경 되는 네트워크 설정 위한 쉬운 명령어가 있다. (minimal엔 없음)

# system-config-network

# setup

(setup 의 경우 전반적인 셋팅 가능)





3. route


ex)

# route

Kernel IP routing table

Destination        Gateway         Genmask          Flags       Metric  Ref    Use Iface

192.168.1.0          *          255.255.255.0        U               1      0      0   eth2

default          192.168.1.2        0.0.0.0            UG              0      0      0   eth2


Destination : 목적지 주소를 가르킴

Gateway : 외부로 패킷을 포워딩 하기 위한 장치의 IP Address

Genmask : 라우팅 항목의 넷마스크

Flags : U - 인터페이스가 Up인 상태

           H - 라우팅 경로를 통해 호스트로의 연결

 G - 게이트웨이의 라우트

 D - 라우트가 재지정되어 동적으로 생성

          M - 라우팅 경로가 ICMP 리다이렉트 메시지를 통해 수정되었을 경우

Metric : 다음 라우트와의 거리

Ref : 라우터에 대한 참조수

Use : 라우트를 찾아본 횟수

Iface : 목적지로 패킷을 보낼 때 사용할 장치



명령어 설명


# route add [ -net | -host ] target [netmask <nm>] [gw <nm>] dev <i/f>

# route del [ -net | -host ] target [netmask <nm>] [gw <nm>] dev <i/f>



게이트웨이 설정


# route add default gw <gw> dev <i/f>

# route del default gw <gw> dev <i/f>




[실습]


1번대 컴퓨터인 나에게 10번대 컴퓨터인 친구가 들어온다고 한다.

나가는, 들어오는 문 지정을 해줘야 한다.


# route add -net 192.168.10.0 netmask 255.255.255.0 dev eth2

=> 친구 ip를 정확히 모르기 때문에 네트워크 아이디를 전체(192.168.10.0)을 넣어준다.

   (게이트웨이는 다른 명령어를 통해 설정할 것)


하지만 들어온 친구가 다시 나갈 순 없다. 나가는 문도 만들어주자.

# route add default gw 192.168.10.2 dev eth2


Metric 값(나로부터 떨어진 거리)도 수동으로 설정 해줘야 한다.

# route add default gw 192.168.10.2 dev eth2 metric 2

=> 기존 것에 추가 되는 것이 아닌 새로 추가가 됨. 지정할 땐 한번에 명령어 내리는 것 필요


# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.1.0     *               255.255.255.0   U     1      0        0 eth2

192.168.10.0    *               255.255.255.0   U     0      0        0 eth2

default         192.168.10.2    0.0.0.0         UG    0      0        0 eth2

default         192.168.1.2     0.0.0.0         UG    0      0        0 eth2

default         192.168.10.2    0.0.0.0         UG    2      0        0 eth2


# route del default gw 192.168.10.2 dev eth2

=> 가장 가까운 metric 값인 0 부터 지운다.


지정한 10번대 지우기

# route del -net 192.168.10.0 (metric 2 dev eth2)

# route del -net 192.168.10.0 netmask 255.255.255.0 (dev eth2)





4. netstat


네트워크 관련 정보를 보는데 일반적으로 사용하는 범용 유틸리티. 옵션 없이 netstat만 사용할 경우, 현재 열려 있는 모든 소켓의 연결 상태를 보여준다.


# netstat -nA inet 항목 설명

Proto : 사용 중인 프로토콜

        udp : 전송 속도는 빠르나 오류 검출 없다. 한번 보내면 장땡일 때 주로 사용 ex)radio, tv 등

        tcp : 오류 검출

                3 hand shake (C -> S)  // 가져갈게요. 응 가져가. (확인 후)가져갔어요 다음것 주세요.


Recv-Q : 수신 소켓 버퍼에 존재하는 바이트 수

Send-Q : 송신 소켓 버퍼에 존재하는 바이트 수. 반대편 peer socket에 전송되지 못한 것

Local Address : 로컬 쪽 주소

Foreign Address : 상대편 주소

State

        LISTEN : 열려있음

        CLOSED : 닫혀있음

        ESTABLISHED : 연결 완료

SYN-SENT : 연결을 요청한 상태

SYN-RECEIVED : 연결 요구에 의한 응답을 준 후 확인메시지를 기다리고 있는 상태

FIN-WAIT, CLOSE-WAIT, FIN-WAIT2 : 연결 종료를 위해 종료 요청을 받은 후의 종료 과정



출처 : 구글 어딘가..




[명령어 옵션]


-a : all 정보 출력

-n : full format 형식으로 출력

-l : listen 상태 출력

-t : tcp 방식 출력

-u : udp 방식 출력

-r : route 테이블 출력

-p : program 을 함께 출력

-s : system log 출력 - 트래픽 량 확인 가능

        ex) # netstat -s > /backup/20141205_netlog


ex)

# netstat -lntup | grep 포트, 프로그램...

# netstat -lntup | grep ssh

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1813/sshd

tcp        0      0 :::22                              :::*                        LISTEN      1813/sshd


네트워크 안될 때 netstat 명령어 통해서 내가 접속하려는 프로그램 및 포트가 열려있는지 확인한다.





5. ping


ping은 상대 호스트가 응답할 수 있는지 확인하는 프로그램으로, 상대 호스트가 살아 있는지 확인하거나 네트워크 구간에서 패킷 손실을 확인하는 용도로 사용한다.

icmp 프로토콜 이용하며 TTL 에 따른 상대편 OS는 아래와 같이 확인할 수 있다.

TTL : 64, 128 -> Unix, Solaris, Linux

        250~    -> Windows



[명령어 옵션]


-c number : 패킷 보낼 횟수

-i number : 일반 사용자는 0.2초가 가장 빠르며 그 이하는 root 권한 필요

-s number : 패킷 사이즈


ex)

# ping -c 5 -i 0.2 -s 1000 192.168.1.134

PING 192.168.1.134 (192.168.1.134) 1000(1028) bytes of data.

1008 bytes from 192.168.1.134: icmp_seq=1 ttl=64 time=0.256 ms

1008 bytes from 192.168.1.134: icmp_seq=2 ttl=64 time=0.080 ms

1008 bytes from 192.168.1.134: icmp_seq=3 ttl=64 time=0.080 ms

1008 bytes from 192.168.1.134: icmp_seq=4 ttl=64 time=0.078 ms

1008 bytes from 192.168.1.134: icmp_seq=5 ttl=64 time=0.078 ms

--- 192.168.1.134 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 802ms

rtt min/avg/max/mdev = 0.078/0.114/0.256/0.071 ms

=> size 1000으로 했는데 1008 이 된 이유 : 헤더값 8byte이기 때문





6. traceroute


상대 호스트까지 도달하는 경로를 확인하는 프로그램

udp, icmp 프로토콜 이용


in Windows) tracert google.com


1) 명령어 옵션


-m number : 추적 횟수

-n : 결과는 숫자만 보여주세요





7. arp


ARP = Adress Resolution Protocal

ARP는 IP주소와 하드웨어주소인 MAC 주소를 매칭시켜 주는 테이블이며 네트워크에서 통신하기 위해서는 MAC 주소를 사용한다.

  => 실제. 이것 이용하여 비번 걸려있는 AP 사용하는 방법이 있다.


ex)

# arp

Address                  HWtype  HWaddress           Flags Mask            Iface

192.168.1.1              ether   00:50:56:c0:00:08          C                     eth2

192.168.1.2              ether   00:50:56:e6:c8:78     C                     eth2



임의의 IP주소와 MAC 주소를 매칭시켜보자.

# arp -s 192.168.1.10 00:11:22:33:44:55

# arp

Address                  HWtype  HWaddress           Flags Mask            Iface

192.168.1.254            ether   00:50:56:eb:7d:53   C                     eth2

192.168.1.1              ether   00:50:56:c0:00:08   C                     eth2

192.168.1.2              ether   00:50:56:e6:c8:78   C                     eth2

192.168.1.10             ether   00:11:22:33:44:55   CM                    eth2



삭제

# arp -d 192.168.1.10

# arp

Address                    HWtype        HWaddress           Flags Mask            Iface

192.168.1.254            ether     00:50:56:eb:7d:53      C                     eth2

192.168.1.1                ether     00:50:56:c0:00:08  C                     eth2

192.168.1.2                ether     00:50:56:e6:c8:78  C                     eth2

192.168.1.10                     (incomplete)                                                    eth2

=> 삭제되는데 조금의 시간인 필요 




8. nslookup


DNS Server 통해 도메인 - ip 확인 할 수 있음.


# yum install -y bind-utils

명령어를 통해 nslookup 명령어 설치 가능


in windows)

nslookup google.com

set type=ns : 네임서버의 설정 값 볼 수 있음

set type=any : 모든 정보

set type=a  : 기본 설정





9. dig


리눅스 전용 명령어. nslookup 보다 더 자세히 보여준다.

하지만 nslookup 을 더 많이 쓴다.





10. host


nslookup 과 비슷하지만 간단하게 보여주는 명령어




And