GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
IPFIREWALL(4) FreeBSD Kernel Interfaces Manual IPFIREWALL(4)

ipfirewall
IP ÆÐŶ ÇÊÅÍ ¹× Æ®·¡ÇÈ ÃøÁ¤

#include <sys/types.h> #include <sys/queue.h> #include <netinet/in.h> #include <netinet/ip_fw.h> int setsockopt(raw_socket, IPPROTO_IP, ipfw option, struct ipfw, size)

ipfirewall (º°¸í ipfw)´Â, ½Ã½ºÅÛÀÇ ÀÎÅÍÆäÀ̽º¸¦ Åë°úÇÏ´Â IP ÆÐŶ¿¡ ´ëÇØ ÇÊÅ͸µÀ̳ª ¸®µð·ºÆ®µîÀÇ Ã³¸®¸¦ ½Ç½ÃÇÏ´Â ½Ã½ºÅÛÀÇ ±â´ÉÀÔ´Ï´Ù. ÆÐŶÀº ÀûÇÕÇÏ´Â °ÍÀÌ ¹ß°ßµÉ ¶§±îÁö ÆÐÅÏ ·êÀÇ ¼ø¼­ ¸®½ºÆ®¿Í ºñÃß¾î ÇÕÃÄÁö°í ·êÀº 1 ¿¡¼­ 65534 ±îÁöÀÇ ¹øÈ£¸¦ Â÷¿© º¹¼öÀÇ ·êÀÌ °°Àº ¹øÈ£¸¦ °øÀ¯ÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù.
À¯ÀÏ ¹Ýµå½Ã Á¸ÀçÇÏ´Â ·ê·Î¼­ ·ê ¹øÈ£ 65535 °¡ ÀÖ½À´Ï´Ù. ÀÌ ·êÀº Åë»óÀº ¸ðµç ÆÐŶÀ» ÆıâÇÕ´Ï´Ù. µû¶ó¼­, À̰ͺ¸´Ù ÀÛÀº ¹øÈ£ÀÇ ·ê¿¡ ÀûÇÕÇÏÁö ¾Ê¾Ò´ø ÆÐŶÀº ¸ðµÎ ÆıâµË´Ï´Ù. ±×·¯³ª, Ä¿³ÎÀ» ÄÄÆÄÀÏ ÇÒ ¶§ÀÇ ¿É¼Ç “IPFIREWALL_DEFAULT_TO_ACCEPT” (À»)¸¦ ÁöÁ¤Çϸé(ÀÚ), °ü¸®ÀÚ´Â ¸ðµÎ (ÀÇ ÆÐŶÀÇ Åë°ú¸¦) Çã°¡Çϵµ·Ï(µíÀÌ) ÀÌ °íÁ¤ ·êÀ» º¯°æÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
setsockopt() ¿¡ °Ç³×¹Þ´Â °ªÀº, ·êÀ» ±â¼úÇÏ°í ÀÖ´Â ip_fw ±¸Á¶Ã¼ (¾Æ·¡¿Í °°ÀÌ ÂüÁ¶)ÀÔ´Ï´Ù. (IP_FW_DEL ¿Í °°Àº) ¸î°³ÀÇ ÄÉÀ̽º¿¡¼­´Â ·ê ¹øÈ£¸¸ÀÌ Áß¿äÇÏ°Ô µË´Ï´Ù.

