145
2TH PROJECT Uranos OS 시시시 시시 Uranos OS 1/145 210X297mm 시시시시 70g/m 2 Uranos OS 기기기기 - FIREWALL ©Copyright 2009 Uranos OS All Righ Reserved

pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Embed Size (px)

Citation preview

Page 1: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

2TH PROJECT

Uranos OS

시스템 보안

Uranos OS 1/144 210X297mm 인쇄용지 70g/m2

Uranos OS

기술문서 - FIREWALL

©Copyright 2009 Uranos OS All Rights Reserved

Page 2: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

IPTABLES & Kernel 기술문서

Uranos OS

시스템 보안

Uranos OS 2/144 210X297mm 인쇄용지 70g/m2

Uranos OS

©Copyright 2009 Uranos OS All Rights Reserved

Page 3: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1 Iptables(내부)1.1 Iptables 의 정의

iptables 명령은 리눅스 IPv4 방화벽을 설정하는 명령어이다. 1.1 시리즈 부터 리눅스 커널은

패킷 필터링을 포함하기 시작했다. 제 1 세대는 BSD 의 ipfw 를 기본으로 했고 1994 년 후반기에 알란 콕스(Alan Cox) 에 의해서

포트 됐다. 이것은 리눅스 2.0 에서 Jos Vos 와 다른이들에 의해서 개선됐고 커널의 필터링 규칙을 제어하는

사용자 툴로는 'ipfwadm'이 사용됐다. 1998 년 중반에 리눅스 2.2 를 위해 사용자 툴로 'ipchains'를 내놓았다. 마지막으로, 제 4 세대

툴이 'iptables'이고 리눅스 2.4 를 위해 1999 년 중반에 커널을 재작성했다.

패킷 필터란 네트워크를 통하는 모든 것은 패킷의 형태를 가지며, 패킷의 앞부분에는 패킷이

어디서 왔는지 어디로 향하는지, 어떤 프로토콜을 이용하는지 등과 같은 정보를 가지고 있다. 패킷 필터는 이렇게 지나가는 패킷의 헤더를 보고 패킷을 ‘DROP'(마치 전혀 전달되지 않는

것처럼 패킷을 거부) 하거나 ’ACCEPT‘(패킷이 지나가도록 내버려 둠)하는 등의 작업을 하는

프로그램을 말한다. iptables 은 이런 패킷 필터링 기능을 설정하는데 사용할 수 있는

프로그램이다. 자신의 시스템에 설치돼 있는 iptables 의 버전을 확인하는 방법은 아래명령을

통해 가능하다.

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

체인 혹은 체인이라 부르는 이 3 가지는 입력(Input), 출력(Output), 전달(Forward)이다. 입력체인은 들어오는 패킷을 조사하고 전달체인은 외부의 다른 시스템으로 전달될 패킷을

조사한다. 마지막으로 출력체인은 외부로 나가는 패킷을 조사한다.

Uranos OS 3/144 210X297mm 인쇄용지 70g/m2

Page 4: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1.2패킷 검사 방법

1. 패킷이 커널에 도착하면 그 패킷의 목적지를 확인한다. 이것을 '라우팅' 이라고 한다.

2. 패킷의 목적지가 이곳이면, 패킷은 전달돼 입력체인에 도달한다. 패킷이 입력체 인을

통과하면 패킷을 기다리고 있던 프로세서가 받게 된다.

3. 그렇지 않고 커널이 포워딩 불능이나, 패킷을 어떻게 포워딩해야 하는가를 알지 못하면, 그

패킷은 ‘DROP‘ 된다. 포워딩이 가능하게 돼있고 다른 곳이 목적지이면 패킷은 그림의 오른쪽

방향으로 전달돼 포워딩 체인으로 간다. 이 체인이 ’ ACCEPT‘ 하게 되면 이것은 포워딩 할

네트워크로 보내진다.

4. 마지막으로, 로컬에서 수행하던 프로그램은 네트워크 패킷을 전송할 수 있다. 이 패킷은 즉시

출력 체인에 보내지며 이 체인이 ‘ACCEPT’되면 이 패킷은 그 목적지가 어디든지 보내진다.

1.3사용법

iptables -[ADC] chain rule-specification [options] iptables -[RI] chain rulenum rule-specification [options] iptables -D chain rulenum [options] iptables -[LFZ] [chain] [options] iptables -[NX] chain iptables -P chain target [options] iptables -h (print help information)

Commands -A : 새로운 규칙을 추가한다.(--append) -D : 규칙을 삭제한다.(--delete) -C : 패킷을 테스트한다.(--check) -R : 새로운 규칙으로 교체한다.(--replace) -I : 새로운 규칙을 삽입한다.(--insert) -L : chain 에 설정된 규칙을 출력한다.(--list) -F : chain 으로부터 규칙을 모두 방출(삭제)한다.(--flush) -Z : 모든 chain 의 패킷과 바이트 카운터 값을 0 으로 만든다.(--zero) -N : 새로운 chain 을 만든다.(--new)

Uranos OS 4/144 210X297mm 인쇄용지 70g/m2

Page 5: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

-X : chain 을 삭제한다.(--delete-chain) -P : 기본정책을 변경한다.(--policy) ==>more

chain INPUT : 입력에 대한 사용

OUTPUT : 출력에 대한 사용

FORWARD : 전달(forwarding)에 대한 사용

Options -s : 패킷의 발신지를 명시한다.(--source) -p : 패킷의 프로토콜을 명시한다.(--protocol) -d : 패킷의 도착지를 명시한다.(--destination) -i : 규칙을 적용할 인터페이스 이름을 명시한다.(--interface) -j : 규칙에 맛는 패킷을 어떻게 처리할 것인가를 명시한다.(-jump) -y : 접속 요청 패킷인 SYN 패킷을 허용하지 않는다.(--syn) -f : 두 번째 이후의 조각에 대해서 규칙을 명시한다.(--fragment)

Ex) 127.0.0.1 IP 주소로부터 오는 모든 ICMP 패킷을 무시하는 경우 사용되는 프로토콜은 ICMP이고 발신 주소는 127.0.0.1 이어야 한다. 그리고 패킷 필터의 목표는 드롭(DROP)이다. 테스트하는 프로그램은 ping 이며 ping 은 단순히 ICMP type 8 로 반응요구를 보내며 이에

협조하는 대상 호스트는 ICMP 타입 0(echo reply)를 보내어 응답하도록 돼 있다. 이제 iptables의 패킷필터를 통해 로컬호스트가 ping 명령에 반응하지 않도록 하겠다.

1) 통상 상태

2) /etc/sysconfig 내의 iptables 수정

Uranos OS 5/144 210X297mm 인쇄용지 70g/m2

Page 6: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

3) DROP 확인

1.4설정된 iptables 의 규칙 삭제

지금 현재 입력돼 있는 chain 이 하나밖에 없으므로 숫자를 지정하는 명령으로 삭제가 가능하며, 앞의 명령과 똑같이 하되 -A 를 -D 로 바꾸어 지우는 방법이 있다.

#iptables -D INPUT 1 #iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP

다만 /etc/sysconfig 내의 iptables 를 직접 수정하는 쪽이 편하다.

Uranos OS 6/144 210X297mm 인쇄용지 70g/m2

Page 7: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1.5Chain 규칙

설정돼 있는 체인의 규칙을 모두 볼 수 있다. 명령으로 -L 을 사용해 가능하며 -v 옵션과 같이

사용해 각 체인에 대한 패킷과 바이트 카운터 등의 자세한 정보를 함께 볼 수 있다.

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

Chain INPUT (policy ACCEPT 709 packets, 35362 bytes)

pkts bytes target prot opt in out source destination 0 0 DROP icmp -- any any localhost.localdomain anywhere

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 423 packets, 39549 bytes)

pkts bytes target prot opt in out source destination

일반적으로 Linux 에 기본 적으로 깔려 있는 내용들은 더 있으나 그 부분에 대해서는 차후에

이야기 하도록 한다.

Uranos OS 7/144 210X297mm 인쇄용지 70g/m2

Page 8: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1.6Chain 비우기

하나의 체인 안의 모든 규칙을 비우는 것은 ‘-F’ 명령을 사용해 간단하게 할 수 있다. 체인을

지정하지 않으면 모든 체인의 규칙을 지울 수 있다.

#iptables -F INPUT

1.7출처와 목적지 지정(Source & Destination)출처('-s', '--source', '--src')와 목적지('-d', '--destination', '--dst') IP 주소를 지정하는데 4가지 방법이 있다.

가장 보편적인 방법은 'www.linuzine.com', 'localhost'처럼 도메인 네임을 이용하는 것이다.

두번째 방법은 '127.0.0.1'과 같은 IP 주소를 이용하는 것이다.

세번째와 네번째 방법은 IP 주소의 그룹을 지정하는 것으로 '199.95.207.0/24' 또는

'199.95.207.0/255.255.255.0' 같은 형태이다. 이 둘은 모두 199.95.207.0 부터

199.95.207.255 사이의 모든 IP 주소를 지정한다. '/' 다음의 숫자는 IP 주소의 어떤 부분이 의미

있는가를 나타낸다. '/32' 나 '/255.255.255.255' 가 기본 값이다.(IP 주소의 모든 부분이

일치해야 한다.) 모든 IP 주소를 지정하는데 '/0' 가 사용된다.

# iptables -A INPUT -s 0/0 -j DROP 많은 지시자들('-s'나 '-d' 같은)은 일치하지 않는 주소를 나타내기 위해 '!'('not'을 의미한다)로

시작하는 설정을 할 수 있다. 예로, '-s !localhost' 는 localhost 로부터 오는 패킷이 아닌 경우를

나타낸다.

1.8Protocol프로토콜은 '-p' 지시자로 지정할 수 있다. 프로토콜을 숫자가 될 수 있고(IP 의 프로토콜 번호를

알고 있다면) 'TCP', 'UDP', 'ICMP' 같은 이름이 될 수도 있다. 그리고 'tcp'는 'TCP'와 같은

역할을 한다. 프로토콜 이름 지정에도 '!'을 이용 할 수 있다. '-p ! TCP'

Uranos OS 8/144 210X297mm 인쇄용지 70g/m2

Page 9: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1.9TCPTCP 확장은 '--protocol tcp' 가 지정되고 다른 적용이 지정되지 않으면 자동으로 적재된다. 이것은 다음과 같은 옵션을 제공한다.

--tcp-flags 뒤에 두개의 단어를 사용한다. 첫번째 것은 검사하고자 하는 지시자 리스트의 마스크이다. 두번째

단어는 지시자에게 어떤 것이 설정 될 것인지를 말해준다.

# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP 이것은 모든것이 검사돼야 함을 말한다. 그러나 SYN 과 ACK 만 설정된다.

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

--source-port, '!' 옵션이 선행될 수 있다. 이후에 하나의 TCP 포트나 포트의 범위를 지정한다.

--sport /etc/services 에 기록된 것과 같은 포트 이름이 사용될 수 도 있고 숫자로 나타낼 수도 있다. 범위는 두 개의 포트 이름을 '-'으로 연결해서 사용하거나 하나의 포트 뒤에 '-'를 사용하거나

하나의 포트 앞에 '-' 를 덧붙일 수 있다.

--destination-port, --dport 위의 내용과 같으나 목적지를 지정한다.

--tcp-option '!' 나 숫자가 옵션에 선행될 수 있는데 숫자가 앞에 올 경우 그 숫자 와 TCP 옵션이 같은 경우의

패킷을 검사한다. TCP 옵션을 검사하려 할 때 완전한 TCP 헤더를 갖지 않는 것은 자동으로 드롭

된다.

Uranos OS 9/144 210X297mm 인쇄용지 70g/m2

Page 10: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1.10 Port

iptables 는 테이블 형식으로 관리를 한다. 그리고 먼저 등록된 것이 효력을 발생하기 때문에

등록을 하는 순서가 중요하다. 모든 것을 거부하는 설정이 먼저 오게 되면 그 이후에 포트를

열어주는 설정이 와도 효과가 없다. 그러므로 허용하는 정책이 먼저 오고 나서 거부하는 정책이

와야 한다.

iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 22:30 -j DROP

이렇게 하면 먼저 25 번 포트로 들어오는 것을 허용하고 난 후에 다른 것을 막아내기 때문에

제대로 된 설정이 된다.

iptables -A INPUT -p tcp --dport 22 -j ACCEPT 등록된 라인은 ssh 를 사용하는 것을 허용하는 것이다. 출처(source)와 목적지(destination)는

명시하지 않았기 때문에 전체포트와 IP 가 대상이 된다. -dport 는 패킷이 대상으로 삼는 포트를

명시한 것이다 여기에서 22 라고 표기한 것은 ssh 서비스 포트이다. 그리고 마지막에 -j ACCEPT는 허용하도록 정책을 정하는 것이다. 따라서 여기로의 ssh 서비스를 요청하는 패킷은 허용되도록

설정을 한 것이다.

1.11 Simple config

# ssh 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# httpd 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# pop3 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 109 -j ACCEPT

# pop2 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT

# imap 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT

Uranos OS 10/144 210X297mm 인쇄용지 70g/m2

Page 11: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

# mysqld 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# ftpd 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# ftp-data 열기

/usr/local/bin/iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# ircd 열어주기

/usr/local/bin/iptables -A INPUT -p tcp --dport 6667 -j ACCEPT /usr/local/bin/iptables -A INPUT -p udp --dport 6667 -j ACCEPT

# 전부 거절하기

/usr/local/bin/iptables -A INPUT -p tcp --dport 1:30000 -j DROP

/usr/local/bin/iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

이처럼 허용하는 서비스가 한정적이다. 우선 ssh, http, pop3, pop2, imap, mysql, ftp, ircd 를

위해서 서비스를 요청하는 패킷은 허용하고 나머지는 전부 거부하는 설정이다. 이 설정을 자세히

보면 tcp 와 icmp 를 대상으로 했다. 거절하는 줄인

/usr/local/bin/iptables -A INPUT -p tcp --dport 1:30000 -j DROP

이 라인에서 --dport 다음에 1:30000 으로 지정돼 있다. 이 부분은 서버를 경유해서 다른 곳으로

가고자하는 경우에 클라이언트 프로그램이 사용할 포트를 남겨주기 위함이다. 1 번포트에서

30000 번 포트까지는 완전히 tcp 에 대해서 막는 것이다. 만약에 서버에서 나갈 이유가 없으면 전부 막으면 된다. 1:65535 로 설정하면 전체 포트가

막힌다. iptables 설정은 조금만 공부를 하면 쉽게 습득이 가능하다. 그러므로 문서를 보는 것이

중요하다. 이 설정은 기본이므로 좀더 많은 것은 관련 문서를 이용하기를 바란다.

Uranos OS 11/144 210X297mm 인쇄용지 70g/m2

Page 12: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

2 Iptables(외부)

2.1MASQUERADEIP Msquerade 정의

- IP 마스커레이드는 리눅스에서 개발되고 있는 네트워킹 기능이다

- 사설 IP 주소를 서버의 IP로 가장하여 서버와 연결되어 있는 네트워크 호스트와 함께 외부

인터넷 자원을 공유할 수 있도록 해주는 네트워크 고급 기법이다.

- 리눅스 호스트 컴퓨터가 IP 머스커레이드가 가능한 상태에서 인터넷에 연결되어 있다면, 그

호스트와 연결된 컴퓨터들은 IP가 없더라도 인터넷이 가능하게 된다.

- 이러한 IP Masquerade를 이용하면 비용을 절감할 수 있다는 것이 가장 큰 장점이다.

IP Masquerade 의 동작원리

- IP 마스커레이드의 동작 원리를 이해하기 위해서 다음과 같은 예를 들어본다.

세 대의 컴퓨터가 LAN으로 연결되어 있고 IP Masquerade 기능이 가능한 리눅스 호스트에는

두개의 IP 주소가 할당되어 있다.(210.94.74.177, 192.168.0.1)

- 이 때 리눅스 호스트 컴퓨터를 IP Masquerade의 게이트웨이로 지정하여 인터넷에 연결하기

위한 내부 네트워크의 게이트웨이 역할을 하도록 한다. 그러면 Masquerade-gateway 리눅스

컴퓨터는 모든 내부에 연결된 컴퓨터를 담당하며 그것들이 외부로 나갈 때 자신이 나가는 것

처럼 행동하고 데이터가 외부에서 들어오면 적절한 곳으로 보내기 위해 준비를 하게 된다.

Uranos OS 12/144 210X297mm 인쇄용지 70g/m2

Page 13: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

2.2사용법

/etc/sysconfig/iptables 에서의 설정

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 203.247.50.3iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 203.247.50.3-203.247.50.7iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 203.247.50.3:1-1023

SNAT에서의 설정

=> -o는 패킷을 보내는 인터페이스 장치를 지정한다. SNAT에서는 패킷을 내보내는 장치를

지정할 수 있다. --to 는 나가는 패킷에 부여할 소스 주소이다. IP공유라면 --to는 인터넷

쪽의 공인 IP를 지정하면 된다.(지정하지 않아도 상관없다.)

확인

Cain POSTROUTING 부분에서 모든 포트에 대해 MASQUERADE 정책이 실행됨을

알 수 있다.

Ex1)ㄱ. 한국통신 ADSL을 리눅스에 연결해 인터넷을 공유(IP MASQUERADING)하는 경우

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

ㄴ. 고정 IP를 사용하는 리눅스에서 인터넷을 공유하는 경우

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 203.247.50.3=> 참고로 192.168.0.0/24는 지정하지 않아도 된다.

Uranos OS 13/144 210X297mm 인쇄용지 70g/m2

Page 14: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

ㄷ. 유동 IP를 사용하여 인터넷을 공유하는 경우

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Ex2)tcp 프로토콜을 사용하여 들어오는 패킷들중에 Buy Now 라는 문구가 포함된 패킷은 거부하고, 리셋한다. iptables -A INPUT -p tcp -m string --string "Buy Now" -j REJECT --reject-with tcp-reset 만약 로그를 남기고 거부하고 싶다면. iptables -A INPUT -p tcp -m string --string "Buy Now" -j LOG iptables -A INPUT -p tcp -m string --string "Buy Now" -j REJECT --reject-with tcp-reset

2.3DNAT(Destination NAT)

정의

DNAT는 부하분산이나 평준화에만 사용하는 것은 아니다. 간단한 방화벽으로도 유용하다.

리눅스 A(203.247.50.3)에 DNAT를 설정하여 웹서버와 메일서버를 각각 내부주소인 리눅스 B

(192.168.1.11)와 리눅스 C(192.168.1.12)에서 서비스 하도록 지정하고 인터넷에서 다른

연결은 리눅스 A로 지정하면 리눅스 A는 간단한 방화벽과 같은 구실을 한다.

Ex)

ㄱ. 웹서버(192.168.1.11) 분산

iptables -A PREROUTING -t nat -p tcp -d 203.247.50.3 --dport 80 -j DNAT \--to 192.168.1.11:80

- -A PREROUTING: DNAT는 먼저 목적지 주소를 변경하고 (203.247.50.3을 192.168.1.11로)

다음에 라우팅이 이루어진다.

- -t nat: 부하분산도 nat기능이다.

- -p tcp: 웹(www)은 tcp를 사용한다.

- -d 203.247.50.3 --dport 80: 들어오는 패킷의 목적지 주소가 203.247.50.3이고 포트번호

가 www(80번)인 경우만 이 규칙을 적용한다.

- j DNAT: destination NAT

- --to 192.168.1.11:80 => 패킷의 목적지 주소를 192.168.1.11 포트번호를 80번으로 설정

하라는 뜻이다. 192.168.1.11 서버에서는 80번 포트에서 웹서버 프로그램을 가동해야 한

다.

Uranos OS 14/144 210X297mm 인쇄용지 70g/m2

Page 15: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

ㄴ. 메일서버(192.168.1.12)

iptables -A PREROUTING -t nat -p tcp -d 203.247.50.3 --dport 25 -j DNAT 192.168.1.12:25

ㄷ. DNS서버를 192.168.1.10으로 변경하려면 다음과 같이 지정한다.

iptables -A PREROUTING -t nat -p udp -d 203.247.50.3 --dport 53 -j DNAT --to 192.168.\1.10:53

=> DNS는 UDP를 사용한다.

확인

iptables -t nat -L

=> 설정을 보통 포트이름등으로 보여준다.

iptables -t nat -nL

=> 설정을 포트넘버등 숫자로 보여준다.

설정의 해제

iptables -t nat -F

iptables option

-t 옵션 : 테이블 선택

-t nat : NAT 작동을 하기 위해서 언제나 NAT 테이블에 사용

-A 옵션 : chain 끝에 새로운 규칙 추가

ex ) -A POSTROUTING

-I 옵션 : chain 처음에 새로운 규칙 추가

ex ) -I PREROUTING

-s 옵션 : 패킷이 변환된 후의 발신지 설정

-d 옵션 : 패킷이 변환된 후의 수신지 설정

-i 옵션 : 패킷이 나가는 네트워크 인터페이스 설정 POSTROUTING

-o 옵션 : 패킷이 들어오는 네트워크 인터페이스 설정 PREROUTING

발신지 주소를 1.2.3.4 로 변경하기

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4수신지 주소를 5.6.7.8 로 변경하기

iptables -t nat -A PREROUTING -o eth0 -j DNAT --to 5.6.7.8

Uranos OS 15/144 210X297mm 인쇄용지 70g/m2

Page 16: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

2.4Protocol※ TCP(Layer 4(Transport)) MATCHES : 연결지향적이다. : -p tcp, --protocol tcp

--sport, --source-port -> 1024 ~ 65535 사이의 값 이용

--dport 23/telnet(/etc/services), --destination-port : 숫자 대신에 문자를 쓰고

싶을때 해당위치에 있는곳의 절대경로를 적어줘야 한다. --tcp-flags SYN, FIN, ACK SYN, ACK : 이것보다는 상태추적을 많이 사용하게 된다.

※ UDP(Layer 4(Transport)) MATCHES : 연결없이 데이터를 전송받는다. 무조건

보내기만 한다. : UDP Application -> TFTP -UDP:69 Syslog -UDP:514 NTP(Network Time Protocol) -UDP:123 DHCP -UDP:67 UDP:68

--p udp, --protocol udp --sport, --source-port, -same source port as destination port : source

port 가 destination port 가 똑같다. --dport 123/ntp(/etc/services), --destination-port : destination port 를

쓸때는 숫자를 많이 이용하게 된다.

※ ICMP(Internet Control Messaging Protocol) MATCHES : ICMP Types (echo-request -PING, echo-reply -pong)

-p icmp, --protocol icmp --icmp-type name/number Deny ICMP echo-replies from all hosts -> /sbin/iptables -A INPUT -p icmp-type echo-reply -j DROP => work 컴이 serv 컴한테 echo-request 를 보내게 되면 serv 컴은 work 컴한테

echo-reply 를 보내게 된다.

Uranos OS 16/144 210X297mm 인쇄용지 70g/m2

Page 17: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

2.5Mac address Filtering

※ MAC address filteringIP 주소는 쉽게 위조가능

MAC 의 위조는 어렵다.

-m mac, --mac-source 00:00:00:00:00:00(mac address) 처음 24 비트는 제조사

일련번호 다음 2 비트는 제품 일련번호이다.

※ iptables -F INPUT iptables -nL iptables -P INPUT ACCEPT clear && iptables -nL iptables -A INPUT -s 192.168.234.20 -j DROP clear && iptables -nL Test Com ping -c 2 serv -> 접속이 안됨. ftp serv -> 접속이 안됨. telnet serv -> 접속이 안됨. vi /etc/sysconfig/network-scripts/ifcfg-eth0 -> ipaddress 를 30 으로 수정... service network restart

ping -c 2 serv -> 접속이 잘 됨. ftp serv -> 접속이 잘 됨. telnet serv -> 접속이 잘 됨.

이것이 문제가 된다... ip 만 바꾸면 쉽게 접근을 할수가 있다. 그렇기 때문에 MAC address 를 알아서 그것을 막아버려야 한다. 이것을 알기 위해서는 log

를 봐야한다.

iptables -R INPUT 1 -m mac --mac-source 00:0C:29:4E:93:E5 -j DROP >>mac address filtering

Uranos OS 17/144 210X297mm 인쇄용지 70g/m2

Page 18: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

2.6Log 및 Portsentry

※ Firewall LOG /etc/syslog.conf 를 이용한 log 위치 재지정

기본값으로 /var/log/message 에 저장

kern.* /var/log/firewall 로 수정

service syslog restart

Log-prefix Log 기록에 코멘트 첨부

--log-prefix "unknown port attemped..."

※ Portsentry Portsentry 는 host 기반 침입탐지 시스템으로 열려있는 모든 포트를 모니터링 할 수 있는

특징을 가지고 있으면 TCP/UDP 포트스캔을

탐지할 수 있고 포트스캔 공격을 받았을 경우 방화벽과 연동하여 보안 정책을 새롭게 재구성

할 수 있다.

특징 1) 호스트로 들어오는 모든 패킷을 ROUTE 명령으로 DROP 시킬수 있음

2) Xinetd 기반의 서비스에 접근하지 못하도록 /etc/

download 위치

http://rpm.pbone.net/ -> portsentry 검색 -> fedora 4 download -> 밑으로. Portsentry-1.2.1.te.i386.rpm -> download

serv rpm -Uvh Portsentry-1.2-1.te.i386.rpm rpm -ql Portsentry -> /etc/Portsentry/Portsentry.conf 를 확인. cd /etc/Portsentry/ pwd ls -l vi Portsentry.conf -> : set nu 96 번째 행에서 RESOLVE_HOST = "1"을 RESOLVE_HOST = "0"으로 수정

이름풀이가 가능하게 할것인지 말것인지를 결정. 132 번째 행과 133 번째 행이 중요하다. => BLOCK_UDP="1" , BLOCK_TCP="1"

Uranos OS 18/144 210X297mm 인쇄용지 70g/m2

Page 19: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

206 번째 행에서 보면 #KILL_ROUTE="/sbin/iptables -I input -s $TARGET$ -j DROP

282 번째 행에서 SCAN_TRIGGER="2"을 SCAN_TRIGGER="0"으로 수정 : 2초후에 반응하라-> 즉각처리.

설치후 파일

1) portsentry -portsentry 실행파일

2) Portsentry.conf - 환경설정 파일

3) Portsentry.history - 현재까지 거부된 모든 host 정보 저장

4) Portsentry.ignore - 감시예외 파일 감시하고 있는 특정 포트에 접근해도 무시하길

바라는 host ip 주소를 추가

iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPT -> 외부에서 ssh 접속만 허용이

되게한다. clear && iptables -nLwhich portsentry -> /usr/sbin/portsentryportsentry -stcpecho $?ps -ef | grep -i port -> 자동적으로 UDP까지 같이 실행되고 있는것을 볼수가 있다.

3 Linux Server Monitering-1-기본적으로 제공하는 프로그램

*Last 각 계정 사용자들의 서버로그인 정보를 확인하는 명령어(위치 : /usr/bin/last)

Last 는 다양한 방법으로 사용자들의 로그인 정보를 조사하며 재부팅한 정보를 확인하는데

사용되기도 한다.

Uranos OS 19/144 210X297mm 인쇄용지 70g/m2

Page 20: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

*Last 로 확인할 수 있는 시스템관련 정보들은 다음과 같은 것들이 있습니다.

- 접속 계정명

- 접속 장치명

- 접속한 IP 주소 정보 : 접속한 IP 주소

- 접속시간 정보 : 접속한 시간의 요일, 월, 일, 시간 – 기타

- 접속시간 정보 : 접속하여 서버에 머문시간

#/var/log/wtmp 파일에 모든 계정사용자들의 접속정보를 기록하고 있으며 Last 명령어는 모든

계정들의 접속정보가

기록되어 있는 /var/log/wtmp 파일을 이용하여 출력결과를 보여줍니다.

리눅스는 /var/log/wtmp 파일이 존재할 경우에만 접속정보를 기록하기 때문에 /var/log/wtmp

파일이 존재 하지 않는

다면 "touch /var/log/wtmp" 라는 명령어로 만들어주어야 합니다.

[접속계정] [접속포트/방법] [ IP 주소] [접속시간정보] [(접속하며 서버에 머문 시간)]

*Last 사용 형식

-last [-R] [-num] [-n num] [-adiox] [-f file] [-t YYYYMMDDHHSS] [name..] [ tty…]

*Last 여러 옵션 및 정보

-시스템 재부팅 정보

Uranos OS 20/144 210X297mm 인쇄용지 70g/m2

Page 21: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS -특정 계정 사용자의 시스템 로그인 정보확인

#last "계정명"

-결과 중 일정 수의 행 까지만 확인

#last – "x" or #last –n "x" ex) root 의 접속정보를 5 행 까지만 출력#last -5 root

-서버로그인 정보 중 IP 주소기록이 있는 정보를 제외한 나머지 정보만 확인하기

#last –R -서버 로그인 정보 확인 시 IP 주소를 행의 마지막 열에 표시하기

#last –a

Ps (process status)ps 는 현재 시스템에서 구동 중인 프로세스 상태를 확인하는 명령어 입니다. 이 명령어를 통해 어떤

프로세스가 어떤 형태로 구동되는 지에 대한 정보를 얻을 수 있습니다.

ps 옵션 및 의미

Uranos OS 21/144 210X297mm 인쇄용지 70g/m2

Page 22: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS -a : 전체 사용자의 모든 프로세스를 출력합니다.

- l : 자세히(long format) 출력합니다.

- x : 제어 터미널이 없는 프로세스(커널 프로세스)를 출력합니다.

- f : pstree 명령어와 같은 트리 구조를 출력합니다.

ps 명령어를수행할 때 프로세스의 구동 상태는 stat 영역에 다양한 코드로 나타나며, 해당 코드는

다음과 같은 의미가 있습니다

.↑(stat 상태를 나타내는 약자)

* 상태 및 의미

- D(Disk wait) : 구동을 일시 중지하고 있는 상태로 인터럽트에 의해 재실행될 수 있습니다.

- R(Running) : 구동되고 있는 상태입니다.

- S(Seeping) : 구동을 쉬고 있는 상태입니다.

- T(Traced 혹은 stoped) : 구동이 정지되어 있는 상태입니다.

- Z(Zombie) : 좀비 프로세스 입니다.

- W(swapped out) : 메모리를 사용하지 않는 스와핑 상태입니다.

* ps 명령어 활용

- ps –ewwf 는 현재 구동중은 프로세스를 자세하게 출력합니다.

ps –ewwf 프로세스 확인결과 입니다.

Uranos OS 22/144 210X297mm 인쇄용지 70g/m2

Page 23: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Uranos OS 23/144 210X297mm 인쇄용지 70g/m2

Page 24: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS - ps –ewwf |grep [프로세스명]은 확인 하고싶은 프로세스만 출력하여 보여주는데 보통 프로세스

