Firewall
Download
1 / 34

??? (Firewall) - PowerPoint PPT Presentation


  • 170 Views
  • Uploaded on

방화벽 (Firewall). 유닉스 네트워킹 실습 00190078 박혜정. 방화벽의 이해. 방화벽 (Firewall) 외부로부터 내부 망을 보호하기 위한 네트웍 구성 요소중의 하나로써 외부의 불법 침입으로부터 내부의 정보 자산을 보호하고 , 외부로부터 유해 정보의 유입을 차단하기 위한 정책과 이를 지원하는 H/W 및 S/W 를 총칭한다 공격 방법 비인가 접근 프로그램의 알려진 약점 이용 서비스 거부 스푸핑 이브즈드라핑. 필터링. 필터링. Secured Internal Network.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '??? (Firewall)' - arin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Firewall

방화벽 (Firewall)

유닉스 네트워킹 실습

00190078

박혜정


Firewall
방화벽의 이해

  • 방화벽 (Firewall)

    • 외부로부터 내부 망을 보호하기 위한 네트웍 구성 요소중의 하나로써 외부의 불법 침입으로부터 내부의 정보 자산을 보호하고, 외부로부터 유해 정보의 유입을 차단하기 위한 정책과 이를 지원하는 H/W 및 S/W를 총칭한다

  • 공격 방법

    • 비인가 접근

    • 프로그램의 알려진 약점 이용

    • 서비스 거부

    • 스푸핑

    • 이브즈드라핑


Firewall

필터링

필터링

Secured

Internal Network

Unsecured

Public Network

De-Military Zone

게이트웨이

(Proxy)

내부

네트워크

외부

네트워크

방화벽의 이해

  • 방화벽 시스템(Firewall System)기능

    • 안전하지않은 인터넷으로부터 내부망 보호

    • 내/외부 서비스를 중계하는 게이트웨이

    • 트래픽을 차단하는 필터링

    • 게이트웨이가 있는 중간지역(DMZ)


Firewall
방화벽의 이해

  • 방화벽의 종류

    • 패킷 필터링 방식

    • 어플리케이션 게이트웨이 방식

    • 서킷 게이트웨이 방식

    • 하이브리드 방식

    • 베스쳔호스트

    • 스크린 서브네트


Firewall
IP 필터링

  • IP 필터링은 무엇인가 ?

    • 라우터를 통과하는 패킷을 몇 가지 조건에 따라 필터링 하기 위한 것이다

    • 패킷 필터링 라우터는 보통 다음에 제시되는 항목들의 전부나 또는 일부에 기반을 두고 IP 패킷을 필터링할 수 있다.

    • 발신지 IP 주소

    • 목적지 IP 주소

    • TCP/UDP 발신지 포트

    • TCP/UDP 목적지 포트

    • 데이터그램 종류 : SYN/ACK, 데이터, ICMP 반향 요청 등


Firewall
리눅스 방화벽 설정

  • 리눅스 IP 방화벽을 만들기 위해선 커널이 IP 방화벽을 지원하게 컴파일해야 하고 그에 상응하는 설정 도구가 있어야 한다.

    • Ipfwadm –커널 2.2 시리즈 이전에서는 모두 사용

    • Ipchains –커널 2.2.x에서는 제 3세대 리눅스 IP 방화벽

    • Netfilter –커널 2.3.15이후부터 제 4세대 리눅스 IP 방화벽


Firewall
리눅스 방화벽 설정

  • IP 방화벽을 지원하는 커널 설정

    • 우선 커널 컴파일을 해야 할 필요가 있을지 모른다.

      Networking options --->

      [*] Network firewalls

      ....

      [*] IP: forwarding/gatewaying

      ....

      [*] IP: firewalling

      [*] IP: firewall packet loggin

      위에서 나타낸 옵션이 커널 기능에 들어 있어야만 가능하다


Firewall
IP 데이터그램의 처리 단계

2

4

?

?

1

5


Ip ipfwadm
IP 방화벽 - ipfwadm

  • Ipfwadm 유틸리티

    • 2.2.0 이전의 모든 커널에 대한 방화벽 룰을 만들때 사용하는 도구

    • 리눅스 커널에서 IP 방화벽, 통계분석 규칙을 설정, 유지, 감독하기 위한 도구

    • 분류 : -I [입력 룰], -O [출력 룰], -F [포워딩 룰]

    • ipfwadm -A 명령 매개변수 [옵션] ipfwadm -I 명령 매개변수 [옵션] ipfwadm -O 명령 매개변수 [옵션] ipfwadm -F 명령 매개변수 [옵션] ipfwadm -M [ -l | -s ] [옵션]