·ê ¸®½ºÆ®¸¦ Ãë±ÞÇϱâ À§Çؼ­(¶§¹®¿¡) ´ÙÀ½ÀÇ ¼ÒÄÏ ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù:
IP_FW_ADD ´Â, ·ê ¸®½ºÆ®¿¡ ·êÀ» »ðÀÔÇÕ´Ï´Ù.
IP_FW_DEL ´Â, ÀûÇÕÇÏ´Â ·ê ¹øÈ£¸¦ °¡Áö´Â ·êÀ» ¸ðµÎ »èÁ¦ÇÕ´Ï´Ù.
IP_FW_GET ´Â, ÀûÇÕÇÏ´Â ·ê ¹øÈ£ÀÇ (ÃÖÃÊÀÇ) ·êÀ» µ¹·ÁÁÝ´Ï´Ù.
IP_FW_ZERO ´Â, ÀûÇÕÇÏ´Â ·ê ¹øÈ£¸¦ °¡Áö´Â ¸ðµç ·ê¿¡ °üÇÑ Åë°è¸¦ 0 À¸·Î ÇÕ´Ï´Ù. ·ê ¹øÈ£°¡ 0 ÀÇ °æ¿ì¿¡´Â ¸ðµç ·êÀ» 0 À¸·Î ÇÕ´Ï´Ù.
IP_FW_FLUSH (65535 ¸¦ Á¦¿ÜÇÑ´Ù) ¸ðµç ·êÀ» ¼Ò°ÅÇÕ´Ï´Ù.
Ä¿³ÎÀÇ º¸¾È ·¹º§ÀÌ 2 º¸´Ù Å« °æ¿ì´Â IP_FW_GET ¸¸ÀÌ Çã°¡µË´Ï´Ù.

·êÀº ´ÙÀ½ÀÇ ±¸Á¶Ã¼·Î ±â¼úµÇ°í ÀÖ½À´Ï´Ù:
/* 1 °³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÁöÁ¤ */ 
union ip_fw_if { 
    struct in_addr fu_via_ip;   /* IP ÁÖ¼Ò·Î ÁöÁ¤ */ 
    struct {                    /* ÀÎÅÍÆäÀ̽º¸íÀ¸·Î ÁöÁ¤ */ 
#define FW_IFNLEN       6       /* ±¸Á¶Ã¼¸¦ 2^x °æ°è¿¡ µÐ´Ù */ 
            char  name[FW_IFNLEN]; 
            short unit;         /* -1 ´Â ÀÓÀÇÀÇ À¯´ÏÆ®¿¡ ÀûÇÕ */ 
    } fu_via_if; 
}; 
 
/* 1 °³ÀÇ ipfw ·ê */ 
struct ip_fw { 
    u_long fw_pcnt, fw_bcnt;         /* ÆÐŶ°ú ¹ÙÀÌÆ®¼öÀÇ Ä«¿îÅÍ */ 
    struct in_addr fw_src, fw_dst;  /* ½ÃÁ¡°ú Á¾Á¡ÀÇ IP ÁÖ¼Ò */ 
    struct in_addr fw_smsk, fw_dmsk;/* ½ÃÁ¡°ú Á¾Á¡ÀÇ IP ÁÖ¼ÒÀÇ ¸¶½ºÅ© */ 
    u_short fw_number;              /* ·ê ¹øÈ£ */ 
    u_short fw_flg;                 /* Ç÷¡±×¾î */ 
#define IP_FW_MAX_PORTS 10          /* Á¤µµ ÁÁÀº ÃÖ´ëÄ¡ */ 
    u_short fw_pts[IP_FW_MAX_PORTS];/* ÀûÇÕÇÏ´Â Æ÷Æ® ¹øÈ£ÀÇ ¹è¿­ */ 
    u_char fw_ipopt, fw_ipnopt;      /* IP ¿É¼Ç¼¼Æ®/¾È ¼¼Æ® */ 
    u_char fw_tcpf, fw_tcpnf;        /* TCP Ç÷¡±×¼¼Æ®/¾È ¼¼Æ® */ 
#define IP_FW_ICMPTYPES_DIM (256 / (sizeof(unsigned) * 8)) 
    unsigned fw_icmptypes[IP_FW_ICMPTYPES_DIM]; /* ICMP ŸÀÔÀÇ ºñÆ® ¸Ê */ 
    long timestamp;                 /* ÃÖÁ¾ ÀûÇÕÀÇ Å¸ÀÓ ½ºÅÆÇÁ (tv_sec) */ 
    union ip_fw_if fw_in_if, fw_out_if;/* ÀÔ·Â/Ãâ·ÂÀÇ ÀÎÅÍÆäÀ̽º */ 
    union { 
        u_short fu_divert_port;     /* Divert/tee Æ÷Æ® */ 
        u_short fu_skipto_rule;     /* SKIPTO ¸í·É ·ê ¹øÈ£ */ 
        u_short fu_reject_code;     /* REJECT ÀÀ´ä ÄÚµå */ 
    } fw_un; 
    u_char fw_prot;                 /* IP ÇÁ·ÎÅäÄÝ */ 
    u_char fw_nports;               /* Æ÷Æ® ¹è¿­ÁßÀÇ, ½ÃÁ¡ Æ÷Åä¼ö¿Í   */ 
                                    /* Á¾Á¡ Æ÷Æ®¼ö (Á¾Á¡ Æ÷Åä°¡ ½ÃÁ¡   */ 
                                    /* Æ÷Æ®¿¡ ÈļÓ. ÃÖ´ë·Î ÇÕ°è 10 Æ÷Åä */ 
                                    /* 0 Àº ÀüÆ÷Æ® ¸ÅÄ¡ÀÇ ÀǹÌ)        */ 
}; 
 
