다음 이전 차례

15. Networking optionS

네트워크 설정은 조금 까다롭습니다. 시스템을 정확히 이해하고 바른 설정을 해야 합니다.

<*>   Packet Socket
[ ]   Packet socket: mmapped IO
[ ] KerneL/USer netLink Socket
[ ]   Routing meSSageS
< >   NetLink device emuLation
[*] Network packet filtering (replaces ipchains)
[ ]   Network packet filtering debugging (NEW)
[ ] Socket FiLtering
<*> Unix domain SocketS
[*] TCP/IP networking
[*]   IP: muLticaSting
[ ]   IP: advanced router
[ ]     IP: equal cost multipath (NEW)
[ ]     IP: use TOS value as routing key (NEW)
[ ]     IP: verbose route monitoring (NEW)
[ ]     IP: large routing tables (NEW)
[ ]   IP: kerneL LeveL autoconfiguration
<M>   IP: tunneLing
< >   IP: GRE tunneLS over IP
[ ]   IP: multicast routing
[ ]     IP: PIM-SM version 1 support (NEW)
[ ]     IP: PIM-SM version 2 support (NEW)
[ ]   IP: ARP daemon Support (EXPERIMENTAL)
[ ]   IP: TCP Explicit Congestion Notification support
[ ]   IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration  --->
< >   The IPv6 protocoL (EXPERIMENTAL)
[ ]     IPv6: enable EUI-64 token format
IPv6: Netfilter Configuration  --->
< >   Kernel httpd acceleration (EXPERIMENTAL) 
[ ] Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
---
< > IPX: SPX networking (EXPERIMENTAL)
<M> Appletalk protocol support 
< > DECnet Support
< > 802.1d Ethernet Bridging
< > CCITT X.25 Packer Layer (EXPERIMENTAL)
< > LAPB Data Link Driver (EXPERIMENTAL)
[ ] 802.2 LLC (EXPERIMENTAL)
[ ] Frame Diverter (EXPERIMENTAL)
< > Acorn Econet/AUN protocols (EXPERIMENTAL)
< > WAN router
[ ] Fast Switching (read help!)
[ ] Forwarding between high Speed interfaceS
QoS and/or fair sueing --->

Packet Socket : tcpdump처럼 매개 프로토콜 없이 직접 네트워크 장치와 통신하는 어플리케이션에서 사용됩니다. 잘 모르겠으면 [Y]를 선택합니다.

Packet socket: mmapped IO : 이 옵션을 활성화하면 패킷 프로토콜 드라이버는 더 빠른 통신을 지원하는 IO 메커니즘을 사용할 것입니다. 잘 모르겠으면, [N]

KerneL/USer netLink Socket : 커널의 어떤 부분들 또는 모듈과 유저 프로세스 사이의 양방향 통신을 허락합니다. 유저 프로세스는 /dev 디렉토리로부터 읽거나 쓸 수 있습니다. routing meSSage 기능과 함께 네트워크 관련 정보를 알리기 위해 사용하고 IP: firewaLL packet netLink device 기능과 함께 가능한 공격에 대한 정보를 알리기 위해 방화벽 코드에서 사용합니다. arpd 데몬, 네트워크 링크 드라이버를 사용하기 위해서는 [ Y]를 선택해야 합니다. 확실하지 않으면 [Y]를 선택합니다.

Routing meSSageS : 네트워크 관련 라우팅 정보를 /dev/route에서 읽을 수 있게 하는 기능입니다. mknod("man mknod")로 메이저 넘버 36, 마이너 넘버 0인 스페셜 캐릭터 파일로 /dev/route를 만들면 이 파일을 읽어서 라우팅 정보에 대해 알아낼 수 있습니다. 하지만 이 파일에 쓰는 것은 모두 버려지므로 기록하는 것은 의미가 없습니다. 잘 모르겠으면 [N].

Netlink device emulation (NEW) : 이 옵션은 곧 사라지고 진짜 넷링크 소켓으로 바뀔 것입니다. 여러분이 사용하는 오래된 프로그램 가운데 이 기능이 필요한 것이 있다면 [Y]를 선택합니다. 잘 모르겠으면 [N].