Firewall
IP 방화벽 설정

  • IP forwadding 을 위한 ipfwadm 이용

    # ipfwadm –F -f

    # ipfwadm -F -p deny

    # ipfwadm -F -a accept –p tcp –s 172.16.1.0/24 –D 0/0 80

    # ipfwadm –F –a accept –p tcp –s 0/0 80 –D 172.16.1.0/24

    -F 명령어 인자는 ipfwadm에게 이것이 포워딩 룰임을 알려준다


Firewall
IP 방화벽 설정

  • 룰 나열

    # ipfwadm -F –l

    • 이 명령어는 설정한 모든 포워딩 룰을 나열한다.

    • Ipfwadm 명령어는 /etc/services를 사용하여 만약 항목이 존재한다면 포트 번호를 서비스명으로 바꾼다.

      # ipfwadm -F -l -e

    • -e(확장 출력) 인자를 지정하여 세부항목을 좀더 많이 나열한다.


Ipfwadm
Ipfwadm 인자 요약

  • 분류

    • 방화벽에게 어떤 종류의 방화벽 룰을 설정하는지를 알려주는 역할을 하며 한번에 단 한가지만 사용한다.

      -A : IP 통계분석 규칙.

      -I : IP 입력 방화벽 규칙.

      -O : IP 출력 방화벽 규칙.

      -F : IP 전달 방화벽 규칙.

      -M : IP 매스커레이딩(masquerading) 관리.


Ipfwadm1
Ipfwadm 인자 요약 - 명령어

  • -a [정책]

    • 새로운 룰을 첨부한다.

    • accept, deny, 또는 reject. 출발지 또는 목적지 이름이 하나 이상의 주소를 나타낼 때는 그것이 나타내는 모든 주소 조합에 대하여 규칙이 추가된다.

  • -i [정책]

    • 선택한 목록의 맨 앞에 하나 또는 그 이상의 규칙을 삽입한다.

  • -d [정책]

    • 현존하는 룰을 삭제한다.

  • -l

    • 선택한 목록에 있는 모든 규칙을 보여준다.

  • -z

    • 선택한 목록의 모든 규칙에 대하여 패킷과 바이트 카운터를 0으로 돌려놓는다.


Ipfwadm2
Ipfwadm 인자 요약 - 명령어

  • -f

    • 선택한 규칙 목록을 비워버린다.

  • -p [정책]

    • 선택한 방화벽 유형에 대한 기본 정책을 바꾼다.

    • 정책으로 사용하는 값은 accept, deny, 또는 reject중하나이다.

  • -s tcp tcpfin udp

    • 매스커레이딩에 사용되는 타임아웃값을 바꾼다.

  • -c

    • 선택한 방화벽 유형에 대하여 IP패킷이 허가, 거부(deny) 또는 거절(reject)될 것인지 점검한다.

  • -h

    • 도움말. 명령 문법에 대한 설명을 보여준다.