/* ½ÃÁ¡/Á¾Á¡ÀÇ Æ÷Æ®¼ö¸¦ "fw_nports" ¿¡ encode */ 
 
#define IP_FW_GETNSRCP(rule)            ((rule)->fw_nports & 0x0f) 
#define IP_FW_SETNSRCP(rule, n)         do {                            \ 
                                          (rule)->fw_nports &= ~0x0f;   \ 
                                          (rule)->fw_nports |= (n);     \ 
                                        } while (0) 
#define IP_FW_GETNDSTP(rule)            ((rule)->fw_nports >> 4) 
#define IP_FW_SETNDSTP(rule, n)         do {                            \ 
                                          (rule)->fw_nports &= ~0xf0;   \ 
                                          (rule)->fw_nports |= (n) << 4;\ 
                                        } while (0) 
 
/* flags" Çʵå¿ë Ç÷¡±×Ä¡ */ 
 
#define IP_FW_F_IN      0x0001  /* ÀÔ·Â ÆÐŶÀ» üũ               */ 
#define IP_FW_F_OUT     0x0002  /* Ãâ·Â ÆÐŶÀ» üũ               */ 
#define IP_FW_F_IIFACE  0x0004  /* ÀÔ·Â ÀÎÅÍÆäÀ̽º Å×½ºÆ®¸¦ Àû¿ë       */ 
#define IP_FW_F_OIFACE  0x0008  /* Ãâ·Â ÀÎÅÍÆäÀ̽º Å×½ºÆ®¸¦ Àû¿ë       */ 
 
#define IP_FW_F_COMMAND 0x0070  /* ¿¬¼âÇü ¿£Æ®¸®¿ëÀÇ ¸¶½ºÅ©             */ 
#define IP_FW_F_DENY    0x0000  /* ÀÌ°ÍÀº °ÅºÎ ·ê                     */ 
#define IP_FW_F_REJECT  0x0010  /* °ÅºÎÇØ ÀÀ´ä ÆÐŶÀ» ¼Û½Å           */ 
#define IP_FW_F_ACCEPT  0x0020  /* ÀÌ°ÍÀº ¼ö¸® ·ê                     */ 
#define IP_FW_F_COUNT   0x0030  /* ÀÌ°ÍÀº °è¼ö ·ê                     */ 
#define IP_FW_F_DIVERT  0x0040  /* ÀÌ°ÍÀº divert ·ê                 */ 
#define IP_FW_F_TEE     0x0050  /* ÀÌ°ÍÀº ºÐ±â ·ê                     */ 
#define IP_FW_F_SKIPTO  0x0060  /* ÀÌ°ÍÀº ½ºÅµ ·ê                 */ 
 
#define IP_FW_F_PRN     0x0080  /* ÀÌ ·êÀÌ ÀûÇÕÇßÀ» °æ¿ì¿¡ Ç¥½Ã       */ 
 
#define IP_FW_F_SRNG    0x0100  /* ÃÖÃÊÀÇ 2 °³ÀÇ ½ÃÁ¡ Æ÷Æ®´Â, ÃÖ¼Ò¿Í    * 
                                 * ÃÖ´ëÀÇ ¹üÀ§ (È£½ºÆ®ÀÇ ¹ÙÀÌÆ®¼ø¼­·Î °Ý³³)  */ 
 