개수 확인이나 전체 프로세스를 확인후, 이상이 있는 프로세스를 확인하여 해당 프로세스정보만

파악할 때 사용됩니다.

nobody 권한으로 실행되는 프로세스는 일반적으로 의심을 해 보아야 합니다.

요즘 게시판이나 권한이 취약한 폴더를 통하여 UDP공격 소스를 업로드하여 외부로 공격을

하는경우가 있는데 이런경우 nobody권한으로 프로세스가 돌아가게 됩니다.

lsof –p [해당 프로세스 PID]으로 검색하여 어느 폴더에서 실행이 되고 있는지 확인후 해당 폴더로

들어가시어 파일을 확인하신후 모르는 폴더나 만들지 않았는데 생성이 되어 있는것이라면 필히

삭제를 하셔야 하며 kill 이란 명령어(아래의 kill 명령어 사용법 참고)로 프로세스를 종료 시켜야

합니다.

이 같은 경우는 같은 방법으로 다시 생성이 될수 있기 때문에 권한 조정 및 해당 게시판 패치를

해주셔야 합니다.

Kill 명령어

Uranos OS 24/144 210X297mm 인쇄용지 70g/m2

Page 25: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS 현재 시스템 내에는 많은 프로그램이 구동되고 있으며 작업 중인 프로세스를 확인하려면 위에서

설명한 ps 라는 명령어를 통해서 확인할 수 있습니다. 다시 말해 하나의 명령어나 프로그램을

구동하면 하나의 프로세스를 형성하고 그 프로세스는 고유한 번호를 할당 받게 되는데 이것을 PID

라고 합니다.

하나의 프로그램을 종료할 때 실제로 해당 프로세스의 PID 를 찾아내서 종료하는 방법을 사용합니다.

예를 들어 apache 를 종료 시켰을 때 정상적으로 종료가 이루어지지 않을경우가 있습니다.

이러한경우 kill 명령어를 사용하여 해당 프로세스를 강제 종료합니다.

- ps 의 명령어로 해당 프로세스의 PID 번호를 확인하여 아래와 같이 명령으로 강제종료 할수

있습니다.

#è kill –9 [PID 번호] or kill –KILL [PID 번호]

이때 –9 는 해당 프로세스에 시그널 9 를 전송하는 것인데, 9 는 강제 종료를 의미 합니다

#è killall –9 [해당 프로세스 데몬명]

apache 와 mysql 과 같은 프로세스는 프로세스가 없어지거나 새로운 프로세스가 생기며 접속자가

많으면 프로세스의 개수가 엄청 늘어 나게 됩니다.

이러한 프로세스를 전부 강제로 종료할경우 위와 같이 killall 명령어를 사용합니다.

이 명령어는 PID 를 이용하지 않고 데몬명을 직접 입력하여 사용합니다.

Pstree 명령어

Uranos OS 25/144 210X297mm 인쇄용지 70g/m2

Page 26: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS pstree 는 현재 실행중인 프로세스들의 트리 구조로 보여줍니다. 프로세스의 상호관계를 파악하기

위해 필수적인 명령어 입니다. 모든 프로세스의 부모프로세스라고 하는 PID 가 1 인 init

프로세스로부터 개별프로세스들이 어떤 관계로 실행이 되었는가를 파악하기 위해 사용합니다.

다음과 같이 pstree 라고만 하면 현재 실행중인 프로세스들을 tree 구조형태로 보여 줍니다.

Uranos OS 26/144 210X297mm 인쇄용지 70g/m2

Page 27: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS - pstree 에서 –a 옵션을 사용하면 프로세스들이 실행이 될 때의 인자나 옵션들 모두 함께 표시해

줍니다. 즉, 아래의 예를 보시면 각 프로세스들이 실행이 될 때 사용하였던 옵션들까지 상세하게

보여주고 있습니다.

대표적으로 위의 두 명령어를 사용하여 프로세스를 확인합니다.

Top 명령어

Uranos OS 27/144 210X297mm 인쇄용지 70g/m2

Page 28: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS top 명령어는 리눅스 시스템의 운용상황을 실시간으로 전반적인 상황을 모니터링하거나 프로세스

관리를 할 수 있는 유틸리티입니다.

실행 방법은 쉘상에서 “top”라고 하시면 되며 종료시에는 q or CTRL+C 키를 눌러 종료를하시면

됩니다.

위의 결과로 제공되는 시스템운영에 관한 여러가지 정보들의 의미를 하나씩 설명드리도록 하겠습니다.

*첫번째 행

top - 17:18:28 up 97 days, 14:59, 3 users, load average: 0.07, 0.10, 0.00- 17:17:00 : 시스템의 현재 시간 입니다.

- up 97 days , 14:57 : 종료없이 운영된 시간입니다.

- 3 users : 접속된 사용자 수를 나타내고 있습니다.

- load average 0.70, 0.10, 0.00: 시스템 부하율를 나타 냅니다.(0.00, 0.00, 0.00=>각각 1 분 5

분 15 분)

*두번째 행

Tasks: 106 total, 1 running, 102 sleeping, 0 stopped, 3 zombie, 0 stoppedTasks: 106 total : 실행된 프로세스 수를 나타냅니다.

1 running : 현재 실행되고 있는 프로세스의 수입니다.

102 sleepin : sleeping 된 프로세스의 수 입니다.

3 zombie : 좀비 프로세스 수 입니다.

Uranos OS 28/144 210X297mm 인쇄용지 70g/m2

Page 29: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS 0 stopped : stopped 된 프로세스의 수를 각각 보여줍니다.

*세번째 행

세번째 행은 cpu 의 전반적인 운용상황을 알려줍니다. 즉 사용자 사용율과 시스템 자체 사용율, nice

정책에 의해 사용되고 있는 cpu 사용율, 입출력 대기 사용율 , 사용되지않고 남아있는 cpu 사용율을

나타냅니다.

*네번째 행

네번째 행에서는 시스템의 전반적인 메모리 운용상황을 보여줍니다. 즉 전체메모리 용량, 프로세스에

의해 사용되고 있는 메모리 사용량, 사용되지 않고 남아있는 메모리량, 고유메모리량, 버퍼링된

메모리량 등의 정보를 보여줍니다.

*다섯번째 행

다섯번째 행에서는 스왑메모리 사용현황을 알려줍니다. 즉 전체 스왑 메모리량, 프로세스에 의해

사용된 스왑메모리량, 남아있는 스왑 메모리량, 프로세스에 의해 사용된 메모리량을 나타냅니다.

find 의 백도어검색 명령어

- find /dev –type f 위의 명령어시 올라오는 메시지가 /dev/MAKEDEV, MAKEDEV.ibc, /dev/cpu/mtrr,

/dev/cpu/microcode, /dev/.udev/db/* 이외에 다른 파일명이 올라온다면 백도어를 의심해볼

필요가 있습니다.- find / -ctime –1위의 명령어는 하루동안 만들어진 파일을 보여줍니다.

직접생성한 파일이 아니라면 필히 확인을 해보셔야 보안상 좋습니다.

4 Linux Server Monitering-2-외부에서 제공하는 프로그램

Uranos OS 29/144 210X297mm 인쇄용지 70g/m2

Page 30: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

4.1Tripwire

1)역할

tripwire 는 시스템 내부의 중요한 파일들에 대한 기본 체크섬을 데이터베이스화 해두고 차후에

이들의 체크섬을 비교하여 변화가 있는지의 여부를 판단하여, 해커에 의한 시스템의 변화가

생겼는지에 대한 여부를 관리자에게 알려주는 역할을 한다.

2)스캔대상

Tripwire 는 시스템 내의 각종 중요한 파일 및 실행파일들에 대한 데이터베이스 만들기,intergrity조사,데이터 베이스 갱신,interactive 모드의 생신이라는 네가지 모드로 동작한다. 가장 특징적인

점은 tripwire 는 단지 CRC 모드의 체크섬을 통해 시스템 내부의 중요한 파일들의 변조 여부를

확인하는 것이다.

Source Code http://www.tripwire.comYum #yum install tripwire

yum 명령어가 편하기는 하나 mirror 서버에 존재 하지 않는 경우에는 rpm 파일을

다운받아서 설치하도록 한다.

rpm 으로 설치하는 경우 libcrypto.so.4 를 요구하므로 yum 으로 설치 하도록 한다.응용프로그램과는 달리 lib(library)의 경우에는 대부분 존재한다.

해당 source 를 설치한 후에는 무난히 설치가 잘 되는 것을 볼 수 있다.#config

1)key config

Uranos OS 30/144 210X297mm 인쇄용지 70g/m2

Page 31: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

위의 명령어를 사용하면 다름과 같은 화면을 만나게 된다.

tripwire 설정파일 생성 및 tripwire database 를 갱신할 때 사용하게 되는 site key 를 생성하게

되므로 가능한한 root계정의 비밀번호와는 일치하지 않도록 8 자 이상으로 설정하도록 한다.

앞서 이야기한 tripwire 의 database 를 초기화 하는데 사용하게 되는 local key 값이므로

앞서와는 다른 비밀번호를 설정하도록 한다.

Uranos OS 31/144 210X297mm 인쇄용지 70g/m2

Page 32: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

key 입력이 모두 끝나게 되면 설정파일과 정책파일을 생성하게 되는데 이때 앞서 설정해 주었던

site key 값을 넣으면 설정파일이 생성되게 된다.

설정파일 /etc/tripwire/tw.cfg정책파일 /etc/tripwire/tw.pol

이로써 기본적인 모든 설치가 완료 되었다.

#정책설정

option

간단한 설정 예

/bin 의 경우 변경이 불가능하며 읽기만 가능하도록 설정

/etc 의 경우 변경이 불가능함과 동시에 SUID 나 SGID 로의 변경또한 불가능

/var 의 경우 해당디렉토리 및 하위의 모든 범위에 대해 permission 및 소유자 변경 불가

#정책 적용 및 database생성

Uranos OS 32/144 210X297mm 인쇄용지 70g/m2

Page 33: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

database 생성 시 오류

정책에 대해 명확하게 설정해 주지 않았다면 다음과 같은 오류가 발생하게 된다.

저장되는 위치

twr 파일의 경우 암호화 되어있으므로 txt 파일로 변경해준다.

Uranos OS 33/144 210X297mm 인쇄용지 70g/m2

Page 34: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

#정책이 설정되지 않았을 경우

#정책설정시

위의 설정에서 /bin,/var,/etc 에 대해 설정한 내용에 대한 검사 결과가 나왔음을 알 수 있다.

#실제 사용 예

bash 파일을 /var/lib 에 존재하는 backdoor 라는 파일에 복사한 후 퍼미션을 4755 로 변경한다

Uranos OS 34/144 210X297mm 인쇄용지 70g/m2

Page 35: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

그 후에 backdoor 의 소유자를 해커의 계정으로 변경해 주면 해커의 계정에서 backdoor명령어를 사용하면 root 의 권한을 가질 수 있게 된다.시스템 버그나 root 의 비밀번호를 알아내어 backdoor 를 만드는 가장 기초적인 수법이다.

#tripwire --check결과

위 화면에서 나타나듯이 /var 에 2 개의 파일이 추가 되었음을 알 수 있다.

또한 다음의 화면에서 /var 에 설정해 두었던 Rule( $(IgnoreNone)-SHa)를 위반한 사실을 알 수

있다.

해당하는 파일은 반드시 지우도록 한다.

4.2 rkhunter

-백도어나 루트킷을 탐지하여 일반적으로 루트킷이 사용하는 파일 및 숨김 파일의 존재여부를

판별하며, 실행시 관리자에게 각 파트별로 체크사항을 보여주는 리포트기능이 뛰어나다. 또한

Solaris 를 제외한 대부분의 UNIX 를 지원한다.

Source code http://downloads.rootkit.nlYum #yum install –y rkhunter

Uranos OS 35/144 210X297mm 인쇄용지 70g/m2

Page 36: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

#설치

다운 받은 tar.gz 파일의 압축을 푼다.

압축을 해제한 후 생긴 rkhunter 디렉토리에 installer.sh 라는 파일이 있을 것이다.

여러 옵션이 있으나 ./installer.sh --install 명령어를 사용하여 설치한다.

/usr/local/bin 내에 실행파일이 생성되었음을 알 수 있다.

#사용법

Uranos OS 36/144 210X297mm 인쇄용지 70g/m2

Page 37: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

-Option

--help option 을 통해 다른 옵션들의 세부적인 내용을 알 수 있다.여기서는 주로 사용되는 option 들에 대해서만 설명하도록 한다.

-c : 검사결과를 CRT 로 출력합니다.--checkall –createlogfile : 검사결과를 /var/log/rkhunter.log 파일에 저장합니다.--versioncheck : rkhunter 의 버전을 출력합니다.--update : rkhunter 를 업데이트 합니다.--cronjob : crontab 모드로 동작합니다.--report-warnings-only : 문제가 되는 사항만 출력합니다.

시스템 검사에 앞서 최신정보를 업데이트 한다.각 항목의 Update 를 확인할 수 있다.

Uranos OS 37/144 210X297mm 인쇄용지 70g/m2

Page 38: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

현제 사용되고 있는 버전이 최신버전이기에 별다른 update 가 일어나지 않았다.

-실행

#/usr/local/bin/rkhunter –c

-check binaries

실행파일들에 대한 check오류나 퍼미션등에 문제가 발생하면 [BAD]메시지 출력

-check rootkit

알려져 있는 여러 rootkit 과 worm 등에 대한 check

-network check

Uranos OS 38/144 210X297mm 인쇄용지 70g/m2

Page 39: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

여러 통신 및 어플리케이션 등에서 사용하고 있는 port 들에 대한 check

-system check

파일 시스템 및 Os 에 관련된 부분들을 checkssh 등의 접속을 허용했을 때 root 로 접속이 허용되어있다면 경고가 뜨는 등의 역할을

한다.

-application advisories

응용프로그램의 version 을 check-scan result

Uranos OS 39/144 210X297mm 인쇄용지 70g/m2

Page 40: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

종합적인 내용

Suspect files : /sbin /bin 등에 퍼미션이나 소유주가 이상한 파일이 존재한다는

뜻으로 시스템 설정상 필요한 경우보다 많다면 check 해보아야 한다.

Possible rootkits : 알려져 있는 rootkit & worm 이 발견되었다는 뜻으로 즉각적인

조치가 필요하다.

Suspect applications : 버전이 오래되어 보안상의 위험이 존재한다고 판단되어진

상태로 버전업 또는 해당하는 취약점을 보완해줄 방법이 필요하다.

Result report 는 /var/log/rkhunter.log 에 저장됨을 알 수 있다.

4.3NMAP

Uranos OS 40/144 210X297mm 인쇄용지 70g/m2

Page 41: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

-nmap 은 port scanning tool 로서 호스트나 네트워크를 스캐닝 할 때 아주 유용한 시스템

보안툴인 동시에 해커에게는 강력한 해킹툴로 사용될 수 있다

서버를 운영하다보면 관리자 스스로도 어떤 포트가 열려있으며 또 어떤 서비스가 제공중인지

정확한 파악이 어려울때가 있다. 기억력이 나쁘거나 게을러서가 아닌, 필요에 의해 변경되는

경우가 많이 때문인데 수시로 파악해서 기록해두지 않으면 잊어버리게 된다. 또한 크래킹에 의해

생성된 백도어는 파악하기가 힘들다.

이러한 수많은 포트와 서비스를 효과적으로 체크하고 관리하기 위해서 nmap 과 같은 포트

스캔툴이 존재한다. 또한 nmap 은 다양한 옵션과 더불어 방화벽 안쪽의 네트워크도 스캔할 수

있는 강력한 기능이 존재한다.

-설치

Source code http://www.insecure.org/nmapYum #yum install –y nmap

Nmap 은 daum 에서도 손쉽게 구할 수 있을 만큼 유명하기에 yum 으로 간단히 설치가

가능하다.

실행파일 위치

-option

Uranos OS 41/144 210X297mm 인쇄용지 70g/m2

Page 42: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

-sT 일반적인 TCP 포트스캐닝. -sS 이른바 'half-open' 스캔으로 추적이 어렵다. -sP ping 을 이용한 일반적인 스캔. -sU UDP 포트 스캐닝. -PO 대상 호스트에 대한 ping 응답을 요청하지 않음 .log 기록과 filtering 을 피할 수 있다. -PT 일반적이 ICMP ping 이 아닌 ACK 패킷으로 ping 을 보내고

RST 패킷으로 응답을 받는다. -PI 일반적인 ICMP ping 으로 방화벽이나 필터링에 의해 걸러진다. -PB ping 을 할 때 ICMP ping 과 TCP ping 을 동시에 이용한다. -PS ping 을 할 때 ACK 패킷대신 SYN 패킷을 보내 스캔. -O 대상 호스트의 OS 판별. -p 대상 호스트의 특정 포트를 스캔하거나, 스캔할 포트의 범위를 지정.ex) -p 1-1024 -D Decoy 기능으로 대상 호스트에게 스캔을 실행한 호스트의 주소를 속인다. -F /etc/services 파일 내에 기술된 포트만 스캔. -I TCP 프로세서의 identd 정보를 가져온다. -n IP 주소를 DNS 호스트명으로 바꾸지 않는다. 속도가 빠르다. -R IP 주소를 DNS 호스트명으로 바꿔서 스캔. 속도가 느리다. -o 스캔 결과를 택스트 파일로 저장. -i 스캔 대상 호스트의 정보를 지정한 파일에서 읽어서 스캔. -h 도움말 보기

위의 스캔타입은 자주 쓰이는 내용이고 -h 옵션을 쓰거나 man page 를 이용하면 아주 상세한

사용방법을 보실 수 있다.#nmap -h

#man nmap

Uranos OS 42/144 210X297mm 인쇄용지 70g/m2

Page 43: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

-사용 예

#Localhost 가 사용중인 Tcp port scan

위의 내용에서 현재 22/ssh 25/smtp 등의 포트가 사용됨을 알 수 있다.다만 884 번 포트의 경우 unknown 으로써 알 수 없는 프로그램으로 인해 열려져 있는 포트

일 가능성이 있다는 것을 알 수 있다.따라서 이에 따른 884 번 포트에 대한 의심과 함께 적절한 조치를 취하는 것이 가능할 것이다.

#localhost 가 사용중인 UDP port scanning

unknown 서비스가 존재하나 filtered 되고 있음을 알 수 있다.해당하는 서비스들에 대해 간략한 설정

#ntsysv 명령어를 사용하여 간단한 GUI 화면으로 서비스(데몬)들을 시작하거나 끌수가

Uranos OS 43/144 210X297mm 인쇄용지 70g/m2

Page 44: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

있다.

-ntsysv 의 기본적인 데몬 설명

amanda : 백업 클라이언트인 amanda 데몬

amandaidx : amanda 서버의 패키지 서비스 중 하나인 amandaidx 데몬

amd : auto mount daemon, 시스템의 요청이 있는 경우에 자동으로 장치와 NFS 호스트를 마운트해 주는 데몬. 네트워크의 설정이 잘못된 경우에는 부팅을 하는 도중에 문제를 일으킬수 있으므로

처음에서 꺼두는 것이 좋다.

amidxtape : amand 서버에 패키지 서비스 중 하나인 amidxtape 데몬

anacron : 시간에 따라 지정한 프로그램을 정기적으로 실행하는 데몬. cron 과 같은

기능을 하지만 계속 켜두지 않는 컴터에서 사용하는 데몬

apmd : 베터리 상태를 감시하고 syslog(8)에 기록하며 시스템을 끄기도 하는 데몬

Uranos OS 44/144 210X297mm 인쇄용지 70g/m2

Page 45: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

arpwatch : 이더넷 카드와 ip 어드레스의 설정 관계를 유지하는 데몬

atd : 특정 시간 또는 시스템 부하가 적을때 지정된 명령을 실행시키는 데

autofs : 파일 시스템을 사용하고자 할때 자동으로 마운트 시켜주는 데몬

chargen : chargen 의 TCP 버전 서버

chargen-upd : chargen 의 UDP 버전 서버

ciped : ip address 를 암호화하는 CIPE 데몬

crond : cron 을 실행시키는 데몬, cron 은 지정한 프로그램을 특정 시간에 주기적으로

실행시키는 유닉스 표준 프로그램

daytime : daytime 의 TCP 버전 서버. daytime 은 클라이언트의 질의에 응답하여

아스키 형태로 현재 시간과 날짜를 출력하는 데몬. TCP 포트 13 을 사용

daytime-udp : daytime 의 UDP 버전 서버. UDP 포트 13 을 사용

dhcpd : Dynamic host configuration protocol server daemon. 동적 호스트 제어

프로토콜 서버 데몬. BOOTP 와 DHCP 가 포함된 데몬으로 클라이언트들이 부팅할때 자동으로 동적 IP 어드레스와 네트워크 정보를 가질수 있게 해줌.

Uranos OS 45/144 210X297mm 인쇄용지 70g/m2

Page 46: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

echo : echo 의 TCP 버전 서버

echo-udp : echo 의 UDP 버전 서버

finger : finger 리퀘스트에 응답하는 서버. finger 는 사용자에 대한 로그인 네임, 디렉토리, 쉘과 최종 로그인 시간에 대한 정보를 볼수 있게 하는 프로토콜

gated : gated(라우팅 데몬) 을 시작하거나 종

gpm : MC(midnight command) 와 같은 텍스트 기반 리눅스용 애플리케이션에서

마우스를 쓸수 있게 해주는 데몬. 콘솔에서 마우스를 이용한 팝업 메뉴와 복사/ 붙이기 기능도 지원

httpd : 웹 서비스를 위한 아파치 데몬. html 파일과 cgi 를 사용가능하게 함

identd : 특별한 TCP 연결에서 사용자의 신원을 결정해 주는 데몬. TCP 포트번호를 주면

연결된 서버 시스템 소유자를 확인할수 있는 문자열을 돌려줌

imap : 원격 사용자가 imap 클라이언트(Pine, netscape communicator)를 이용하여

자신의 메일에 접근할수 있게 하는 서비스

imaps : 원격 사용자가 SSL 을 지원하는 imap 클라이언트(netscape communicator, fetchmail 등)를 이용하여 자신의 메일에 접근할수 있게 하는 서비

innd : 유즈넷 뉴스 서버를 이용하여 지역 뉴스 서버를 설정할수 있는 데몬

Uranos OS 46/144 210X297mm 인쇄용지 70g/m2

Page 47: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

ipchains : 패킷 필터링 파이어월을 자동으로 실행하는 데몬

ipop2 : 원격 사용자가 pop2 클라이언트를 이용하여 메일에 접근할수 있게 하는 서비스

ipop3 : 원격 사용자가 pop3 클라이언트를 이용하여 메일에 접근할수 있게 하는 서비스

irda : irda 가 정상적으로 동작하도록 해 주는 데몬

keytable : /etc/sysconfig/keytable 로 키보드 유형을 변환할수 있게 하는 서비스. 한텀에서 kbdconfig 프로그램을 실행하여 키보드 유형을 변환할수 있다. 대부분의

시스템에서 keytable 데몬은 실행시켜 두어야 한다.

kudzu : 부팅시 새롭게 추가된 하드웨어를 설정할 수 있게 hardware probe 를

실행시키는 데몬

linuxconf : 시스템 설정을 유지하기 위해 부팅시에 다양한 태스크의 실행을 정렬시키는

데몬.

linuxconf-web : 웹을 통해 linuxconf 를 실행할수 있게 연결을 허용하는 데몬

lpd : 프린터(line printer)가 정상적으로 동작하도록 해 주는 프린트 서비스 데몬

mars-nwe : netware IPX 프로토콜을 사용하는 클라이언트에게 리눅스 머신에서 파일과

프린트 서버를 호환시켜 주는 데몬

Uranos OS 47/144 210X297mm 인쇄용지 70g/m2

Page 48: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

mcserv : midnight command(MC) 서버이다. MC끼리 네트워크를 공유한다

mysqld : 매우 빠르고 안정적인 mysql 데이타 베이스 서버 데몬이다

named : 도메인 네임과 ip 어드레스를 해석하기 위한 DNS 서버(BIND) 데몬. 로컬

호스트에서 DNS 서버를 운영할때만 실행 시킨다.

netfs : 삼바, 네트워크 파일 시스템(NFS), NCP(netware)등의 마운트와 언마운트에

관여하는 데몬.

network : 네트워크 인터페이스의 설정을 시스템 부팅시 커널에 적재시키는 데몬.

nfs : TCP/IP 네트워크에서 파일을 공유할수 있게 하는 데몬. /etc/exports 파일에서

설정한 NFS 서버가 기동할수 있게 해 준다.

nfslock : NFS 파일을 locking 한다.

nscd : NIS/NS 를 사용할수 있게 하는 데몬. nscd 는 실행중인 프로그램의 그룹을 살피고

패스워드를 변경하거나 다음 질의를 위해 결과를 캐시하는 데몬이다.

ntalk : 서로 다른 시스템끼리 채팅이 가능하게 ntalk 연결을 허용하는 서버

ntpd : NTPv4 데몬

pcmcia : 휴대용 PC 에서 이더넷이나 모뎀을 쓸수 있게 하는 데몬.

Uranos OS 48/144 210X297mm 인쇄용지 70g/m2

Page 49: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

pop3s : SSL 을 지원하는 pop3클라이언트를 사용하여 메일에 접근할수 있게 하는

서비스이다.

portmap : RPC(NFS, NIS, mcsev 등) 연결을 관리하기 위한 포트 매핑 데몬으로 RPC 를

사용하는 프로그램을 실행하기 위해서는 반드시 선택하여야 하는 데몬.

postgresql : postgresql 디비에 관한 데몬

pppoe : adsl 서비스에 연결시켜 주는 데몬

proftpd : 쉬운설정, 보안성, 단순성에 초점을 맞춘 개선된 ftp 서버 데몬

pxe : 부팅전 실행환경 서버. 다른 PXE 기반 머신에 네트워크 부팅을 제공한다

random : 시스템에 필요한 난수 발생 및 저장 데몬

rawdevices : HDD 파티션과 같은 블론 디바이스를 위한 스크립트. /etc/sysconfig/rewdevices 파일을 편집하여 원시 디비아스를 블론 디바이스로 매핑할수

있다.

reconfig : /etc/reconfigSys 파일이 존재하면 재설정을 실행하는 데몬

rexec : rexec(3) 루틴을 위한 서버 데몬. 인증된 사용자 이름과 패스워드로 원격 실행을

제공하는 서버이다.

Uranos OS 49/144 210X297mm 인쇄용지 70g/m2

Page 50: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

rlogin : rlogin 프로그램을 위한 서버 데몬. 신뢰할수 있는 호스트로부터 특권화된 포트

번호에 기반한 인증을 통해 원격 로그인을 제공한다.

routed : RIP 프로토콜을 통해 업데이트된 자동 IP 라우팅 테이블 설정 데몬

rsh : rshd 서버는 rcmd 루틴을 위한 서버이며 따라서 rsh 프로그램을 위한 서버이다. 신뢰할수 있는 호스트로부터 특권화된 포트번호에 기반한 인증 통해 원격 실행을

제공한다.

rstat : 네트워크에 연결된 사요자에게 그 네트워크 상의 머신에 대한 퍼포먼스 매트릭스를

회수할수 있게 해주는 프로토콜

rsync : 컴퓨터간 자료 공유를 위해서 사용되는 rsync 에 대한 데몬이다.

rusersd : 네트워크에 특정 사용자가 있는 검색해 주는 데몬.

rwalld : 시스템에 동작중인 모든 터미널에 메시지를 표시할수 있게 해 주는 프로토콜

rwhod : 원격 접속자의 목록을 볼수 있게 해주는 데몬. finger 와 비슷한 기능을 한다.

sendmail : 메일을 다른 호스트로 전송하는 메일 전송(Mail Transport Agent)데몬

smb : SMB 네트워크 서비스를 제공하기 위한 삼바 서버(smbd 와 nmbd)데몬

snmpd : SNMP(Simple Network Management Protocol)데몬

Uranos OS 50/144 210X297mm 인쇄용지 70g/m2

Page 51: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

squid : HTTP, FTP, gopher 와 같은 프로토콜을 사용할때 캐싱 속도를 높이는 데몬.

sshd : openssh 서버 데몬

swat : 삼바 웹 관리 툴, 삼바 서버의 설정을 위해 swat 를 사용하며, 웹 브라우저를 통해

901 포트로 접속한다.

syslog : 많은 데몬들이 로그 메세지를 다양한 시스템 로그파일에 기록하는데 사용하는

데몬. syslog 는 항상 실행되는 것이 좋다.

talk : 다른 시스템에 접속한 사용자로 부터 채팅 요구에 응답하여 터미널의 내용을 다른

사용자에게 보내서 대화할수 있게 하는 데몬.

telnet : telnet 세션을 제공하는 서버. 인증을 위해 사용자 이름과 패스워드를 사용한다.

tftp : 파일 전송을 위한 프로토콜. tftp 프로토콜은 어떤 OS 에서는 부팅 디스켓이 없는

워크스테이션이나 네트워크 인식 프린터를 위한 설정 파일의 다운로드, 설치 프로세스의

시작을 위해 가끔 이용된다.

time : rdate 데몬에 의해 사용되는 RFC 868 시간 서버의 TCP 버전

time-udp : rdate 데몬에 의해 사용되는 RFC 868 시간 서버의 UDP 버전

webmin : webmin 관리자 서버 데몬

Uranos OS 51/144 210X297mm 인쇄용지 70g/m2

Page 52: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

xfs : 부팅과 셧다운시 X 폰트 서버를 시작하거나 종료시키는 데몬

xinetd : inetd 데몬을 대체하는 강력한 데몬. telnet, ftp 등과 같은 서비스를 처리하는

슈퍼 데몬.

ypbind : NIS/YP 클라이언트에서 실행되는 데몬으로 NIS 도메인을 바인드한다. NIS클라이언트로 동작하기 위해서는 glibc 에 기반한 시스템에서 실행되어 한다. 그러나

NIS 를 사용하지 않는 시스템에서는 실행하지 말아야 한다.

yppasswd : NIS클라이언트 사용자의 패스워드를 변경할수 있게 해 주는 데몬

ypserv : 표준 NIS/YP 네트워크 프로토콜 서버. 호스트 네임, 사용자 네임과 다른 정보

데이타베이스를 네트워크를 통하여 배포하는 것은 허용한다. ypserv 데몬은 클라이언트에서는 필요하지 않으며 NIS 서버에서 실행된다.

5 Kernel Customize5.1Source comfile

[root @localhost ~]#cd /usr/src/linux-2.4

Uranos OS 52/144 210X297mm 인쇄용지 70g/m2

Page 53: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

#이전 정보 삭제

[root @localhost linux-2.4]#make mrproper 이전에 설정한 정보를 지우거나 새로운 커널 소스를 가져다 컴파일할 때에는 이 명령을 먼저

사용해야 한다. 이전 커널을 컴파일할 때 만들어진 오브젝트 파일(*.o)과의 의존성 설정내용, 컴파일 환경 설정값, 버전 정보 등 새로 시작하는 컴파일에 영향을 주는 이전 정보를 삭제. 기존의 커널 소스를 계속 사용할 것이고, 그 소스로 컴파일을 한 번이라도 하였으며, 그 소스의 설정

값들을 잃고 싶지 않다면 이 명령을 사용하지 말 것.

#환경 설정 인터페이스

[root @localhost linux-2.4]#make menuconfig

1. make menuconfig ncurses(new-curses)라는 라이브러리가 설치되어 있어야 한다. ncurses 는 화면 입/출력에 쓰이는 라이브러리

ncurses 가 설치되지 않았다면 실행되지 않는 프로그램들이 많으므로 반드시 설치되어야 한다.

2. make xconfig X-윈도우와 TcL/Tk 인터프리터/툴킷 라이브러리가 필요.설정이 끝나면 반드시 주 화면의 'Store Configuration to FiLe' 항목에서 설정 내용을

파일로 저장.커널 옵션 설정후 설정내용은 /usr/src/linux 에 '.config' 라는 이름으로

저장된다.

3. make config텍스트 방식

4. make oldconfig이전 설정 정보는 그대로 둔 채 새로운 옵션들에 대해서만 물어본다.

make 는 "Makefile"에 서술된 규칙을 이용하여 소스코드 파일들을 관리한다. 최근 변경을 적용하여 소스코드를 오브젝트 파일로 컴파일하고 라이브러리 파일과 링크하여 실행

가능한 파일로 컴파일하는 과정들을 자동으로 처리한다.#최적화를 위한 kernel option configCode maturity level options : 코드 성숙도(成熟度)에 관한 설정

[ ] Prompt for development and/or incomplete code/drivers

Uranos OS 53/144 210X297mm 인쇄용지 70g/m2

Page 54: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

개발 수준의 옵션들도 선택 가능하게 해준다. 시스템 특성에 따라 에러가 발생하기도 한다.

Loadable module support : 모듈기능에 대한 설정

[*] Enable loadable module support모듈을 사용할 수 있게 해줌.자주 쓰이지 않는 장치 드라이버나 기능들을 모듈로 만들어서 필요할 때에만 동적으로 메모리에 적재하여

사용한다. 작업이 끝나면 메모리에서 다시 제거하므로 메모리를 효율적으로 사용할 수 있다. 커널 크기가

감소한다. 전체 커널과 분리되어 있어 모듈로 설정한 기능에 변화가 있더라도 전체 커널에는 이상이 없다.파일시스템, 장치 드라이버, 바이너리 포맷 등 많은 기능이 모듈을 지원한다. 반드시 [Y]를 선택한다.

[ ] Set version information on all module symbols다른 버전의 커널에서 만들어진 모듈이나 커널과 함께 배포되지 않는 특별한 모듈을 사용할 수 있도록

하는 기능이다. 일반적으로 [N]를 선택한다.

[*] Kernel module loader커널이 알아서 모듈을 올려준다. kerneld 데몬이 대체된 기능이다.모듈로 만들어진 기능을 필요할 때 적재하고 제거하는 작업들을 modprobe 를 이용해 커널이 자동으로

관리한다. 일반적으로 [Y]를 선택한다.

Processor type and features : 컴퓨터의 중앙처리장치에 대한 기능들

(Pentium-III) Processor family 386 을 선택하면 인텔 계열의 모든 프로세서에서 동작하는 커널이 만들어진다. 커널은 CPU 각각의

특성과 버그에 최적화될 것이다. < > Toshiba Laptop support< > /dev/cpu/microcode - Intel IA32 CPU microcode support

"File systems" 섹션에 있는 "/dev file system support" 옵션 설정을 해야 한다.IA32 계열의 인텔 프로세서(펜티엄 프로, 펜티엄 II, III, 4, Xeon 등)에서 마이크로

코드를 업데이트 할 수 있다.

< > /dev/cpu/*/msr -Model-specific register supportx86 Model-Specific Registers(MSRs)에 접근할 수 있는 특권을 프로세스에게 준다.

