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 ì¼ë¡ë¶í° ê°ìí´ ì¦ê°íë ì¼ë ¨ì ì를 ì¤ì .
             -f nocyclic-seq
                         주기ì ì¸ ìì ë²í¸ë¥¼ íê°íì§ ììµëë¤.
             -lh time
             -ls time    SA ì íë ì í¨ê¸°ê°/ìíí¸ ì í¨ê¸°ê°ì ì§ì í©ëë¤.

     algorithm
             -E ealgo key
                         ìí¸í ìê³ ë¦¬ì¦ì ì§ì í©ëë¤.
             -A aalgo key
                         ì¸ì¦ ìê³ ë¦¬ì¦ì ì§ì í©ëë¤.  -A íì§ë§ protocol esp
                         (ì)ê³¼ í¨ê» ì¬ì©ëë©´(ì), ìí¸ ì ë£ íì¤ì ì ë£ íì¤ ì¸ì¦
                         ìê³ ë¦¬ì¦ì¼ë¡ì ë¤ë£¨ì´ì§ëë¤.
             -C calgo [-R]
                         ìì¶ ìê³ ë¦¬ì¦ì ì§ì í©ëë¤.  -R íì§ë§ ipcomp íê³¼ í¨ê»
                         ì§ì ëì§ ìì¼ë©´ 커ëì ì ìë ¤ì§ (well-known) IPComp CPI
                         (ìì¶ íë¼ë¯¸í° ì¸ë±ì¤) (ì)를 í¨í·ìì IPComp CPI íëìì
                         ì¬ì©í´, spi íëë 무ìë©ëë¤.  ì´ ê²½ì°, spi íëë 커ë
                         ë´ë¶ììë§ ì¬ì©ë©ëë¤.  -R íì§ë§ ì¬ì©ëë©´(ì), spi íëìì
                         ê°ì´, ì¶ë ¥ í¨í·ì IPComp CPI íëì ëíë©ëë¤.  ì´ ê²½ì°,
                         spi íëë 0x10000 미ë§ì¸ ê²ì´ íìí©ëë¤.

             protocol esp í -E (ì)ê³¼ -A (ì)를 ë°ìë¤ìëë¤.  protocol esp-old í
             -E ë§ì ë°ìë¤ìëë¤.  protocol ah (ì)ê³¼ ah-old í -A ë§ì ë°ìë¤ìëë¤.
             protocol ipcomp í -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 direction discard
             -P direction none
             -P direction ipsec protocol/mode/src-dst/level

             í¬ë¦¬ìì ë°©í¥ì direction ê·¸ë¦¬ê³  ì§ì í  íìê° ììµëë¤.  out ëë in
             íì§ë§ ì¬ì©ë©ëë¤.  discard (ì)ë, ì¸ë±ì¤ì ì í©íë í¨í·ì ë²ë ¤ì§ë ê²ì
             ì미í©ëë¤.  none (ì)ë, í¨í·ì ëí´ì IPsec ì¡°ìì´ ì¤ìëì§ ìë ê²ì
             ì미í©ëë¤.  ipsec (ì)ë, í¨í·ì ëí´ì IPsec ì¡°ìì´ ì¤ìëë ê²ì
             ì미í©ëë¤.  ah, esp, ipcomp ì ì´ë쪽ì´ë ì, protocol (ì¼)ë¡ì
             ì¤ì í©ëë¤.  mode í transport ëë tunnel ì 머ì§ììì¸ê°ìëë¤.  mode
             íì§ë§ tunnel ì ê²½ì°, SA ì ë§ë¨ 주ì를, src ë° dst ê·¸ë¦¬ê³ ,
             ì주ìê°ì ‘-’ (ì)를 ë¶ì¬ ì§ì í  íìê° ììµëë¤.  ì´ê²ì, ì¬ì©íë 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 ìì, ìì íê² ì¬ëìì¸ëììµëë¤.