#define IP_FW_F_DRNG    0x0200  /* ÃÖÃÊÀÇ 2 °³ÀÇ Á¾Á¡ Æ÷Æ®´Â, ÃÖ¼Ò¿Í    * 
                                 * ÃÖ´ëÀÇ ¹üÀ§ (È£½ºÆ®ÀÇ ¹ÙÀÌÆ®¼ø¼­·Î °Ý³³)  */ 
 
#define IP_FW_F_IIFNAME 0x0400  /* ÀÔ·Â ÀÎÅÍÆäÀ̽º´Â À̸§/À¯´ÏÆ®    * 
                                 * (IP ´Â ¾Æ´Ï´Ù)                        */ 
#define IP_FW_F_OIFNAME 0x0800  /* Ãâ·Â ÀÎÅÍÆäÀ̽º´Â À̸§/À¯´ÏÆ®    * 
                                 * (IP ´Â ¾Æ´Ï´Ù)                        */ 
 
#define IP_FW_F_INVSRC  0x1000  /* ½ÃÁ¡ üũÀÇ Àǹ̸¦ ¹ÝÀü             */ 
#define IP_FW_F_INVDST  0x2000  /* Á¾Á¡ üũÀÇ Àǹ̸¦ ¹ÝÀü             */ 
 
#define IP_FW_F_FRAG    0x4000  /* ´ÜÆí                                 */ 
 
#define IP_FW_F_ICMPBIT 0x8000  /* ICMP ŸÀÔ ºñÆ® ¸ÊÀº À¯È¿        */ 
 
#define IP_FW_F_MASK    0xFFFF  /* ÀÖÀ» ¼ö ÀÖ´Â ¸ðµç flag bitÀÇ ¸¶½ºÅ© */

°¢ ·êÀº, Ç÷¡±×¾îÁßÀÇ IP_FW_F_COMMAND ºñÆ®·Î ³ªÅ¸³ª´Â, ´ÙÀ½ÀÇ µ¿ÀÛÀ» °¡Áý´Ï´Ù.

