16.10 MAC portacl Ä£¿é

¡¡¡¡Ä£¿éÃû£º mac_portacl.ko

¡¡¡¡¶ÔÓ¦µÄÄÚºËÅäÖ㺠MAC_PORTACL

¡¡¡¡Òýµ¼Ñ¡Ï mac_portacl_load="YES"

¡¡¡¡mac_portacl(4) Ä£¿é¿ÉÒÔÓÃÀ´Í¨¹ýһϵÁÐ sysctl ±äÁ¿À´ÏÞÖÆ°ó¶¨±¾µØµÄ TCP ºÍ UDP ¶Ë¿Ú¡£ ±¾ÖÊÉÏ mac_portacl(4) ʹµÃ ·Ç-root Óû§Äܹ»°ó¶¨µ½ËüËùÖ¸¶¨µÄÌØÈ¨¶Ë¿Ú£¬ Ò²¾ÍÊÇÄÇЩ±àºÅСÓÚ 1024 µÄ¶Ë¿Ú¡£

¡¡¡¡ÔÚ¼ÓÔØÖ®ºó£¬ Õâ¸öÄ£¿é½«ÔÚËùÓÐµÄ socket ÉÏÆôÓà MAC ²ßÂÔ¡£ ¿ÉÒÔµ÷ÕûÏÂÁÐһЩÅäÖãº

¡¡¡¡Êµ¼ÊµÄ 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) Áª»úÊÖ²áÖеÄ˵Ã÷£¬ ÒÔÁË½â½øÒ»²½µÄÐÅÏ¢¡£

16.10.1 Àý×Ó

¡¡¡¡ÏÂÃæµÄÀý×Ó¸üºÃµØÕ¹Ê¾ÁËÇ°ÃæÌÖÂÛµÄÄÚÈÝ£º

# 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>.