Uranos OS 54/144 210X297mm 인쇄용지 70g/m2

Page 55: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

MSR 은 멀티-프로세서 시스템에서 지정한 CPU 에 직접 접근한다.CPU 가 두 개 이상인 멀티 프로세서 시스템이고 이 기능을 사용하는 프로그램이 있다면 [M]이나 [Y]를

선택한다.

< > /dev/cpu/*/cpuid -CPU information support특정한 프로세서에서 실행될 수 있도록 x86 CPUID 명령들에 접근할 수 있는 특권을 준다. CPU 가 두 개 이상인 멀티 프로세서 시스템이고 이 기능을 사용하는 프로그램이 있다면 [M]이나 [Y]를

선택한다.

(off) High Memory support (NEW)리눅스는 x86 시스템에서 64 GB까지 물리적 메모리를 사용할 수 있다. x86 프로세서에서 주소 공간은 32 비트이므로 최대 4 기가바이트까지만 지원한다. 모든 물리적인 RAM 을 더해서 1 GB 가 넘지 않는다면(앞으로도) "off"라고 한다. (대부분의 사용자에게 적당한 것이어서 기본값으로 설정되어 있다). 물리적 램이 1GB 이상 4GB 미만이라면 "4GB"를, 4 GB 이상이면 "64GB"를 선택

이 옵션은 인텔 PAE(Physical Address Extension)모드를 활성화시킨다.PAE 에는 3-레블 페이징이 있는데 리눅스에서는 모든 것을 지원한다. Pentium Pro 이상의 인텔 프로세서에서는 모두 PAE 를 지원한다.물리적 메모리는 커널에서 자동으로 그 크기를 감지하지만 부트 패러미터에 메모리 크기를 직접 지정할

수도 있다. (예를 들어 "mem=256M")확실하지 않다면 (off)를 선택

(x) off( ) 4GB( ) 64GB

[ ] Math emulation수치연산 보조프로세서(co-processor)가 없는 386, 486SX 에서 코프로세서를 에뮬레이션하는

기능이다. CPU 처리 속도나 능력이 매우 낮았던 때에 수치연산만 도와주는 전용 프로세서를 따로 사용. 펜티엄, 혹은 K6 이상 시스템을 사용한다면 [N]을 설정

[*] MTRR (Memory Type Range Register) support 프로세서가 메모리 영역 접근을 제어할 수 있음. 그래픽의 쓰기 속도 향상. 인텔 Pentium II 나 Pentium Pro, K6 시스템의 PCI 나 AGP 버스 비디오 카드에 유용하다. 이 기능은

이론상 이미지를 2.5배 이상 빨리 쓸 수 있도록 만든다고 한다.

Uranos OS 55/144 210X297mm 인쇄용지 70g/m2

Page 56: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

MTRR 이 없더라도 이 기능을 켜두는 것은 안전하다.

[ ] Symmetric multi-processing supportSMP 는 두 개 이상의 프로세서(CPU)를 사용하는 멀티프로세싱 시스템을 위한 설정이다. CPU 각각에 대한

정보는 "cat /proc/cpuinfo" 명령이나 gtop 등 유틸리티로 볼 수 있다. "Y"를 답하고 프로세서 패밀리

아래 "586" 또는 "Pentium"을 선택하면 486 아키텍쳐에서는 동작하지 않을 것이다. SMP 를 사용하기 위해서는 "Enhanced Real Time Colck Support"도 [Y]를 선택해야 한다. "Advanced Power Management" 코드는 disable 시켜야 한다. 싱글프로세서를 가진 시스템에서 이 기능을 사용하면 제대로 동작하지 않거나,오히려 시스템이 느려질 수 있다. CPU 가 하나라면 [N].

General setup 네트워킹과 버스 프로토콜, 절전기능 등 시스템에 전반적으로 영향을 주는 설정들

[*] Networking support 네트워킹 지원. 네트워크에 연결되어 있지 않더라도 루프백 기능에서 필요하며, 전화선을 통해 인터넷

에 접속하는 SLIP, PPP diaL-up 네트워킹에서도 필요하다. 어떤 프로그램들, 특히 X 윈도우용 프로그램들은 네트워크 기능의 설정되어 있어야

제대로 동작하는 경우가 많다. [Y]

[ ] SGI ViSuaL WorkStaion Support슈퍼 컴퓨터 크레이로 유명한 Silicon Graphics 의 SGI 320 이나 540 워크스테이션에서 리눅스를

사용한다면 [Y]를 한다. 다른 PC 보드에서는 동작하지 않을 것이다. "IBM PC 호환기종"이라 불리는 머신을 사용하고 있다면 [N]를 답하는 것이 좋다.

[*] PCI support PCI 지원. 대부분의 486 시스템, Pentium 이상 기종의 마더보드는 PCI 버스를 지원하는 바이오스를

사용한다. ISA(16 비트 컴퓨터), EISA(386 이나 486초기), MCA(IBM 의 PS/2 전용)가 아닌 경우

[Y]를 선택한다.

(Any) PCI access mode 커널이 직접 액세스 시도. 오래된 PCI 마더보드 가운데 BIOS 가 망가지거나 버그 때문에 PCI 장치들을 찾아내지 못하는 것이 있다.

Uranos OS 56/144 210X297mm 인쇄용지 70g/m2

Page 57: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

리눅스는 커널이 BIOS 의 도움 없이 하드웨어에 접근할 수 있는데 이 기능에는 세 가지 옵션이 있다. "BIOS"는 BIOS 를사용하고, "Direct"는 BIOS 를 사용하지 않는다. "Any"는 커널이 직접 접근해 보고 동작하지 않으면 BIOS 로 돌아간다. "Any"로 두는 것이 안전하다.

[*] PCI device name database기본 값으로, 커널은 모든 알려진 PCI 장치 이름들에 대해 /proc/pci, /proc/ioports 에

사용자들이 쉽게 알아볼 수 있는 정보를 만들기 위해, 데이터베이스를 가지고 있다. 이 데이터베이스는 커널 이미지 크기를 80KB 늘리지만, 시스템이 부트된 다음에는

다시 회수되는 메모리이므로, 실제로 커널 메모리에는 아무 영향을 주지 않는다. 설치디스켓이나 임베디드 시스템 등 크기가 가장 중요한 커널을 만든다면 이 기능을

뺄 수 있다. 다만, 장치들의 이름 대신 장치 ID 번호들을 사용해야 할 것이다. [Y]

[ ] EISA supportEISA(Extended Industry Standard Architecture) 버스는 오래 전에(1988 년부터 1995년 사이) 쓰이던 기능으로 PCI 버스가 나타난 이후로 아주 사라져 버렸다. PC 에서

EISA 를 사용하는 것이 확실할 때에만 이 기능을 사용한다. 펜티엄 이상을 사용하는

모든 사용자는 [N]을 선택

[ ] MCA supportMicroChanneL Architecture 는 IBM PS/2 머신에서 찾아볼 수 있는데 국내에서는 잘

쓰이지 않는다. [N]

[*] Support for hot-pluggable devicesPCMCIA 나 PC 카드 등은 컴퓨터가 동작하는 동안 장치를 새로 꽂거나 뽑는 일을 할 수 있다. 네트워크

카드, 모뎀, 하드 드라이브등이 이 기능을 사용하는데 대개 랩탑 컴퓨터에서 사용하고 있다. 요즘에는

데스크탑에서도 USB 를 이용해 이런 기능을 제공한다. HOTPLUG 와 KMOD 를 활성화하고 커널 모듈로 만든 다음 에이전트 소프트웨어(http://linux-hotplug.sourceforge.net)를 가져와서 시스템에 설치해야 한다.

PCMCIA/CardBus support< > PCMCIA/CardBus supportCardBus 는 PC 카드를 위한 32 비트 버스 매스터링 아키텍쳐이다. 원래 PCMCIA 표준

제품들은 16 비트 와이드 버스밖에 없다. 새로 나온 PC 카드 대부분은 CardBus 카드

들이다. PC-카드를 사용하려면 먼저 이 기능을 지원하는 소프트웨어를 (David Hind"s pcmcia-cs 패키지) 설치해야 한다. [Y] 또는 [M]

Uranos OS 57/144 210X297mm 인쇄용지 70g/m2

Page 58: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

<*> CardBus support< > i82365 compatible bridge support[ ] Database TCIC host bridge support

[*] System V IPCSystem V IPC, Shared Memory 지원프로세스 사이에서 동기화와 정보교환을 위한 라이브러리 함수와 시스템 콜 집합이다. [Y]를 선택한다. 특히, Dos emulator 와 같은 프로그램을 사용하려 한다면 동기화를 위해 [Y]를 선택해야 한다. 메모리에

적재되어 실행중인 프로그램이 프로세스이며 프로세스는 프로그램의 코드들과 프로그램 실행을 위한

다양한 값들을 포함하는 것으로 프로그램의 영혼이라 부르기도 한다. 이 기능을 선택하면 커널이 18KB 정도 늘겠지만 반드시 [Y]라 답해야 한다.

[*] BSD Process Accounting프로세스가 끝날 때 커널에 의해 프로세스 정보가 파일에 추가된다. 프로세스 정보는

생성시간, 소유권, 커맨드 이름, 메모리 점유율, 터미널 제어 등이 포함된다. 이 옵션에 [Y]라 답하는 것이 유용하다

[*] Sysctl support특정 커널의 파라미터와 변수들을 동적으로 변경

sysctl 은 커널 재컴파일이나 시스템 재부팅없이 실행중인 커널 매개변수를 동적으로

변경하는 방법을 제공하는데 주 인터페이스는 시스템 콜이다./proc 파일시스템이 설치되어 있다면 편집 가능한 sysctl 요소 트리가 /proc/sys 디렉토리 아래 생성되는데, 특별히 바이너리가 필요한 경우를 제외하고 일반적으로 텍스트

포맷으로 구성되어 있으며 이 기능을 선택하면 커널 크기가 8KB 늘어난다. 인스톨/복구 디스크를 위해 사용하는 특수한 커널이나 메모리가 극단적으로 적은 시스템이 아니라면 [Y]를

선택

대표적인 sysctl 기능으로 /proc/sys/kernel/panic 이 있다. /proc/sys/kernel/panic 에 0 보다 큰 값을

설정하면 시스템이 멈추었을 때 정해진 시간(초)이 지나면 자동으로 reboot, 0 은 이 기능을 비활성화

(ELF) Kernel core (/proc/kcore) format ELF core 포맷"support for /proc file system"을 활성화하면 커널의 코어 이미지가 /proc/kcore파일에 저장된다. gdb 에서 활용할 수 있다.#cd /usr/src/linux ; gdb vmlinux /proc/kcore

Uranos OS 58/144 210X297mm 인쇄용지 70g/m2

Page 59: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

둘 가운데 하나를 선택할 수 있다.ELF 를 선택하면 /proc/kcore 파일이 ELF 코어 포맷으로 구성된다. A.OUT 을 선택하면 이전 버전의 binutils 등 오래된 도구들이나 아키텍쳐에서 사용할 수 있다. 커널을

컴파일할 때 "-g"옵션으로 디버깅 정보를 넣은 다음, 이 커널이 실행중인 동안에도 커널 데이터 구조를

시험하는 용도로 사용한다.기본값인 ELF 를 그대로 사용

<M> Kernel support for a.out binariesa.out 바이너리 지원, a.out(assembler.output)은 ELF 이전에 쓰이던 바이너리로 점차 사라져 가는

포맷이다. 이 기능은 사용되지 않는데 필요하다면 모듈로 설정한다[M] <*> Kernel support for ELF binaries ELF 바이너리 지원, ELF(Executable and Linkable Format)는 서로 다른 OS 나 Architecture 에 호환될

수 있도록 표준화된 Binary File Format 이다. ELF 는 리눅스 바이너리 포맷의 표준이기도 하므로 반드시 [Y]를 선택

리눅스 커널과 많이 쓰이는 모든 프로그램들이 ELF 포맷으로 컴파일된다.ELF 는 a.out 에 비해 진보된 기능들을 포함한다. 특히 a.out 포맷은 ELF 의 공유 라이브러리의 동적 지원 기능이 없다. [Y] <*> Kernel support for MISC binariesJava, Emacs-Lisp, DOS 실행파일등을 커널 바이너리 클래스에 등록했다면 인터프리터

를 거치지 않고 셸 프롬프트에서 파일 이름을 쓰는 것만으로 간단히 프로그램을 시작할 수 있다.[Y]라고 답했다면 "Kernel Support for JAVA binaries", "kernel Support for Linux/Intel ELF bianries"기능은 필요 없다. [Y]를 선택

[*] Power Management support컴퓨터를 끄거나 전력 소비를 줄이는 기능을 전원 리라 한다.APM 과 ACPI 두 가지 표준이 있다.둘 가운데 어떤 것이든 원한다면 [Y]를 답하고 아래에서 적절한 옵션들을 선택 한다. 랩탑의 배터리처럼 시간 제한이 있는 전원장치를 가진 시스템에서는 유용하지만 서버에서는 쓸모 있는

기능은 아니다.이 옵션을 끄더라도 시스템을 멈추는 hlt 명령은 사용할 수 있다. [ ] ACPI support (NEW)리눅스에서 ACPI/OSPM 지원기능은 현재 개발중이다. ACPI(Advanced Configuration and Power Interface)는 이전의 전원관리 표준보다 더욱 세세한

Uranos OS 59/144 210X297mm 인쇄용지 70g/m2

Page 60: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

정보들을 다룬다고 한다. ASPI/OSPM 을 사용하려면 이 기능을 지원하는 하드웨어/펌웨어를 갖춘

시스템이어야 한다. [N]을 선택하는 것이 안전

< > Advanced Power Management BIOS support노트북 등 전원관리가 필요한 시스템이라면 설정

[] Ignore USER SUSPEND [ ] Enable APM at boot time[ ] Make CPU Idle calls when idle [ ] Enable console blanking using APM[ ] RTC Stores time in GMT[ ] Allow interrupts during APM BIOS calls[ ] Use real mode APM BIOS call to power off (NEW)

Memory Technology Devices (MTD)< > Memory Technology Device (MTD) supportMTD 는 임베디드 디바이스에서 고형체 파일시스템(solid state filesystem, 뱅글뱅글

돌지 않는)을 구성하는데 사용하는 플래시 메모리, RAM, 그리고 비슷한 다른 칩셋 등 메모리 장치이다. [N]

Parallel port support : 병렬포트 프로토콜과 장치들을 지원

< > Parallel port support

Plug and Play configuration :새로운 장치나, 없어진 장치에 대한 정보를 스스로 설정하는 PnP 기능을

사용하려면 설정

<*> Plug and Play supportPlug and Play 지원 <M> ISA Plug and Play supportISA PnP 장치들이 많지 않으므로 [N]을 선택

오래된 ISA 사운드 카드나, 게임패드 등을 가지고 있다면 이 기능을 활성화

Block devices : 플로피 디스크, 하드 디스크, 시디롬처럼 블록단위로 읽고 쓰는 장치

<*> Normal PC floppy disk support 플로피 드라이버 장치 지원, IBM PC 나 그 호환기종에서 사용하는 일반적인 플로피

디스크 드라이브가 있다면 [Y]나 [M]을 선택

Uranos OS 60/144 210X297mm 인쇄용지 70g/m2

Page 61: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > XT hard disk supportXT 라는 매우 오래된 8bit 시스템에 대한 설정, [N]

< > Parallel port IDE device Support패러랠 포트에 연결하는 블록 장치가 있다면 종류와 프로토콜을 설정, [N].

< > Compaq SMART2 support컴팩의 SMART Array 컨트롤러를 지원하는 드라이버, 이 보드가 있는 사람들은 모두

[Y]를 선택, 이 드라이버를 지원하는 보드 목록은 "#cat /usr/src/linux/Documentation/cpqarray.txt"로 확인한다. 이 보드가 없거나, 잘 모르겠으면 [N]

< > Compaq Smart Array 5xxx support컴팩의 Smart Array 5xxx 컨트롤러를 지원하는 드라이버, 이 보드가 있는 사람들은

모두[Y]를 선택한다.이 드라이버를지원하는보드목록"#cat/usr/src/linux/Documentation/cciss.txt"로

확인하고 이 보드가 없거나, 잘 모르겠으면 [N]

< > Mylex DAC960/DAC1100 PCI RAID Controller support블록 디바이스를 병렬로 연결해서 속도나 안정성을 높일 수 있는 PCI RAID 컨트롤러를 지원한다. 고가의

서버에서나 볼 수 있는 장비이고 이 컨트롤러가 없는 장치들은 소프트웨어 RAID 를 이용해서 같은 일을 할

수 있다.리눅스 커널에서 지원하는 소프트웨어 RAID 를 사용하려면 [N]

<M> Loopback device support한 파일을 하나의 파일 시스템처럼 인식시키며 파일을 블록 디바이스처럼 사용하는

기능이다. 파일 속에 파일시스템을 만들어서, 일반적인 블록 장치를 다루듯 mount 명령

으로 마운트하여 사용할 수 있다. 특별한 파일시스템의 실험, CDROM 을 굽기 전에 또는 플로피디스크로

옮길 이미지 테스트, 암호화 등에 유용하다.

암호화를 바란다면, ftp://ftp.replay.com/pub/crypto/linux/all 나

ftp://verden.pvv.org/pub/linux/kerneli/v2.1/에서 커널 패치를 구해서 설치하고, [Y]를 선택

이 loopback 디바이스는 네트워크에서 loopback 연결(127.0.0.1)과는 상관이 없다.이 옵션을 활성화하면 CD-Recorder 나 CD-RW 등 특별한 장치가 없을 때 ISO 이미지 파일로 나눠주는

FTP 버전 배포판들을 가져와서 CD 로 굽지 않고 파일 그대로 보통 CD-ROM 처럼 마운트하여 사용할 수

있다. 잘 모르겠으면 [Y] < > Network block device support

Uranos OS 61/144 210X297mm 인쇄용지 70g/m2

Page 62: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

네트워크로 연결된 서버 또는 루프백 서버의 파일시스템을 마운트하여 블록 디바이스(/dev/nd0,...)처럼

사용하는 기능이며 클라이언트와 서버는 TCP/IP 로 통신한다.이 기능이 없더라도 NFS 나 Coda 를 사용하면 네트워크 파일시스템을 사용할 수 있다. [N] < > RAM disk support램을 하드 디스크와 같은 블록 디바이스처럼 사용하는 기능

Linux 를 인스톨하는 동안 램에 작은 루트 파일시스템을 생성하기 위해 사용되기도

한다. 대부분 사용자는 램 디스크 기능이 필요 없다. [N]

[ ] Initial RAM disk (initrd) Support일반적인 부트 과정이 시작되기 전에 부트로더로부터 실행되는 램디스크이며, 램 디스크는 일반적으로 "real" 루트 파일시스템 등을 마운트하기 위해 필요한 모듈을

로드하기 위해 사용한다. [N]

Multi-devices support (RAID and LVM) [ ] Multiple devices driver support (RAID and LVM)RAID, LVM 등 다중 저장 장치들을 지원

< > RAID support여러 개의 블록 디바이스를 하나의 커다란 블록 디바이스처럼 묶어 사용하는 기능

입출력이 분산되므로 디스크를 읽고 쓰는 속도가 훨씬 빨라져 다중 사용자 시스템에 매우 유용

RAID-0, RAID-1 (mirroring)은 일반적인 디스크보다 여러 면에서 위험하지만

RAID-5 는 에러 복구가 가능하고 RAID-4 의 문제점이었던 병목현상이 제거된 안정적

모드

< > Linear (append) mode< > RAID-0 (Striping) mode< > RAID-1 (mirroring) mode< > RAID-4/RAID-5 mode< > Logical volume manager (LVM) support

하드 드라이브, 하드 디스크 파티션, 멀티플 디바이스 , 루프 디바이스까지도

몇 개를 묶어 볼륨 그룹화하는 것을 지원한다. 볼륨 그룹은 일종의 가상 디스크, 논리 볼륨은 볼륨 그룹 안에서 만들 수 있는 가상 파티션이다.볼륨 그룹이나 논리 볼륨은 만들어진 다음에도 크기를 조정할 수 있다.

Uranos OS 62/144 210X297mm 인쇄용지 70g/m2

Page 63: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

논리 볼륨은 /dev/VolumeGroupName/LogicalVolumeName 이라는 장치이름을

가진다

Networking options

<*> Packet socket네트웍 디바이스와의 직접통신을 하게 해준다.tcpdump 처럼 매개 프로토콜없이 직접 네트워크 장치와 통신하는 어플리케이션에서 사용 [Y] [ ] Packet socket: mmapped IO더 빠른 통신을 할 수 있게 한다. 옵션을 활성화하면 패킷 프로토콜 드라이버는 더

빠른 통신을 지원하는 IO 메커니즘을 사용한다. [N]

[ ] Kernel/User netlink socket커널의 어떤 부분들 또는 모듈과 유저 프로세스 사이의 양방향 통신을 허락한다.유저 프로세스는 /dev 디렉토리로부터 읽거나 쓸 수 있다. routing message 기능과 함께 네트워크 관련 정보를 알리기 위해 사용

IP: firewall packet netlink device 기능과 함께 가능한 공격에 대한 정보를 알리기 위해 방화벽 코드에서

사용하고,arpd 데몬, 네트워크 링크 드라이버를 사용하기 위해서는 [Y]를 선택

[ ] Routing messages네트워크 관련 라우팅 정보를 /dev/route 에서 읽을 수 있게 하는 기능

mknod("man mknod")로 메이저 넘버 36, 마이너 넘버 0 인 스페셜 캐릭터 파일로

/dev/route 를 만들면 이 파일을 읽어서 라우팅 정보에 대해 알아낼 수 있다.하지만 이 파일에 쓰는 것은 모두 버려지므로 기록하는 것은 의미가 없다. [N]

< > NetLink device emulation이 옵션은 곧 사라지고 넷링크 소켓으로 바뀐다. [N]

[*] Network packet filtering (replace ipchains)넷필터는 이전 커널에서 방화벽, 혹은 메스커레이딩이란 이름으로 불리던 옵션들의

새 이름이다. 넷필터는 리눅스 박스를 지나가는 네트워크 패킷을 걸러내고(filtering)조각내기(mangling) 위한 구조(체제)이다. 패킷 필터링의 일반적인 사용은 리눅스 박스를 방화벽으로 만들어 로컬 네트워크를

인터넷으로부터 보호하는 것이다. 방화벽으로 쓰일 때 이 기능을 "패킷 필터"라 부른다.이것은 네트워크 패킷을 타입(type), 근원(source), 목적지(destination) 등을 기초로 deny 할 수 있음을

뜻한다.

Uranos OS 63/144 210X297mm 인쇄용지 70g/m2

Page 64: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

"프록시-기반(proxy-based one)"의 방화벽은 침입에 대해 더 안전하지만 설정이 까다롭다. 프록시 기반

방화벽은 커널에서 지원하는 것이 아니지만, 자주 패킷 필터와 조합해서 쓰이므로, 이 옵션은 활성화한다.또 이 옵션은 공인 IP 주소가 없는 로컬 네트워크 머신들을 인터넷에 연결할 때 리눅스 박스를 게이트웨이

(gateway)로 만들기 위해 쓰인다. 이것은 "매스커레이딩(masquerading)"인데, 로컬 네트워크에 물려

있는 컴퓨터들 가운데 하나가 외부(인터넷)에 데이터를 보낸다면 공인 IP 주소를 가지고 있는 게이트웨이

박스는 그 컴퓨터를 "가장(masquerade)"해서 대신 주고 받을 수 있다. 즉, 외부 목적지로 트래픽을

보내지만, 패킷이 방화벽 박스 자신으로부터 나온 것처럼 보이게 하려고 패킷을 수정한다.포트 포워딩이라는 메커니즘을 사용하면 서버들까지도 메스커레이딩을 통해 외부에 서비스를 제공할 수

있다. 흔히 메스커레이딩을 NAT(Network Address Translation)라고 부른다. 넷필터는 투명한 프록시

(transparent proxying)에도 쓰인다.

[ ] Network packet filtering debugging (NEW)넷필터 코드를 디버깅하는데 유용한 정보들을 추가 [N]

[ ] Socket Filtering리눅스 소켓 필터는 버클리의 패킷 필터로부터 파생된 것이다.Unix 시스템은 소켓을 통해 프로세스 사이 통신이 이루어진다.이 기능을 선택하면 커널 수준에서 소켓을 조사하고, 허용/불가를 지정할 수 있다.리눅스 소켓 필터링은 TCP 를 제외한 모든 소켓에서 동작한다. [N]

<*> Unix domain sockets 소켓은 네트워크를 연결하고 접근하기 위한 표준 장치(mechanism)이다. 리눅스 박스가 네트워크에 연결되어 있지 않더라도 X 윈도우 시스템이나 syslog같은 프로그램들이 소켓을 사용한다.이 기능을 모듈로 설정하고 모듈 적재를 잊으면(neglect to load the module) 중요한 서비스들이

동작하지 않을 수 있다. [Y]를 권장

<*> TCP/IP networkingTCP/IP 네트워킹 지원

인터넷과 이더넷 등 대부분 네트워크에서 사용하는 표준 프로토콜이다. 인터넷 접속뿐만 아니라 많은 프로그램에 꼭 필요하므로 반드시 [Y]를 선택한다. TCP/IP 는 데이터 통신 프로토콜을 가리키며 가장 중요한 전송 제어 프로토콜 (transmission control protocol)과 인터넷 프로토콜(internet protocol)에서 이름을 따 온 것이다.

[*] IP: multicasting메시지를 미리 정한 여러 목적지에 보내는 기능이다.

Uranos OS 64/144 210X297mm 인쇄용지 70g/m2

Page 65: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

이와 다르게 broadcast 는 네트워크 안의 모든 장치가 패킷을 수신한다. 멀티캐스팅은 부서별 공지, 뉴스 푸시 등에 사용한다.

[ ] IP: advanced router리눅스 박스를 주로 라우터로 사용할 계획이라면 설정

라우터는 패킷 경로를 제어하는 것으로 패킷을 어떤 게이트웨이로 보낼 것인지를 결정하는데, 라우터가

게이트웨이 역할까지 하는 경우가 많기 때문에 게이트웨이라 불리기도 한다. 이 옵션은 일반적인 라우팅

기능에 필터링, 보안(IP 속이기 예방) 등 몇 가지 향상된 기능을 지원한다. 잘 모르겠으면 [N] [ ] IP: policy routing라우터는 수신한 패킷의 목적지 주소에 따라 무엇을 할지 결정한다. 만일 이 옵션에 [Y]라고 답한다면 리눅스 라우터가 패킷의 송신지 주소를 고려할 수 있게 된다."IP: use TOS value as routing key"도 [Y]로 한다면 패킷의 TOS(Type-Of-Service)부분은 라우팅

결정을 위해서 사용된다. “IP: fast network address translation"를 [Y]로 한다면 리눅스 라우터는

전송된 패킷의 송신지와 목적지 주소들도 수정할 수 있게 된다.

[ ] IP: fast network address translation[Y]를 선택하면, 통과하는 패킷들의 출발지 주소와 목적지 주소를 마음대로 변경할 수 있게 된다. 네트웍

주소 해석에 대한 일반적인 정보 -> http://www.csn.tu-chemnitz.de/ mha/linux-ip-nat/diplom/nat.html

[ ] IP: equal cost multipath (NEW)라우팅 테이블은 주어진 패킷에 대한 하나의 행동을 구체적으로 알려준다. 만약 [Y]로 한다면 패킷 패턴에 여러 개의 행동을 덧붙이는 것이 가능해지고, 그

패킷이 전달되기 위해 실제로 거쳐야 할 대체 경로들을 구체적으로 알려준다.라우터는 이런 경로들을 동일한 "cost"로 여겨, 일치하는 패킷이 도착하면, 유동적

으로(non-deterministic fashion) 그 경로들 중에 하나를 선택하게 된다.

[ ] IP: use TOS value as routing key (NEW)모든 IP 패킷의 헤더부분은 그 패킷이 요구하는 특정 처리부분을 담고 있는 TOS(Type of Service)값을

가지고 있다.(상호작용하는 트래픽을 위한) low latency, 높은 처리량, 높은 신뢰도 같은 것들이 있다. [Y]라고 답하면, 서로 다른 TOS 값들을 가진 패킷들을 위해 서로 다른 라우터를 지정할 수 있게 된다.

[ ] IP: verbose route monitoring (NEW)[Y]로 한다면(권장사항), 커널이 라우팅에 관해서 자세한 메시지들을 출력할 것이다.

Uranos OS 65/144 210X297mm 인쇄용지 70g/m2

Page 66: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

예를 들어, 이상하게 보이는 수신 패킷들이나, 시스템 설정 어딘가의 오류, 또는

공격의 증거가 될 수 있는 것들에 대해 경고 메시지들을 줄 것이다.정보는 커널 메시지 부분을 담당하는 klogd 데몬이 다루고 있다. ("man klogd")

[ ] IP: large routing tables (NEW)라우팅 존에 64 항목 이상이 필요하다면 [Y]를 선택해서 라우팅 프로세스 속도를

높인다.

[ ] IP: kernel level autoconfiguration클라이언트 시스템이 부팅할 때 BOOTP 서버로부터 네트워크 설정 정보를 가져오는 기능이다. 디스크가

없이 부팅하는 시스템에 쓰이며, "NFS 를 통한 루트 파일시스템" 항목도 역시 [Y]를 선택해야 한다. 새로운

방법은 DHCP 를 사용하는 것이다. [N].

[ ] IP: BOOTP Support (NEW)

[ ] IP: RARP Support (NEW)

<M> IP: tunneling한 프로토콜 안에 다른 프로토콜의 자료를 캡슐화하여 서로 다른 프로토콜 사이에서

전송하는 기능이다. IP 주소 변경없이 네트워크 사이를 옮겨 다니는 Mobile IP 기능과 관련된 옵션이다. 대부분 이 기능은 필요 없다. [N]

< > IP: GRE tunnels over IPGRE(generic routing encapsulation)는 멀티캐스트, IPv6 를 지원한다. Cisco 라우터에 연결될 때 유용하다. 잘 모르겠으면 [N].

[ ] IP: multicast routing리눅스 박스가 다수의 machine 에 IP 패킷을 전송할 때 사용할 수 있다. MBONE, 오디오나 비디오 broadcast 를 목적으로 구성된 높은 대역의 인터넷에서 사용, Multicast 용

네트워크 카드 정보는 Documentation/networking/multicast.txt 대부분의 사용자에게 이 기능은 필요 없다. 잘 모르겠으면 [N]. [ ] IP: PIM-SM version 1 support (NEW)[ ] IP: PIM-SM version 2 support (NEW)

[ ] IP: ARP daemon Support (EXPERIMENTAL)일반적으로 커널은 로컬 네트워크에서 IP 주소와 하드웨어 주소 MAP 을 내부 캐시로

Uranos OS 66/144 210X297mm 인쇄용지 70g/m2

Page 67: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

가지고 있다. 수백개 이하의 호스트가 연결된 소규모 네트워크에서는 ARP(Address Resolution Protocol) 캐시를 커널 차원에서 관리 하지만 매우 큰 네트워크(switched network)에서는 별로

좋지않다. 만일 네트워크 연결(TCP/IP)이 많다면 커널 메모리의 많은 부분을 ARP 캐시로 사용하게 된다. 이 옵션에서 [Y]를 선택하면, 커널 내부 ARP 캐쉬가 256 엔트리(entry)이하로 유지된다. (가장 오래된

엔트리는 LIFO 을 통해 갱신된다.) 그리고 연결은 유저 공간의 arpd 를 통해 이루어진다. ARP 나 RARP 는 네트워크에 자신의 IP 주소나 물리주소를 묻거나(broadcast), 자신의 캐시에서

확인한다. 잘 모르겠으면 [N].

[ ] IP: TCP Explicit Congestion Notification support이 옵션은 장비들에게 전송 속도를 낮추어 줄 것을 요구하는 혼잡 공지(ECN) 비트를 허용한다. 네트워크가

혼잡하면 응답시간이 늦어지고 처리량이 감소하게 된다.(네트워크가 혼잡하면 교환기는 데이터를 단순히 삭제하기 때문이다). 이때 클라이언트가 체증에 대해 라우터에게 알리도록 하면 결과적으로 버려지는 패킷이 줄어들게 되므로

네트워크 퍼포먼스가 높아진다.인터넷에는 ECN 을 보내는 머신으로부터의 연결을 거부하는 고장난 방화벽들이 많이 있는데, 그런 방화벽

뒤에 있는 사이트에 접속하려면 이 옵션을 꺼야 한다.그럴 경우 [N]을 답하거나, sysctl(/proc/sys/net/ipv4/tcp_ecn)을 이용해 실행시간에 끌 수 있다. 잘

모르겠으면 [N]

[*] IP: TCP syncookie support (disabled per default) 서비스 거부 공격을 받을때 대처해 준다. TCP/IP 의 약점을 이용해 서버에 접속을 할 수 없도록 하는 SYN attack(TCP/IP Hacker 등 공격)을 막아준다. 서비스 거부 공격(Denial-of-service)을 당하는 동안에는

합법적인 원격 사용자들이 접속하기 어려워지는데, 이런 공격은 인터넷에 연결된 machine 이 있다면

누구든지 쉽게 시도할 수 있다.그러나 이 옵션을 사용하면, TCP/IP 스택에서 "SYN cookies"라고 불리는 암호화된 프로토콜을

사용하므로, 컴퓨터가 공격을 받고 있더라도 합법적인 사용자가 계속해서 접속할 수 있도록 보호한다. SYN cookies 는 소프트웨어에 대해 투명하게 동작하므로 사용자들은 자신의 TCP/IP 소프트웨어를 변경할

필요가 없다.만약 여러분이 SYN flood 공격을 받고 있다면, 커널이 알려주는 공격자의 주소는 위조 되었을 가능성이

높다. 그 주소는 패킷들의 실제 주소를 추적하는데 도움이 될 뿐이며, 절대적인 것으로 취급해서는 안된다.서버가 과중한 부하에 걸려서 클라이언트에 대한 에러를 올바로 알릴 수 없다면 이 옵션을 선택하지

말아야 한다."/proc filesystem support"와 "Sysctl support" 옵션에도 [Y]를 선택하고, proc 파일 시스템이

마운트되고 나서 다음 명령을 실행해야 SYN cookies 가 동작한다.

#echo 1 > /proc/sys/net/ipv4/tcp_syncookies SYN cookies

Uranos OS 67/144 210X297mm 인쇄용지 70g/m2

Page 68: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

잘 모르겠으면 [Y]를 선택

IP: Netfilter Configuration < > Connection tracking (required for masq/NAT)연결 추적은 어떤 패킷이 머신을 거쳐갔는지, 패킷들이 얼마나 연결 되었는지 그

기록을 유지한다. 이 옵션은 메스커레이딩 혹은 다른 종류의 네트워크 주소 변환(Fast NAT 는 빼고)에

필요하다. 그리고 향상된 패킷 필터링에도 쓰인다.잘 모르겠으면 [N].

<*> FTP protocol supportFTP 연결을 추적한다. 확실하지 않다면 [Y].

< > Userspace queueing via NETLINK (EXPERIMENTAL)넷필터는 유저 공간에 패킷을 큐하는 기능을 가진다.넷링크 장치는 이 드라이버를 이용해서 그들에 엑세스 하도록 사용될 수 있다. 잘 모르겠으면 [N].

< > IP tables support (required for filtering/masq/NAT)iptables 는 일반적이며, 확장할 수 있는 패킷 식별 구조이다. 패킷 필터링과 full NAT(masquerading, port forwarding, etc) 서브시스템은 iptables 를 사용한다.그런 서비스 가운데 하나를 쓰려면 이 옵션에서 [Y]나 [M]을 선택한다. 잘 모르겠으면 [N].

< > limit match supportlimit matching 은 매치되는 룰에서 속도를 제어하도록 허용한다. LOG 타깃("LOG target support")과 서비스 거부 공격(DOS: Denial of Service)회피 기능을 조합할 때 유용하다. 잘 모르겠으면 [N].

< > MAC address match supportMAC 매칭은 출발지 이더넷 주소에 기반한 패킷 매치를 허용한다. 잘 모르겠으면 [N].

< > netfilter MARK match support넷필터 마크 매칭은 "nfmark" 값에 기초한 패킷 매치를 허용한다. MARK 타깃에 의해 설정된다. 잘 모르겠으면 [N].

Uranos OS 68/144 210X297mm 인쇄용지 70g/m2

Page 69: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > Multiple port match support멀티포트 매칭은 출발지나 목적지 포트에 기반한 TCP 나 UDP 패킷 매치를

허용한다. 일반적으로 규칙 하나는 한 가지 포트 범위를 매치할 수 있다. 잘 모르겠으면 [N].

< > TOS match supportTOS 매칭은 IP 패킷의 서비스 필드 형식에 기반한 패킷 매치를 허용한다. 잘 모르겠으면 [N].

< > Connection state match support연결 상태 매칭은 추적한 커넥션의 관계에 기반한(이전 패킷들) 패킷 매치를 허용

한다. 이 옵션은 패킷 분류를 위한 강력한 도구이다. 잘 모르겠으면 [N].

< > Unclean match support (EXPERIMENTAL)IP, TCP, UDP 그리고 ICMP 헤더의 연속된 필드들을 살펴서 낯설거나 무효한

패킷들을 매치한다. 잘 모르겠으면 [N].

< > Owner match support (EXPERIMENTAL)패킷을 생성한 사용자나 그룹, 프로세스나 세션에 기반하여 지역적으로-발생된

패킷을 매치하는 것을 허용한다. 잘 모르겠으면 [N]. < > Packet filtering로컬 input, 포워딩, 로컬 output 에서 심플 패킷 필터링을 위한 연속된 룰을 담는

"필터" 테이블을 규정한다. 잘 모르겠으면 [N].

<M> REJECT target support들어오는 패킷에 대해 ICMP 에러 메시지로 응답하지 않고 버리는 필터링 규칙을

허용한다. 잘 모르겠으면 [N].

< > MIRROR target support (EXPERIMENTAL)MIRROR target 은 들어오는 패킷이 보낸 이에게 되돌아가는 규칙을 허용한다. 잘 모르겠으면 [N].

< > Full NATFull NAT 옵션은 메스커레이딩, 포트 포워딩, 그리고 다른 형식들의 풀 네트워크

주소 포트 전환을 허용한다. 이 기능은 iptables 안에 "nat" 테이블에 의해 제어된다. "man iptables" 잘 모르겠으면 [N].

Uranos OS 69/144 210X297mm 인쇄용지 70g/m2

Page 70: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > MASQUERADE target support메스커레이딩은 NAT 의 특별한 케이스이다.모든 나가는 연결들은 특정한 인터페이스의 주소로부터 온 것처럼 보이도록 바뀐다, 그리고 그 인터페이스를 내리면, 모든 연결들을 잃어버린다. 이 옵션은 다이나믹 IP 주소를 사용하는 다이얼업 계정에만 유용하다. (여러분의 IP 주소가 접속할 때마다 달라진다면) 잘 모르겠으면 [N].

< > REDIRECT target supportREDIRECT 는 NAT 의 특별한 케이스이다.모든 들어오는 연결들은 들어오는 인터페이스의 주소에 사상되므로, 패킷들은 통과해서 직접 연결되는

대신 로컬 머신으로부터 오게 된다. 이 옵션은 투명한 프록시에서 유용하다. 잘 모르겠으면 [N].

< > Packet manglingiptables 에 "mangle" 테이블을 추가한다. 이 테이블은 패킷이 어떻게 라우트될지에 영향을 줄 수 있는 다양한 패킷 변환에

사용된다. iptables(8) 맨 페이지를 참조한다. 잘 모르겠으면 [N].

< > TOS target support라우팅에 앞서 "mangle"테이블 안에 IP 패킷의 Type Of Service 필드를 바꾸는

규칙들을 만들도록 "TOS" 타깃을 추가한다. 잘 모르겠으면 [N].

< > MARK target support라우팅에 앞서 "mangle"테이블 안에 패킷과 관련된 netfilter mark(nfmark) 필드를

바꾸는 규칙들을 만들도록 허용하는 "MARK" 타깃을 추가한다. 이 기능은 라우팅 메쏘드를 바꿀 수 있고 다른 서브시스템에 의해 그들의 behavior 를 바꾸도록 이용될

수도 있다. 잘 모르겠으면 [N].

< > LOG target support이 옵션은 syslog 에 패킷 헤더를 기록하는 규칙을 만들도록 허용하는 "LOG"타깃

을 추가한다. 잘 모르겠으면 [N].

< > ipchains (2.2-style) support이 옵션은 이제 iptables 로 바뀌었다.

Uranos OS 70/144 210X297mm 인쇄용지 70g/m2

Page 71: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

ipchains 를 사용하던 이들은 이 옵션을 활성화해 예전의 명령들을 계속 사용할

수도 있다. [N]

< > ipfwadm (2.0-style) support이 도구는 2.2 커널에서 ipchains 로 바뀌었고, 다시 2.4 커널에서 iptables 로 바뀌

었다. [N]

< > The IPv6 protocoL (EXPERIMENTAL)Internet Protocol 의 다음 버전에 대한 실험적인 지원이다. 새로운 프로토콜(IP version 6, IPng, IP next generation)은 주소 공간이 128 비트

(현재 32 비트)로 커져서 주소가 고갈되는 일은 없을 것이다. 프로토콜 내부에 인증과 비밀 유지 등 보안성이 향상된다. 헤더가 더 합리적으로 구성되어 처리속도가 빨라진다. 중간 연결방법 없이 현재 버전의 IPv4(IP version 4) 프로토콜과 상호 작용이 가능하다. 아직은 [N]을

선택하는 것이 안전

[ ] IPv6: enable EUI-64 token formatIPv6: Netfilter Configuration< > Kernel httpd acceleration (EXPERIMENTAL) 커널 httpd 가속 데몬(kHTTPd)은 커널 속에 만들어 넣은 (제한된) 웹서버이다. 오직 파일시스템으로부터 파일들을 제공받으며 CGI 스크립트처럼 실행할 수 있는

목록은 다룰 수 없다. kHTTPd 를 사용한다면 파일을 서비스하는 속도가 빨라진다.만약 kHTTPd 가 클라이언트의 요청을 마칠 수 없다면, 아파치 등 유저 공간(user space; kernel 과

반대되는 의미로)의 웹 서버에 투명하게 전해준다. 모듈로 설정하면 kHTTPd 가 만족할 만큼 작동하지 않는다.안전을 이유로, 모듈이 올라간 뒤에 다음 명령을 내려야 모듈이 활성화된다. #echo 1 > /proc/sys/net/khttpd/startkHTTPd 는 아직 실험적인 수준이므로 이 옵션을 사용하는 제품을 만들 때에는

주의를 요한다. 그리고 아직 가상 서버는 지원하지 않는다. 잘 모르겠으면 [N].

[ ] Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)ATM 은 LAN 혹은 WAN( Wide Area Networks)에서 쓰이는 고속 네트워킹 기술이다.ATM 은 고정된 패킷 크기를 사용하며 연결 지향의 작은 대역폭을 사용하도록 한다.ATM 을 사용하려면 리눅스 박스에 ATM 네트워킹 카드가 필요하다. 만약 ATM 카드가 있다면 [Y]를 선택하고 알맞은 드라이버를 고른다. 그리고, 커널 지원 외에도 유저 공간의 프로그램들이 필요하다.

Uranos OS 71/144 210X297mm 인쇄용지 70g/m2

Page 72: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

ATM(Asynchronous Transfer Mode : 비동기 전송 모드)에서는 보내려는 정보를

미리 약속한 크기의 패킷으로 나눈 다음, 패킷의 헤더 부분에 목적지 정보를

덧붙여 전송한다. 패킷들이 목적지에 도착하면 규칙에 따라 다시 원래의 정보로 환원한다. < > The IPX protocolNoveLL 네트워크에 연결할 때 설정

노벨 네트워크와 연결되지 않는다면 [N]을 선택

< > IPX: SPX networking (EXPERIMENTAL)노벨 네트워킹과 관련된 기능이다. [N]

<M> Appletalk protocol supportAppLe컴퓨터를 위한 네트워크프로토콜이다. 리눅스 박스를 이 네트워크에 연결하기 위해서는 netatalk 패키지가 필요하다. 잘 모르겠으면 [N].

< > DECnet Support(지금은 Compaq 인) 디지틀사에서 만든 많은 제품들이 DECnet 네트워킹 프로토콜을

사용한다. 잘 모르겠으면 [N].

< > 802.1d Ethernet Bridging리눅스박스를 이더넷 브리지로 사용한다. 일반적으로 브리지보다 효율적인 기능을 가진 라우터가 더 많이 쓰인다. 잘 모르겠으면 [N].

< > CCITT X.25 Packer Layer (EXPERIMENTAL)X.25 패킷 레이어는 정부, 은행 등 기관에서 WAN 을 구성하기 위해 사용하는

표준 네트워크 프로토콜이다. PLP 와 LAPB 두 개의 프로토콜로 구성된다. 잘 모르겠으면 [N].

< > LAPB Data Link Driver (EXPERIMENTAL)Link Access Prodedure for Balanced 는 X.25 프로토콜의 하위 레벨 구성요소이다. 리눅스에서는 이더넷 커넥션에 대한 LAPB 만을 지원한다. 잘 모르겠으면 [N].

[ ] 802.2 LLC (EXPERIMENTAL)

Uranos OS 72/144 210X297mm 인쇄용지 70g/m2

Page 73: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

일반적인 이더넷 카드를 이용하는 네트워크에서 X.25 네트워크에 연결하는 802.2Logical LinkLayer 프로토콜이다. 잘 모르겠으면 [N].

[ ] Frame Diverter (EXPERIMENTAL)

< > Acorn Econet/AUN protocols (EXPERIMENTAL)Econet 은 Arcon 컴퓨터에서 파일, 프린터 서버에 액세스하기 위해 사용되던 아주

오래되고 느린 네트워킹 프로토콜이다. 잘 모르겠으면 [N].

< > WAN routerWAN 은 하나 이상의 LAN 으로 구성된 광역네트워크이다. WAN 라우터는 리눅스 박스를 이용하여 상대적으로 매우 저렴하게 구성할 수 있다. 이 기능을 위해서는 wan-tools 패키지가 필요하다.

[ ] Fast Switching (read help!)tulip 등 이 기능을 지원하는 NIC(network interface card)끼리 직접 데이터를

빠르게 교환할 수 있다. "advanced router" 기능과 함께 사용할 수 있지만 방화벽을 구축한다면 [N]을선택해야 한다.

[ ] Forwarding between high Speed interfacestulip 등 이 기능을 지원하는 NIC 는 옵션이 활성화되었을 때 하드웨어 속도조절

기능을 지원한다. [N]을 답하는 것이 좋다.

QoS and/or fair sueing : 패킷 스케쥴러에 따라 패킷을 제어하는 기능이다. 네트워크 장치가 실시간 장치일 때 특히 이 기능이 중요하다.

[ ] QoS and/or fair queueing네트워크 디바이스들을 통해서 내보내야 할 패킷들이 있을 때, 커널은 어떤 것을

먼저 보내야 할 것인지 선택해야 한다. 이 선택은 최소한의 data flow rate 가 필요한 실시간 디바이스인 경우 더 중요하다. 이것을 공정하게 하는

순서들을 효율적으로 정하기 위한 알고리즘들이 있는데

그것들을 패킷 스케쥴러라 부른다.만약 기본적인 패킷 스케쥴러(FIFO: first come, first served)를 그냥 사용한다면

[N]을 답한다. 보다 효율적이라 생각하는 다른 알고리즘으로 바꿔보고 싶다면

[Y]를 선택해 이 옵션을 활성화한다. 네트워크 디바이스들마다 서로 다른 스케줄링 알고리즘을 할당할 수도 있다.

Uranos OS 73/144 210X297mm 인쇄용지 70g/m2

Page 74: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

다만, 이런 것들에 대해 잘 알고 있는 전문가들에게만 추천되는 기능이다. 이 옵션들을 활용하려 한다면 유저-레벨 유틸리티들이 있는 ftp://ftp.inr.ac.ru/ip-routing/에서

iproute2+tc 패키지를 가져와야 한다. "/proc filesystem"이 활성화되어 있다면 /proc/net/psched 에서 우선순위 스케줄러에 대한 상태 정보를

얻을 수 있다. 잘 모르겠으면 [N].

BQ packet scheduler : Class-Based Queueing(CBQ) 패킷 스케쥴링 알고리즘을 지원한다. 이

알고리즘은 전송되기를 기다리는 패킷을 트리(tree)형태의 계층적

구조로 분류한다. (net/sched/sch_cbq.c 파일의 시작부분) 이 트리의 리프(leaf) 노드들은 다른

알고리즘에 의해 스케쥴링된다. 이 리프 노드에 적용될 스케쥴링 알고리즘은 아래의 여러가지 큐잉

알고리즘중에서 선택할 수 있다.

CSZ packet scheduler : Clark-Shenker-Zhang(CSZ) 패킷 스케쥴링 알고리즘을 지원한다. 실시간

(real-time) 응용 프로그램에 대한 서비스를 보장해줄 수 있는 알고리즘이다(net/sched/sch_csz.c 의

시작부분). 주의: 이 스케쥴러는 현재 완벽하지 않다.

The simplest PRIO pseudo scheduler : RED queue 의 net/sched/sch_red.c 의

시작부분을 참고한다. SFQ queue : net/sched/sch_sfq.c 의 시작부분 참고. TEQL queue : net/sched/sch_sfq.c 의 시작부분 참고. TBF queue : net/sched/sch_tbf.c 의 시작부분 참고

QoS support : QoS 스케쥴링 기능을 지원한다. [N]을 답하면 QoS 에 대해서 더이상 묻지 않는다.

Rate estimator : Quality of Service 스케쥴링을 사용하기 위해 네트워크 장치에 대한 현재 데이타

전송속도의 예측하는 기능을 지원한다. Packet classifier API : CBQ 스케쥴링 알고리즘은 네트웍 장치를 통해 전송되도록 스케쥴된 네트웍

패킷이 어떤 방식으로 분류될 것인지 물어본다. 이 옵션을 활성화하면 다양한 종류의 패킷 분류자를 선택할 수 있다.

Telephony Support< > Linux telephony support

ATA/IDE/MFM/RLL support

<*> ATA/IDE/MFM/RLL support

Uranos OS 74/144 210X297mm 인쇄용지 70g/m2

Page 75: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

IDE, ATA and ATAPI Block devices : 하드디스크, CDROM 등 블록 단위로 데이터를 다루는 저장장치(블록 디바이스)들을 위한 옵션들이다.

<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support IDE 를 사용할 수 있도록 해준다. 대부분의 PC 에서 사용하는 E-IDE (enhanced-Intelligent Drive Electronics, ATA-2) 디바이스

설정이다. E-IDE 는 IDE(ATA :AT Attachment) 인터페이스의 확장된 표준이다(ATA-3). IDE 에 비해 인식할 수 있는 하드디스크 크기가 커지고 장착할 수 있는 디스크 제한이 4 개로 늘어났다. [Y]

---Please see Documentation/ide.txt for help/info on IDE drives

[ ] Use old disk-only driver on primary interface매우 오래된 시스템에만 설정한다. [N]

<*> Include IDE/ATA-2 DISK support 하드디스크를 사용 가능하게 한다.루트 파일시스템이 이 방식의 IDE 디스크에 설치되었다면 모듈 기능으로 컴파일하지

않는다. [Y] [ ] Use multi-mode by default아래와 같은 에러가 발생하였으면 여기서 Y 라고 한다. hda:set_multimode:status=0x51{DriveReady SeekComplete Error}hda: set_multimode:error=0x04{DriveStatusError} 확실치 않다면 [N]

< > PCMCIA IDE support노트북 컴퓨터 사용자를 위한 설정이다. PCMCIA 블록장치가 있다면 [Y]를 설정한다.

<M> Include IDE/ATAPI CDROM supportCD-ROM 사용 가능하게 한다.ATAPI 는 SCSI 프로토콜을 흉내낸 IDE CDROM 과 TAPE 드라이버의 새로운 프로토콜

이다. SCSI 가 아닌 2배속 이상의 대부분 CDROM 은 ATAPI 인터페이스를 사용한다.

Uranos OS 75/144 210X297mm 인쇄용지 70g/m2

Page 76: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

"ISO 9660 CDROM filesystem support"는 반드시 [Y] 또는 [M]으로 해야 한다. < > Include IDE/ATAPI TAPE support서버에서 흔히 사용하는 테이프 백업 장치 설정이다. [N]

< > Include IDE/ATAPI FLOPPY supportZIP 드라이브 등을 사용 가능하게 한다.LS-120, IDE/ATAPI Iomega ZIP 드라이브(내장형)를 지원한다. 이곳에 [Y] 또는 [M]을 답하면 플로피 드라이브는 "hdb"나 "hdc"등의 이름을 가진

IDE 장치로 인식된다. 패러랠 Zip 드라이브는 SCSI Low-Leveldrivers 서 설정한다. < > SCSI emulation support새로운 IDE 디바이스들(ATAPI PD-CD or CDR, CDRW)이 사용하는 프로토콜이다. IDE/ATAPI 드라이버에서 지원되지 않는 디바이스를 마치 SCSI 장비인 것처럼 사용

한다. [Y]

---IDE chipset support/bugfixes [*] CMD640 chipset bugfix/supportCMD640 IDE 칩셋은 많은 486 과 Pentium 마더보드에 사용되는 컨트롤러지만 설계상문제가 있다. [Y]를 답하면 커널이 몇 가지 문제점을 바로잡는다. 이 드라이버는 PCI 시스템에서 자동으로 동작하지만 베사 로컬 버스(VLB)를 사용

한다면 커널 부트 매개변수로 "ide0=cmd640_vlb"를 넣어야 한다. SCSI 만을 사용하는 시스템에서는 [N]을 설정해야 한다.

[ ] CMD640 enhanced supportCMD640 IDE 인터페이스를 가지고 있고, 장착된 시스템의 BIOS 가 제대로 동작하지

않는다면 [Y]를 선택한다. [ ] ISA-PNP EIDE support

[*] RZ1000 chipset bugfix/supportPC-Technologies RZ1000 IDE 칩은 많은 486, 펜티엄 보드에서 대개 "Neptune"칩셋과 함께 많이 사용된다. 불행히도, 이 칩은 많은 상황에서 심각하게 데이터를 손실시키는 경우가

생길 수 있는 설계상의 결점을 가지고 있다. 이 옵션을 활성화하면 이런 문제를 자동으로 고치고 점검을 해주는 코드가 커널에 포함된다. 이 옵션

Uranos OS 76/144 210X297mm 인쇄용지 70g/m2

Page 77: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

때문에 디스크 입출력 속도가 조금 떨어질지도 모르지만 100% 신뢰할 수 있도록 작동할 것이다. SCSI 장치만을 가진 시스템이라면 여기에 [N]이라고 한다. 잘 모르겠으면 [Y]를 선택하는 것이 안전하다.

[*] Generic PCI IDE chipset support PCI 방식의 IDE 지원. [*] Sharing PCI IDE interrupts support IRQ 공유 지원.어떤 ATA/IDE 칩셋은 하나의 IRQ 를 여러 장치가 공유할 수 있는 기능을 지원하기도 한다. 대개는 [Y]라 해도 안전하지만, 확실하지 않다면 [N]

[*] Generic PCI bus-master DMA support DMA 지원. PCI 시스템이 IDE 드라이브(대부분)를 사용하고 bus-master DMA(Directmemory access)를 지원한다면 이 옵션을 활성화해 CPU 의 부담을 줄일 수 있다. 자동으로 DMA 를 설정하지 못한다면 나중에 hdparm 유틸리티를 이용하여 DMA 를

사용할 수 있다. 기본적으로는 DMA 가 설정되어 있지 않지만 Use DMA by default when available 항목을 활성화하면 DMA 를 사용할 수 있다. hdparm 유틸리티의 최신버전은 ftp://metalab.unc.edu/pub/Linux/system/hardware/에 있다. [Y]

[ ] Boot off-board chipsets first support추가한 PCI 카드(내장되지 않은 off-board 컨트롤러)가 ide2 와 ide3 이 되고, 내장되어

있는 on-board IDE 컨트롤러는 ide0 과 ide1 이 된다. 이 옵션을 활성화하면 off-보드 콘트롤러가 ide0/1 로, 온-보드 콘트롤러가 ide2/3 으로 바뀐다. 오프-보드 콘트롤러를 이용해서 부팅할 때 lilo 등 부트 매니저의 기능이 향상될 수 있다. 만약 여기에 [Y]라

하면 hd* 장치는 재배열 되고, fstab 등 다른 파일들을 수정해야 한다. 잘 모르겠으면 [N].

[ ] OPTi 82C621 chipSet enhancedSupport (EXPERIMENTAL)EIDE 컨트롤러 가운데 하나이다. 마더보드에 이 칩셋이 있다면 [Y]

[ ] Use PCI DMA by default when availableVIA VP2 칩셋을 사용한다면 선택하지 말 것.커널 버전 2.1.12 이전에는 DMA 를 지원하는 IDE 드라이브와 칩셋에서 이 기능을

자동으로 사용하였다. 그러나 일부 하드웨에서 문제를 일으킬 수 있어서, 이제는 DMA 기능을 자동으로 사용하지 않는다. DMA 기능을 자동으로 사용하려면, [Y]를 선택한다.

Uranos OS 77/144 210X297mm 인쇄용지 70g/m2

Page 78: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

만약 하드웨어에 문제의 소지가 있다면, [N]을 선택한다. 메인보드가 VIA VP2 칩셋을 사용한다면 [N]을 선택해야 하고, 그렇지 않다면 [Y]를 선택한다.

[ ] AEC62XX chipset support[ ] ALI M15x3 chipset support[ ] AMD Viper support[ ] CMD64X chipset support[ ] CY82C693 chipset support[ ] Cyrix CS5530 MediaGX chipset support[ ] HPT34X chipset support[*] HPT366 chipset support Ultra DMA 66 지원. [*] Intel PIIXn chipsets support[ ] NS87415 chipset support (EXPERIMENTAL)[ ] PROMISE PDC20246/PDC20262 support[ ] SiS5513 chipset support[ ] SLC90E66 chipset support[ ] Tekram TRM290 chipset support (EXPERIMENTAL)[ ] VIA82CXXX chipset support[ ] Other IDE chipset support

만약 마더보드와 애드온 카드에 사용된 갖가지 IDE 형식 칩셋의 진보된 지원을 원한다면 이 기능을

활성화한다. 그 다음 서브 옵션에서 맞는 IDE 칩을 선택한다. 어떤 시스템에서는 이 옵션이 활성화되어야 세번째/네번째 드라이브를 액세스할 수 있을지도 모른다. 시스템 퍼포먼스를 높이기 위해 고속 I/O 세팅도 가능할 것이다. 이런 설정들을 위해서는 런타임과 관련된 특별한 커널 부트 파라미터도 필요하다. SCSI 만 사용한다면 [N].

---Note: most of these also require special kernel boot parameters[ ] Generic 4 drives/port support (NEW)[ ] ALI M14XX support (NEW)[ ] DTC-2278 support (NEW)[ ] Holtek HT6560B support (NEW)[ ] QDI QD6580 support (NEW)[ ] UMC-8672 support (NEW)[ ] IGNORE word93 Validation BTTS (NEW)

SCSI support

Uranos OS 78/144 210X297mm 인쇄용지 70g/m2

Page 79: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > SCSI support

----SCSI support tupe (disk, tape, CD-ROM)< > SCSI disk support(40) Maximum number of SCSI disks that can be loaded as modules< > SCSI tape support< > SCSI OnStream SC-x0 tape support< > SCSI CD-ROM support< > SCSI generic support

[ ] Enable extra checks in new queueing code----Some SCSI devices (e.g. CD jukebox) support multiple LUNs [ ] Probe all LUNs on each SCSI device[ ] Verbose SCSI error reporting (kernel size +=12K)[ ] SCSI logging facility

SCSI low-level drivers< > 3ware Hardware ATA-RAID support< > 7000FASST SCSI support< > ACARD SCSI support< > Adaptec AHA152X/2825 support< > Adaptec AHA1542 support< > Adaptec AHA1740 support< > Adaptec AACRAID support< > Adaptec AIC7xxx support< > Old Adaptec AIC7XXX support (NEW)< > AdvanSys SCSI support< > Always IN2000 SCSI support< > AM53/79C974 PCI SCSI support< > AMI MegaRAID support< > BusLogic SCSI support< > Compaq Fibre Channel 64-bit/66Mhz HBA support< > DMX3191D SCSI support< > DTC3180/3280 SCSI support< > EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support< > EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix)

Uranos OS 79/144 210X297mm 인쇄용지 70g/m2

Page 80: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

support..............

PCMCIA SCSI adapter support[ ] PCMCIA SCSI adapter support

Fusion MPT device support < > Fusion MPT (base + ScsiHost) drivers (NEW)

I20 device support< > I20 support

Network device support : 다양한 네트워크 디바이스에 대한 설정이다. 리눅스는 고가의 라우터 장비와 Traffic shaper 등 고도로 지능화된 장비들을 대신할 수도 있다.

[*] Network device support 이더넷 디바이스와 PPP, SLIP(전화선을 이용한 다이얼업 네트워크), PLIP(패러랠포트를

이용한 네트워크) 등 네트워크 장치들을 지원한다.리눅스 박스가 네트워크에 연결되려면 반드시 [Y]를 선택한다.

ARCnet devices[ ] ARCnet supportARCnet 칩셋이 있는 네트워크 카드를 가졌다면 [Y]를 선택한다. 아크넷은 전송률이 낮지만(2.5Mbps) 케이블이 훨씬 길어질 수 있어 공장 등에서

사용되기도 한다. 잘 모르겠으면 [N].<verb>

< > ARCnet support< > Enable standard ARCNet packet format (RFC 1201) (NEW)< > Enable old ARCNet packet format (RFC 1051) (NEW) < > Enable raw mode packet interface (NEW)

<M> Dummy net driver supportDummy net driver 는 패킷을 버리는 쓰레기통 (bit-bucket)이다. PPP 나 SLIP 을 사용한다면 [Y]나 [M]을 답한다. 모듈로 컴파일하면 더미 터미널 여럿을 동시에 사용할 수 있다.

Uranos OS 80/144 210X297mm 인쇄용지 70g/m2

Page 81: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

어떻게 설정하더라도 커널 크기는 늘어나지 않는다. [M]을 권장한다.

< > Bonding driver support"bond" 다중 이더넷 채널을 사용하려면 [Y]나 [M]을 답한다. CISCO 에서는 이것을 "Etherchannel"이라 부르며, Sun 에서는 "Trunking",리눅스에서는 "Bonding"이라 부른다. 여러분이 어떤 컴퓨터에 이더넷 연결을 두 개 가지고 있다면, 이 드라이버를 이용해서

두 배 속도를 가진 하나의 장치처럼 동작하도록 만들 수 있다. 리눅스 박스와 연결된 상대 머신도 리눅스 Bonding 이나 Cisco 5500 switch, 혹은

SunTrunking SunSoft driver 처럼 비슷한 기능을 지원해야 한다. EQL 드라이버와

비슷하지만 시리얼 라인 대신 이더넷 세그먼트를 합친다. 잘 모르겠으면 [N].

< > EQL (serial line load balancing) support여러 개의 PPP, SLIP 연결을 향상된 속도를 가진 하나의 연결로 사용하는 기능이다. 연결된 상대에서도 이 기능을 지원해야 사용할 수 있다. 잘 모르겠으면 [N].

< > Universial TUN/TAP device driver supportTUN/TAP 는 유저 공간의 프로그램들을 위한 패킷 수취와 전달을 제공한다. TUN/TAP 는 물리적인 매체로부터 패킷을 받는 대신 유저공간 프로그램으로부터 받고, 물리적인 매체를 통해 패킷을 보내는 대신 유저공간 프로그램에 패킷들을 쓰는 간단한

Point-to-Point 나 Ethernet 장치로 생각할 수 있다. 프로그램이 /dev/net/tun 파일을

열면, 드라이버가 tunX 나 tapX 등 일치하는 net 디바이스를 생성하고 등록한다. 프로그램이 장치들을 닫으면, 드라이버가 자동으로 tunXX 나 tapXX 등 장치를 지우고

모두 이것에 일치하도록 라우트한다. 어떤 곳에 사용해야 할지 모르겠다면 이 기능은

필요 없다.

< > Ethertap network tap (OBSOLETE)[Y]를 답하고 위의 "Kernel/User network link driver"도 [Y]로 하고 mknod 명령으로

메이저 넘버 36 마이너 넘버 16 번인 캐릭터형 특수 파일 /dev/tap0 을 만들었다면, 유저 공간 프로그램들이 이더넷 프레임들을 그 파일을 통해 읽고 쓸 수 있을 것이다. tap0 는 ifconfig 와 route 명령에 의해 다른 이더넷 장치들처럼 설정될 수 있지만 어떤

물리적 LAN 에도 연결되지 않는다. 사용자가 /dev/tap0 에 쓰는 모든 것이 마치

LAN 으로부터 tap0 장치에 온 것처럼 커널에 의해 다뤄진다. 커널이 tap0 장치 너머로

보내려 하는 모든 것들이 사용자에게는 /dev/tap0 로부터 읽혀진다. 어떤 곳에 사용해야 할지 모르겠다면 이 기능은 필요 없다.

Uranos OS 81/144 210X297mm 인쇄용지 70g/m2

Page 82: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > General Instruments Surfboard 1000SURFboard 1000 내장 케이블 모뎀 드라이버이다. 이 카드가 없다면 [N]

Ethernet (10 or 100Mbit)리눅스 박스에 들어있는 네트워크 인터페이스 카드(NIC) 대부분을 지원한다. 잘 모르겠으면(그래서는 안되지만) [Y]를 설정한다.

[*] Ethernet (10 or 100Mbits)자신의 시스템에 맞는걸 선택한다.[ ] 3COM cards[*] 3COM cards

< > 3c501 "EtherLink" support (NEW)< > 3c503 "EtherLink II" support (NEW) < > 3c505 "EtherLink Plus" support (NEW) < > 3c507 "EtherLink 16" support (EXPERIMENTAL) (NEW) < > 3c509/3c529 (MCA)/3c579 "EtherLink III" support (NEW) < > 3c515 ISA "Fast EtherLink" (NEW) < > 3c590/3c900 series (592/595/597) "Vortex/Boomerang" support< > AMD LANCE and PCnet (AT1500 and NE2100) support [ ] Western Digital/SMC cards [ ] Racal-Interlan (Micom) NI cards < > AT1700/1720 support (EXPERIMENTAL) < > DEPCA, DE10x, DE200, DE201, DE202, DE422 support < > HP 10/100VG PCLAN (ISA, EISA, PCI) support

[ ] Other ISA cards 이제 ISA NIC 는 거의 쓰이지 않는다. ISA 슬롯은 PCI 슬롯보다 상대적으로 크며(길고 넓다) 대개가 까만 색이다. 잘 모르겠으면 [N].

[*] EISA, VLB, PCI and on board controllers 거의 모든 NIC 가 PCI 방식이다. 잘 모르겠으면 [Y]를 답하는 게 안전하다. 자신의 이더넷 장비가 PCI 를 사용한다면 다음 명령으로 칩셋 등 상세 정보를 확인할

수 있다. # cat /proc/pci | grep -i ethernet

Uranos OS 82/144 210X297mm 인쇄용지 70g/m2

Page 83: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Ethernet controller: AMD Unknown device (rev 82).Ethernet controller: DEC DC21140 (rev 34). < > AMD PCnet32 PCI support 홈랜(혹은 BnA) 형식의 ADSL 서비스에서 사용하기도 한다. 32 비트 버스 매스터링 어댑터로 가장 추천받는 NIC 가운데 하나이다.

< > Adaptec Starfire support (EXPERIMENTAL) 다중 포트를 지원하는 어뎁터이다.

< > Ansel Communications EISA 3200 support (EXPERIMENTAL) < > Apricot Xen-II on board Ethernet < > CS89x0 support

< > DECchip Tulip (dc21x4x) PCI support 튤립 역시 리눅스에서 호평받는 NIC 이다.

< > Generic DECchip & DIGITAL EtherWORKS PCI/EISA < > Digi Intl. RightSwitch SE-X support < > DM9102 PCI Fast Ethernet Adapter support (EXPERIMENTAL)

<*> EtherExpressPro/100 support 거의 모든 커널 버전에서 이 옵션이 활성화되어 있는 것을 볼 수 있다.가장 안정적인 NIC 가운데 하나지만. 이 어뎁터가 없다면 [N]를 선택한다.

[ ] Enable Power Management (EXPERIMENTAL) <*> Intel PRO100 / EtherExpressPro/100 support (alternate driver) (NEW) < > National Semiconductor DP83810 series PCI Ethernet support< > PCI NE2000 and clones support (see help) ISA 시절에는 NE2000 이 가장 많은 추천을 받는 카드였다.< > RealTek RTL-8139 PCI Fast Ethernet Adapter support리얼텍 시리즈는 대만산 저가형 NIC 가운데 하나이다. < > RealTek 8129 (not 8019/8029/8139!) support (EXPERIMENTAL) < > SiS 900/7016 PCI Fast Ethernet Adapter support< > SMC EtherPower II

Uranos OS 83/144 210X297mm 인쇄용지 70g/m2

Page 84: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > Sundance Alta support < > TI ThunderLAN support < > VIA Rhine support < > Winbond W89c840 Ethernet support < > Sun Happy Meal 10/100baseT PCI support [ ] Pocket and portable adapters

Ethernet (1000 Mbit)기가비트 이더넷 지원이다. 잘 모르겠으면 [N].

< > Intel PRO/1000 support (NEW)........

[ ] FDDI driver support

[ ] HIPPI driver support (EXPERIMENTAL)HIgh Performance Parallel Interface(HIPPI)는 구리선(25m)이나 광섬유

(멀티모드에서 300 미터, 싱글모드에서 10킬로미터)를 매체로 800Mbit/sec 과

1600Mbit/sec 의 높은 속도를 내는 네트워크이다. 일반적으로 클러스터와 슈퍼컴퓨터 연결에 쓰이는데, 이 기능을 사용하려면 HIPPI 네트워크 카드가 있어야 한다. 대부분은 [N]이 적절할 것이다.

< > PLIP (parallel port) support패러랠포트와 크로스 케이블을 이용해 두 리눅스 박스를 연결한다(TCP/IP 를 이용). PLIP 에는 "null printer" (또는 "fx") 케이블을 통해 4bits씩 전송하는 mode0 와, 특별한

PLIP 케이블을 이용해 8bits 를 전송하는 mode1 이 있다. 잘 모르겠으면 [N].

< > PPP (point-to-point protocol) supportPPP 는 SLIP 보다 향상된 기능을 가진 시리얼 라인(전화선 등) 네트워킹 프로토콜이다. "set version information on all symbols for modules"에 [Y]를 답했다면 모듈로만

컴파일할 수 있다. 케이블 모뎀이나 ADSL 등을 통해 인터넷에 열결되거나 이더넷

카드(LAN)를 가지고 있다면 PPP 는 필요 없다. 잘 모르겠으면 [N][ ] PPP multilink support (EXPERIMENTAL)< > PPP support for async serial ports< > PPP support for sync tty ports< > PPP Deflate compression

Uranos OS 84/144 210X297mm 인쇄용지 70g/m2

Page 85: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > PPP BSD-Compress compression< > PPP over Ethernet (EXPERIMENTAL)

< > SLIP (serial line) supportPPP 이전에 많이 사용하던 시리얼 라인 네트워크 프로토콜이다. 잘 모르겠으면 [N].

Wireless LAN (non-hamradio)radio 와 무선 랜을 지원한다. 그러나 amateur radio 와 FM 방송은 제외한다. 배선이 필요 없으며, 단말기 설치가 자유롭고, 네트워크 설치가 빠르고 유연하다는

장점이 있다. 일반적으로 저속의 무선 LAN 은 공장 자동화나, 프린터 서버, 무선 모뎀 등에 쓰인다. 서로 떨어진 건물에 설치된 LAN 사이를 연결할 때에도 쓰이고 있다. 잘 모르겠으면 [N].

< > CIPE (Crypto IP Encapsulation) (NEW)[ ] Wireless LAN (non-hamradio)

Token Ring devices IBM 에서 개발한 token 방식의 LAN 이다. IBM 메인 프레임에서 주로 사용한다. 잘 모르겠으면 [N].

[ ] Token Ring driver support[ ] Fibre Channel driver supportFibre Channel 은 주로 대용량 저장 장치에 쓰이는 고속 시리얼 프로토콜이다. 이 프로토콜은 SCSI 와 호환되며 대체할 수 있다. Fibre channel 어뎁터 카드가 있으면 "SCSI support"와 "SCSI generic support"도 활성화해야 한다. 잘 모르겠으면 [N].

< > Red Creek Hardware VPN (EXPERIMENTAL)Virtual Private Network (VPN)을 제공하는 하드웨어를 위한 드라이버이다. 장치들이 있다면 [Y]를 선택한다.

< > Traffic Shaper (EXPERIMENTAL)Traffic Shaper 는 어떤 네트워크 장치를 지나서 나가는 데이터 흐름 속도를 제한할 수 있는 가상의

네트워크 장치이다. Traffic shaper 라는 이름을 가진 고가의 실제

장비를 소프트웨어적으로 구현한 것이다.

Uranos OS 85/144 210X297mm 인쇄용지 70g/m2

Page 86: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

속도를 낮추려는(예를 들어 덜 중요하다고 생각하는) 트래픽은 이 가상의 디바이스를 거친 다음에

라우트될 수 있다.

traffic shaper 는 Class-Based Queueing (CBQ) 스케쥴러로 대체할 수 있다. shaper 장치를 사용하려면 ftp://shadow.cabi.net/pub/Linux 에서 shaper 패키지를 가져와야 한다. 잘 모르겠으면 [N].

Wan interfaces리눅스 박스와 WAN 인터페이스 카드를 이용해 저렴하게 WAN 라우터를 구현할 수

있다.

[ ] Wan interfaces supportX.25, 프레임 릴레이, 임대 회선 등과 같은 WAN(Wide Area Networks). 비동기 모뎀 접속 속도보다 훨씬 빠른 데이터 전송률을 이용하여 원거리의

LAN(Local Area Networks)을 상호 연결하는데 사용된다. 일반적으로 WAN 에 연결하려면 꽤 고가 장비인 "WAN 라우터"가 있어야 한다. 하지만 이에 대한 대안으로 리눅스 커널에 WAN 라우팅 기능을 넣을 수 있다. 시중에 판매되는 비교적 저가의 WAN 인터페이스 카드를 이용하면 외장 라우터

가격의 절반도 안돼는 비용으로 완벽한 WAN 라우터를 만들 수 있다. 이런 카드를 가지고 있고 또 리눅스 박스를 WAN 라우터로 사용할 계획이라면 이

옵션에 Y 를 선택하고, 다음에 나오는 WAN 드라이버도 선택한다. 그 다음에는 ftp://ftp.sangoma.com 에서 구할 수 있는 wan-tools 패키지가 있어야

한다. 잘 모르겠으면 [N].

< > Comtrol Hostess SV-11 support (NEW) < > COSA/SRP sync serial boards support (NEW) < > MultiGate (COMX) synchronous serial boards support (NEW)< > LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards (NEW) < > Sealevel Systems 4021 support (NEW) < > SyncLink HDLC/SYNCPPP support (NEW) < > Frame relay DLCI support (NEW) < > SBNI12-xx support (NEW)

PCMCIA network device supportPCMCIA 나 CardBus 네트웍 어댑터를 가지고 있다면 [Y]를 선택한다.

Uranos OS 86/144 210X297mm 인쇄용지 70g/m2

Page 87: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

[ ] PCMCIA network device support< > 3Com 3c589 PCMCIA support< > 3Com 3c574 PCMCIA support< > Fujitsu FMV-J18x PCMCIA support< > NE2000 compatible PCMCIA support< > New Media PCMCIA support< > SMC 91Cxx PCMCIA support< > Xircom 16-bit PCMCIA support< > Xircom Tulip-like CardBus support

[ ] Pcmcia Wireless LAN< > Aviator/Raytheon 2.4MHz wireless support< > Xircom Netwave AirSurfer wireless support< > AT&T/Lucent Wavelan wireless support< > Aironet 4500/4800 PCMCIA support

Amateur Radio support [ ] Amateur Radio support

IrDA (infrared) support[ ] IrDA subsystem support

ISDN subsystem [ ] ISDN subsystem

Old CD-ROM drivers (not SCSI, not IDE)[ ] Support non-SCSI/IDE/ATAPI CDROM drives

Input core support [ ] Input core support

Character devices : 터미널, 비디오 어뎁터, 마우스, 프린터 등 다양한 장치들을 지원한다.

[*] Virtual terminal 가상 터미널 지원. 하나의 물리적인 터미널 위에 여러 개의 가상 터미널을 실행하는

기능이다. 가상 터미널은 여러 개의 X 세션을 띄울 수도 있다. 가상 터미널 사이를

옮겨 다닐 때는 <Alt>키와 기능키를 조합하여 사용한다. 최소한 하나의 가상 터미널이 있어야 키보드와

Uranos OS 87/144 210X297mm 인쇄용지 70g/m2

Page 88: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

모니터를 쓸 수가 있다. 잘 모르겠으면 [Y]를 선택한다.

[*] Support for console on virtual terminal 가상터미널을 시스템 콘솔로 쓸 수 있게 해준다. 시스템 콘솔은 모든 커널 메시지와 경고 메시지를 수취하고, 단독 사용자 모드에서

로그인을 허용하는 장치이다. [Y]를 선택하고 가상 콘솔을 "console=tty3"와 같은

명령을 사용하여 시스템 콘솔로 사용할 수 있다. 잘 모르겠으면 [N].

[M] Standard/generic (8250/16550 and compatible UARTs) serial support모뎀과 시리얼 마우스, 시리얼 디바이스를 사용하는 기능이다. 잘 모르겠으면 [Y]를 답하는 게 안전하다.

[ ] Support for console on serial port이 옵션을 활성화하면 직렬 포트를 시스템 콘솔로 쓸 수 있다.시스템 콘솔은 커널 메시지와 경고 메시지들을 받아 뿌려주고 싱글 유저 모드로 로그인할 수 있게 해주는

디바이스이다. 가령 직렬 포트 프린터 등으로 여러 메시지들을 기록할 수도 있다. 여기서 [Y]를 설정해도

/dev/tty0 가 시스템 콘솔로 잡혀 있다. 예를 들어 두번째 시리얼 포트를 시스템 콘솔을 바꾸려면 커널

명령 라인에 "console=ttyS1" 명령을 쓴다. "man bootparam"이나 부트 로더용 문서들을 보면 부트

로더(lilo 나 loadlin)가 부팅할 때 어떤 옵션을 넣어야 하는지 알 수 있다. 이 옵션을 이용하면 VGA 카드가

없는 리눅스 시스템도 운영할 수 있는데, 커널이

자동으로 시스템 콘솔을 /dev/ttyS0 로 잡는다. 잘 모르겠으면 [N]을 선택한다.

[ ] Extended dumb serial driver options만일 표준 "더미(dumb)" 드라이버의 비표준 기능들 가운데 하나라도 쓰려 한다면, 이 옵션을 활성화한다. HUB6 지원, 공유 시리얼 인터럽트, 스페셜 멀티포트 지원, 그리고 COM 1/2/3/4 이상의 보드 등을

지원한다. 이 곳에 [Y]를 답하면 또 다른 질문들이 활성화된다. 잘 모르겠으면 [N].

[ ] Non-standard serial port support 표준 시리얼 포트 외의 멀티포트 제품군을 지원한다. 잘 모르겠으면 [N].

[*] Unix98 PTY supportUnix98 가상터미널 지원. PTY 는 소프트웨어로 구동되는 가상 장치(pseudo terminal)이다.마스터와 슬레이브 두 부분으로 구성되며 마스터는 물리적 터미널과 똑같이 동작하며 슬레이브는

터미널을 흉내낸다. 마스터 디바이스는 슬레이브로부터 데이터를 읽거나, 혹은 슬레이브에 데이터를 쓸 때

Uranos OS 88/144 210X297mm 인쇄용지 70g/m2

Page 89: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

사용한다. 전형적인 master side program 은 telnet 서버나 xterm 이다. 리눅스는 BSD 형식을 따라 마스터는 /dev/ptyxx, 슬레이브는 /dev/ttyxx 를 사용하여 왔지만, 몇 가지

문제로 인해 새로 Unix98 naming 표준을 지원한다. 새 표준에 의해 장치 이름들이 달라지는데, 전에 /dev/ttyp2 로 불리던 슬레이브는 /dev/pts/2 로 바뀌게

된다. /dev/pts/*의 파일들은 가상 파일 시스템에 의해 동작 중 자동적으로 생성된다.그러므로 이 옵션을 활성화한다면 "Unix98 PTS 를 위한 /dev/pts 파일 시스템" 옵션도 선택한다. [N]을

선택해도 안전하다.

[*] (256) Maximum number of Unix98 PTYs in use (0-2048)동시에 열 수 있는 Unix98 PTY 개수의 최대값. 디폴트 값인 256 은 데스크탑 장치일 때는 충분하다. telnet/rlogin/ssh 접속과 X 터미널 등은 모두 PTY 를 사용한다.

<M> Parallel printer Support프린터와 함께 패러랠 포트를 사용하는 PLIP, Parallel Zip drive 등 다른 장치를

함께 사용하려면 반드시 모듈로 설정, [M]

[ ] Support for console on line printer프린터를 콘솔로 설정하면 커널 메세지가 발생할 때 종이 등 매체에 인쇄할 수 있다. 이 옵션을 활성화하고 커널 커맨드에(booting 할 때) "console=lp"란 옵션을 덧붙인다. (또는 /etc/lilo.conf 파일의 적당한 블록에 append="console=lp" 항목을 추가한다) 잘 모르겠으면 [N].

< > Support for user-space parallel port device drivers[N]이 안전하다. 일반적인 프린팅 작업이나 패러랠 CD-ROM/disk 등에는 필요없다.

I2C supportI2C(I-square-C)는 필립스에서 개발한 느린 시리얼 버스 프로토콜로 많은 마이크로

컨트롤러 어플리케이션에서 사용된다. SMBus(시스템 관리 버스: System ManagementBus)는 I2C 의 하위 프로토콜이다. I2C 와 SMBus 모두를 이 옵션에서 지원한다. 하드웨어 센서나, video for linux 지원을 위해서 필요할 것이다. I2C 옵션을 활성화하면 나타나는 서브

옵션들은 장치 드라이버들이다. 잘 모르겠으면 [N].

[ ] I2C support

Mice --->

Uranos OS 89/144 210X297mm 인쇄용지 70g/m2

Page 90: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > Bus Mouse Support대부분 필요 없다. 시리얼 마우스나 PS/2, 혹은 USB 마우스를 사용하는 모든 분들은 [N]을 설정한다.

<*> Mouse Support (not serial and bus mice) 시리얼 마우스나 버스 마우스를 제외한 장치를 사용하기 위한 기능이다. PS/2 마우스, 디지타이저 패드 등 장치를 사용하는 대부분은 [Y]를 설정 해야 한다.

[*] PS/2 mouse (aka "auxiliary device") supportPS/2 마우스 지원. PS/2 마우스는 키보드 포트와 비슷하게 생긴 동그란 전용포트에 꽂아서 사용하는 마우스이다. 시리얼

포트를 차지하지 않으므로 다른 주변장치와 충돌하는 일이 거의 없다. PS/2 포트를 사용하는 장치는 그

밖에도 라이트 펜, 태블릿, 키패드 등 입력 장치가 있다. 트랙볼이나 터치패드 등 노트북용 장치들도 PS/2 프로토콜을 사용한다.PS/2 마우스를 "Microsoft Bus mouse"라고 하는 제조업체도 있는데 핀의 수를

세어보면 구분할 수 있다. PS/2 는 6핀, MS 버스마우스는 9핀이다. 잘 모르겠으면 [Y]를 답하는 게

안전하다.

< > C&T 82C710 mouse port support (as on TI Travelmate)< > PC110 digitizer pad support

JoysticsClassic PC analog joysticks, gamepads, Microsoft SideWinder, Sega, Logitech, 스티어링 휠, 무기 제어 시스템이나 그 밖의 다양한 게임 컨트롤러들도 지원한다. Documentation/joystick.txt 를 참조한다.

--Input core support is needed for joysticks< > QIC-02 tape support스커지 방식이 아닌 tape 드라이브가 있다면 설정한다. 잘 모르겠으면 [N].

Watchdog Cards : 소프트웨어 Watchdog 이다. 하드웨어 Watchdog 과 다르게 때에 따라 시스템을 재부팅 시키는데 실패할 수 있다. 필요하다면 [M]을 선택해 모듈로 사용할 수도 있다.

[*] Watchdog Timer SupportWDT Watchdog timer 와 아래 메뉴들은 watchdog 보드에 관한 설정들이다. 하드웨어에 맞는 설정을 선택한다. 시스템이 Lock-Up 상태로 서비스를 제공할 수 없는 상태가 이어지면

Uranos OS 90/144 210X297mm 인쇄용지 70g/m2

Page 91: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

reboot 등 서비스를 다시 시작할 수 있도록 하는 기능이다. 네트워크 서버처럼 재부팅을 하더라도 가능한

빨리 온라인 상태를 복구해야 할 때 유용하다. 하드웨어/소프트웨어 Watchdog 을 지원한다.하드웨어로 구현한 Watchdog 보드는 시스템 내부 온도를 측정해서 활용할 수도 있다고 한다. 소프트웨어 Watchdog 은 Watchdog daemon 과 함께 사용한다.보통 ftp://tsx-11.mit.edu/pub/linux/sources/sbin/에서 필요한 소프트웨어를 구할 수 있다.만일 이 옵션을 활성화하고 (그리고 추가적인 옵션들 중 하나를 선택하고) mknod 명령으로 major 번호가

10 이고 minor 번호가 130 인 character special 파일 "/dev/watchdog"을 만들면, watchdog 을 얻게

된다. 이후로 1 분 이내에 watchdog 파일을 열고 쓰기 동작을 하지 않는다면 컴퓨터는 재부팅하게 될

것이다. 잘 모르겠으면 [N].

[*] Watchdog Timer Support

[ ] Disable watchdog shutdown on close기본적으로 Watchdog 을 관리하는 프로세서가 /dev/watchdog 파일을 닫으면

타이머가 멈춘다. 하지만 만일 이 옵션에서 [Y]를 선택하면, 한 번 시작된 워치독

은 멈출 수 없게 된다.

< > Software Watchdog< > WDT Watchdog timer< > WDT PCI Watchdog timer< > Berkshire Products PC Watchdog< > Acquire SBC Watchdog Timer< > SBC-60XX Watchdog Timer< > Mixcom Watchdog< > Intel i810 TCO timer / Watchdog< > Intel i8x0 Random Number Generator supportIntel i8xx 칩셋을 가진 마더보드에서 선택한다. 잘 모르겠으면 [N].

< > /dev/nvram supportPC 에서 CMOS RAM, Atari 에서 Non-VolatiLe RAM 이라 부르는 비휘발성 메모리로 만든 리얼 타임 클럭

(RTC) 가운데 0bytes 를 읽거나 쓸 수 있도록 한다. 이 기능을 사용하려면 mknod 명령으로 메이저 넘버

10, 마이너 넘버 144짜리 캐릭터형 특수 파일인 /dev/nvram 을 들어야 한다. 하드디스크에 두기는

위험한 데이터나 전원이 꺼져도 잃어버리면 안돼는 매우 중요한

데이터를 저장하는데 쓰인다. 시스템에 따라 이미 중요한 데이터가 들어 있을 수 있으므로 조심해서

설정해야 한다. 잘 모르겠으면 [N].

Uranos OS 91/144 210X297mm 인쇄용지 70g/m2

Page 92: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > Enhanced Real Time Clock Support소프트웨어가 컴퓨터 실시간 시계를 사용할 수 있도록 하는 기능이다.(Documentation/rtc.txt). 멀티 프로세서 machine 을 가지고 있고 SMP 기능을 사용한다면 반드시 [Y]를 선택해야 한다. 그리고 주기적인 data sampling 등 이 기능을 유용하게 쓸 장치가 있다면 설정한다. 이 기능을 사용하려면 mknod 명령으로 메이저 넘버 10, 마이너 넘버 135 인 캐릭터형

특수 파일 /dev/rtc 를 만들어야 한다. 잘 모르겠으면 [Y]를 답하는 게 안전하다.

< > Double Talk PC internal speech card supportRC 시스템에서 제작한 음성합성장치(Speech SyntheSizer)인 "DoubleTalk" 드라이버

이다. 잘 모르겠으면 [N].

< > Siemens R3964 line discipline지멘스 R3964 패킷 프로토콜을 통해 장치들이 상호 동기적으로 통신할 수 있게

한다. 잘 모르겠으면 [N].

< > Applicom intelligent fieldbus card support

Ftape, the floppy tape device driver< > Ftape (QIC-80/Travan) support

<*> /dev/agpgart (AGP Support) AGP 지원(하부 메뉴 중 자신의 보드에 맞는 것 선택) AGP(Accelerated Graphics Port)는 그래픽 카드를 연결하는데 주로 사용하는 고속의 버스 시스템이다. 시스템이 AGP 를 지원한다면 [Y]를 설정한다. XFree86 3.3.6 에 쓰이는 GLX 컴포넌트를 시험하고 싶다면

http://utah-glx.sourceforge.net/에서 download 받으면 된다. GLX 나 i810 서버를 가지고 있다면 테스트해 볼 수 있다.

[*] Intel 440LX/BX/GX and I815/I840/I850 support그 밖에 Intel 440LX/BX/GX, I815/I840/I850, Intel I810/I815 (on-board),VIA, AMD, Generic SiS, ALI 등은 모두 AGP 지원과 관련된 옵션들이다. 여러분이 가진 보드 메뉴얼을 살펴 보고 적절한 것으로 선택한다. 기본 값을 그냥 두어도 나쁘지는 않다.

[*] Intel I810/I815 (on-board) support

Uranos OS 92/144 210X297mm 인쇄용지 70g/m2

Page 93: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

[*] VIA chipset support[*] AMD Irongate support[*] Generic SiS support[*] ALI chipset support[*] Direct Rendering Manager (XFree86 DRI support)Direct Rendering Manager, 3dfx Banshee/Voodoo3+ 옵션을 활성화하면

3dlabs GMX 2000, ATI Rage 128, ATI Radeon, Intel I810, Matrox g200/g400 등

비디오 카드와 관련된 옵션들이 나타난다. 장치에 적절한 것으로 선택한다.

< > 3dfx Banshee/Voodoo3+< > 3dlabs GMX 2000< > ATI Rage 128< > ATI Rageon<*> Intel I810< > Matrox g200/g400

PCMCIA character device support< > PCMCIA serial device support시리얼 포트 카드, 모뎀, ethernet/modem 다기능 카드 등 16-비트 PCMCIA 직렬

디바이스를 지원한다. 잘 모르겠으면 [N].

< > CardBus serial device supportethernet/modem 다기능 디바이스들의 모뎀 기능을 포함한 CardBus 직렬 디바이스

를 지원한다. 잘 모르겠으면 [N].

Multimedia devices< > Video For Linux

File systems : 리눅스에서 접근할 수 있는 다양한 파일시스템에 대한 설정이다.

[*] Quota supportext2 파일시스템에서 유저/유저그룹이 사용할 수 있는 디스크 공간의 크기를 제한하

는 기능이다. 리눅스 박스를 서버로 쓰지 않고 개인 용도로 사용하는 유저는 설정할

필요 없다.

Uranos OS 93/144 210X297mm 인쇄용지 70g/m2

Page 94: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

< > Kernel automounter support원격 파일 시스템을 자동으로 마운트 해준다.automounter 는 요청에 따라 원격 파일시스템을 자동으로 마운트하는 툴이다.BSD 의 amd 는 완전히 사용자 공간의 데몬이지만 리눅스의 automounter 는 파일시스템이 이미

마운트된 경우 오버헤드를 줄이기 위해 부분적으로 커널에 의지한다.이 기능을 사용한다면 "NFS filesystem support"도 활성화한다. 리눅스 박스가 커다란 분산 네트워크에 연결되어 있지 않다면, automounter 가 필요 없을 것이다. [N]을

선택한다. <*> Kernel automounter version 4 support (also supports v3)만약 시스템이 큰 분산 네트워크에 연결되어 있지 않거나, 동적으로 재설정이 필요한 랩탑중 하나가

아니라면 아마 automounter 가 필요 없을 것이다. [N]을 선택한다.

< > Reiserfs support저널링(journaling) 파일시스템을 지원한다. 저널링 파일 시스템에서는 인덱스가 갱신되기 전에 관련 내용이 기록되므로 정전이나 다른 이유로

인덱스에 문제가 생기더라도 다시 시스템을 재가동하면 운영체제가 로그를 보고 복구를 할 수 있다. 일반적인 경우 ReiserFS 는 ext2 정도의 속도를 내지만, 큰 디렉토리에 작은 파일들이 많은 경우 매우

효율적이다. NFS 와 quota 를 ReiserFS 와 함께 사용하려면 패치를 해야 한다.관련된 링크는 www.reiserfs.org 이다.

[ ] Have reiserfs do extra internal checking대부분 이 옵션은 필요 없다. 이 옵션을 활성화하면 디버깅에 유용한 메시지들을 더 많이 볼 수 있지만 performance 가 낮아진다.

< > ADFS filesystem support (read only) (EXPERIMENTAL)Advanced Disk File System 은 Acorn 시스템의 플로피와 하드 디스크에서 사용되는 파일 시스템이다. 잘 모르겠으면 [N].

< > Amiga FFS filesystem SupportThe Fast File System (FFS)은 AmigaOS Version 1.3 (34.20)이후로 Amiga(tm) systems 의 하드디스크에서 사용하는 일반적인 파일시스템이다. 잘 모르겠으면 [N].

< > Apple Macintosh filesystem Support (EXPERIMENTAL)매킨토시 형식으로 포맷된 플로피 디스크와 하드 드라이브 파티션을 읽고 쓸 수 있다.

Uranos OS 94/144 210X297mm 인쇄용지 70g/m2

Page 95: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

필요하다면 [M]이나 [Y]를 선택한다.

< > BFS file system support (EXPERIMENTAL)

<M> DOS FAT fS supportFAT 기반의 파일 시스템 지원.FAT 기반의 MSDOS fS support, VFAT (WindowS-95) fS support 등 MS 의 파일 시스템을 마운트하여

사용하려면 설정한다. [Y]를 설정하면 커널 크기가 24KB 늘어난다. 이 기능은 스스로 파일 시스템을 지원하지 못하므로 MS-DOS 파일시스템을 지원하는 "DOS FAT fS Support"와 MS-DOS, Windows 9x 시리즈를 지원하는 "VFAT (Windows-95) fs support" 옵션을 함께

사용해야 한다. 모듈로 설정하면 각각 fat.o, msdos.o, vfat.o 로 컴파일된다. <M>

<M> MSDOS fS SupportMSDOS 파티션 마운트 지원.

< > UMDOS: Unix-Like file system on top of standard MSDOS fsUnix-Like fs on top of standard MSDOS fS 는 도스 파일시스템 위에서 리눅스를

실행한다. 사용중인 도스 파티션에 영향을 주지 않고 리눅스를 사용할 수 있지만

제한이 많다. [N]

<M> VFAT (WindowS-95) fS Support윈도우즈 파티션 지원

< > EFS file system support (read only) (EXPERIMENTAL)SGI 사의 IRIX OS 에서 CDROM 용 파일시스템과 [초기 버전의] 파일 시스템에서 사용

하는 파일 시스템이다. 잘 모르겠으면 [N].

< > Compressed ROM file system supportROM 기반 임베디드 시스템에서 압축된 파일시스템을 사용한다면 이 옵션을 활성화

한다. 읽기 전용이며 256MB 로 크기가 제한되어 있다. 16/32 비트 uid/gid 나 하드 링크, 타임스탬프는 지원하지 않는다. 잘 모르겠으면 [N].

< > Virtual memory file system support (former shm fs) (NEW)

< > Simple RAM-based file system support

Uranos OS 95/144 210X297mm 인쇄용지 70g/m2

Page 96: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Ramfs 는 램 안에서 읽기 쓰기가 모두 가능한 파일시스템을 지원한다. 다른 파일시스템과 마찬가지로 마운트하여 사용한다.예를 들어 /ramfiles 디렉토리에 마운트한다면 "mount -t ramfs ramfs /ramfiles" 또는 /etc/fstab 에 설정 정보를 넣어 부팅시 자동으로 마운트할 수도 있다. 일반적으로 RAM 은 하드 디스크보다 속도가 빠르므로 물리적인 램이 충분하다면 엑세스가 빈번한 자료나

바이너리 등을 이곳에 넣어 시스템 퍼포먼스를 높일 수도 있다. Ramfs 안에 저장된 것들은 모두

가상적으로 다루어지므로 하드 드라이브로 옮겨놓지 않는다면, 재부팅 했을 때 아무 것도 남아있지 않을

것이다. 사용할 만한 이유를 찾지 못했다면 [N]을 선택한다.

<M> ISO9660 cdrom fiLesystem supportCD-ROM 파일 시스템 지원

ISO 에서 제안한 시디롬을 위한 표준 파일시스템이다. 반드시 필요하다. CD-ROM 을 부트 디바이스로 사용하려면 모듈로 설정하지 않는다. [Y]

[*] Microsoft Joliet CDROM extensionsJoliet CDROM 을 읽을 수 있게 한다.Microsoft 에서 개발한 유니코드 형식의 긴 파일이름을 지원하는 확장 ISO9660 CDROM 파일시스템이다. MS 윈도우즈용 프로그램들을 담고 있는 CD 는 대부분 Joliet 형식으로 저장되어 있다.

< > Minix fS Suppor매우 오래된 파일시스템이다. 지금도 커널을 공부할 때 사용하기도 한다. 일반 사용자라면 엑세스 할 일이 거의 없다. 커널 크기가 25KB 늘어난다. [N]

< > NTFS filesystem Support (read onlyMicrosoft NT 파일시스템을 읽는 기능이다. [N]

[ ] OS/2 HPFS filesystem Support (read only)OS/2 파일시스템을 읽기만 할 수 있다. [N]

[*] /proc filesystem Support커널과 프로세스를 위한 가상의 파일시스템이다. 실제 디스크 공간을 점유하지는 않는다. 프로세스 등 시스템 정보를 제공하는 많은 프로그램이 사용하는 유용한 기능이다.[Y]cat 명령으로도 정보를 볼 수 있다. 예를 들어 cpu 정보를 보려한다면 다음 명령을 사용한다. # cat /proc/cpuinfo

Uranos OS 96/144 210X297mm 인쇄용지 70g/m2

Page 97: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

[ ] /dev file system support (EXPERIMENTAL)/proc 파일 시스템처럼 특별한 목적을 가진 가상 파일시스템이다. /dev 디렉토리에서 볼 수 있는 장치 드라이버에 대한 인터페이스를 제공하는 파일시스템이다. Major 와 Minor 넘버 배치와는 상관 없이 /dev 목록에 장치 드라이버가 자동적으로 등록된다. devfs 를

사용하지 않는다면 /dev 디렉토리에 수백 수천개의 inode 가 필요할 것이다. devfsd 를 설치하지

않는다면 깨진 코드를 패치하거나 설정 파일을 고치는데 엄청난 시간을 소비하게 될 것이다.일시적으로 /dev 파일시스템을 사용하지 않으려면 커널 명령에 "devfs=nomount"를 넣는다. 잘 모르겠으면 [N].

[*] /dev/pts filesystem for Unix98 PTYS

[*] Unix98 PTY support 를 선택했다면 선택해야 한다. "Unix98 PTY Support" 기능과 함께 사용한다. #mount -t devpts 명령으로 /dev/pts 에 마운트할 수 있는 가상 파일시스템을 만들고 Unix98 의 표준

다중채널 가상 터미널(pseudo terminal)로 사용하는 기능이다. 이전에 /dev/ttyp2였던 가상 터미널은 이 옵션을 활성화하면 /dev/pts/2 가 된다. [Y]

< > QNX filesystem support (read only) (EXPERIMENTAL)QNX4 운영체제에서 사용되는 파일시스템이다. [N]

< > ROM filesystem support주로 install 디스크의 RAM 디스크 초기화에 쓰이는 매우 작은 읽기 전용

파일시스템이다. 어떤 곳에 써야할 지 모른다면 [N]을 선택한다.

<*> second extended fs support리눅스에서 현재 사용하는 표준 파일시스템이다. MS windows 에서는 ext2nt 나 explorer2fs 를 이용해 ext2 파일 시스템을 엑세스할

수 있다. 반드시 활성화한다. [Y]

< > System V and Coherent filesystem SupportXenix 와 Cherent 는 인텔 기종을 위한 상용 유닉스 시스템이다. 주위에 이 시스템이 없다면 [N]을 선택한다.

< > UDF file system support (read only)몇몇 CDROM 과 DVD 드라이버에서 사용되는 새로운 파일 시스템이다.

Uranos OS 97/144 210X297mm 인쇄용지 70g/m2

Page 98: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

DVD 디스크 혹은 패킷 모드로 기록된 CDRW 를 마운트하거나, DirectCD 와 같이 UDF유틸리티로 기록을

할 것이라면 [Y]를 선택한다. 잘 모르겠으면 [N].

< > UFS filesystem support (read only)BSD 와 Unix 에서 파생된 버전(SunOS,FreeBSD, NetBSD, OpenBSD, NextStep)들은 UFS 라는

파일시스템을 사용한다. 어떤 System V 유닉스는 디스크 파티션이나 플로피 디스크에 UFS 파일시스템을

사용하기도 한다. 일반적으로 플로피 디스크에서는 tar 프로그램을 사용하므로 이 기능은 필요없다. 또한

NFS 를 사용한다면 이 옵션을 [N]으로 설정한다.

Network FiLe systems< > Coda filesystem support (advanced networks fs)Coda 는 NFS 와 비슷하지만 더 진보된 네트워크 파일시스템이다. Coda 는 비접속 운영, 캐시, 보안과 인증 등 NFS 보다 좋은 점이 몇 가지 있다. 이 질문에 [Y]를 답하면 Coda 클라이언트로 동작할 것이다. 서버와 클라이언트 모두가 지원해야 한다. Coda 서버들은 사용자 공간의 프로그램들이며 커널이 지원해야 하는 것은 아니다. 잘 모르겠으면 [N].

<*> NFS filesystem Support네트웍 파일 시스템 지원. 네트워크 파일시스템 클라이언트이다. 만약에 SLIP 이나 PLIP, PPP, 이더넷 등으로 다른 유닉스 컴퓨터에 물려있고 상대 컴퓨터를 마운트해서

상대 파일을 엑세스하고 싶다면 [Y]를 선택한다. 상대 컴퓨터는 NFS 서버, 여러분의 리눅스 박스는 클라이언트가 되는데 서버에는 nfsd, mountd, portmap 등이 동작하고 있어야 하며, /etc/exports 파일에서 허용해야 한다. "파일을 마운트한다"는 것은 클라이언트가 보통 유닉스 명령어로 서버쪽 파일들을 자기 hard disk 에 있는

것처럼 접근할 수 있다는 뜻이다. TCP/IP 를 사용하며 커널 크기가 27KB 정도 늘어난다.

[ ] Provide NFSv3 client support

<M> NFS Server Support커널 기반의 NFS 서비스이다. 유저 공간의 nfsd 보다 더 빠르지만 아직 불안하다.

Uranos OS 98/144 210X297mm 인쇄용지 70g/m2

Page 99: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

nfsd 데몬을 이용하여 서비스하거나 잘 모르겠으면 [N].

[ ] Provide NFSv3 server support

< >Emulate SUN NFS Server

<M> SMB filesystem Support (to mount WFW Shares etc..)윈도우즈의 네트웍 기능들을 공유할 수 있게 해준다. 리눅스 박스에서 MS windows 9x/NT 네트워크 자원을 공유하는 기능이다. 대부분의 네트워크 클라이언트가 MS 윈도우즈 박스이므로 SMB 옵션을 활성화할

것을 권장한다. 이 기능을 이용하여 저가의 CD-ROM 쥬크박스를 구현할 수도 있다.

[*] Use a default NLSDefault Remote NLS Option: "cp437"

[ ]SMB Win95 bug work-around속도가 조금 느려지겠지만 Windows 95 서버를 더 안정적으로 만든다.

< > NCP filesystem Support (to mount NetWare volumes)NCP(netware core protocol)은 IPX 를 이용한 랜 프로토콜이다. 노벨 네트웨어 클라이언트가 NCP 를 통해 파일서버 볼륨을 마운트하여 사용한다. Linux 박스가 서버로 동작하거나 netware 네트워크에 연결되지 않는다면(대부분) 필요 없다. [N]

[ ]Packet Signatures[ ]Proprietary file Locking[ ]Clear remove/delete inhibit when neede[ ]Use NFS namespace if available[ ]USe LONG (OS/2) namespace if available[ ]Allow mounting of volume Subdirectories[ ]Use Native Language Support[ ]Enable symbolic link and execute flags

Partition Types일반적으로 상용 유닉스 시스템들은 각자 자신의 파일시스템과 바이너리 타입을 가지고 있어서 그

Uranos OS 99/144 210X297mm 인쇄용지 70g/m2

Page 100: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

운영체제에서만 사용할 수 있도록 되어 있다. 매킨토시를 제외한 유닉스 파티션은 "UFS filesystem support"와 함께 설정한다. 플로피 디스크만 사용한다면 파일시스템 지원 기능을 커널에 포함하지 않고 tar 유틸리티를 사용할 수도

있다.

[ ] Advanced partition selection [ ] BSD disklabel (BSD partition tables) support[ ] Macintosh partition map support [ ] SMD disklabel (Sun partition tables) support[ ] Solaris (x86) partition table support[ ] Unixware slices support (EXPERIMENTAL)

Native Language Support MS 의 fat 파일시스템종류는 고유언어 문자셋으로 파일이름을 다룰 수 있다. 이런 문자셋은 DOS 코드페이지에 저장되어 있어 MS-DOS/Windows 파티션의 파일

이름을 정확하게 읽으려면 필요하다.

Default NLS Option: "cp949" 혹은 "euc-kr" 디폴트로 한글이 선택되도록 한다. 다음과 같은 옵션을 사용할 수 있다: big5, cp437, cp737, cp775, cp850, cp852, cp855, cp857, cp860, cp861, cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp932, cp936, cp949, cp950, euc-jp, euc-kr, gb2312, iso8859-1, iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-9, iso8859-14, iso8859-15, koi8-r, sjis한국어를 위해서는 euc-kr 을 설정한다. 잘 모르겠으면 "iso8859-1"를 지정한다.잘못 설정한 경우 자동으로 "iso8859-1"가 설정된다.<*> Codepage 437 (United States, Canada)

<*> Codepage 949 (UnifiedHangul)윈도우 파티션을 마운트했을 때 한글을 볼 수 있다.

<*> NLS ISO 8859-1 (Latin 1; Western European Languages)

Console drivers콘솔이란 직접 기계에 연결된 모니터, 키보드를 말한다. 보안 등 여러 가지 조건에서 네트워크 터미널과

구별되며 훨씬 많은 기능과 권한을 가진다.

Uranos OS 100/144 210X297mm 인쇄용지 70g/m2

Page 101: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

[*] VGA text console VGA 표준 디스플레이를 통해 텍스트 모드에서 사용 가능하다. 일반 VGA 표준모드 콘솔을 지원한다. SVGA 모드를 사용하려면 ftp://metalab.unc.edu/pub/Linux/utils/console 에서

SVGATextMode 를 내려 받는다. [Y]를 설정한다.

[ ] Video mode selection support 커널을 시작할 때 "vga="옵션으로 비디오 모드를 선택하는 기능이다. 예를 들어 "VGA=ASK"옵션을 사용하면 커널이 시작될 때 비디오 모드 메뉴가

나타난다. "man bootparm"명령으로 부트 매개변수를 알아본다. 잘 모르겠으면 [N].

< > MDA text console (dual-headed) (EXPERIMENTAL)허큘리스 등 흑백 디스플레이 어뎁터를 가지고 있으면 설정한다. [N]

Frame-buffer support콘솔에서 그래픽 기능을 사용할 수 있도록 커널 자체가 지원하는 기능이다. 확실하지 않으면 [N]을 선택한다. 잘못 설정하면 모니터나 비디오 카드에 물리적인 손상을 줄 수도 있다.

프레임 버퍼는 리눅스에서 지원되는 여러 가지의 하드웨어 종류에 대해 동일하게 접근하도록 만들어 주기

때문에 응용 프로그램 작성이 매우 쉽고, 이식성이 좋은 환경을 제공한다. 프레임 버퍼의 모든 기능을 완전히 사용하기 위해서는 fbset 이라고 불리는 유틸리티 프로그램이 필요하다

Sound 시스템에 맞는걸 선택한다.

< > Sound card support< > C-Media PCI (CMI8338/8378).........

USB support< > Support for USB[ ] USB verbose debug messages

----Miscellaneous USB options[ ] Preliminary USB device filesystem

Uranos OS 101/144 210X297mm 인쇄용지 70g/m2

Page 102: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

........

Kernel hacking[ ] Memory mapped I/O debugging[*] Magic SysRq key 시스템이 다운되더라도 제어할 수 있도록 해준다. 커널 컴파일 설정 후 저장

#Makefile 수정

[root @localhost linux-2.4]#vi /usr/src/linux/Makefile : edit kernel version

#의존성 관계 설정

[root @localhost linux-2.4]#make dep; make clean

1. make dep 설정 후 커널 이미지를 생성하기에 앞서 필요한 라이브러리나 헤더 파일 등이 시스템에 제대로 있는지의

Uranos OS 102/144 210X297mm 인쇄용지 70g/m2

Page 103: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

의존성을 확인하기 위한 것으로 새 커널 만들기를 시작하는 명령이다. 컴파일을 위한 의존성 관계를

설정한다. 2. make clean기존의 소스로 컴파일을 한 번이라도 한 경우에 생겼을 오브젝트 파일(*.[oas])이나

임시 파일(.tmp*), 설정 값(configure), 커널 이미지 등의 잔여물을 없애기 위한 것으로 소스 파일이나

rpm 파일을 새로 가져와서 처음 할 경우에는 안해도 별 상관없지만, 습관처럼 그냥 하는 것이 좋다.이전의 컴파일 과정 수행시에 생성된 오브젝트 파일, 커널, 임시파일 등을 삭제한다.

#커널 이미지 생성

[root @edu00 linux-2.4]#make bzImage

1. make zImagezImage 는 1/2MB 보다 큰 커널을 지원하지 않기 때문에 커널이 제한된 크기를 넘으면

"System is too big"이라는 에러 메시지를 남기고 컴파일이 실패한다.잘 쓰이지 않는 기능은 모듈로 설정하고, 필요 없는 기능은 제거하여 커널 규모를 줄이고 다시

컴파일한다.커널 이미지가 클 경우 마지막에 에러가 나므로 주로 make bzImage 로 작업한다.

2. make bzImagebzImage(big zImage)는 1MB 이상에 직접 커널을 로드하기 위해 기능이 확장되어 커널 크기를 대략

2MB까지 허용한다.

3. make -s zImage 또는 make -s bzImage 장황한 출력 메시지를 보지 않으려면 -s 옵션

경과 메세지나 잘못되었을 경우의 에러 메세지만 보여줄 것이다.

4. make bzlilo기존의 커널 이미지와 System.map 을 백업하고, 새로운 커널 이미지인 vmlinuz-(커널버젼)이미지를

만든 다음, 다시 vmlinuz 로 심볼릭 링크하고, System.map 도 마찬가지로 System.map-(커널버젼)을

System.map 으로 심볼릭 링크하며, lilo까지 알아서 하게

된다. 단, 커널 이미지가 설치되는 디렉토리가 '/boot' 디렉토리가 아닌 '/' 루트에 설치 된다. rpm 사용자는 기본으로 설정되어 있기 때문에 해당 사항 없다. 만일 /boot 디렉토리에 자동으로 설치되게 하려면, /usr/src/linux/Makefile 파일에서 맨 앞의

주석처리인 '#' 부분을 제거

Uranos OS 103/144 210X297mm 인쇄용지 70g/m2

Page 104: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

# # INSTALL_PATH specifies where to place the updated kernel and system map # images. Uncomment if you want to place them anywhere other than root. # #export INSTALL_PATH=/boot <-- 맨 앞의 '#' 부분을 제거한다.

make bzlilo 는 make bzImage;make install;lilo 를 동시에 하는 명령

make zlilo 는 make zImage;make install;lilo 를 한 번에 해주는 명령

5. make zdisk 커널 이미지를 플로피 디스크에 만든다. 플로피 디스크로 새 커널을 테스트할 때 사용한다.

#구 버전의 모듈 백업

[root @edu00 linux-2.4]#mv /lib/modules/2.0.36 /lib/modules/2.0.36-org 모듈 컴파일을 시작하기 전에 이전 버전에서 설치한 모듈을 (커널 버전이 달라지지 않았다면) 이름을

바꾸는 것이 좋다.

#모듈 컴파일

[root @edu00 linux-2.4]#make modules 모듈을 만든다. 커널 환경설정에서 모듈로 설정한 기능들을 컴파일한다.

#모듈 설치

[root @edu00 linux-2.4]#make modules_install 컴파일된 모듈을 /lib/modules/커널버전명 디렉토리 아래 설치한다.

#의존성 검사

[root @edu00 linux-2.4]#depmod -a (커널버젼) 레드햇 계열은 부팅시의 초기화에서 자동으로 실행하지만, 부팅시에 error 를 피하기 위해 실행한다.모듈 사이의 의존성을 검사하여 /lib/modules/커널 버전명 디렉토리 아래 modules.dep 파일을 만든다.

1] 커널 옵션에서 모듈을 선택하였다면 모듈을 만들어야 한다. 기존에 있던 모듈을 삭제하거나 다른 이름으로 백업해야 한다.depmod -a (커널버젼) 명령에 의한 각 모듈의 의존성 정보는 lib/modules/(커널

버젼)/modules.dep 파일에 저장된다.

Uranos OS 104/144 210X297mm 인쇄용지 70g/m2

Page 105: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

2] 모듈은 '/etc/conf.modules' 라는 파일 안에 모듈 이름을 적어서 인식 시킨다. 리눅스에서 네트워크 카드를 설정하기 위해서 'insmod'나 'modprobe'명령으로 모듈을

인식시켜 주고, 직접 /etc/conf.modules'파일안에 'alias'로 네트워크 모듈을 적어 주면

된다.

[root @localhost linux-2.4]#vi /etc/conf.modules ------------------------------alias eth0 ne io=0x300 irq=10 : ne 호환 isa 용의 네트워크 카드를 alias 로 장치명과 모듈명, io 주소, irq 값을 순서대로 적는다.alias eth1 rtl8139 : io 주소와 irq 값이 없는 것은 pci 용의 네트워크 카드는입력이 없어도 자동으로 인식

alias eth2 eepro100--------------------------------

3] isa 용은 반드시 io 주소와 irq 값을 넣어 주어야 한다

1 개 이상의 네트워크 카드를 시스템에 장착한다면, 각각의 네트워크 카드를 커널 설정에서 모듈로

선택하여야 제대로 인식

네트워크 카드의 모듈이 있는 곳은 /lib/modules/(커널버젼)/net 디렉토리

4] 커널 2.4.0-test6-* 이상의 버전부터는 모듈이 위치하는 "/lib/modules/커널버전"의

디렉토리 구조가 더욱 세분화

[root @ localhost /lib/modules/linux-2.4.0]#ls -l lrwxrwxrwx 1 root root 26 Oct 4 17:09 build - > /usr/src/linux-2.4.0-test9/ drwxr-xr-x 6 root root 1024 Oct 4 17:09 kernel/ -rw-r--r-- 1 root root 1340 Oct 5 20:33 modules.dep -rw-r--r-- 1 root root 3235 Oct 5 20:33 modules.pcimap drwxr-xr-x 2 root root 1024 Oct 4 17:09 pcmcia/

위의 kernel 디렉토리에 들어가보면 다음과 같이 세분화 되어 있다.

[root @ localhost linux-2.4.0]#cd kernel [root @ localhost kernel]#ls -l drwxr-xr-x 3 root root 1024 Oct 4 17:09 arch/ drwxr-xr-x 8 root root 1024 Oct 4 17:10 drivers/ drwxr-xr-x 9 root root 1024 Oct 4 17:09 fs/

Uranos OS 105/144 210X297mm 인쇄용지 70g/m2

Page 106: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

drwxr-xr-x 4 root root 1024 Oct 4 17:09 net/

drivers 디렉토리 구조를 보면 예전 모듈들의 디렉토리 구조가 이곳으로 옮겨 왔음을

알 수 있다. [root@linux drivers]$ ls -l drwxr-xr-x 2 root root 1024 Oct 4 17:09 block/ drwxr-xr-x 3 root root 1024 Oct 4 17:09 char/

drwxr-xr-x 2 root root 1024 Oct 4 17:09 ide/ drwxr-xr-x 2 root root 1024 Oct 4 17:09 net/ drwxr-xr-x 2 root root 1024 Oct 4 17:09 sound/ drwxr-xr-x 2 root root 1024 Oct 4 17:10 video/

#커널 이미지 복사

[root @localhost linux-2.4]#cp arch/i386/boot/bzImage /boot/vmlinuz-(커널버젼) 컴파일 후 커널 이미지는 /usr/src/linux-2.4/arch/i386/boot 에 위치한다.

#System.map 파일 복사

[root @localhost linux-2.4]#mv /usr/src/linux/System.map /boot/System.map-(커널버젼)

1] System.map system 의 H/W 정보, 새로운 device 추가시 kernel rebuild 하고 재생성, kernel 변경

2] 커널에 이상이 발생하면, 화면에 여러 가지 레지스터들과 그 16 진수 내용에 대해

한 페이지의 정보가 출력된다. 만약에 System.map 이 있다면, klogd 는 16 진수 주소를 그 주소가 나타내는 함수 이름

으로 변환한다. 이 정보로 정확히 어느 위치에서 커널이 문제를 일으켰는지 판단할 수

있다. System.map 이 없다면, 거의 필요없는 16 진수 주소를 보게 된다. 이 값들은 각 기계마다 다르고, 커널 설정마다 다르다.

3] System.map 파일은 시스템 부팅시에는 어떠한 영향도 주지 않는다. System.map 파일이 없다면 시스템에 문제가 발생할 때 어떠한 단서도 주지 못할 것

이라는 경고 메세지만 뿌려 준다. 4] 사용 방법

/etc/rc.d/init.d/syslog 파일에서 'daemon klogd' 로 시작하는 줄을 수정

Uranos OS 106/144 210X297mm 인쇄용지 70g/m2

Page 107: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

daemon klogd -k /boot/System.map-'uname -r'

커널 버전을 확인하여(uname -r), 'System.map' 뒤에 붙인 후, 그 파일명을 –k 옵션을 주어 klogd 로

넘기라는 의미이다.

#System.map 링크

[root @localhost linux-2.4]#ln -s /boot/System.map /boot/System.map-(이전 커널버젼)

#lilo 설정 파일 수정

[root @ localhost linux-2.4]#vi /etc/lilo.conf

#설정 적용

[root @ localhost linux-2.4]#/sbin/lilo

#재부팅

[root @ localhost linux-2.4]#shutdown -r now

5.2Kernel update#현재 사용중인 kernel 의 version 확인

#update 된 kernel 이 있는지 확인

#yum 을 이용한 kernel update

Uranos OS 107/144 210X297mm 인쇄용지 70g/m2

Page 108: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

#재부팅후 확인

6 Hardening Linux 성공적인 하드닝을 위해서는 다음과 같이 해야 한다:

공격을 피하기 위해서 시스템이 네트워크로 연결되기 전에 하드닝을 수행한다.

최소 권한 모델(least-privilege model)설정:시스템은 해당 기능에 필요한 정도로만 액세스를 허용해야

한다. 마찬가지로, 사용자들은 최소한의 접근 권한만 가져야 한다..

사전 플래닝과 준비를 완료하고 최소한의 설치(Part 2 참조)를 마친 후에는 여러 가지 설정 단계들을 고려해야

한다. 다음 단계는 리눅스 하드닝에 일반적으로 참조된다:

Uranos OS 108/144 210X297mm 인쇄용지 70g/m2

Page 109: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

부트(boot) 프로세스 보안

서비스와 데몬 보안

로컬 파일시스템 보안

할당량과 한계 적용

Mandatory Access Control 실행

보안 패치 업데이트 및 추가

6.1 부트(boot) 프로세스 보안

부트 로더(LILO 또는 Grub)를 설정하여 부팅 시 어떤 사용자의 개입도 허용되지 않도록 한다. 다시 말해서,

사용자가 부트 프롬프트에서 커널 매개변수를 패스하지 못하도록 한다. (원격 데이터센터 같은 곳에서) 원격

재부팅을 수행하는 것이 아닌 이상 패스워드를 넣도록 설정한다. 이는 머신에 물리적으로 접근하는

사람들에게 주는 사전 경고이다. 루트 쉘을 얻기 위해 single 또는 init=/bin/sh 를 이용하는 부팅을 방지한다.

(하드 드라이브를 제거하거나 다른 시스템에 하드 드라이브를 마운트 하는 등의) 추가적인 시도를 하면, 파일

시스템을 암호화 하지 않은 한 쉽게 피할 수 있다.

LILO 의 경우 매개변수 prompt 를 설정 파일(일반적으로 /etc 에 있음)에 있는 password 로 대체시켜라. Grub

의 경우, 관련 매개변수는 Grub 설정 파일(/boot/grub/grub/conf)에 있는 hiddenmenu, default 0, password

이다.

실행 레벨 설정에는 sp:S:respawn:/sbin/sulogin 을 /etc/inittab 에 추가하여 단일 사용자 모드로 전환할 때 루트

패스워드가 필요하다.

사용자가 Ctrl-Alt-Del 을 사용하여 재부팅을 하지 못하도록 한다: ctrlaltdel 주석을 달아 /etc/inittab 에

ctrlaltdel 엔트리가 실행되지 못하도록 한다. #ca::ctrlaltdel:/sbin/shutdown -t5 -rf now 처럼 해시(#) 표시를

추가하여 키 조합을 이용한 재부팅을 방지할 수 있다.

6.2서비스와 데몬 보안

서비스의 보안 설정의 첫 단계는 필요하지 않는 모든 서비스들을 실행불가 상태로 만드는 것이다. 제공되지

않는 서비스들은 침입자들이 악용할 수 없기 때문에 위험을 줄일 수 있다.

모든 실행 가능한 서비스들을 감추려면 여러 위치를 검사하면 된다. 불안정한 서비스들의 기능을 억제하고

보다 안전한 옵션으로 대체한다. 예를 들어, telnet 은 암호화 되지 않기 때문에 암호화된 ssh 서비스를

사용한다. (Part 2 참조)

서비스 보안을 위해서는 다음 요소들을 고려해야 한다:

/etc/inittab

/etc/init.d 의 부트 스크립트

inetd/xinetd 데몬

TCP 래퍼

Uranos OS 109/144 210X297mm 인쇄용지 70g/m2

Page 110: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

방화벽

6.2.1 /etc/inittab

부트 프로세스 동안 init 프로세스는 /etc/inittab 파일에 있는 엔트리들을 읽는다. 라인 당 한 개씩 있는 각

엔트리는 특정 상황에서 어떤 프로그램이 실행될 것인지를 정의한다. 그와 같은 프로그램은 서비스 그 자체

이거나 서비스를 시작 및 종료하는데 사용된다.

init 프로세스는 하나의 문자로 구별된 여러 상태들(소위 말해 실행 레벨(run level), 을 구별한다. 실행

레벨이 나타나거나 (전원 오류 같은) 특정 이벤트가 발생하면 엔트리들은 평가되고 해당 명령어들이

실행된다.

/etc/inittab 에 있는 엔트리 포맷은 이 엔트리용 레이블이고, 엔트리가 처리되는 실행 레벨,그 다음에는 액션

키워드, 명령행 매개변수를 포함하여 실행될 명령어 순으로 된다. 이 모든 필드는 콜론으로 구별되며

전형적인 엔트리는 다음과 같다:

my_service:35:once:/usr/local/bin/my_service someparameter

(inittab 의 맨 페이지(man-page)에서 액션 키워드의 리스트를 참조하라.)

이 예제에서, 이 엔트리의 레이블은 my_service 이다. 실행 레벨 3 또는 5 가 되면 매개변수 someparameter

를 가진 /usr/local/bin/my_service 프로그램이 실행된다. 일단 프로그램이 종료되면 다시 시작되지 않는다.

(액션 키워드 “once”)

안전한 리눅스 시스템을 위해 /etc/inittab 의 모든 엔트리 기능을 이해해야 하며, 엔트리를 삭제하거나

라인 앞에 해시 사인을 사용하여 주석을 달아 원치 않는 서비스 기능을 없앤다.

모든 리눅스 시스템에 공통적인 두 가지 유형의 엔트리가 있다. 하나는 /sbin/getty 라고 하는 프로그램을

시작하는데 사용된다. 이것은 리눅스 가상 콘솔이나 시리얼 라인상에서 로그인을 허용하는데 사용된다. 또

다른 유형은 매개 변수로서 현재 실행 레벨을 갖고 있는 /etc/rc.d 디렉토리의 rc 라는 스크립트를 시작한다.

이 스크립트는 서비스의 시작과 종료를 제어한다. (다음에 설명하겠다.)

6.2.2 /etc/init.d 의 부트 스크립트

/etc/init.d 에 있는 부트 스크립트는 시스템 서비스를 시작 및 정지하는데 사용된다. 각 실행 레벨의 경우

실행 레벨 변경 시 호출될 부트 스크립트로의 소프트 링크가 포함되어 있는 /etc/rcN.d 디렉토리가 있다. (“N”

은 실행 레벨을 나타낸다.)

링크 이름이 “S”로 시작한다면 이 스크립트는 상응하는 서비스를 시작하기 위해 실행 레벨을 입력할 때

실행된다; “K”로 시작하면 서비스 중지를 위해 실행 레벨을 종료할 때 스크립트가 실행된다.

대부분, 부트 스크립트의 이름을 보면 어떤 서비스가 제어되는지 알 수 있다. 서비스가 특정 실행 레벨에서

시작되지 않도록 하려면 실행 레벨 하위 디렉토리에서 상응하는 부트 스크립트 까지의 링크를 삭제하고

Uranos OS 110/144 210X297mm 인쇄용지 70g/m2

Page 111: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

아무것도 수행하지 않는 더미 스크립트로 /etc/init.d 에 있는 원래 부트 스크립트로 대체한다.

6.2.3 inetd/xinetd 데몬

클라이언트가 요청하면 서비스들은 호출될 수 있다. 이 요청들은 수퍼 데몬인 inetd 또는 xinetd 로 간다.

수퍼 데몬은 어떤 서비스를 시작할 것인지를 결정하고 요청을 상응하는 데몬에 보낸다. 일반적으로 telnet,

ftp, rlogin 같은 서비스들은 inetd 또는 xinetd 를 사용하여 시작된다.

inetd 데몬은 에서 설정된다. 여기에는 수퍼 데몬에서 제공하는 각 서비스에 대한 엔트리가 포함된다. FTP

서버를 설정하는 엔트리는 ftp stream tcp nowait root /usr/bin/ftpd in.ftpd -el 과 같다. 그리고 마찬가지로

해시 사인을 사용하여 주석을 달아 기능을 못하도록 한다.

보안을 위해 xinetd 를 사용하라. inetd 와 달리 xinetd 는 rpc 기반 서비스들을 시작할 수 있고 액세스

제어도 제공한다. xinetd 는 인커밍 커넥션의 비율, 특정 호스트로 부터의 인커밍 커넥션의 수, 한 서비스를

위한 총 커넥션의 수 등을 제한할 수 있다.

xinetd 는 각 하위 데몬에 대한 개별 설정 파일에 의해 설정된다. 이 파일들은 /etc/xinetd.d/에 위치해 있다.

위 FTP 서버용 설정 파일 예제는 /etc/xinetd.d/ftp 일 것이고 다음과 같다:

Listing 1. 설정 파일, /etc/xinetd.d/ftp

service ftp

{

socket_type = stream

protocol = tcp

wait = no

user = root

server = /usr/bin/ftpd

server_args = -el

disable = yes

}

서비스 기능을 없애려면 disable 매개변수를 이전 예제에서 yes 로 설정한다.

보다 세련된 액세스 제어를 위해 xinetd 는 다음 세 개의 매개변수들을 지원한다:

only_from

no_access

access_time

Uranos OS 111/144 210X297mm 인쇄용지 70g/m2

Page 112: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

ftp 데몬 기능을 완전히 억제하지 않고 액세스만 제한하려면 다음과 같이 /etc/xinetd.d/ftp config 파일을 변경하면

된다:

Listing 2. 액세스를 제한하도록 변경된 /etc/xinetd.d/ftp 설정 파일

service ftp

{

socket_type = stream

protocol = tcp

wait = no

user = root

server = /usr/bin/ftpd

server_args = -el

disable = no

only-from = 192.168.200.3 192.168.200.7 192.168.200.9

only-from += 192.168.200.10 192.168.200.12 172.16.0.0

no_access = 172.16.{1,2,3,10}

access_times = 07:00-21:00

}

only-from 과 no_access 는 숫자로 된 IP 주소(맨 오른쪽에 있는 0 은 와일드카드로 간주됨), IP 주소/넷마스크

범위, 호스트 네임, /etc/networks 의 네트워크 이름을 허용한다. only-from 과 no_access 의 조합이 사용되면 xinetd

는 각 호스트 연결과 가장 근접한 매치를 찾는다.

이전 코드 예제의 경우, IP 주소 172.16.x.x 를 가진 호스트는 172.16.1.x, 172.16.2.x, 172.16.3.x, 172.16.10.x 에

있는 주소를 가진 호스트를 제외하고는 연결될 수 있음을 의미한다. no_access 에서 처럼 인자 표시를 사용하면 네

개의 모든 조수의 컴포넌트를 지정할 필요가 없다. 인자로 된 부분은 주소의 가장 오른쪽 엘리먼트가 되어야 한다.

6.2.4 TCP 래퍼

xinetd 대신 inted 를 사용하기로 결정했다면 TCP 래퍼를 사용하여 특정 네트워크를 수락/거절하고,

요청을 기록할 수 있다. TCP 래퍼는 권한 부여와 로깅을 위해 /etc/hosts.allow 와 /etc/hosts.deny 를

평가하고 이것에 직접 응답하지 않고 클라이언트 요청을 래핑한다. 일단 성공적인 권한 부여가 되면 요청은

원리 요청된 서비스로 포워딩 된다.

TCP 래퍼를 사용하면 inetd 를 사용할 때 보다 더 나은 점이 있다:

Uranos OS 112/144 210X297mm 인쇄용지 70g/m2

Page 113: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

요청 클라이언트는 TCP 래퍼를 인식하지 못한다. 따라서 운이 좋은 사람들은 어떤 차이도 느끼지

못하고 운이 나쁜 사람들은 왜 요청이 실패했는지에 대한 아무런 정보도 받지 못한다.

TCP 래퍼는 래핑된 서비스와 상관없이 작동하면서 애플리케이션들이 설정 파일들을 공유하게 하여 관리

작업을 용이하게 한다.

TCP 래퍼 설정 파일 관련 문서는 Red Hat Linux Reference Guide 를 참조하라.

6.2.5 방화벽

실행되지 않는 서비스나, 인터넷 같은 특정 네트워크로 접근 될 수 없는 서비스들과의 원치 않는 통신을

막으려면 방화벽 설치가 권장된다. 방화벽은 신용 레벨에 기반하여 네트워크들 간 통신을 제어하고, 최소 권한

원리를 적용하여 규칙 기반 보안 정책을 사용하는 특정 서비스들로의 액세스를 허용 또는 거부한다.

방화벽 설치와 설정은 매우 복잡한 주제이기 때문에 이 글에서는 다루지 않겠다.

world-writable 파일 찾는 방법

world-writable 파일을 찾으려면 다음 명령어를 사용한다:

find / -perm -002 \( -type f -o -type d \) -ls

풀이:

/는 검색의 출발선이다.

-perm 은 허가 여부를 검사한다.

002 는 (8 진법 표기) "other"용 쓰기 비트 설정이다.

002 모드 앞에 있는 -는 모든 허가 비트가 설정됨을 의미한다. (zero 비트는 무시된다).

-type f 또는 -type d 는 정식 파일 또는 디렉토리를 찾는다

-ls 는 -ls 포맷에서 찾은 파일들을 나열한다.

6.3 로컬 파일시스템 보안

로컬 파일시스템의 보안은 파일과 디렉토리의 소유권과 접근 권한을 다루는 문제이다. 파일시스템을 보안화

하려면 파일과 디렉토리의 보호 비트(protection bit)가 최소 접근만 허용하도록 설정되어야 한다.

world-writable 파일과 시스템 디렉토리 그리고 setuid 또는 setgid 명렁어와 관련된 부적절한 허가는 특별한

주의가 필요하다. 이 명령어를 실행하는 사용자가 실제로 갖고 있는 것 보다 더 높은 사용자 권한으로 실행된다.

Uranos OS 113/144 210X297mm 인쇄용지 70g/m2

Page 114: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

오직 루트만 접근 할 수 있는 파일에 접근해야 할 수도 있다. (/bin/passwd 가 /etc/passwd 에 접근해야 하는 것

처럼). 각 명령어들은 setuid/setgid 비트 세트가 반드시 필요하다. 그런 경우가 아니면 사용하지 말라

파티션 상의 모든 파일들이 setuid/setgid 비트를 필요로 하지 않을 때, /etc/fstab 의 nosuid 옵션은 상응하는 파일

시스템상의 각 파일들을 위해 이를 정지시킨다. 다음 예제의 경우 (/dev/hdc1):

#device mountpoint filesystemtype options dump fsckorder

/dev/hda1 / ext2 defaults 1 1

...

/dev/hdc1 /mnt/cdrom iso9660 nosuid,user 1 2

더욱이, 민감한 데이터의 경우 그 데이터를 암호화하고 패스워드로 보호해야 함은 더 말할 나위 없다. GnuPG 는

이 용도에 맞는 패키지이다.

6.4 할당량과 한계 적용

Linux PAM (Pluggable Authentication Modules)은 어느 정도 유용한 제한 기능이 있다. /etc/security/limits.conf

파일에서 설정될 수 있다. 이 제한은 싱글 세션에 적용된다는 것을 염두해야 한다. maxlogins 옵션으로 전체적인

제한을 관리할 수 있다. limits.conf 내의 엔트리들은 다음의 구조를 갖는다: username|@groupname type resource limit

그룹 이름 앞에는 반드시 @이 선행되어야 한다. 사용자 이름과 구별하기 위해서이다. 유형은 soft 또는 hard 가

되어야 한다. soft-limit 은 초과될 수 있고 일반적으로 경고 표시인 반면, hard-limit 은 초과될 수 없다. resource 는

이들 키워드들 중 하나이다:

core - 핵심 파일의 사이즈 제한(KB).

data - 최대 데이터 사이즈(KB).

fsize - 최대 파일 사이즈 (KB).

memlock - 최대 고정 메모리 주소 공간 (KB).

nofile - 최대 개방 파일의 수.

rss - 레지던트 세트의 최대 사이즈 (KB).

stack - 최대 스택 사이즈 (KB).

cpu - 최대 CPU 시간 (분).

nproc - 최대 프로세스 수.

as - 주소 공간 한계.

maxlogins - 사용자에게 허용된 최대 로그인 수.

Uranos OS 114/144 210X297mm 인쇄용지 70g/m2

Page 115: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

다음 코드 예제에서, 모든 사용자들은 세션 당 10 MB 로 제한되고 총 4 개의 동시 로그인이 허용된다. 세 번째

줄은 모든 사람들에게 core 덤프를 불가능하게 한다. 네 번째 줄은 사용자 bin 에 대한 모든 제한을 제거한다. ftp 는

10 개의 동시 세션을 가질 수 있다. (이는 익명의 ftp 어카운트에 특히 유용하다); managers 그룹의 멤버들은 40

프로세스로 제한된다. developers 는 64 MB 의 memlock 으로 제한되며 wwwusers 의 모든 멤버들은 50 MB 보다 큰

파일을 만들 수 없다.

Listing 3. 할당과 한계 설정

* hard rss 10000

* hard maxlogins 4

* hard core 0

bin -

ftp hard maxlogins 10

@managers hard nproc 40

@developers hard memlock 64000

@wwwusers hard fsize 50000

이 한계를 활성화하기 위해 다음 라인을 /etc/pam.d/login 의 밑에 추가해야 한다: session required /lib/security/pam_limits.so.

할당은 inode 의 수와 사용자 및 그룹의 소비 공간을 제한한다. 할당은 마운트 포인트 별로 정의되어 사용자가 여러

파티션에 쓰기 권한을 가지면 이들 각자에 대한 할당을 정의해야 한다.

할당은 하드 드라이브의 모든 사용 공간을 채우는 DoS 어택의 위험을 최소화하는 관리자들의 방식이다. (다른

프로세스들이 임시 파일을 만들지 못하게 하여 실패하게끔 한다). 사용하고 있는 배포판에 따라 내장된 할당 툴을

설치할 수 있고 직접 다운로드, 컴파일, 설치할 수 있다.

할당은 커널에서 실행되어야 한다. 오늘날 대부분의 배포판들은 할당 지원이 된다. 자신의 배포판에서 할당을

실행할 수 없다면 참고자료를 참조하라.

파일시스템용 할당을 실행하려면 /etc/fstab 의 상응하는 라인에 옵션을 추가해야 한다. usrquota 와 grpquota 를

사용하여 사용자 할당과 그룹 할당을 실행한다. (Listing 4):

할당 예제

모든 파티션 사용자들을 위한 할당은 쓰기가 허용되어야 한다. 시스템이 인간 사용자 대신 애플리케이션에 대한

사용자 ID 를 갖는 것도 고려해야 한다. 그러한 ID 들은 사람들이 접근할 수 없는 디렉토리에 쓰기 접근을 갖고

있다.

/sbin/quotacheck -avug 를 cronjobs 에 추가하여 할당 파일과 커널에서 현재 사용하고 있는 테이블을 자동으로

업데이트 하도록 한다.

Uranos OS 115/144 210X297mm 인쇄용지 70g/m2

Page 116: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Listing 4. 사용자 할당과 그룹 할당 실행하기

/dev/hda1 / ext3 defaults 1 1

/dev/hda2 /home ext3 defaults,usrquota 1 1

/dev/hda3 /tmp ext3 defaults,usrquota,grpquota 1 1

/dev/hda4 /shared ext3 defaults,grpquota 1 1

/dev/hdc1 /mnt/cdrom iso9660 nosuid,user 1 2

그런 다음, 상응하는 파일시스템들을 다시 마운트하여 mount -a -o remount 로 새롭게 추가된 옵션을

활성화한다; 그런 다음 quotacheck -cugvm 명령어를 사용하여 바이너리 할당 파일을 만든다. 여기에는 머신이

읽을 수 있는 포맷에 할당 설정이 포함된다.

할당 설정은 edquota 툴을 사용하여 수행된다. 사용자 alice 용 제한을 설정하려면, edquota -u alice 로 이것을

호출한다. 환경변수 EDITOR(디폴트는 vi)로 정의된 에디터는 비슷한 콘텐트로 연다:

Quotas for user alice:

/dev/hda2: blocks in use: 3567, limits (soft = 5500, hard = 6500)

inodes in use: 412, limits (soft = 1000, hard = 1500)

"in use" 값은 정보를 목적으로 있는 것이기 때문에 변경될 수 없다. soft 와 hard 한계가 변경할 수 있는 유일한

값이다. 에디터를 저장하고 종료한 후에 edquota 는 편집했던 임시 파일을 읽고 그 값을 바이너리 할당 파일로

변환하여 변경사항을 적용한다. 그룹 할당을 편집은 -u 대신 -g 옵션을 사용해야 한다는 것을 제외하고는 작동은

같다.

soft 한계는 초과될 수 있는 경고 레벨인 반면 hard 한계는 엄격하게 실행된다. soft 한계는 grace period 이다. (

가끔 soft time 한계라고 불린다); 이는 사용자에게 허용된 시간 길이가 시스템에 의해 실행될 때 까지 soft 한계를

초과할 수 있다.);

grace period 를 edquota -t 로 설정할 수 있다. 사용할 수 있는 단위는 초, 분, 시간, 일, 주, 달 등이다. 할당을

관리하는 기타 유용한 툴들로는 repquota (파일시스템용 할당 요약), quotaon, quotaoff (할당을 on/off 로 변환)등이

있다.

6.5Mandatory Access Control 실행

Mandatory Access Control 또는 MAC 으로 SELinux 를 구현하여 추가적인 보안 문제를 해결할 수 있다. MAC 을

사용하면 OS 의 허가가 사용자/그룹 ID 에 의해 제어된다. 또한 MAC 을 사용하여 각 개별 프로세스는 리눅스

Uranos OS 116/144 210X297mm 인쇄용지 70g/m2

Page 117: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

커널에서 실행되고 프로세스가 수행하는 것을 제어한다.

MAC 으로 올바르게 설정된 시스템에서 강탈 또는 해킹당헌 서비스는 시스템으로 넘어올 수 없다. 서비스

프로세스가 실행되는 곳의 사용자 또는 그룹 ID (최악의 시나리오: root)가 /etc/passwd 같은 중요한 시스템 파일의

파일 허가와 맞더라도 이 정책은 접근을 허용하지 않는다.

SELinux 의 효과는 모든 사람들이 로그인 할 수 있는 인터넷 상의 테스트 시스템에서 잘 보여준다; 제어 방식은

모든 악의적인 작업을 막는다. 심지어 root 로서 로그인 할 수 있는 사용자라도 막는다.

SELinux 에는 몇 가지 문제가 있다. 우선 배포판에서 MAC 을 실행할 수 없다면 설정은 매우 힘들다. 커널의

패치와 재컴파일이 필요하고 특정 시스템 관리 툴을 대체해야 한다. (이 모든 것이 배포판 벤더의 지원 정책을

위반하는 것이다). 둘째, 적당한 정책을 정의하는 것은 매우 복잡한 일이다. 선택한 애플리케이션에 사용할 수 있는

정책 정의가 없다면 MAC 환경에서 실행하기 위해 많은 어려움을 겪어야 한다. 광범위한 패키지들이 지원되는

데스크탑 워크스테이션에서 특히 그렇다.

GnuPG 키 추가하기

배포판 벤더의 GnuPG 키는 이미 기본 설정의 일부가 되어있어야 한다: $ rpm -import <keyfile>명령어를

사용하여 삼자 벤더의 키를 추가할 수 있다.

커넥션 인증이 입증된 HTTPS 를 통해 벤더의 웹 사이트에서 다운로드를 받는 안전한 방식으로 keyfile 을 받아야

한다.

6.6 보안 패치 업데이트 및 추가

시스템을 가능한 한 안전하게 유지하려면 소프트웨어에 대한 새로운 픽스와 패치에 대한 정보를 지속적으로

받아야 한다. 이 정보에는 여러 소스들이 있지만, 일반적으로 소프트웨어 벤더와 리눅스 배포자들은 적시에 이

정보를 제공해야 한다. 또한 CERT (Computer Emergency Response Team)의 서비스를 사용할 수 있다. (거의

무료이다). 또한 최신 보고, 취약성 등에 대한 정보를 담고 있는 메일링 리스트들을 관리한다.

새로운 업데이트를 적용하려면 자신의 시스템과 보안 요구사항에 적용될 수 있는지를 확인해야 한다. 업데이트

설치는 그 자체가 보안 문제의 원인이 될 수 있다. 또한 각 업데이트로 인해 취약점이 생기거나 업데이트가

실패하면 시스템은 사용불가 상태로 될 것이다.

큰 규모의 시스템에 업데이트를 적용해야 할 때, 모두를 동시에 업데이트 할 수 없을 때가 종종 있다. 이로 인해

시스템 상호 비호환 문제가 생긴다.

여러분도 알다시피 시스템 업데이트에는 많은 위험이 잠재되어 있다. 다음은 이러한 위험들을 줄이기 위한 권고

사항들이다:

Uranos OS 117/144 210X297mm 인쇄용지 70g/m2

Page 118: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

처음 설치 후에 곧바로 시스템을 네트워크에 연결하지 말라. 개별 머신에서 모든 관련 업데이트를

다운로드하여 이들을 직접 전송하여 시스템의 현재 상태를 확인하라.

사용하고 있는 시스템을 항상 백업하라.

비즈니스에 중요한 모든 시스템들의 경우, 하드웨어와 소프트웨어 모두, 실제 제품 환경과 동일한 고립된

테스트 환경을 갖고 있어야 한다. 테스트 환경에서 먼저 업데이트를 하여 제품 환경에는 차질이 없도록

하라.

이상적으로는 시스템을 구성하고 있는 모든 프로그램의 업데이트 전후에 해당 기능과 퍼포먼스를

비교하기 위한 회귀 테스트 수트를 갖고 있어야 한다. 최소한, 제품 시스템을 변경하기 전에 테스트

환경에서 영향을 주지 않는 기능과 서비스인지를 확인하는 반복적인 품질 검사를 해야 한다.

직접 업데이트를 적용하는 것은 작은 네트워크에는 알맞지만 규모가 클 경우 제어가 불가능하다. 이로

인해 업데이트가 설치되지 않을 때도 있다. 상용 또는 오픈 소스 시스템 관리 또는 소프트웨어 배포 툴을

이용하여 업데이트를 쉽게 전개하라.

백업을 자주 하라고 언급한적이 있다. 다시 한번 강조하겠다.

업데이트 적용 계획을 수립하라. 다음은 고려 사항이다:

o 시스템의 업데이트 순서

o 비즈니스에 중요한 시스템 결정

o 시스템의 의존 방식 r

o 기밀 데이터를 포함하는 시스템 확인

무결성 체크 툴을 사용할 때, 알려진 보안 상태에서 취해진 시스템의 기본 특징을 업데이트 하여 예기치

않은 변경을 확인할 수 있도록 하라.

픽스를 적용하기 전에, 암호화 체크섬 툴을 사용하여 (웹 사이트나 ftp 서버에서 다운로드 할 때)

소프트웨어의 무결성과 인증을 확인하라. 리눅스에서는 일반적으로 MD5 또는 SHA-1 체크섬을 사용한다.

RPM 패키지를 사용하여 소프트웨어가 제공된다면 벤더는 GnuPG 서명을 제공해야 한다. $ rpm -v --

checksig <name>.rpm 명령어를 실행하여 체크 할 수 있다. 성공적인 응답은 "<name>.rpm: md5 gpg

OK"이고, 실패한 응답은 "<name>.rpm: md5 GPG NOT OK"이다.

MD5 또는 SHA-1 체크섬을 확인하려면, $ md5sum <name>.rpm 또는 $ sha1sum <name>.rpm 을

사용한다. 한 개 이상의 파일을 위한 체크섬을 포함하고 있는 파일을 다운로드 했다면 (대부분의 경우

md5sum.asc 또는 <name>.md5) $ md5sum -c md5sum.asc 를 사용할 수 있다.

그 무엇보다도, 백업하라.

Uranos OS 118/144 210X297mm 인쇄용지 70g/m2

Page 119: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

7 Hardening Linux Web Server7.1netstat

[root@test1 ~]# netstat -l -n -p -t -u -wActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1736/mysqld         tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN     

Uranos OS 119/144 210X297mm 인쇄용지 70g/m2

Page 120: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

1603/proftpd: (acce tcp        0      0 :::80                       :::*                        LISTEN      3102/httpd          tcp        0      0 :::22                       :::*                        LISTEN      1549/sshd           udp        0      0 0.0.0.0:68                  0.0.0.0:*                               1439/dhclient      

(-l is for listening, -n is for IP information and -p is for program/PID information, -t, -u, -w are for tcp,udp and raw socket connections. By setting these flags, I disable displaying information about unix socketswhich are not relevant to network security, as they are only used for interprocess communication on thecurrent host.)

7.2nmap

[root@test1 ~]# nmap -P0 -O 172.16.98.1

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2008-12-31 13:19 KSTInteresting ports on 172.16.98.1:Not shown: 1679 closed portsPORT   STATE SERVICE22/tcp open  sshMAC Address: 00:50:56:xx:xx:xx (VMWare)Device type: general purpose

Uranos OS 120/144 210X297mm 인쇄용지 70g/m2

Page 121: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Running: Linux 2.4.X|2.5.X|2.6.XOS details: Linux 2.4.0 - 2.5.20, Linux 2.4.7 - 2.6.11

Nmap finished: 1 IP address (1 host up) scanned in 2.649 seconds

7.3 iptables 방화벽 설정 룰 보기[root@test1 ~]# iptables --listChain INPUT (policy ACCEPT)target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)target     prot opt source               destination        

초기화$iptables -F  or$iptables -F INPUT$iptables -F FORWARD$iptables -F OUTPUT방화벽 설정# Enable stateful filtering allowing connections# initiated on host be allowed.iptables -A INPUT -m state --state \         RELATED,ESTABLISHED -j ACCEPTiptables -A OUTPUT -m state --state \     NEW,RELATED,ESTABLISHED -j ACCEPT# Allow Incoming SSH, HTTP, HTTPSiptables -A INPUT -p tcp -m tcp \    --dport 22 -j ACCEPTiptables -A INPUT -p tcp -m tcp \          --dport 80 -j ACCEPT

Uranos OS 121/144 210X297mm 인쇄용지 70g/m2

Page 122: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

iptables -A INPUT -p tcp -m tcp \          --dport 443 -j ACCEPT# Allow Everything from the local hostiptables -A INPUT -s 127.0.0.1 -j ACCEPT# Block Outgoing SSH connectionsiptables -A OUTPUT -p tcp -m tcp \          --dport 22 -j DROP# Block Everything elseiptables -A INPUT -j DROPiptables -A FORWARD -j DROP

[root@test1 ~]# iptables --listChain INPUT (policy ACCEPT)target     prot opt source               destination         ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https ACCEPT     all  --  localhost.localdomain  anywhere            DROP       all  --  anywhere             anywhere           

Chain FORWARD (policy ACCEPT)target     prot opt source               destination         DROP       all  --  anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)target     prot opt source               destination         ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh

방화벽 설정 저장[root@test1 ~]# iptables-save > /root/firewall

[root@test1 ~]# cat /root/firewall Uranos OS 122/144 210X297mm 인쇄용지 70g/m2

Page 123: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

# Generated by iptables-save v1.3.5 on Wed Dec 31 13:58:13 2008*filter:INPUT ACCEPT [14712:1529876]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [12518:981746]-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -s 127.0.0.1 -j ACCEPT -A INPUT -j DROP -A FORWARD -j DROP -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 22 -j DROP COMMIT# Completed on Wed Dec 31 13:58:13 2008

방화벽설정 저장한것으로 적용하기

[root@test1 ~]# iptables-restore -c /root/firewall

7.4Hardening SSH

ssh 접근 설정/etc/ssh/sshd_config

# ListenAddress defines the IP address ssh will# listen on#ListenAddress 0.0.0.0 -> ListenAddress 10.0.2.10#Only accept SSH protocol 2 connections#Protocol 2,1 -> Protocol 2#Disable root loginPermitRootLogin yes -> PermitRootLogin no#Disable allowing all system accounts to ssh in,# only allow certain users (space delimited)AllowUsers userName1 userName2 userName3

Uranos OS 123/144 210X297mm 인쇄용지 70g/m2

Page 124: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

# Change Default portPort 22 -> Port 2200

7.5File system security

/tmp 설정/dev/hda2 /tmp ext3 nodev,nosuid, noexec 0 0

루트킷 검사# Use the wget utility to download the latest# version of chkrootkitwget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gztar -xzvf chkrootkit.tar.gzcd chkrootkit-version (whatever version is)./chkrootkit

7.6php.ini 설정

# Edit /usr/local/php/php.ini with your# favorite editor# Since you're are going through the trouble of# hiding PHP files you might as well disable# this as well expose_php = On -> expose_php = Off# You really don't want users, or worse yet# an attacker to see error messages display_errors = On -> \    display_erros = Off# But you do want them logged \

Uranos OS 124/144 210X297mm 인쇄용지 70g/m2

Page 125: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

 log_errors = Off -> log_errors = On# Log to a file;error_log = filename -> \     error_log = /var/log/php-err

7.7mysql 설정

# Set the root passwordmysqladmin -u root -h localhost password subGen1us# Once this is done, log in as the root user and# disable anonymous accountsmysql -u root -p# Drop the test database which comes installed# by defaultmysql> drop database test;# Disable anonymous accountsmysql> use mysql;mysql> delete from db where User=’’;mysql> delete from user where User=’’;# Change DBA NAMEmysql> update user set user="mydbadmin" \           where user="root";mysql> flush privileges;# Make sure to login again to make sure# all the changes workmysql -u mydbadmin -ppassword: subGen1us# Configure /etc/my.cnf for security Uncomment# the following line to disable TCP connections# to mysql. As with tomcat this prevents remote# connections event in the even of the firewall# even in the even of the firewall rules being# flushed.

Uranos OS 125/144 210X297mm 인쇄용지 70g/m2

Page 126: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

7.8XSS 관련

php 코드

# Vulnerable Code<?php        $userInput = $_GET['input'];        print $userInput;?># Secure Code<?php    $userInput = urlencode($_GET['input']);    print $userInput;?>jsp 코드

  # Vulnerable Code  public class myServlet extends HttpServlet {    public static void doGet               (HttpServletRequest req,                HttpServletResponse res) {     // Get User Input     String userInput = req.getParameter("input");     // Print User Input to page     PrintWriter out = response.getWriter();    out.write("<html>");    out.write(userInput);    out.write("</html>");  }}# Secure Codeimport java.net.URLEncoder;public class myServlet extends HttpServlet {   public static void doGet             (HttpServletRequest req,

Uranos OS 126/144 210X297mm 인쇄용지 70g/m2

Page 127: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

              HttpServletResponse res) {      // Get User Input      String userInput = req.getParameter("input");      // URLEncode Input      userInput =           URLEncoder.encode(userInput, "UTF-8");      // Print User Input to page      PrintWriter out = response.getWriter();      out.write("<html>");      out.write(userInput);      out.write("</html>");  }}

7.9SQL Injection

# Partial PHP$query_result = mysql_query ( "select * from users where name = \""     .    mysql_real_escape_string($user_name)     .    "\"" );# Partial Java, ? is the bind variableConnection con = (acquire Connection)PreparedStatement pstmt =  con.prepareStatement     ("SELECT * FROM users WHERE name = ?");pstmt.setString(1, userInput);ResultSet rset = pstmt.executeQuery()

Uranos OS 127/144 210X297mm 인쇄용지 70g/m2

Page 128: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Checklist

No.No. Security ElementsSecurity Elements1.1. Boot and Rescue Disk(부팅디스크 및 치료디스크만들기)

If you install Linux from a download or over the network, you can create a boot disk manually. The ‘mkbootdisk’ command is included on most systems. This is the same command that is used during installation to create a boot disk. You must specify a device and a kernel to use.

mkbootdisk --device /dev/fd0 `uname -r`(Note: `uname -r` returns the kernel version.)

Also, have a couple of rescue disks ready. There are many rescue disks available at ftp://metalab.unc.edu/pub/Linux/system/recovery ; Good choices are: Tomsbtrt at: http://www.toms.net/rb and Knoppix at: http://www.knoppix.org (a complete Linux system on CD). You can download or purchase the CD, but make sure you choose the bootable option.

2. System Patches(RPM & YUM 을 이용한 시스템 패치)Most Linux systems work with either rpm (RedHat Package Manager, also used by Mandrake and Suse), apt/dpkg (Debian Package Manager), or YUM (Yellowdog Linux Manager). You can update specific software individually using these commands, or use your vendor's updating tools, if available. RedHat has a very nice managed support option available through RedHat Network that can help you manage many RedHat servers. The managed support option uses the up2date command, which will automatically resolve dependencies. Manual updates from rpm files can be frustrating, since the

Uranos OS 128/144 210X297mm 인쇄용지 70g/m2

Page 129: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

rpm command simply reports on dependencies – it doesn’t resolve them for you. For information on RedHat Network services, visit: https://rhn.redhat.com/rhn/help/quickstart.jsp. RHN services are generally free for the first 90 days after installation, after which you must purchase entitlements to continue.

If you are stuck with an older Linux and you can’t upgrade, check out the limited support at the Fedora Legacy Project, http://www.fedoralegacy.org/

For details on the rpm command, type ‘man rpm’ to view the man pages on the Linux system, or review online help. The Linux Documentation Project has many HOWTOs, including one for RPM at: http://www.ibiblio.org/pub/Linux/docs/HOWTO/RPM-HOWTO

The Debian package system will resolve any dependency problems, rather than simply report on them (as the rpm system does). For details on the apt command, which is used to load Debian packages, see: http://www.debian.org/doc/manuals/users-guide/ch-iraus.en.html

Regardless of the Linux vendor you’ve chosen, you’ll need some way in which to keep informed of vulnerabilities in the software. There are many mailing lists that will send you vulnerability notices for selected operating system software. Here are just a few:http://www.sans.org/newsletters/ http://www.securityfocus.com/http://www.cert.org/

3. Disabling Unnecessary Services(불필요한 service 검색 & 종료)Hardening systems by eliminating unnecessary services can enhance security and improve overall system performance. To begin, you first need to know which services are running on your system. Since services run in various ways, there are several places to check.

# ps –ax will list all currently running processes# ls –l /etc/rc.d/rc3.d/S* will show all start-up scripts (if you boot

into graphics mode, replace rc3.d with rc5.d)# netstat –a will list all open ports

# chkconfig –list will show the current startup status of all

Uranos OS 129/144 210X297mm 인쇄용지 70g/m2

Page 130: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

processes known by chkconfig

Ideally, you should see only those ports that must be open to provide the functionality required by the system.

To disable services, you can remove the startup script, or use a command such as chkconfig. There are two steps to stopping a service: 1) stop the currently running services, and 2) change the configuration so that the services doesn’t start on the next reboot.

To stop the running service:# service stop nfs

To stop the service at startup time, use the chkconfig command or remove the startup script. To use chkconfig:

# /sbin/chkconfig –levels 2345 netfs offTo remove the startup script:

# /bin/mv /etc/rc.d/rc5.d/S25netfs /etc/rc.d/rc5.d/K25netfsSome services may need to be removed from /etc/inetd.conf or /etc/xinetd.d. This is detailed in the Xinetd section of this document

4. Check for Security on Key Files(중요파일의 permission 설정 및 접근 제한) /etc/fstab: make sure the owner & group are set to root.root and the

permissions are set to 0644 (-rw-r--r--) verify that /etc/passwd, /etc/shadow & /etc/group are all owned by 'root' verify that permissions on /etc/passwd & /etc/group are rw-r--r-- (644) verify that permissions on /etc/shadow are r-------- (400)

5. Default Password Policy(비밀번호 정책설정)Ensure the default system password policy matches your organization password policy. These settings are stored in /etc/login.defs and should minimally contain settings for the following. For a complete list of options, see the online man page at: http://www.tin.org/bin/man.cgi?section=5&topic=login.defs PASS_MAX_DAYS 90 PASS_MIN_DAYS 6 PASS_MIN_LEN 14 PASS_WARN_AGE 7

6. Limit root access using SUDO(super user mode access 제한)

Uranos OS 130/144 210X297mm 인쇄용지 70g/m2

Page 131: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Sudo allows an administrator to provide certain users the ability to run some commands as root, while logging all sudo activity. Sudo operates on a per-command basis. The sudoers file controls command access. Your Linux distribution should have specifics on how to configure your distribution. There is help available online as well: http://www.linuxhelp.net/guides/sudo/

7. Only allow root to access CRON(CRON daemon 의 access 제한)#CRON daemon 은 프로세스의 스케쥴을 조정하는 데몬.The cron daemon is used to schedule processes. The crontab command is used to create personal crontab entries for users or the root account. To enhance security of the cron scheduler, you can establish the cron.deny and cron.allow files to control use of the crontab. The following commands will establish root as the only user with permission to add cron jobs.

cd /etc/ /bin/rm -f cron.deny at.deny echo root >cron.allow echo root >at.allow /bin/chown root:root cron.allow at.allow /bin/chmod 400 cron.allow at.allow

8. Warning Banners(경고메세지에 대한 정책)If your policy requires a warning banner, you can easily create one by copying the appropriate banner message to the following files.

/etc/motd/etc/issue/etc/issue.net

add 'GreetString=”Authorized Use Only”' to /etc/X11/xdm/kdmrc and make a similar change to gdm.conf

Here is a sample banner message: “Authorized Use Only. Transactions may be monitored. By continuing past this point, you expressly consent to this monitoring.”

9. Remote Access and SSH Basic Settings(원격접속 및 SSH 에 대한 기본 설정)Telnet is not recommended for remote access. Secure Shell (SSH) provides encrypted telnet-like access and is considered a secure alternative to telnet. However, older versions of SSH have vulnerabilities and should not be used. To disable SSH version 1 and enhance the overall security of SSH, consider

Uranos OS 131/144 210X297mm 인쇄용지 70g/m2

Page 132: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

making the following changes to your sshd_config file:Protocol 2 PermitRootLogin no PermitEmptyPasswords no Banner /etc/issue IgnoreRhosts yes RhostsAuthentication no RhostsRSAAuthentication no HostbasedAuthentication no LoginGraceTime 1m (or less – default is 2 minutes)SyslogFacility AUTH (provides logging under syslog AUTH)AllowUser [list of users allowed access]

DenyUser [list of system accounts and others not allowed]

MaxStartups 10 (or less – use 1/3 the total number of remote users)Note: MaxStartups refers to the max number of simultaneous

unauthenticated connections. This setting can be helpful against a

brute-force script that performs forking.

Some folks also suggest running ssh on an alternate port, although others consider this to be ‘security through obscurity’. Regardless of your opinion, it’s very easy to change the port that ssh runs on by simply changing the “Port” setting in the sshd_config file, then stopping and restarting ssh. Running ssh on an alternate port will help you avoid port scanners that are looking for open port 22 and the scripted brute-force attempts on this port.

You can block such brute-force ssh attacks with a package like denyhosts (http://denyhosts.sourceforge.net/), which utilizes tcpwrappers (see below). Alternatively, use your iptables firewall (see below) to limit access by IP address or host/domain name.

For additional ssh security, you can configure key forwarding. The following link covers the extra functionality of agent key forwarding within ssh:http://www.unixwiz.net/techtips/ssh-agent-forwarding.html

10. Host-based Firewall Protection with iptables(iptables 를 이용한 host 기반의 firewall)Many versions of Linux now come with iptables automatically enabled and

Uranos OS 132/144 210X297mm 인쇄용지 70g/m2

Page 133: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

configured during installation. RedHat creates /etc/sysconfig/iptables, based on the services you answer as ‘allowed’ during installation. Here is a basic sample script, created for a server running ssh (port 22), smtp (port 25), squid proxy (port 3128) and samba (netbios port 137). The server’s IP is 192.168.1.2 and it is part of a class C network. In the example, we want to accept these services and block all others. If the requested service is not accepted by one of the ACCEPT lines, the packet falls through and is logged and rejected.

# Firewall configuration written by redhat-config-securitylevel

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT

-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j

ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --

dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --

dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --

dport 25 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --

dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --

dport 3128 -j ACCEPT

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -d 192.168.1.2 --dport

Uranos OS 133/144 210X297mm 인쇄용지 70g/m2

Page 134: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

137 -j ACCEPT

-A RH-Firewall-1-INPUT -s 192.168.1.2 -d 192.168.1.255 -j ACCEPT

-A RH-Firewall-1-INPUT -d 255.255.255.255 -j DROP

-A RH-Firewall-1-INPUT -d 192.168.1.255 -j DROP

-A RH-Firewall-1-INPUT -j LOG

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-

prohibitedCOMMIT

11. Xinetd and inetd.conf(슈퍼데몬 설정)#슈퍼데몬이란 사용자가 따로이 적용을 하지않아도 스스로 필요한 프로세스를 사용하는 데몬을 이야기 한다. If running the older /etc/inetd.conf file, be sure to disable unnecessary services by removing them (or commenting them out) from the inetd.conf file. For example, to remove telnet access, remove the following line:telnet stream tcp nowait root /usr/sbin/telnetd telnetd

-a

On systems running scripts from the xinetd.d directory, disable the services by changing the script from ‘disable = no’ to ‘disable = yes’. A sample xinetd.d script and various ACL settings are included in the tcpwrappers section.

You will need to send a HUP signal to the inetd process after modifying the configuration files (kill -HUP processID)

12. Tcpwrappers(hostname 및 ip 주소를 이용해 service 의 허용과제한을 컨트롤)TCP Wrappers allows control of services based on hostname and IP addresses. Additionally this tool contains logging and use administration. Tcpwrappers is a daemon that positions itself between detailed inquiries and the requested service, and checks the requestor’s IP against the hosts.allow and hosts.deny files.

In the traditional inetd.conf file, you can run tcpwrappers by calling tcpd (the tcpwrappers daemon) as follows:# first comment out the original line:

#telnet stream tcp nowait root /usr/sbin/telnetd telnetd

–a

# then replace it with the modified line:

Uranos OS 134/144 210X297mm 인쇄용지 70g/m2

Page 135: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

telnet stream tcp nowait root /usr/sbin/tcpd telnetd -

a

Standard Linuxes don't have tcpwrappers built into xinetd, since xinetd already includes logging and access control features. However, if you want to add this further control you can re-compile xinetd with libwrap support by passing ‘--with-libwrap’ as an option to the configure script. When xinetd is compiled with libwrap support, all services can use the /etc/hosts.allow and /etc/hosts.deny access control. xinetd can also be configured to use tcpd in the traditional inetd style. This requires the use of the NAMEINARGS flag and the real daemon name must be passed in as server_args. Here is an example for using telnet with tcpd: service telnet

{

flags = REUSE NAMEINARGS

protocol = tcp

socket_type = stream

wait = no

user = telnetd

server = /usr/sbin/tcpd

server_args = /usr/sbin/in.telnetd

}

To use settings within xinetd scripts to control access by IP for specific services, simply change the appropriate xinetd scripts, for example:

service imap

{

socket_type = stream

protocol = tcp

wait = no

user = root

only_from = 198.72.5.0 localhost

banner = /usr/local/etc/deny_banner

server = /usr/local/sbin/imapd

Uranos OS 135/144 210X297mm 인쇄용지 70g/m2

Page 136: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

}

Here are some other helpful settings:

To deny certain IPs or domains:no_access = 10.0.5.12 bad.domain.com

To specify limits on connections – total number of ssh connections:instances = 10

Maximum number of connections per IP address:per_source = 3

To specify allowed access times:access_times = 8:00-17:00

13. System Logging(system 접근자의 기록)All Linux systems support system logging, which is important for troubleshooting system and network problems, as well as possible security incidents. Syslog is the daemon that controls logging on Linux systems. Logging configuration is stored in /etc/syslog.conf. This file identifies the level of logging and the location of the log files. Log files should be owned by root user and group, so that they are not available to the casual user.

It is recommended that log entries be logged to a centralized log server, preferably over ssh for data confidentiality. Centralized logging protects from deletion of log files and provides another layer in the event the log files are tampered with. This is easily accomplished as follows:# send to syslog server

*.emerg;*.info;*.err @hostname

For more information on syslog.conf settings, view the man page by typing ‘man syslog.conf’.

Next Generation syslog is more customizable than syslog and supports digital signatures to prevent log tampering. It is available at: http://freshmeat.net/projects/syslog-ng/

Uranos OS 136/144 210X297mm 인쇄용지 70g/m2

Page 137: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Auditing your log files:Regardless of the software used to create the log files, good security includes the ongoing review of log file entries. This can become very tedious if your only tool is to manually read the logs. Fortunately, there are some very good open-source packages to help:

Logwatch: comes standard with many Linux distributions. Configuration of logwatch is done in the /etc/log.d directory. The script logwatch.conf allows you to set defaults, such as the level of detail, the services to include, and the log file names. Reports can be sent directly to your email and include data such as: firewall rejects, ftp uploads/downloads, disk space usage, sendmail statistics, etc.

Swatch: is an active log file-monitoring tool. Swatch uses regular expressions to find lines of interest. Once swatch finds a line that matches a pattern, it takes an action, such as printing it to the screen, emailing it, or taking a user-defined action.To use swatch to check logs normally, run: swatch --config-file=/etc/swatch.conf

--examine=/var/log/messages

To use swatch as a constantly running service that scans lines of a log file as they come in, run: swatch --config-file=/etc/swatch.conf

--tail-file=/var/log/messages

Don't forget email security when sending your log files via email, which flows in plain text from source to destination mailbox. You may want to encyrpt the logfiles with something like GnuPG before sending them. Visit: www.gnupg.org for more information.

There are dozens of other tools available to analyze and audit syslog messages. The important point to remember is to pick a tool and make sure someone is responsible for log file auditing on a regular basis.

14. BackupsThere are many non-commercial and commercial backup programs available for Linux. We’ll highlight the non-commercial tools here. A google search for

Uranos OS 137/144 210X297mm 인쇄용지 70g/m2

Page 138: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

‘linux backup software’ should provide you with enough commercial options to choose from.

tar, gzip, bzip2: these tools have been around a long time and they are still a viable option for many people. Almost any *nix system will contain tar and gzip, so they will rarely require special installation or configuration. However, backing up large amounts of data across a network may be slow using these tools.

To backup a list of directories into a single tar archive, simply run the tar command to create the tarball, followed by the gzip command to compress it:tar -cvf archive-name.tar dir1 dir2 dir3....gzip -9 archive-name.tarYou may prefer to use bzip2, which is a bit better then gzip at compressing text, but it is quite a bit slower.

You can combine the tar and gzip actions in one command by using tar's -z option.

Rsync: rsync is an ideal way to move data between servers. It is very efficient for maintaining large directory trees in synch (not real time), and is relatively easy to configure and secure. rsync does not encrypt the data however so you should use something like SSH or IPSec if the data is sensitive (SSH is easiest, simply use "-e ssh"). Rsync (by Martin Pool) is available at: http://freshmeat.net/projects/rsync/

Amanda: is a client-server based network backup program with support for *nix and Windows (via samba). It is available from http://www.amanda.org

dump: is written specifically for backups. It backs up the entire file system and allows multiple levels of backups. The corresponding ‘restore’ command allows for restore from a dump backup. For example, to backup /boot file system to backup.boot:dump 0zf backup.boot /boot

Uranos OS 138/144 210X297mm 인쇄용지 70g/m2

Page 139: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

See ‘man dump’ for a complete list of options.15. Integrity-checking Software(무결성 검사에 대한 프로그램)

Integrity checking/assurance software monitors the reliability of critical files by checking them at regular intervals and notifying the system administrator of any changes. This type of software is very useful in identifying unauthorized changes to configuration files, log files, services, as well as identifying the presence of Trojans, rootkits, and other malicious code.

There are several integrity-checking packages available. Most Linux distros come with a barebones version of a commercial package. Commercial Tripwire support is available (for a fee) and can include an excellent management console to provide central control for recreating your policy files and databases. Aide is an advanced Intrusion Detection system that aims to be a free replacement to Tripwire. Samhain is another open-source option.

http://tripwire.org/http://sourceforge.net/projects/aidehttp://sourceforge.net/projects/samhain

16. Apache Security (all *nix)(아파치 서버의 보안 설정)There are entire books dedicated to apache security. We will hit some of the high-level suggestions here. Detailed help can be found at http://httpd.apache.org/

First, verify that your apache subdirectories are all owned by root and have a mod of 755:[user@host xinetd.d]$ ls -l /etc/apache

drwxr-xr-x 7 root root 4096 Aug 23 10:24 conf

drwxr-xr-x 2 root root 4096 Aug 27 08:44 logs

(your Apache installation may be located at /usr/local/apache or

elsewhere if you installed it yourself)

[user@host xinetd.d]$ ls –l /usr/sbin/*http*

-rwxr-xr-x 1 root root 259488 Aug 2 05:22 /usr/sbin/httpd

-rwxr-xr-x 1 root root 270248 Aug 2 05:22

/usr/sbin/httpd.worker

Uranos OS 139/144 210X297mm 인쇄용지 70g/m2

Page 140: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Likewise, your httpd binary should be owned by root, with a mod of 511. You can create a web documents subdirectory outside the normal Apache filetree as your DocumentRoot (/var/www/html in RedHat), which is modifiable by other users -- since root never executes any files out of there, and shouldn't be creating files in there.

Server side includes (SSI) create additional risks, since SSI-enabled files can execute any CGI script or program under the permissions of the user and group apache runs as (as configured in httpd.conf). To disable the ability to run scripts and programs from SSI pages, replace “Includes” with “IncludesNOEXEC” in the options directive. Users may still use <--#include virtual="..." --> to execute CGI scripts if these scripts are in directories designated by a ScriptAlias directive.

Script Aliased CGI: is recommended over non-script aliased CGI. Limiting CGI to special directories gives the administrator control over which scripts can be run.

System Settings:

To prevent users from setting up .htaccess files that can override security features, change the server configuration file to include:<Directory />

AllowOverride None

</Directory>

To prevent users from accessing the entire filesystem (starting with the root directory), add the following to your server configuration file:<Directory />

Order Deny,Allow

Deny from all

</Directory>

To provide access into individual directories, add the following: <Directory /usr/users/*/public_html>