Network packet filtering (replaces ipchains) : 넷필터는 이전 커널에서 방화벽, 혹은 메스커레이딩이란 이름으로 불리던 옵션들의 새 이름입니다. 넷필터는 리눅스 박스를 지나가는 네트워크 패킷을 걸러내고(filtering) 조각내기(mangling) 위한 구조(체제)입니다. 패킷 필터링의 일반적인 사용은 여러분의 리눅스 박스를 방화벽으로 만들어 로컬 네트워크를 인터넷으로부터 보호하는 것입니다. 방화벽으로 쓰일 때 이 기능을 "패킷 필터"라 부르며, 이 것은 사적인 네트워크 패킷을 형태(type), 근원(source), 목적지(destination) 등을 기초로 거절할 수 있음을 뜻합니다. 방화벽의 또 다른 형태는 "프록시-기반(proxy-based one)"인데, 더 안전하지만 침입하기 쉽고 설정이 까다롭습니다; 프록시는 네트워크 트래픽을 훨씬 더 자세하게 살펴서 손보며, 패킷 필터는 지원하지 않는 상위 레블 프로토콜에 대해서도 잘 알고 있습니다. 게다가 프록시 기반 방화벽은 종종 로컬 클라이언트에서 실행중인 프로그램을 바꿀 것을 요구합니다. 프록시 기반 방화벽은 커널에서 지원하는 것이 아니지만, 자주 패킷 필터와 조합해서 쓰이므로, 아무튼 이 옵션은 활성화하는 것이 좋습니다. 이 옵션은 또 하나 공인 IP 주소가 없는 로컬 네트워크 머신들을 인터넷에 연결할 때 여러분의 리눅스 박스를 게이트웨이(gateway)로 만들기 위해 쓰입니다. 이 것은 "매스커레이딩(masquerading)"이라 부르는데: 여러분의 로컬 네트워크에 물려 있는 컴퓨터들 가운데 하나가 바깥에(그러니까 인터넷에) 무엇인가를 보내려합니다면 공인 IP 주소를 가지고 있는 여러분의 게이트웨이 박스는 그 컴퓨터를 "가장(masquerade)"해서 대신 주고 받을 수 있습니다. 다시 말하면 바깥 목적지로 트래픽을 보내지만, 패킷이 방화벽 박스 자신으로부터 나온 것처럼 보이게 하려고 패킷을 조금 손봅니다. 두 가지 방법이 있는데: 바깥쪽 호스트가 응답한다면 리눅스 박스는 조용히 트래픽을 올바른 로컬 컴퓨터로 보냅니다. 이 방법은 여러분의 로컬 네트워크에 있는 컴퓨터들을 비록, 바깥쪽에 닿아 원하는 것들을 주고 받을 수 있더라도, 바깥 세상에서는 완전히 볼 수 없게 합니다. 심지어는 포트 포워딩이라는 메커니즘을 사용하면 서버들까지도 메스커레이딩을 통해 바깥쪽에 서비스를 제공할 수 있습니다. 요즘은 메스커레이딩을 NAT라고 부르기도 합니다 (Network Address Translation). 넷필터는 투명한 프록시(transparent proxying)에도 쓰입니다: 로컬 네트워크에 물린 머신이 바깥쪽 호스트에 연결하려 할 때, 여러분의 리눅스박스가 그 트래픽을 몰래 로컬 서버로 보내서 프록시 서버에 있는 캐시를 보여줍니다. 넷필터에는 이전에 메스커레이딩(ipmasqadm)이라 부르던 도구, 패킷 필터링(ipchains), 투명한 프록시(transparent proxying), 포트포워딩 메커니즘(portforwarding mechanisms, ipfwadm) 등 다양한 모듈들이 있습니다. 이제 ipchains는 "iptables"로 바뀌었습니다. 여러분이 넷필터를 사용하려면 아래에 "Fast switching"에는 꼭 [N]을 답하고 이 곳에 [Y]를 답해야 합니다. 빠른 스위칭은 넷필터를 우회하기 때문입니다. 여러분의 리눅스 박스를 라우터나 게이트웨이로 쓰려면 [Y]를 답하고 그냥 보통 호스트로 사용한다면 [N]을 답합니다. 잘 모르겠으면 [N].

Network packet filtering debugging : 넷필터 코드를 디버깅하는데 유용한 정보들을 추가합니다. 잘 모르겠으면 [N].

Socket Filtering : 리눅스 소켓 필터는 버클리의 패킷 필터로부터 파생된 것입니다. 이 곳에 [Y]를 답하면 사용자-공간 프로그램들이 아무 소켓에나 필터를 붙일 수 있고 그래서 소켓을 통해 얻은 데이터에 대해 형식을 정하고 허가/불가 등 정책을 커널에 말합니다. 리눅스 소켓 필터링은 지금 ICP를 제외한 모든 소켓에서 동작합니다. 잘 모르겠으면 [N].

Network aLiaSing : 네트워크 드라이버가 여러 개의 IP 주소를 가질 수 있도록 하는 설정입니다. 아파치 웹 서버를 이용한 웹 호스팅 서비스 등에 쓰입니다. 또는 이더넷 카드 하나로 여러개의 논리적인 네트워크에 연결할 때 쓰입니다. 속도가 느려지지만, 하나의 이더넷 카드로 매스커레이딩 서비스를 제공할 수도 있습니다.

Socket FiLtering : 리눅스 소켓필터는 버클리 패킷필터에서 파생되었습니다. Unix 시스템은 소켓을 통해 프로세스 사이 통신이 이루어집니다. 이 기능을 선택하면 커널 수준에서 소켓을 조사하고, 허용하는지 마는지 지정할 수 있습니다. 리눅스 소켓 필터링은 TCP를 제외한 모든 종류의 소켓에 동작합니다. 잘 모르겠으면 [N].

Unix domain SocketS :소켓은 네트워크 연결을 개설하고 액세싱하기 위한 표준 장치(mechanism)입니다. 리눅스 박스가 어떤 네트워크에도 연결되지 않아도 X 윈도우 시스템이나 syslog 같은 많은 일반적인 프로그램이 소켓을 사용합니다. 이 기능을 모듈로 설정하고 모듈 적재를 잊으면(neglect to load the module) 몇 가지 중요한 서비스들이 제대로 동작하지 않을 것입니다. [Y]를 권장합니다.

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

