tail head cat sleep
QR code linking to this page

Man page  — SETKEY

명칭

setkey – 수동으로 IPsec 의 SA/SP 데이타베이스를 조작한다

내용

서식


setkey [-dv] -c
setkey [-dv] -f filename
setkey [-adPlv] -D
setkey [-dPv] -F
setkey [-h] -x

해설

setkey 유틸리티는, 커널내의 보안 어소시에이션 데이타베이스 (SAD) 엔트리와 세큐리티포리시데이타베이스 (SPD) 엔트리를, 추가·갱신·내용 열거·삭제합니다.

setkey 유틸리티는, 일련의 조작을 표준 입력으로부터 받을까 ( -c 첨부로 기동되었을 경우) filename (이)라는 이름의 파일로부터 받습니다 ( -f filename 첨부로 기동되었을 경우).
-D
  SAD 엔트리를 덤프 합니다. -P 첨부의 경우, SPD 엔트리를 덤프 합니다.
-F
  SAD 엔트리를 버립니다. -P 첨부의 경우, SPD 를 버립니다.
-a
  통상, 죽은 SAD 엔트리는 표시되지 않습니다. -a 첨부의 경우, 죽은 SAD 엔트리도 표시합니다. 죽은 SAD 엔트리란, 기한 마감이지만, SPD 엔트리로부터 참조되고 있기 위해서(때문에) 남아 있는 것을 가리킵니다.
-d
  명령 파서용의 디버그 메세지 표시를 유효하게 해, 커널과는 대화를 하지 않습니다. 이것은 통상은 사용하지 않습니다.
-x
  엔들레스 루프 해, PF_KEY 소켓에 보내지는 전메세지를 덤프 합니다. -xx (은)는, 각 타임 스탬프의 포맷을 그만둡니다.
-h
  -x 모드에 대해, 16 진수 덤프를 추가합니다.
-l
  -D 에 두어, 짧은 출력으로 엔들레스 루프 합니다.
-v
  장황하게 됩니다. 프로그램은, PF_KEY 소켓상에서 교환한 메세지를 덤프 합니다. 이것에는 타프로세스로부터 커널에 보내진 메세지를 포함합니다.

조작은, 다음의 문법입니다. 해시 마크 ('#')로 시작되는 행은 코멘트행으로서 다루어지는 것에 주의해 주세요.
add src dst protocol spi [extensions] algorithm... ; 단일의 SAD 엔트리를 추가합니다.
get src dst protocol spi ; 단일의 SAD 엔트리를 표시합니다.
delete src dst protocol spi ; 단일의 SAD 엔트리를 삭제합니다.
deleteall src dst protocol ; 지정에 적합하는 모든 SAD 엔트리를 삭제합니다.
flush [protocol] ; 옵션에 적합하는 전 SAD 엔트리를 클리어 합니다.
dump [protocol] ; 옵션에 적합하는 전 SAD 엔트리를 덤프 합니다.
spdadd src_range dst_range upperspec policy ; 단일의 SPD 엔트리를 추가합니다.
spddelete src_range dst_range upperspec -P direction ; 단일의 SPD 엔트리를 삭제합니다.
spdflush ; 전 SPD 엔트리를 클리어 합니다.
spddump ; 전 SPD 엔트리를 덤프 합니다.

메타 인수는 아래와 같은 대로입니다:

src
dst
  시큐어 커뮤니케이션의 시점/종점을 IPv4/v6 주소로 지정합니다. setkey 유틸리티는 인수 src (와)과 dst 에 붙어, 호스트명으로부터 주소에의 문의를 실시하지 않습니다. 이것들은 수치 형식에서 지정할 필요가 있습니다.

protocol protocol (은)는 다음의 어느쪽이든 1 개(살)입니다:
esp rfc2405 를 기본으로 한 암호 유료 하중
esp-old
  rfc1827 를 기본으로 한 암호 유료 하중
ah rfc2402 를 기본으로 한 인증헤더
ah-old rfc1826 를 기본으로 한 인증헤더
ipcomp IPCOMP

spi SAD 및 SPD 용의, 보안 파라미터 인덱스 (SPI). 범위 0 에서 255 의 SPI 치는 사용할 수 없습니다. 10 진수 또는 16 진수 ( 0x 첨부) 그리고 지정할 필요가 있습니다.

extensions
  다음에 나타내는 인수를 받아들입니다:
-m mode
  사용하는 보안 프로토콜 모드를 지정합니다. mode (은)는 다음의 어느쪽이든 1 개(살)입니다: transport, tunnel, any 기본값은 any 입니다.
-r size
  반복 공격을 막기 위한 윈도우 사이즈를 바이트수로 지정합니다. size (은)는 32 비트 워드의 10 진수로 지정할 필요가 있습니다. size 하지만 0 또는 지정되지 않았던 경우, 반복의 체크는 행해지지 않습니다.