Uranos OS 140/144 210X297mm 인쇄용지 70g/m2

Page 141: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Order Deny,Allow

Allow from all

</Directory>

<Directory /usr/local/httpd>

Order Deny,Allow

Allow from all

</Directory>

If you are using Apache 1.3 or above, apache recommends that you include the following line in your server configuration files:UserDir disabled root

17. Apache Mod_security module(modsecurity 에 대한 설정)#modsecurity 는 모든 트레픽에 대해 필터링을 할수 있으며 고정적인 트래픽이 아닌

경우에도 유용하게 사용할 수 있다. The mod_security module runs on most versions of Apache, but you will most likely be required to install it from source (check with your Linux distribution). You can download the latest source code from www.modsecurity.org and compile it using apxs or apxs2. Detailed instructions can be found in the ModSecurity User Guide or the source code’s INSTALL file.

Mod_security allows you to enhance the overall security of your apache web server by providing additional configuration settings within your httpd.conf file. These settings allow you to filter/inspect all traffic, or filter/inspect non-static traffic only (DynamicOnly). You can then set the default action for matching requests – for example, displaying a standard error page. In addition, you can specify allowable ASCII values and set restrictions for file uploads. Mod_security also provides much more logging than the default for apache. More information can be found at www.modsecurity.org

18. Xwindow(GUI환경에서의 보안설정)X window can be a large security risk considering the many exploits for the product and since its data flows unencrypted across networks. A good method of configuring access to X servers is to tunnel X window sessions through SSH (secure shell). This is referred to as X11 forwarding. SSH provides the advantage of adding encryption to tunneled X sessions. A document from Stanford University provides a security check to test existing