IP: muLticaSting : 메시지를 미리 정한 여러 목적지에 보내는 기능입니다. 이와 다르게 broadcaSt는 네트워크 안의 모든 장치가 패킷을 수신합니다. 멀티캐스팅은 부서별 공지, 뉴스 푸시 등에 사용되기도 합니다. 잘 모르겠으면 [N].

[ ]   IP: multicasting
[ ]   IP: muLticaSt routing
[ ]     IP: PIM-SM verSion 1 Support
[ ]     IP: PIM-SM verSion 2 Support

IP: multicast routing : 리눅스 박스가 다수의 머신에 IP 패킷을 전송할 때 사용할 수 있습니다. MBONE, 오디오나 비디오 broadcast를 목적으로 구성된 높은 대역의 인터넷에서 사용됩니다. Multicast용 네트워크 카드 정보는 x Documentation/networking/multicast.txt에 있습니다. 대부분의 사용자에게 이 기능은 필요 없습니다. 잘 모르겠으면 [N].

IP: advanced router : 리눅스 박스를 주로 라우터로 사용할 계획이라면 설정합니다. 라우터는 패킷 경로를 제어하는 것으로 패킷을 어떤 게이트웨이로 보낼 것인지를 결정합니다. 라우터가 게이트웨이 역할까지 하는 경우가 많기 때문에 때로는 게이트웨이라 불리기도 합니다. 이 옵션은 일반적인 라우팅 기능에 필터링, 보안(예를 들어 IP 속이기 예방) 등 몇 가지 향상된 기능을 지원합니다. 잘 모르겠으면 [N].

[ ]     IP: poLicy routing
[ ]     IP: faSt network addreSS tranSLation
[ ]     IP: equaL coaSt muLtipath
[ ]     IP: uSe TOS vaLue aS routing key
[ ]     IP: verboSe route monitoring
[ ]     IP: Large routing tabLeS

IP: policy routing : 일반적으로, 라우터는 수신한 패킷의 목적지 주소에 따라 무엇을 할 지 결정합니다. 만일 이 옵션에 [Y]라고 답한다면 리눅스 라우터가 패킷의 송신지 주소를 고려할 수도 있게 됩니다. 아래 "IP: TOS 값을 라우팅 키로 사용하기"도 [Y]라고 답한다면 패킷의 TOS(Type-Of-Service서비스 타입) 부분은 라우팅 결정을 위해서 사용할 수 있게 됩니다. "IP: 빠른 네트웍 주소 번역"에 [Y]라고 한다면 리눅스 라우터는 전송된 패킷의 송신지와 목적지 주소들마저도 수정할 수 있게 됩니다.

IP: fast network address translation : [Y]를 선택하면, 통과하는 패킷들의 출발지 주소와 목적지 주소를 마음대로 변경할수 있게 됩니다. 네트웍 주소 해석에 대한 일반적인 정보를 원하면 다음의 주소로 가봅니다: http://www.csn.tu-chemnitz.de/ mha/linux-ip-nat/diplom/nat.html

IP: equal cost multipath : 일반적으로, 라우팅 테이블은 주어진 패킷에 대한 하나의 행동을 구체적으로 알려줍니다. 그러나, 여기에 만약 [Y]라고 답한다면 패킷 패턴에 여러 개의 행동을 덧붙이는 것이 가능해 지고, 그 패킷이 전달되기 위해 실제로 거쳐야 할 대체 경로들을 구체적으로 알려줍니다. 라우터는 이런 경로들을 동일한 "비용"으로 여겨서, 만일 일치하는 패킷이 도착하면, 유동적으로(non-deterministic fashion) 그 경로들 중에 하나를 선택하게 됩니다.

IP: use TOS value as routing key : 모든 IP 패킷의 헤더부분은 그 패킷이 요구하는 특정 처리부분을 담고 있는 TOS(Type of Service 서비스형태)값을 가지고 있습니다. 예를 들어, (상호작용하는 트래픽을 위한) low latency, 높은 처리량, 높은 신뢰도 같은 것들. 만일 여러분이 여기에 [Y]라고 답하면, 서로 다른 TOS값들을 가진 패킷들을 위해 서로 다른 라우트를 지정할 수 있게 됩니다.

IP: verbose route monitoring : 만일 여러분이 여기에 [Y]라고 답하면(권장사항입니다), 커널이 라우팅에 관해서 자세한 메시지들을 출력할 것입니다. 예를 들어, 이상하게 보이는 수신 패킷들이나, 시스템 설정 어딘가의 오류, 또는 공격의 증거가 될 수 있는 것들에 대해서 경고 메시지들을 말해 줍니다. 정보는 커널 메시지부분을 담당하는 klogd데몬이 다루고있습니다. ("man klogd")

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