-u id
  SAD 중의 포리시엔트리의 식별자를 지정합니다. policy (을)를 참조해 주세요.
-f pad_option
  ESP 패딩의 내용을 지정합니다. pad_option (은)는 다음의 어느쪽이든 1 개(살)입니다:
zero-pad 패딩은 모두 0.
random-pad 일련의 난수치를 설정.
seq-pad 1 으로부터 개시해 증가하는 일련의 수를 설정.
-fnocyclic-seq
  주기적인 순서 번호를 허가하지 않습니다.
-lh time
-ls time
  SA 의 하드 유효기간/소프트 유효기간을 지정합니다.

algorithm
-E ealgo key
  암호화 알고리즘을 지정합니다.
-A aalgo key
  인증 알고리즘을 지정합니다. -A 하지만 protocolesp (와)과 함께 사용되면(자), 암호 유료 하중의 유료 하중 인증 알고리즘으로서 다루어집니다.
-C calgo [-R]
  압축 알고리즘을 지정합니다. -R 하지만 ipcomp 행과 함께 지정되지 않으면 커널은 잘 알려진 (well-known) IPComp CPI (압축 파라미터 인덱스) (을)를 패킷상의 IPComp CPI 필드에서 사용해, spi 필드는 무시됩니다. 이 경우, spi 필드는 커널 내부에서만 사용됩니다. -R 하지만 사용되면(자), spi 필드상의 값이, 출력 패킷의 IPComp CPI 필드에 나타납니다. 이 경우, spi 필드는 0x10000 미만인 것이 필요합니다.

protocolesp-E (와)과 -A (을)를 받아들입니다. protocolesp-old-E 만을 받아들입니다. protocolah (와)과 ah-old-A 만을 받아들입니다. protocolipcomp-C 만을 받아들입니다.

key (은)는, 더블 쿼트로 괄캐릭터 라인인가, 일련의 16 진수로 지정할 필요가 있습니다.

ealgo, aalgo, calgo 하지만 취할 수 있는 값은 다른 마디로 규정합니다.

src_range
dst_range
  시큐어 커뮤니케이션의 선택이며, IPv4/v6 주소 또는 IPv4/v6 주소 범위에서 지정합니다. TCP/UDP 포트 지정을 부가하는 일도 가능합니다. 다음의 형식을 받아들입니다:
address
address/prefixlen
address[port]
address/prefixlen[port]

prefixlen (와)과 port (은)는 10 진수로 지정할 필요가 있습니다. port 의 주위의 꺽쇄묶음은, 실제로 필요합니다. 메뉴얼 페이지의 메타 캐릭터가 아닙니다.

setkey 유틸리티는 인수 src (와)과 dst 에 붙어, 호스트명으로부터 주소에의 문의를 실시하지 않습니다. 이것들은 수치 형식에서 지정할 필요가 있습니다.

upperspec
  사용하는 상위층 프로토콜. upperspec (으)로서 /etc/protocols 안의 1 어를 사용 가능합니다. 또는, icmp6, ip4, any (을)를 지정 가능합니다. any 하 "임의의 프로토콜" (을)를 의미합니다. 또, 프로토콜 번호를 사용 가능합니다.

주: upperspec (은)는, 현시점에서는 전송에 대해서 기능하지 않습니다. 전송 노드에 대해, 추가의 재구성 (현시점에서는 미실장) 하지만 필요하기 때문입니다. /etc/protocols 에는 다수의 프로토콜이 등록되어 있습니다만, TCP, UDP, ICMP 이외는 IPSec 와 함께 사용하기에는 부적절할지도 모릅니다. 그러한 프로토콜의 사용에는, 주의해 주세요.

policy
  policy (은)는 다음의 어느쪽이든 1 개(살)입니다:
-P directiondiscard
-P directionnone
-P directionipsec protocol/mode/src-dst/level

포리시의 방향을 direction 그리고 지정할 필요가 있습니다. out 또는 in 하지만 사용됩니다. discard (은)는, 인덱스에 적합하는 패킷을 버려지는 것을 의미합니다. none (은)는, 패킷에 대해서 IPsec 조작이 실시되지 않는 것을 의미합니다. ipsec (은)는, 패킷에 대해서 IPsec 조작이 실시되는 것을 의미합니다. ah, esp, ipcomp 의 어느쪽이든을, protocol (으)로서 설정합니다. modetransport 또는 tunnel 의 머지않아인가입니다. mode 하지만 tunnel 의 경우, SA 의 말단 주소를, srcdst 그리고, 양주소간에 '-' (을)를 붙여 지정할 필요가 있습니다. 이것은, 사용하는 SA 를 지정하기 위해서 이용됩니다. mode 하지만 transport 의 경우, src (와)과 dst (은)는 양쪽 모두 생략 가능합니다. level (은)는 다음의 머지않아인가입니다: default, use, require, unique 모든 레벨에 대해 SA 가 이용 가능하지 않은 경우, SA 취득 요구를 커널은 열쇠 교환 demon에게 보냅니다. default (은)는, 커널이 패킷을 처리할 때, 지정한 프로토콜에 대해, 시스템 전체의 디폴트를 문의하는 것을 의미합니다. 이것은 예를 들면 sysctl 변수 esp_trans_deflev (을)를 가리킵니다. use (은)는, 커널이 SA 를 사용 가능하면 사용해, 사용 불능의 경우에는 통상 조작을 계속하는 것을 의미합니다. require (은)는, 포리시에 적합하는 패킷을 커널이 보낼 때에는 언제나 SA 가 필요한 것을 의미합니다. unique (은)는 require 와 같습니다. 더욱, 포리시가 일의인 밖으로 향한 SA 에 결합하는 것을 허락합니다. unique 의 후에 코론 '' 그리고 단락지은 후에 10 진수로 포리시 식별자를 지정 가능하고, 다음과 같이 합니다: unique:number number (은)는 1 에서 32767 의 범위에 있는 것이 필요합니다. 이것은, extensions -u 에 대응합니다.