Ipfwadm3
Ipfwadm 인자 요약 - 매개변수

  • -P protocol

    • 규칙 또는 점검할 패킷의 프로토콜을 말한다.

      • 프로토콜로 올 수 있는 값은 tcp, udp, icmp, 또는 all이다.

  • -S address[/mask] [port]

    • 출발지 명시 (선택적).

    • 주소 에는 호스트명, 네트웍명 또는 평범한 IP 주소가 올 수 있다.

  • -D address [/mask] [port]

    • 룰이 일치할 목적지 IP 주소를 지정한다.

  • -V address

    • 패킷을 받거나 보내는 통로가 되어 주는 인터페이스에 대한 주소로서 선택적이다.

  • -W name

    • 패킷을 주고 받는 인터페이스의 이름으로서 선택적이다.


  • Ipfwadm4
    Ipfwadm 인자 요약 –선택적 인자

    • -b

      • 양방향 모드. 규칙을 양방향 모두의 IP 패킷에 적용하도록 한다.

  • -o

    • 부합하는 패킷에 대하여 커널 로깅을 하도록 한다.

  • -y

    • 숫자를 확장. K (1000) 또는 M (1000K) 단위로 반올림 표현하지 않고 패킷과 바이트 카운터의 수치를 정확하게 표시한다

  • -k

    • ACK 비트가 설정된 TCP 패킷하고만 부합한다.

  • -e

    • 확장 출력. 이 옵션을 주면 list 명령에 대하여 인터페이스 주소와 규칙 옵션(존재한다면)을 추가로 보여준다.


  • Firewall
    ICMP 데이터그램 유형


    Ip ipchains
    IP 방화벽 - ipchains

    • Ipchains 유틸리티

      • 커널 개발버전 2.1.102부터 공식적으로 IP방화벽 관리도구로서 커널에 들어왔다.

      • 패킷 필터를 통해서 패킷의 헤더를 조사해서 설정된 규칙에 의해서 해당 패킷을 받아들일 것인가 버릴것인가를 결정한다

      • ipchains의 버전 확인 방법

        [root@eve /sbin]# ./ipchains –version

        ipchains 1.3.9, 17-Mar-1999

      • 체인의 종류 : ‘input’, ‘output’, ‘forward’


    Ip ipchains1
    IP 방화벽 - ipchains

    • 패킷 필터링 기능을 위한 조건

      • 커널 안에 IP방화벽 사슬(Generic IP Firewall Chain) 기능을 갖추고 있어야 한다.

      • 현재 사용하고 있는 커널이 패킷 필터링 기능을 포함하는지 확인하기 위해서는 /proc/net/ip_fwchains파일이 있는지 확인

      • 패킷필터링을 위해 추가해야할 설정 옵션

        CONFIG_EXPERIMENTAL

        CONFIG_FIREWALL

        CONFIG_IP_FIREWALL

        CONFIG_IP_FIREWALL_CHAINS


    Ipchains
    Ipchains - 명령어

    • ipchains 설정 파일

      • -N : 새로운 체인을 만든다.

      • -X : 빈 사슬을 지운다.

      • -P : 내장 사슬에 대한 기본 정책을 변경한다.

      • -L : 사슬 속에 든 규칙을 나열한다.

      • -F : 사슬로부터 규칙을 모두 방출한다.

      • -Z : 사슬 속의 모든 규칙에 대한 패킷, 바이트 카운터 값을 0 으로 설정한다.

  • ipchains 내의 규칙 설정 방법

    • -A : 사슬에 새로운 규칙을 추가한다.

    • -I : 사슬 속 어딘가에 새로운 규칙을 삽입한다.

    • -R : 사슬 속 특정 위치의 규칙을 교체한다.

    • -D : 사슬 속의 특정 규칙을 삭제한다.


  • Ipchains1
    Ipchains - 명령어

    • 패킷 특성 옵션

      • -s : 패킷의 발신지를 명시한다

      • -d : 패킷의 도착지를 명시한다

      • -p : 패킷의 프로토콜을 명시한다

      • -I : 규칙을 적용할 인터페이스 이름을 명시한다

      • -y : 접속 요청 패킷인 SYN패킷을 허용하지 않는다

      • -f : 두 번째 이후의 조각에 대해서 규칙을 명시한다

  • 규칙의 추가나 삭제는 추가(-A), 삭제(-D) 명령을 사용한다.


  • Ipchains2
    Ipchains - 예제

    • 예를 들어 127.0.0.1 이라는 IP 주소로부터 오는 모든 ICMP 패킷을 무시하는 경우를 고려하자.

      # ping -c 1 127.0.0.1

      # ipchains -A input -s 127.0.0.1 -p icmp -j DENY

      # ping -c 1 127.0.0.1

    • 규칙을 지우는 첫 번째 방법

      # ipchains -D input 1

    • 규칙을 지우는 두 번째 방법

      # ipchains -D input -s 127.0.0.1 -p icmp -j DENY


    Ipchains3
    Ipchains - 예제

    • 새로운 체인 만들기

      # ipchains -N test

    • 체인 지우기

      # ipchains -X test

    • 체인 비우기

      # ipchains -F forward

    • 사슬 내용 보기

      # ipchains -L input

      # ipchains -L test

      # ipchains -v -L input


    Netfilter iptables 2 4
    Netfilter와 iptables(커널 2.4)

    체크섬

    sanity

    Input

    체인

    Demasq?

    라우팅

    결정

    Masq?

    Forward

    체인

    Output

    체인

    로컬

    프로세스

    IP 체인의 데이터그램 처리 체인


    Netfilter iptables 2 41
    Netfilter와 iptables(커널 2.4)

    체크섬

    sanity

    라우팅

    결정

    Forward

    체인

    라우팅

    결정

    Input

    체인

    Output

    체인

    로컬

    프로세스

    Netfilter내의 데이터그램 처리 체인


    Ip iptables
    IP 방화벽 - iptables

    • Iptables 유틸리티

      • 리눅스 IPv4 방화벽을 설정하는 명령어

      • iptables의 버전을 확인하는 방법

        # iptables --version

        iptables 1.2.4

      • 커널은 3가지의 방화벽 체인(chain)을 기본적으로 가지고 패킷 필터링을 시작한다.

        체인이라 부르는 이 3가지는 입력(Input), 출력(Output), 전달(Forward)이다.


    Iptables
    Iptables - 명령어

    • -A : 새로운 규칙을 추가한다.(--append)

    • -D : 규칙을 삭제한다.(--delete)

    • -C : 패킷을 테스트한다.(--check)

    • -R : 새로운 규칙으로 교체한다.(--replace)

    • -I : 새로운 규칙을 삽입한다.(--insert)

    • -L : chain에 설정된 규칙을 출력한다.(--list)

    • -F : chain으로부터 규칙을 모두 방출(삭제)한다.(--flush)

    • -Z : 모든 chain의 패킷과 바이트 카운터 값을 0으로 만든다.(--zero)

    • -N : 새로운 chain을 만든다.(--new)

    • -X : chain을 삭제한다.(--delete-chain)

    • -P : 기본정책을 변경한다.(--policy)


    Iptables1
    Iptables –매개변수

    • -s : 패킷의 발신지를 명시한다.(--source)

    • -p : 패킷의 프로토콜을 명시한다.(--protocol)

    • -d : 패킷의 도착지를 명시한다.(--destination)

    • -i : 규칙을 적용할 인터페이스 이름을 명시한다.(--interface)

    • -j : 규칙에 맛는 패킷을 어떻게 처리할 것인가를 명시한다.(-jump)

    • -y : 접속 요청 패킷인 SYN패킷을 허용하지 않는다.(--syn)

    • -f : 두 번째 이후의 조각에 대해서 규칙을 명시한다.(--fragment)


    Iptables2
    Iptables의 확장

    • TCP 확장 : -m tcp –p tcp 로 사용

      • --tcp-flags

        : '!' 옵션을 사용한다면 이것 뒤에 두개의 단어를 사용한다. 첫번째 것은 검사하고자 하는 지시자 리스트의 마스크이고 두번째 단어는 지시자에게 어떤것이 설정 될 것인지를 말해준다.

      • --syn

        : !' 옵션이 선행될 수 있다. 이것은 '--tcp-flags SYN,RST,ACK,SYN'의 약어이다.

      • --source-port

        :/etc/services 에 기록된 것과 같은 포트 이름이 사용될 수 도 있고 숫자로 나타낼 수도 있다.

      • --sport

      • --destination-port와 --dport

      • --tcp-option

        : '!' 나 숫자가 옵션에 선행될 수 있는데 숫자가 앞에 올경우 그 숫자 와 TCP 옵션이 같은 경우의 패킷을 검사한다.


    Iptables3
    Iptables의 확장

    • UDP 확장

      • 이 확장은 '--protocol udp'가 지정되고 적용이 저정되지 않으면 자동으로 적재된다. 이것은 '--source-port', '--sport', '--destination-port', '-dport'를 지원하고 내용은 TCP 설명에서 자세히 나왔다

  • ICMP 확장

    • --icmp-type

      : '!' 옵션이 선행될 수 있다. 이후에 ICMP 타입의 이름('host-unreachable') 이나 숫자형태 ('3'), 또는 숫자형태와 코드('/'로 분리 예. '3/3') 의 형 태가 사용된다. 사용할 수 있는 ICMP 형태의 이름의 리스트는 '-p icmp --help' 하면 나타난다.


  • Iptables4
    Iptables - 예제

    • 만약 네트워크에 24비트 네트워크 마스크(C 클래스)가 있고 172.16.1.0의 주소를 가지고 있다면,

      다음 iptables 룰을 사용할 것이다.

      # modprobe ip_tables

      # iptables –F FORWARD

      # iptables –P FORWARD DROP

      # iptables -A FORWARD –m tcp –p tcp –s 0/0 --sport 80

      –d 172.16.1.0/24 / --syn –j DROP

      # iptables -A FORWARD –m tcp –p tcp -s 172.16.1.0/24

      --sport / 80 –d 0/0 –j ACCEPT

      # iptables -A FORWARD –m tcp –p tcp -d 172.16.1.0/24

      --dport 80 –s 0/0 –j / ACCEPT


    Iptables5
    Iptables - 예제

    • 예를들어, 여러분은 127.0.0.1로부터의 모든 ICMP패킷을 DROP하려고 할 것이다. 그렇다면, 이경우 일치되어야할 상태는 'ICMP이면서 그 출처가27.0.0.1' 이다. 이 경우 'target' 은 DROP 이다. 127.0.0.1은 'loopback' 인터페이서 이고 실제적인 네트워크 접속이 전혀 없더라도 이것은 가지고 있을 것이다. 이러한 패킷은 'ping' 프로그램을 이용하여 생성할 수 있다.

      # ping -c 1 127.0.0.1

      # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP

      # ping -c 1 127.0.0.1


    Iptables6
    Iptables - 예제

    • 예로, 다음과 같은 규칙은 192.168.1.1 로 향하는 분절을 DROP 시킨다.

      # iptables -A OUTPUT -f -d 192.168.1.1 -j DROP

    • 규칙을 지우는 첫 번째 방법

      # iptables -D input 1

    • 규칙을 지우는 두 번째 방법

      # iptables -D input -s 127.0.0.1 -p icmp -j DROP


    Iptables7
    Iptables - 예제

    • 새로운 체인 생성

      # iptables -N test

    • 체인 제거

      # iptables -X test

    • 체인 비우기

      # iptables -F forward