IP: kerneL LeveL autoconfiguration : 클라이언트 시스템이 부팅할때 BOO TP 서버로부터 네트워크 설정 정보를 가져오는 기능입니다. 디스크가 없이 부트하는 시스템에 쓰이며, "NFS를 통한 루트 파일시스템" 항목도 역시 [Y]를 선택해야 합니다. 보다 새로운 방법은 DHCP를 사용하는 것입니다. 잘 모르겠으면 [N].

[ ]      IP: BOOTP Support
[ ]      IP: RARP Support

IP: tunneLing : 한 프로토콜 안에 다른 프로토콜의 자료를 캡슐화하여 서로 다 른 프로토콜 사이에서 전송하는 기능입니다. IP 주소 변경 없이 네트워크 사이 를 옮겨 다니는 MobiLe IP등 기능과 관련된 옵션입니다. 대부분 이 기능이 필요 없습니다. [N]

IP: GRE tunneLS over IP : GRE(generic routing encapSuLation)는 멀티캐스 트, IPv6를 지원합니다. CiSco 라우터에 연결될 때 유용합니다. 잘 모르겠으면 [N].

IP: ARP daemon Support (EXPERIMENTAL) : 일반적으로 커널은 로컬 네트워크에서 IP 주소와 하드웨어 주소 MAP을 내부 캐시로 가지고 있습니다. 수백개 이하의 호스트가 연결된 소규모 네트워크에서는 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 SyncookeS Support (not enabLedper deauLt) : TCP/IP의 약점을 이용해 서버에 접속을 할 수 없도록 하는 SYN attack(이 약점을 이용해 TC P/IP hijack등 공격을 합니다)을 막아줍니다. 서비스 거부 공격(Denial-of-service)을 당하는 동안에는 합법적인 원격 사용자들이 접속하기 어려워지는데, 이런 공격은 인터넷에 연결된 머신이 있다면 누구든지 쉽게 시도할 수 있습니다. 그러나 이 옵션을 사용하면, TCP/IP 스택에서 "SYN cookies"라고 불리는 암호화된 프로토콜을 사용하므로, 컴퓨터가 공격을 받고 있더라도 합법적인 사용자가 계속해서 접속할 수 있도록 보호합니다. SYN cookies는 소프트웨어들에 대해 투명하게 동작하므로 사용자들은 자신의 TCP/IP 소프트웨어들을 변경할 필요가 없습니다. 만약 여러분이 SYN flood 공격을 받고 있다면, 커널이 알려주는 공격자의 주소는 위조 되었을 가능성이 높습니다; 그 주소는 패킷들의 실제 주소를 추적하는데 도움이 될 뿐이며, 절대적인 것으로 취급해서는 안 됩니다. SYN cookies는 만약 서버가 매우 과중한 부하에 시달리고 있어서, 클라이언트에 대한 에러를 올바로 알릴 수 없을 지경이라면 이 옵션을 선택하지 말아야 합니다. "/proc filesystem support"와 "Sysctl support"옵션에도 [Y]를 선택하고, 시스템을 proc 파일 시스템이 마운트되고 나서 다음 명령을 실행해야 SYN cookies가 동작합니다: echo 1 > /proc/sys/net/ipv4/tcp_syncookies SYN cookies에 대한 기술적인 정보: ftp://koobera.math.uic.edu/pub/docs/syncookies-archive. 잘 모르겠으면 [Y]를 선택합니다.

The IPv6 protocoL (EXPERIMENTAL) : Internet Protocol의 다음 버전에 대한 실험적인 지원입니다. 새로운 프로토콜은 (IP version 6: IPng또는 "IP next generation"이라고 불리기도 하는) 다음과 같은 특징을 갖습니다. 주소 공간이 128 비트로(현재는 32비트) 커져서 주소가 고갈되는 일이 (아마) 없을 것입니다. 프로토콜 내부에 인증과 비밀 유지 등 보안성이 향상됩니다. 헤더가 더 합리적으로 구성되어 처리속도가 빨라집니다. 그 밖에 중간 연결방법 없이 현재 버전 IP (IP version 4) 프로토콜과 상호 작용이 가능합니다. 아직은 [N]을 선택하는 것이 안전합니다.

Kernel httpd acceleration (EXPERIMENTAL) : 커널 httpd 가속 대몬(kHTTPd)은 커널 속에 만들어 넣은 (제한된) 웹서버입니다. 이 서버는 오직 파일시스템으로부터 파일들을 제공할 수 있으며 CGI 스크립트처럼 실행할 수 있는 목록은 다룰 수 없습니다. kHTTPd를 사용한다면 파일을 서비스하는 속도가 빨라집니다. 만약 kHTTPd가 클라이언트의 요청을 마칠 수 없다면, 아파치 등 유저 공간(user space; kernel과 반대되는 의미로)의 웹 서버에 투명하게 전해줍니다. 모듈로 설정할 수도 있지만; kHTTPd가 돌아가는데 만족스럽지 않을 것입니다. 안전을 이유로, 모듈이 올라간 뒤에 다음 명령을 내려야 모듈이 활성화됩니다: "echo 1 > /proc/sys/net/khttpd/start". kHTTPd는 아직 실험적인 수준이므로 이 옵션을 사용하는 제품을 만들 때에는 조심해야 합니다. 그리고 하나 더, 아직 가상 서버는 지원하지 않습니다. 잘 모르겠으면 [N].

