¡¡¡¡Ä£¿éÃû£º mac_portacl.ko
¡¡¡¡¶ÔÓ¦µÄÄÚºËÅäÖ㺠MAC_PORTACL
¡¡¡¡Òýµ¼Ñ¡Ï mac_portacl_load="YES"
¡¡¡¡mac_portacl(4) Ä£¿é¿ÉÒÔÓÃÀ´Í¨¹ýһϵÁÐ sysctl ±äÁ¿À´ÏÞÖÆ°ó¶¨±¾µØµÄ TCP ºÍ UDP ¶Ë¿Ú¡£ ±¾ÖÊÉÏ mac_portacl(4) ʹµÃ ·Ç-root Óû§Äܹ»°ó¶¨µ½ËüËùÖ¸¶¨µÄÌØÈ¨¶Ë¿Ú£¬ Ò²¾ÍÊÇÄÇЩ±àºÅСÓÚ 1024 µÄ¶Ë¿Ú¡£
¡¡¡¡ÔÚ¼ÓÔØÖ®ºó£¬ Õâ¸öÄ£¿é½«ÔÚËùÓÐµÄ socket ÉÏÆôÓà MAC ²ßÂÔ¡£ ¿ÉÒÔµ÷ÕûÏÂÁÐһЩÅäÖãº
security.mac.portacl.enabled ½«ÍêÈ« ÆôÓÃ/½ûÓà ²ßÂÔ¡£
security.mac.portacl.port_high ½«ÉèÖÃΪ mac_portacl(4) Ëù±£»¤µÄ×î¸ß¶Ë¿ÚºÅ¡£
security.mac.portacl.suser_exempt Èç¹ûÉèÖÃΪ·ÇÁãÖµ£¬ ±íʾ½« root Óû§ÅųýÔÚ²ßÂÔÖ®Íâ¡£
security.mac.portacl.rules ½«Ö¸¶¨Êµ¼ÊµÄ mac_portacl ²ßÂÔ£» Çë²Î¼ûÏÂÎÄ¡£
¡¡¡¡Êµ¼ÊµÄ mac_portacl ²ßÂÔ£¬ ÊÇÔÚ security.mac.portacl.rules sysctl ËùÖ¸¶¨µÄÒ»¸öÏÂÁÐÐÎʽµÄ×Ö·û´®£º
rule[,rule,...] ÆäÖпÉÒÔ¸ø³öÈÎÒâ¶à¸ö¹æÔò¡£
ÿһ¸ö¹æÔòµÄÐÎʽ¶¼ÊÇ£º idtype:id:protocol:port¡£ ÕâÀïµÄ
idtype
²ÎÊý¿ÉÒÔÊÇ uid »ò
gid£¬ ·Ö±ð±íʾ½« id
²ÎÊý½âÊÍΪÓû§ id »ò×é id¡£ protocol
²ÎÊý¿ÉÒÔÓÃÀ´È·¶¨Ï£ÍûÓ¦Óõ½ TCP »ò
UDP ÐÒéÉÏ£¬ ·½·¨ÊǰÑÕâÒ»²ÎÊýÉèÖÃΪ
tcp »ò udp¡£ ×îºóµÄ port
²ÎÊýÔò¸ø³öÁËËùÖ¸¶¨µÄÓû§»ò×éÄܹ»°ó¶¨µÄ¶Ë¿ÚºÅ¡£
×¢Òâ: ÓÉÓÚ¹æÔò¼¯»áÖ±½ÓÓÉÄں˼ÓÒÔ½âÊÍ£¬ Òò´ËÖ»ÄÜÒÔÊý×ÖÐÎʽ±íʾÓû§ ID¡¢ ×é ID£¬ ÒÔ¼°¶Ë¿ÚµÈ²ÎÊý¡£ »»ÑÔÖ®£¬ Äú²»ÄÜʹÓÃÓû§¡¢ ×飬 »ò¶Ë¿Ú·þÎñµÄÃû×ÖÀ´Ö¸¶¨ËüÃÇ¡£
¡¡¡¡Ä¬ÈÏÇé¿öÏ£¬ ÔÚ Àà-UNIX® ϵͳÖУ¬ ±àºÅСÓÚ 1024 µÄ¶Ë¿ÚÖ»ÄÜÎªÌØÈ¨½ø³ÌʹÓûò°ó¶¨£¬ Ò²¾ÍÊÇÄÇЩÒÔ root Éí·ÝÔËÐеĽø³Ì¡£ ΪÁËÈà mac_portacl(4) Äܹ»ÔÊÐí·ÇÌØÈ¨½ø³Ì°ó¶¨µÍÓÚ 1024 µÄ¶Ë¿Ú£¬ ¾Í±ØÐëÊ×ÏȽûÓñê×¼µÄ UNIX ÏÞÖÆ¡£ Õâ¿ÉÒÔͨ¹ý°Ñ sysctl(8) ±äÁ¿ net.inet.ip.portrange.reservedlow ºÍ net.inet.ip.portrange.reservedhigh ÉèÖÃΪ 0 À´ÊµÏÖ¡£
¡¡¡¡Çë²Î¼ûÏÂÃæµÄÀý×Ó£¬ »ò mac_portacl(4) Áª»úÊÖ²áÖеÄ˵Ã÷£¬ ÒÔÁË½â½øÒ»²½µÄÐÅÏ¢¡£
¡¡¡¡ÏÂÃæµÄÀý×Ó¸üºÃµØÕ¹Ê¾ÁËÇ°ÃæÌÖÂÛµÄÄÚÈÝ£º
# sysctl security.mac.portacl.port_high=1023 # sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0
¡¡¡¡Ê×ÏÈÎÒÃÇÐèÒªÉèÖÃʹ mac_portacl(4) ¹ÜÀí±ê×¼µÄÌØÈ¨¶Ë¿Ú£¬ ²¢½ûÓÃÆÕͨµÄ UNIX °ó¶¨ÏÞÖÆ¡£
# sysctl security.mac.portacl.suser_exempt=1
¡¡¡¡ÄúµÄ root Óû§²»Ó¦Òò´Ë²ßÂÔ¶øÊ§È¥ÌØÈ¨£¬¡¡Òò´ËÇë°Ñ security.mac.portacl.suser_exempt ÉèÖÃΪһ¸ö·ÇÁãµÄÖµ¡£ ÏÖÔÚÄúÒѾ³É¹¦µØÅäÖÃÁË¡¡mac_portacl(4) Ä£¿é£¬ ²¢Ê¹ÆäĬÈÏÓë Àà-UNIX ϵͳһÑùÔËÐÐÁË¡£
# sysctl security.mac.portacl.rules=uid:80:tcp:80
¡¡¡¡ÔÊÐí UID Ϊ 80 µÄÓû§ (Õý³£Çé¿öÏ£¬ Ó¦¸ÃÊÇ www Óû§) °ó¶¨µ½ 80 ¶Ë¿Ú¡£ ÕâÑù www Óû§¾ÍÄܹ»ÔËÐÐ web ·þÎñÆ÷£¬ ¶ø²»ÐèҪʹÓà root ȨÏÞÁË¡£
# sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995
¡¡¡¡ÔÊÐí UID Ϊ 1001 µÄÓû§°ó¶¨ TCP ¶Ë¿Ú 110 (¡°pop3¡±) ºÍ 995 (¡°pop3s¡±)¡£ ÕâÑùÓû§¾ÍÄܹ»Æô¶¯½ÓÊÜÀ´·¢µ½ 110 ºÍ 995 µÄÁ¬½ÓÇëÇóµÄ·þÎñÁË¡£
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.