"discard" (와)과 "none" 하 ipsec_set_policy(3) [영어] 에 기술되고 있는 구문에는 존재하지 않는 것에 주의해 주세요. 양자의 구문에는 약간의 차이가 있습니다. 자세한 것은 ipsec_set_policy(3) [영어] (을)를 참조해 주세요.

알고리즘

다음의 일람은, 서포트되고 있는 알고리즘을 나타내고 있습니다. protocol (와)과 algorithm (은)는, 거의 직교 하고 있습니다. 다음에 나타내는 것은, protocol 파라미터의 -A aalgo 그리고 aalgo (으)로서 사용 가능한 인증 알고리즘의 일람입니다:

알고리즘 카기나가 (비트) 코멘트
hmac-md5        128             ah: rfc2403
                128             ah-old: rfc2085
hmac-sha1       160             ah: rfc2404
                160             ah-old: 128bit ICV (문서 없음)
keyed-md5       128             ah: 96bit ICV (문서 없음)
                128             ah-old: rfc1828
keyed-sha1      160             ah: 96bit ICV (문서 없음)
                160             ah-old: 128bit ICV (문서 없음)
null            0 ~ 2048        디버그용
hmac-sha2-256   256             ah: 96bit ICV (문서 없음)
                256             ah-old: 128bit ICV (문서 없음)
hmac-sha2-384   384             ah: 96bit ICV (문서 없음)
                384             ah-old: 128bit ICV (문서 없음)
hmac-sha2-512   512             ah: 96bit ICV (문서 없음)
                512             ah-old: 128bit ICV (문서 없음)

다음에 나타내는 것은, protocol 파라미터의 -E ealgo 그리고 ealgo (으)로서 사용 가능한 암호화 알고리즘의 일람입니다:

알고리즘 카기나가 (비트) 코멘트
des-cbc         64              esp-old: rfc1829, esp: rfc2405
3des-cbc        192             rfc2451
simple          0 ~ 2048        rfc2410
blowfish-cbc    40 ~ 448        rfc2451
cast128-cbc     40 ~ 128        rfc2451
des-deriv       64              ipsec-ciph-des-derived-01 (기한 마감)
3des-deriv      192             문서 없음
rijndael-cbc    128/192/256     draft-ietf-ipsec-ciph-aes-cbc-00

다음에 나타내는 것은, protocol 파라미터의 -C calgo 그리고 calgo (으)로서 사용 가능한 압축 알고리즘의 일람입니다:

알고리즘 코멘트
deflate         rfc2394
lzs             rfc2395

사용예

add     3ffe:501:4819::1 3ffe:501:481d::1 esp 123457
                -E des-cbc "ESP SA!!" ;

add     3ffe:501:4819::1 3ffe:501:481d::1 ah 123456                 -A hmac-sha1 "AH SA configuration! " ;

add     10.0. 11.41 10.0. 11.33 esp 0x10001                 -E des-cbc "ESP with"                 -A hmac-md5 "authentication!!" ;

get     3ffe:501:4819::1 3ffe:501:481d::1 ah 123456 ;

flush ;

dump esp ;

spdadd  10.0. 11.41/32[21] 10.0. 11.33/32[any] any                 -P out ipsec esp/tunnel/192. 168.0. 1-192. 168.1. 2/require ;

반환값

본명령은 성공시에 0 을, 에러시에 0 이외를 돌려줍니다.

관련 항목

ipsec_set_policy(3) [영어], racoon(8), sysctl(8)

역사

setkey 유틸리티는 WIDE Hydrangea IPv6 프로토콜 스택 킷으로 처음 등장했습니다. 본명령은 1998 년 6 월에, 완전하게 재디자인되었습니다.

SETKEY (8) November 20, 2000

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

The most horrifying thing about Unix is that, no matter how many times you hit yourself over the head with it, you never quite manage to lose consciousness. It just goes on and on.
— Patrick Sobalvarro