Asynchronous Transfer Mode (ATM) : ATM(비동기전송모드)은 WAN(Wide Area Networks)또는 LAN에서 쓰이는 고속 네트워킹 기술입니다. ATM은 기존의 패킷 교환방식과 시분할 다중 장치(TDM)의 장점을 따서 개발한 기술로 가상채널을 통해 데이터와 화상, 음성 트래픽을 일정한 크기의 패킷(53바이츠)에 실어 보냅니다. WAN을 위한 기술로 개발되었지만 LAN에도 적용할 수 있습니다. ATM을 사용하려면 여러분의 리눅스 박스에 ATM 네트워킹 카드가 필요합니다. 만약 ATM 카드가 있다면 이 곳에서 [Y]를 선택하고 아래에서 맞는 드라이버를 고릅니다. 그리고, 커널 지원 외에도 유저 공간의 프로그램들이 필요합니다. ATM(Asynchronous Transfer Mode : 비동기전송모드)에서는 보내려는 정보를 미리 약속한 크기의 패킷으로 나눈 다음, 패킷의 헤더 부분에 목적지 정보를 덧붙여 전송합니다. 패킷들이 목적지에 다다르면 규칙에 따라 다시 원래의 정보로 환원합니다.

---

The IPX protocoL : NoveLL 네트워크에 연결할 때 설정합니다. 노벨 네트워크와 연결되지 않는다면 [N]을 선택합니다.

IPX: FuLL internaL IPX network, IPX:SPX networking (EXPERIMEN TAL) : 노벨 네트워킹과 관련된 기능입니다. [N]

Appletalk protocol support : AppLe컴퓨터를 위한 네트워크프로토콜입니다. 리눅스 박스를 이 네트워크에 연결하기 위해서는 netatalk 패키지가 필요합니다. 잘 모르겠으면 [N].

DECnet Support : (지금은 Compaq인)디지틀사에서 만든 많은 제품들이 DECnet 네트워킹 프로토콜을 사용합니다. 잘 모르겠으면 [N].

802.1d Ethernet Bridging : 리눅스박스를 이더넷 브리지로 사용합니다. 일반적으로 브리지보다 효율적인 기능을 가진 라우터가 더 많이 쓰입니다. 잘 모르겠으면 [N].

CCITT X.25 Packer Layer (EXPERIMENTAL) : X.25 패킷 레이어는 정부, 은행 등 기관에서 WA[N]을 구성하기 위해 사용하는 표준 네트워크 프로토콜입니다. PLP와 LAPB 두 개의 프로토콜로 구성됩니다. 잘 모르겠으면 [N].

LAPB Data Link Driver (EXPERIMENTAL) : Link Access Prodedure for Ba Lanced는 X.25 프로토콜의 하위 레벨 구성요소입니다. 리눅스에서는 이더넷 커넥션에 대한 LAPB만을 지원합니다. 잘 모르겠으면 [N].

802.2 LLC (VERY EXPERIMENTAL) : 일반적인 이더넷 카드를 이용하는 네트워크에서 X.25 네트워크에 연결하는 802.2 Logical LinkLayer 프로토콜입니다. 잘 모르겠으면 [N].

Acorn Econet/AUN protocols (EXPERIMENTAL) : Econet은 Arcon 컴퓨터에서 파일, 프린터 서버에 액세스하기 위해 사용되던 아주 오래되고 느린 네트워킹 프로토콜입니다. 잘 모르겠으면 [N].

WAN router : WAN은 하나 이상의 LAN으로 구성된 광역네트워크입니다. 고가의 WAN 라우터를 리눅스 박스를 이용하여 상대적으로 매우 저렴하게 구성할 수 있습니다. 이 기능을 위해서는 wan-tools 패키지가 필요합니다.

Fast Switching (read help!) : tuLip 등 이 기능을 지원하는 NIC(network int erface card)끼리 직접 데이터를 빠르게 교환할 수 있습니다. "advanced router" 기능과 함께 사용할 수 있지만 방화벽을 구축한다면 [N]을 선택해야 합니다.

Forwarding between high Speed interfaceS : tuLip 등 이 기능을 지원하는 NIC는 옵션이 활성화되었을 때 하드웨어 속도조절 기능을 지원합니다. [N]을 답하는 것이 좋습니다.

15.1 Netfilter

ipchains가 넷필터로 바뀌었습니다. 네트워크 케이블을 돌아다니는 패킷들을 검사하고 걸러내는 다양한 기능들이 추가되었습니다.

IP: Netfilter Configuration  --->
< > Connection tracking (required for masq/NAT)
<*>   FTP protocol support
< > Userspace queueing via NETLINK (EXPERIMENTAL)
< > IP tables support (required for filtering/masq/NAT)
< >   limit match support
< >   MAC address match support
< >   netfilter MARK match support
< >   Multiple port match support
< >   TOS match support
< >   Connection state match support
< >   Unclean match support (EXPERIMENTAL)
< >   Owner match support (EXPERIMENTAL)
< >   Packet filtering
<M>     REJECT target support
< >     MIRROR target support (EXPERIMENTAL)
< >   Full NAT
< >     MASQUERADE target support
< >     REDIRECT target support
< >   Packet mangling
< >     TOS target support
< >     MARK target support
< >   LOG target support
< > ipchains (2.2-style) support
< > ipfwadm (2.0-style) support