Uranos OS 141/144 210X297mm 인쇄용지 70g/m2

Page 142: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

X servers and describes the steps involved to connect to an X server via SSH: http://www.stanford.edu/services/securecomputing/x-window/

19. LIDS (Linux Intrusion Detection System)(ACL,MAC,등과 연동하여 LIDS 로 보호된 프로세스만이 허용된다.)LIDS is an enhancement for the Linux kernel written by Xie Huagang and Philippe Biondi. It implements several security features that are not in the Linux kernel natively. Some of these include: mandatory access controls (MAC), a port scan detector, file protection (even from root), and process protection. LIDS implements access control lists (ACLs) that will help prevent even those with access to the root account from wreaking havoc on a system. These ACLs allow LIDS to protect files as well as processes.

For more information on LIDS: http://www.lids.org/20. Selinux (Security Enhanced Linux)

Developed by the U.S. National Security Agency (NSA), Security-enhanced Linux is a research prototype of the Linux® kernel and a number of utilities with enhanced security functionality designed simply to demonstrate the value of mandatory access controls to the Linux community and how such controls could be added to Linux.

The Security-enhanced Linux kernel enforces mandatory access control policies that confine user programs and system servers to the minimum amount of privilege they require to do their jobs. When confined in this way, the ability of these user programs and system daemons to cause harm when compromised (via buffer overflows or misconfigurations, for example) is reduced or eliminated. This confinement mechanism operates independently of the traditional Linux access control mechanisms. It has no concept of a "root" super-user, and does not share the well-known shortcomings of the traditional Linux security mechanisms (such as a dependence on setuid/setgid binaries).