IP_FW_F_DENY - ÆÐŶÀ» ÆıâÇÕ´Ï´Ù
IP_FW_F_REJECT - ÆÐŶÀ» ÆıâÇØ, ICMP ¶Ç´Â TCP ¸¦ °æÀ¯ÇØ °ÅºÎ¸¦ ÅëÁöÇÕ´Ï´Ù
IP_FW_F_ACCEPT - ÆÐŶÀ» ¹Þ¾ÆµéÀÔ´Ï´Ù
IP_FW_F_COUNT - Ä«¿îÅ͸¦ Áõ°¡½ÃÄÑ, ¸ÅĪÀ» °è¼ÓÇÕ´Ï´Ù
IP_FW_F_DIVERT - ÆÐŶÀ» divert(4) ¼ÒÄÏ¿¡ µý µ¥·Î µ¹¸³´Ï´Ù
IP_FW_F_TEE - ÆÐŶÀ» divert(4) ¼ÒÄÏ¿¡ Ä«ÇÇÇØ, °è¼ÓÇÕ´Ï´Ù
IP_FW_F_SKIPTO - ·ê ¹øÈ£ fu_skipto_rule ¿¡ ½ºÅµ ÇÕ´Ï´Ù
IP_FW_F_REJECT ÀÇ °æ¿ì, fu_reject_code ÀÇ ¹øÈ£°¡ 0 ¿¡¼­ 255 ¶ó¸é ´ëÀÀÇÏ´Â ÄÚµå¿Í ÇÔ²² ¼ö½ÅÇÑ ÆÐŶÀÇ ½ÃÁ¡ÀÇ IP ÁÖ¼Ò¿¡ ICMP unreachable ÆÐŶÀ» µ¹·Á º¸³À´Ï´Ù. ±×·¸Áö ¾Ê´Â °æ¿ì¿¡´Â, °ªÀº 256 À¸·Î ÇÁ·ÎÅäÄÝÀÌ IPPROTO_TCP ÀÏ ÇÊ¿ä°¡ ÀÖ¾î, ÀÌ °æ¿ì TCP reset ÆÐŶÀÌ º¸³»Áý´Ï´Ù.
IP_FW_F_SKIPTO À» »ç¿ëÇϸé(ÀÚ), fu_skipto_rule º¸´Ù ÀÛÀº ·ê ¹øÈ£¸¦ °¡Áø´Ù ¸ðµç ¿¬¼ÓÇÏ´Â ·êÀÌ ½ºÅµ µË´Ï´Ù.

Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡¼­ÀÇ ¿É¼Ç:
IPFIREWALL - ipfirewall ¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù
IPFIREWALL_VERBOSE - firewall ÀÇ Ãâ·ÂÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù
IPFIREWALL_VERBOSE_LIMIT - firewall ÀÇ Ãâ·ÂÀ» ¾ïÁ¦ÇÕ´Ï´Ù
DIVERT - divert(4) ¼ÒÄÏÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù
ÆÐŶÀÌ IP_FW_F_PRN ºñÆ®°¡ ¼¼Æ® µÇ°í ÀÖ´Â ·ê¿¡ ÀûÇÕÇØ, IPFIREWALL_VERBOSE °¡ À¯È¿ÇÏ°Ô µÇ°í ÀÖ´Â °æ¿ì¿¡´Â ¸Þ¼¼Áö°¡ Äֿܼ¡ Ãâ·ÂµË´Ï´Ù. IPFIREWALL_VERBOSE_LIMIT ´Â °¢°¢ÀÇ ·êÀÌ ·Î±× ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÒ ¼ö Àִ٠ȸ¼öÀÇ ÃÖ´ëÄ¡¸¦ Á¦ÇÑÇÕ´Ï´Ù. ÀÌ·¯ÇÑ º¯¼öµµ sysctl(3) ÀÎÅÍÆäÀ̽º¸¦ °æÀ¯ÇØ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

[EINVAL] IP ¿É¼ÇÀÇ ¶õÀÌ ÃÖ¼ÒÄ¡º¸´Ù ªÀºÁö, Á¦°øµÈ ¿É¼Ç
¹öÆÛº¸´Ù ±æ°í ºÎÀûÀýÇÑ Çü½ÄÀ̾ú½À´Ï´Ù. ip_fw ±¸Á¶Ã¼·Î ±¸Á¶Àû
¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù (n_src_p+n_dst_p °ú´ë, ALL/ICMP
ÇÁ·ÎÅäÄÝÀ» À§ÇÑ Æ÷Æ® ¼¼Æ® µî). ºÎÁ¤ÇÑ ·ê ¹øÈ£°¡
»ç¿ëµÇ¾ú½À´Ï´Ù.

setsockopt(2), divert(4), ip(4), ipfw(8), sysctl(8)

``tee''·êÀº ¾ÆÁ÷ ½ÇÀåµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù (ÇöÀç´Â È¿°ú°¡ ¾ø½À´Ï´Ù).
ÀÌ man ÆäÀÌÁö´Â ¾ÆÁ÷ ÀÛ¾÷ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ipfw ±â´ÉÀº ÃÖÃÊ·Î BSDI ¿¡ÀÇ ÆÐÅ°Áö·Î¼­ Daniel Boulet <danny@BouletFermat.ab.ca> ¿¡ ÀÇÇØ ¾²¿©Á³½À´Ï´Ù. Ugen J.S.Antsilevich <ugen@NetVision.net.il> ÇÏÁö¸¸ Å«ÆøÀ¸·Î º¯°æÇØ, FreeBSD ¿¡ À̽ÄÇß½À´Ï´Ù.
Archie Cobbs <archie@whistle.com> ¿¡ ´Þ·Á ÀÖ°í ±¸µÎÀΰ¡ÀÇ È®ÀåÀÌ ´õÇØÁ³½À´Ï´Ù.
June 22, 1997 FreeBSD 12.0-RELEASE

Search for    or go to Top of page |  Section 4 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.