Connection tracking (required for masq/NAT) : 연결 추적은 어떤 패킷이 여러분의 머신을 거쳐 갔는지, 그들이 얼마나 연결 되었는지 그 기록을 유지합니다. 이 옵션은 메스커레이딩 혹은 다른 종류의 네트워크 주소 변환(Fast NAT는 빼고)에 필요합니다. 그리고, 향상돤 패킷 필터링에도 쓰입니다. 잘 모르겠으면 [N].

FTP protocol support : FTP 연결을 추적합니다. 확실하지 않다면 [Y].

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

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

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

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

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

Multiple port match support : 멀티포트 매칭은 출발지나 목적지 포트의 시리즈에 기반한 TCP나 UDP 패킷 매치를 허용합니다: 일반적으로 규칙 하나는 한 가지 포트 범위를 매치할 수 있습니다. 잘 모르겠으면 [N].

TOS match support : TOS 매칭은 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].

REJECT target support : REJECT 타깃은 들어오는 패킷에 대해 ICMP에러 메시지로 응답하는 대신 아무 소리 없이 버리는 필터링 규칙을 허용합니다. 잘 모르겠으면 [N].

MIRROR target support (EXPERIMENTAL) : MIRROR target은 들어오는 패킷이 보낸 이에게 되돌아가는 규칙을 허용합니다. 잘 모르겠으면 [N].

Full NAT : Full NAT 옵션은 메스커레이딩, 포트 포워딩, 그리고 다른 형식들 풀 네트워크 주소 포트 전환을 허용합니다. 이 기능은 iptables 안에 "nat" 테이블에 의해 제어됩니다. "man iptables" 잘 모르겠으면 [N].

MASQUERADE target support : 메스커레이딩은 NAT의 특별한 케이스입니다: 모든 나가는 연결들은 특정한 인터페이스의 주소로부터 온 것처럼 보이도록 바뀝니다, 그리고 그 인터페이스를 내리면, 그것들 연결들을 잃어버립니다. 이 옵션은 다이나믹 IP 주소를 사용하는 다이얼업 계정에만 유용합니다. (여러분의 IP 주소가 접속할 때마다 달라진다면) 잘 모르겠으면 [N].

REDIRECT target support : REDIRECT는 NAT의 특별한 케이스입니다: 모든 들어오는 연결들은 들어오는 인터페이스의 주소에 매핑되므로, 패킷들은 통과해서 직접 연결되는 대신 로컬 머신으로부터 오게 됩니다. 이 옵션은 투명한 프록시에서 유용합니다.. 잘 모르겠으면 [N].

Packet mangling : 이 옵션은 iptables에 "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로 바뀌었습니다. ipchains를 사용하던 이들은 이 옵션을 활성화해 예전의 명령들을 계속 사용할 수도 있지만, iptables를 익히는게 좋을 것입니다.[N]

ipfwadm (2.0-style) support : 이 도구는 2.2 커널에서 ipchains로 바뀌었고, 다시 2.4 커널에서 iptables로 바뀌었습니다. [N]

15.2 QoS and /or fair queueing

패킷 스케쥴러에 따라 패킷을 제어하는 기능입니다. 네트워크 장치가 실시간 장치일 때 특히 이 기능이 중요합니다. 잘 모르겠으면 [N].

[ ] QoS and/or fair queueing

QoS and/or fair queueing : 네트워크 디바이스들을 통해서 내보내야 할 패킷들이 있을때, 커널은 어떤 것을 먼저 보내야 할 것인지 선택해야 합니다. 이런 선택은 최소한의 data flow rate가 필요한 실시간 서비스나 비즈니스 서비스를 제공할 경우 더 중요합니다. QoS는 "서비스의 질(Quality of Service)"라는 말 그대로 제한된 대역폭 안에서 프로토콜이나 애플리케이션에 따라 대역폭을 할당해서 최고의 서비스 질을 이끌어내는 기술입니다. 그 순서를 효율적으로 정하기 위해 몇 가지 알고리듬이 있는데 그 것들을 패킷 스케쥴러라 부릅니다. 만약 기본적인 패킷 스케쥴러(FIFO: first come, first served)를 그냥 사용한다면 [N]을 답합니다. 보다 효율적이라 생각하는 다른 알고리듬으로 바꿔보고싶다면 [Y]를 선택해 이 옵션을 활성화합니다. 네트워크 디바이스들마다 서로 다른 스케줄링 알고리즘을 할당 할 수도 있습니다. 다만, 이런 것들에 대해 잘 알고 있는 전문가들에게만 추천되는 기능입니다. 아무튼 이 옵션들을 활용하려 한다면 유저-레블 유틸리티들이 들어 있는 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 스케쥴링 알고리즘은 네트웍 장치를 통해 전송되도록 스케쥴된 네트웍 패킷이 어떤 방식으로 분류될 것인지 물어본다. 이 옵션을 활성화하면 다양한 종류의 패킷 분류자를 선택할 수 있습니다.