Implementing SE Linux can have unexpected effects on a system, and you may find standard daemons won’t run properly, or at all, or logfiles may not be writable, or other similar effects that require detailed configuration of SE Linux

Uranos OS 142/144 210X297mm 인쇄용지 70g/m2

Page 143: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Currently, RedHat Enterprise Linux Version 4 includes an implementation of SE Linux.

For more information on SE Linux: http://www.nsa.gov/selinuX/21. Email Security

Many sys-admins disable the sendmail utility on user workstations, and centralize its service on a main mailserver machine. Even in this situation, there’s more you can do to increase its security.

For sendmail, follow the recommended security settings for secure installation: http://www.sendmail.org/security/secure-install.html. It is possible to configure sendmail to launch when needed, rather than run it as a listening daemon on port 25.

Postfix is a good alternative to sendmail. Information is available at: http://www.postfix.org/

22. File Sharing(samba,nfs 를 이용한 파일 공유)There are many methods of file sharing among Linux systems. Opening up a system for file sharing may not be acceptable within your organizational policy. We provide information here for those who require this type of access.

For information on NFS security (for sharing *nix-to-*nix), see: http://www.linuxsecurity.com/content/view/117705/49/

Samba is a software package that offers file sharing between Linux and Windows systems. It can be configured to use encrypted password access, restriction by user and/or IP address, and file-level permissions can be set. Samba is available at: www.samba.org. A good article describing the various Samba security modes is available at: http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ref-guide/s1-samba-security-modes.html