15.3 사라진 것들..

IP: optimize aS router not hoSt : 네트워크 패킷들을 포워드 시키거나, 재분배하는 등 리눅스박스를 라우터로 동작하도록 설정하는 기능입니다. IP forwarding과 함께 매스커레이딩에 필요합니다. 어떤 리눅스 네트워크 드라이버들은 copy and checksum이라고 불리는 기술을 사용해서 호스트 성능을 최적화 시킵니다. 대부분의 시간을 라우터로 작동하며 패킷들을 다른 호스트로 전달하는 일만 하는 시스템에서 이러한 작업(copy and checksum)은 손해입니다. [Y]를 선택한다면 copy and checksum 기능은 작동하지 않고, 라우터의 작동에 대해서 최적화 되도록 여러 가지를 변경합니다. IP forwarding을 함께 선택해야만 리눅스 박스를 라우터처럼 동작하게 할 수 있습니다; "/proc filesystem support" 옵션과 "Sysctl support" 옵션에서도 [Y]를 선택합니다. 시스템이 부트될 때, 먼저 /proc 파일 시스템 마운트 되고, 다음 명령을 실행하면 IP forwarding이 가능해집니다. echo "1" > /proc/sys/net/ipv4/ip_forward IP forwarding을 사용한다면 rp_filter 기능도 함께 쓸 수 있습니다. rp_filter는 패킷이 도착했을 때, 그 패킷이 도착한 인터페이스와 라우팅 테이블의 엔트리에서 발견한 출발지 어드레스가 일치하지 않으면, 패킷 수신을 자동으로 거절합니다. IP spoofing 등 불리는 공격을 무력화 시킬 수 있습니다. 그러나, 비대칭 라우팅(시스템으로 들어오는 패킷과 나가는 패킷들이 서로 다른 경로를 거치는 것)을 사용하거나, 여러 개의 인터페이스들에 대해서 여러 개의 IP 어드레스들을 가지는 비라우팅 호스트를 운영하고 있다면, 다음 명령으로 rp_filter기능을 작동하지 않도록 설정합니다. echo 0 > /proc/sys/net/ipv4/conf//rp_filter 또는 echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter 대부분의 유저는 [N]을 선택합니다.

IP: aLiaSing Support : 하나의 물리적 네트워크 인터페이스에 IP 주소를 여러 개 줄 수 있습니다. 멀티 호스팅, 가상 도메인, 또는 가상 호스팅(mirtuaL hoSti ng)이라 부르는 서비스를 제공하려면 필요한기능입니다. 가상 호스팅은 리눅 스 박스 하나로 다양한 서비스를 제공할 수 있어 웹이나 ftp 서버로 사용하는 시 스템을 최대한 활용할 수 있다는 장점도 있습니다. 또, 두 개의 논리적 네트워크를 하나의 이더넷카드를 통해 엑세스하려고 한다면 [Y]를 선택합니다. alias address의 설정은 Doumentation/networking/alias.txt와 IP-Alias mini-HOWTO, http://www.thesphere.com/ dlp/TwoServers/, ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/Virtual-Services-HOWTO을 참고합니다.

IP: accounting : 리눅스 박스를 라우터나 방화벽으로 사용할 때 설정합니다.

IP: ReverSe ARP, IP: ALLow Large windowS (not recommended if <16 Mb of memory) : 손대지 않는 것이 안전하다고 경고하고 있습니다. RARP( Reverse Address Resolution Protcol)는 모든 H/W Ethernet card가 각자 가지고 있는 고유한 번호, 하드웨어 어드레스(6byte)를 가지고 IP 주소를 알아 낼 수 있는 프로토콜입니다. 디스크가 없는 머신에서 부팅할 때 IP 주소를 알아내기 위해서 주로 사용되며 Diskless Sun 3 머신이나 Linux Box에서 사용할 수 있습니다. 윈도우는 TCP 세그먼트 포맷의 필드 가운데 하나로, 윈도우를 담고 있거나, 원격 시스템이 수신할 수 있는 바이트 크기를 담고 있습니다.

CPU iS too SLow to handLe fuLL bandwidth : CPU가 네트워크전대역폭 (full-bandwidth)을 다루기에 충분히 빠르지 않다고 생각되면 설정합니다.

IP: aLwayS defragment (required for maSquerading) : 데이터그램이 서로 다른 네트워크를 통해 전달될 때(예를 들어 게이트웨이가 이더넷과 X.25처럼) MTU(maximum transmission unit)가 서로 다를 수 있습니다. 이럴 때 상대적으로 패킷 크기가 작은 네트워크로 전달되기 위해서는 새로운 크기로 잘라져야합니다. 이렇게 잘라진 조각들은 원래의 크기로 다시 조합할 수 있는 정보를 가지게 됩니다. 이 기능을 설정하면 들어오는 모든 패킷 조각을 항상 다시 조합합니다. 특히 IP: maSquerading, IP:tranSparent proxy, IP: firewalling 기능을 사용하려면 반드시 필요합니다. 일반적인 라우터나 호스트에서는 절대 [Y]를 선택하면 안됩니다. 일반적으로 게이트웨이와 라우터가 같은 의미로 쓰이지만 게이트웨이는 다른 프로토콜 사이에서 데이터를 중계하고 라우터는 다른 네트워크 사이에서 데이터를 옮겨주는 것입니다.

IP: tranSparent proxy Support : 리눅스 방화벽을 원격지 호스트처럼 동작하도록 가장하는 기능입니다. 투명하다는 것은 바깥쪽에서는 방화벽을 볼 수 없고 마치 호스트와 직접 연결된 것처럼 보인다는 것을 뜻합니다.

IP: maSquerading : 매스커레이딩은 IP(reaL IP)를 가진 하나의 호스트에 이더넷이나 모뎀으로 연결된 다른 컴퓨터들이 공식적으로 할당된 IP가 없더라도 인터넷에 연결되도록 하는 기능입니다. 가상 호스트 서비스를 위해 반드시 필요합니다. 매스커레이딩은 매우 효과적인 네트워크 보안방법이기도 합니다. 리눅스 박스가 방화벽인 지역네트웍의 한 컴퓨터가 바깥으로 무언가를 보내고자 할 때 리눅스 박스는 마치 해당 컴퓨터인 것처럼 "가장 masquerade"할 수 있습니다. 즉 리눅스는 바깥의 정한 목적지로 트래픽을 내보낼 때, 그것이 방화벽 자신으로로부터 출발한 것처럼 만듭니다. 이것은 양 쪽으로 작용하는데 바깥의 호스트가 응답하면, 리눅스 방화벽은 그 트래픽을 가만히 지역넷의 합당한 컴퓨터로 보내줍니다. 이 경우 지역넷의 컴퓨터는 바깥에 다다를 수 있고 응답을 받을 수도 있지만, 바깥 세계에서는 완벽하게 보이지 않게 됩니다. PPP를 비롯해 ADSL, ISDN 등에도 사용할 수 습니다. "/proc filesystem support" 와 "Sysctl suppot"옵션에 [Y]를 선택하고, 부팅할 때 /proc 파일 시스템이 마운트 되고 나면 다음 명령을 실행합니다. echo "1" > /proc/sys/net/ipv4/ip_forward

IP: ICMP maSquerading : 매스커레이딩에 ping 등 ICMP 패킷을 지원합니다. ICMP(Internet Control Message Protocol)은 송신자에게 수신된 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 IP의 확장된 메커니즘입니다. IP는 신뢰성이 없지만 ICMP는 비정상적인 상황이나 네트워크 때문에 데이터 그램의 경로를 지정하거나 전송할 수 없으면 원래 발신지에 상황을 알립니다. 흐름을 제어하고, 목적지를 확인하며, 라우팅을 변경하고, 원격 호스트를 점검합니다. 이 기능을 사용하는 대표적인 명령으로 ping(packet internet gopher)이 있습니다. 매스커레이딩을 사용하는 네트워크에서 ICMP를 사용하려면 이 기능에 [Y]를 답합니다.

IP: maSquerading SpeciaL moduLeS Support: 아래에 나오는 포트 포워딩 등 기능을 지원합니다.

IP: ipautofw maSq Support (EXPERIMENTAL) : (아직)자신의 프로토콜 helper가 없는 프로토콜의 매스커레이딩을 허락합니다. 아직 개발중이며 ipmasqadm 도구가 필요합니다.

IP: ipportfw maSq Support (EXPERIMENTAL) : 포트 포워딩은 제공한 포트를 통해서 패킷이 방화벽 안쪽으로 전송되도록 합니다. 웹서버는 매스커레이딩 호스트를 통해 인터넷에 접속되며 외부의 클라이언트에게는 방화벽 자체가 웹 서비스를 제공하는 것처럼 보입니다. 이 기능은 아직 개발중이며 ipmasqadm 도구가 필요합니다.

IP: ipmarkfw maSquerade Support (EXPERIMENTAL) : 포트 포워딩과 유사한 기능을 제공합니다. 다른 점은 패킷에 "firewaLLing mark"를 사용다는 것입니다.

IP: masquerading virtual server support (EXPERIMENTAL) :

(12) IP masq - VS table size (the Nth power of 2)

IP: forwording/gatewaying : 패킷을 중계하는 기능입니다. 매스커레이딩을 위해서는 반드시 켭니다. 이 경우 매스커레이딩 서비스를 제공하는 리눅스 박스가 디폴트 게이트웨이가 됩니다.

15.4 /etc/sysctl.conf

echo "1" 혹은 echo "0" 등 출럭을 리다이렉트해서 sysctl 요소를 제어할 수 있지만 더 체계적인 방법은 /etc/sysctl.conf를 사용하는 것입니다. 예를 들어 포워딩 옵션을 켜는 명령을 부트할 때마다 매번 실행하기보다는 /etc/sysctl.conf 파일에 다음 한 줄을 추가하는 것이 효율적입니다: net.ipv4.ip_forward=1


다음 이전 차례