23. EncryptionIf the system will be storing confidential data and you need to minimize the risk of data exposure, encryption may be an acceptable solution.

Uranos OS 143/144 210X297mm 인쇄용지 70g/m2

Page 144: pds16.egloos.compds16.egloos.com/pds/201003/04/15/firewall.docx · Web view-PT 일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고 RST 패킷으로 응답을 받는다

Uranos OS

Sourceforge has a web page that attempts to provide a disk encryption HOWTO for Linux users. It is available here: http://encryptionhowto.sourceforge.net/Encryption-HOWTO.html

Depending on your needs, openPGP and/or GnuPG may be appropriate. These tools will allow you to encrypt emails and attachments, as well as files stored on disk. GnuPG is available at: www.gnupg.org and OpenPGP can be found at: www.openpgp.org.

24. Anti-Virus ProtectionThere are several anti-virus options available for Linux users and the list continues to grow. Here are a few:Clamav: www.clamav.netf-prot: www.f-prot.com/products/corporate_users/unix/ Vexira: www.centralcommand.com/linux_server.html

25. Bastille LinuxA hardening program for RedHat, SUSE, Debian, Gentoo, and Mandrake distributions, Bastille Linux attempts to lock down a Linux server. It walks the user through a series of questions and builds a policy based on the answers. Bastille Linux was conceived by a group of SANS conference attendees and is available at: http://www.bastille-linux.org/

Uranos OS 144/144 210X297mm 인쇄용지 70g/m2