×Ô´Ó¼ÆËã»ú»¥Á¬ºó£¬¸÷ÖÖ·þÎñѸËÙ·¢Õ¹¡£Óû§Ê¹Óõĵç×ÓÓʼþ¡¢É罻ýÌå¡¢ÔÚÏßÉ̳ǡ¢¼´Ê±ÁÄÌìÉõÖÁÍøÂç»áÒéµÈ·þÎñÈçÓêºó´ºËñ°ãÓ¿ÏÖ¡£µ«´ÓÁíÒ»·½ÃæÀ´Ëµ£¬ÕâЩÁ¬½Ó·þÎñÒ²¾ßÓÐË«Èн££¬±ÈÈçËüÃǵ±ÖеIJ¡¶¾¡¢¶ñÒâÈí¼þ¡¢ÌØÂåÒÁľÂíµÈ»áÏò¼ÆËã»ú·¢ËͶñÒâÏûÏ¢¡£
°²×° UFW ·À»ðǽ
×÷Ϊ×î´óµÄ¼ÆËã»úÍøÂ磬»¥ÁªÍøÉϿɲ¢²»¶¼ÊÇÉÆÒâµÄÓû§¡£Òò´Ë£¬ÎªÁËÈ·±£ÎÒÃǵļÆËã»ú»ò·þÎñÆ÷°²È«£¬ÎÒÃÇÐèÒª½øÐб£»¤¡£
ÔÚÄãµÄ¼ÆËã»ú»ò·þÎñÆ÷ÉÏÒ»¸ö±ØÐëÓеÄ×é¼þ¾ÍÊÇ·À»ðǽ¡£ÔÚά»ù°Ù¿ÆÖУ¬Æä¶¨ÒåÊÇ£º
·À»ðǽÊǼÆËã»úÖÐÒ»¿îÓ¦ÓÃÈí¼þ»ò»ùÓÚÓ²¼þµÄÍøÂ簲ȫϵͳ¡£Ëü¸ù¾ÝÓ¦ÓÃÅäÖõĹæÔò£¬·ÖÎöÊý¾Ý°ü£¬È»ºó¾ö¶¨ÊÇ·ñÔÊÐí´ËÊý¾Ý°üͨ¹ý£¬À´¿ØÖÆÕû¸öϵͳµÄÍøÂçÊý¾Ý½ø³ö·ÃÎÊȨÏÞ¡£
iptables ÊÇÒ»¿î¹ã·ºÊ¹ÓÃÓÚ·þÎñÆ÷µÄ·À»ðǽ¡£ËüÊÇÒ»¿îÓ¦ÓóÌÐò£¬Ëü»á¸ù¾ÝһϵÁйæÔòÀ´¹ÜÀí·þÎñÆ÷ÉϵĽø³öÊý¾ÝÁ÷¡£Ò»°ãÀ´Ëµ£¬Ö»ÓпÉÐÅÈεÄÁ¬½Ó²ÅÔÊÐí½øÈë·þÎñÆ÷¡£µ« iptables ÊÇÔÚ¿ØÖÆÌ¨Ä£Ê½ÏÂÔËÐУ¬Ëü·Ç³£µÄ¸´ÔÓ¡£²»ÊìϤ iptables ÅäÖùæÔòºÍÃüÁîµÄÓû§¿ÉÒÔ¶Á¶ÁÏÂÃæµÄÎÄÕ£¬ËüÃèÊöÁËÈçºÎʹÓÃiptables·À»ðǽ¡£
Debian/Ubuntu ϵͳÖа²×° UFW ·À»ðǽ
ΪÁ˽µµÍ iptables ÉèÖõĸ´ÔÓ¶È£¬ÓÐÐí¶à¶ÔÓ¦µÄǰ¶ËÓ¦Óá£Èç¹ûÄãÔËÐеÄÊÇ Ubuntu linux ϵͳµÄ»°£¬ UFW ¾ÍÊÇÒ»¿îĬÈϵķÀ»ðǽ¹¤¾ß¡£ÎÒÃÇ¿ªÊ¼À´Ì½ÌÖ UFW ·À»ðǽ°É¡£
ʲôÊÇ UFW
UFW (¼òµ¥µÄ·À»ðǽ) Êǹ㷺ʹÓÃµÄ iptables ·À»ðǽ µÄǰ¶ËÓ¦Óã¬ÕâÊǷdz£ÊʺÏÓÚ»ùÓÚÖ÷»úµÄ·À»ðǽ¡£UFW ¼´ÌṩÁËÒ»Ì×¹ÜÀíÍøÂç¹ýÂËÆ÷µÄ¿ò¼Ü£¬ÓÖÌṩÁË¿ØÖÆ·À»ðǽµÄÃüÁîÐнçÃæ½Ó¿Ú¡£Ëü¸øÄÇЩ²»ÊìϤ·À»ðǽ¸ÅÄîµÄ Linux ÐÂÓû§ÌṩÁËÓѺá¢Ò×ʹÓõÄÓû§½çÃæ¡£
ͬʱ£¬ÁíÒ»·½Ã棬ËüÒ²ÌṩÁËÃüÁîÐнçÃæ£¬ÎªÏµÍ³¹ÜÀíÔ±×¼±¸ÁËÒ»Ì׸´ÔÓµÄÃüÁÓÃÀ´ÉèÖø´ÔӵķÀ»ðǽ¹æÔò¡£UFW ¶ÔÏñ Debian¡¢Ubuntu ºÍ Linux Mint ÕâЩ·¢²¼°æ±¾À´ËµÒ²ÊÇÉÏÉÏ֮ѡ¡£
UFW »ù±¾Ó÷¨
Ê×ÏÈ£¬ÓÃÈçÏÂÃüÁîÀ´¼ì²éÏÂϵͳÉÏÊÇ·ñÒѾ°²×°ÁË UFW ¡£
$ sudo dpkg --get-selections | grep ufw
È绹ûÓа²×°£¬¿ÉÒÔʹÓà apt ÃüÁîÀ´°²×°£¬ÈçÏÂËùʾ£º
$ sudo apt-get install ufw
ÔÚʹÓÃǰ£¬ÄãÓ¦¸Ã¼ì²éÏ UFW ÊÇ·ñÒѾÔÚÔËÐС£ÓÃÏÂÃæµÄÃüÁîÀ´¼ì²é¡£
$ sudo ufw status
Èç¹ûÄã·¢ÏÖ״̬ÊÇ£º inactive , Òâ˼ÊÇûÓб»¼¤»î»ò²»Æð×÷Óá£
ÆôÓÃ/½ûÓÃ UFW
ÒªÆôÓÃËü£¬ÄãÖ»ÐèÔÚÖÕ¶ËϼüÈëÈçÏÂÃüÁ
$ sudo ufw enable
ÔÚϵͳÆô¶¯Ê±ÆôÓúͼ¤»î·À»ðǽ
Òª½ûÓã¬Ö»ÐèÊäÈ룺
$ sudo ufw disable
Áгöµ±Ç°UFW¹æÔò
ÔÚ·À»ðǽ±»¼¤»îºó£¬Äã¿ÉÒÔÏòÀïÃæÌí¼ÓÄã×Ô¼ºµÄ¹æÔò¡£Èç¹ûÄãÏë¿´¿´Ä¬ÈϵĹæÔò£¬¿ÉÒÔÊäÈë¡£
$ sudo ufw status verbose
Êä³öÑùÀý£º
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$
Ìí¼ÓUFW¹æÔò
ÈçÄãËù¼û£¬Ä¬ÈÏÊDz»ÔÊÐíËùÓÐÍⲿ·ÃÎÊÁ¬½ÓµÄ¡£Èç¹ûÄãÏëÔ¶³ÌÁ¬½ÓÄãµÄ»úÆ÷£¬¾ÍµÃ¿ª·ÅÏàÓ¦µÄ¶Ë¿Ú¡£ÀýÈ磬ÄãÏëÓà ssh À´Á¬½Ó£¬ÏÂÃæÊÇÌí¼ÓµÄÃüÁî¡£
ÔÊÐí·ÃÎÊ
$ sudo ufw allow ssh
[sudo] password for pungki :
Rule added
Rule added (v6)
$
ÔÙÒ»´Î¼ì²é״̬£¬»á¿´µ½ÈçϵÄһЩÊä³ö¡£
$ sudo ufw status
To Action From
-- ----------- ------
22 ALLOW Anywhere
22 ALLOW Anywhere (v6)
Èç¹ûÄãÓкܶàÌõ¹æÔò£¬Ïë¿ìËÙµÄÔÚÿÌõ¹æÔòÉϼӸöÐòºÅÊý×ֵϰ£¬ÇëʹÓà numbered ²ÎÊý¡£
$ sudo ufw status numbered
To Action From
------ ----------- ------
[1] 22 ALLOW Anywhere
[2] 22 ALLOW Anywhere (v6)
µÚÒ»Ìõ¹æÔòµÄÒâ˼ÊÇËùÓÐͨ¹ý22¶Ë¿Ú·ÃÎÊ»úÆ÷µÄ tcp »ò udp Êý¾Ý°ü¶¼ÊÇÔÊÐíµÄ¡£Èç¹ûÄãÏ£Íû½öÔÊÐí tcp Êý¾Ý°ü·ÃÎÊÓ¦¸ÃÔõô°ì£¿¿ÉÒÔÔÚ·þÎñ¶Ë¿Úºó¼Ó¸ö tcp ²ÎÊý¡£ÏÂÃæµÄʾÀý¼°ÏàÓ¦µÄÊä³ö¡£
$ sudo ufw allow ssh/tcp
To Action From
------ ----------- ------
22/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere (v6)
¾Ü¾ø·ÃÎÊ
Ìí¼Ó¾Ü¾ø¹æÔòÒ²ÊÇͬÑùµÄÕÐÊý¡£ÎÒÃǼÙÉèÄãÏë¾Ü¾ø ftp ·ÃÎÊ, ÄãÖ»ÐèÊäÈë
$ sudo ufw deny ftp
To Action From
------ ----------- ------
21/tcp DENY Anywhere
21/tcp DENY Anywhere (v6)
Ìí¼ÓÌØ¶¨¶Ë¿Ú
ÓÐʱºò£¬ÎÒÃÇ»á×Ô¶¨ÒåÒ»¸ö¶Ë¿Ú¶ø²»ÊÇʹÓñê×¼ÌṩµÄ¡£ÈÃÎÒÃÇÊÔ×ŰѻúÆ÷ÉÏ ssh µÄ 22 ¶Ë¿Ú»»³É 2290 ¶Ë¿Ú£¬È»ºóÔÊÐí´Ó 2290 ¶Ë¿Ú·ÃÎÊ£¬ÎÒÃÇÏñÕâÑùÌí¼Ó£º
$ sudo ufw allow 2290/ssh (ÒëÕß×¢£ºÐ©´¦ÑÝʾÀý×ÓÓÐÎÊÌâ)
To Action From
-- ----------- ------
2290 ALLOW Anywhere
2290 ALLOW Anywhere (v6)
ÄãÒ²¿ÉÒ԰Ѷ˿ڷ¶Î§Ìí¼Ó½ø¹æÔò¡£Èç¹ûÎÒÃÇÏë´ò¿ª´Ó 2290µ½2300 µÄ¶Ë¿ÚÒÔ¹© tcp ÐÒéʹÓã¬ÃüÁîÈçÏÂʾ£º
$ sudo ufw allow 2290:2300/tcp
To Action From
------ ----------- ------
2290:2300/tcp ALLOW Anywhere
2290:2300/tcp ALLOW Anywhere (v6)
ͬÑùÄãÏëʹÓà udp µÄ»°£¬ÈçϲÙ×÷¡£
$ sudo ufw allow 2290:2300/udp
To Action From
------ ----------- ------
2290:2300/udp ALLOW Anywhere
2290:2300/udp ALLOW Anywhere (v6)
Çë×¢ÒâÄãµÃÃ÷È·µÄÖ¸¶¨ÊÇ ¡®tcp¡¯ »ò ¡®udp¡¯£¬·ñÔò»á³öÏÖ¸úÏÂÃæÀàËÆµÄ´íÎóÐÅÏ¢¡£
ERROR: Must specify ¡®tcp¡¯ or ¡®udp¡¯ with multiple ports
Ìí¼ÓÌØ¶¨ IP
Ç°ÃæÎÒÃÇÌí¼ÓµÄ¹æÔò¶¼ÊÇ»ùÓÚ ·þÎñ³ÌÐò »ò ¶Ë¿Ú µÄ£¬UFW Ò²¿ÉÒÔÌí¼Ó»ùÓÚ IP µØÖ·µÄ¹æÔò¡£ÏÂÃæÊÇÃüÁîÑùÀý¡£
$ sudo ufw allow from 192.168.0.104
ÄãÒ²¿ÉÒÔʹÓÃ×ÓÍøÑÚÂëÀ´À©¿í·¶Î§¡£
$ sudo ufw allow form 192.168.0.0/24
To Action From
-- ----------- ------
Anywhere ALLOW 192.168.0.104
Anywhere ALLOW 192.168.0.0/24
ÈçÄãËù¼û£¬ from ²ÎÊý½ö½öÏÞÖÆÁ¬½ÓµÄÀ´Ô´£¬¶øÄ¿µÄ£¨Óà To Áбíʾ£©ÊÇËùÓеط½¡£ÈÃÎÒÃÇ¿´¿´ÔÊÐí·ÃÎÊ 22¶Ë¿Ú(ssh)µÄÀý×Ó¡£
$ sudo ufw allow to any port 22
ÉÏÃæµÄÃüÁî»áÔÊÐí´ÓÈκεط½ÒÔ¼°ÈκÎÐÒé¶¼¿ÉÒÔ·ÃÎÊ22¶Ë¿Ú¡£
×éºÏ²ÎÊý
¶ÔÓÚ¸ü¾ßÌåµÄ¹æÔò£¬ÄãÒ²¿ÉÒÔ°Ñ IP µØÖ·¡¢ÐÒéºÍ¶Ë¿ÚÕâЩ×éºÏÔÚÒ»ÆðÓá£ÎÒÃÇÏë´´½¨Ò»Ìõ¹æÔò£¬ÏÞÖÆ½ö½öÀ´×ÔÓÚ 192.168.0.104 µÄ IP £¬¶øÇÒÖ»ÄÜʹÓà tcp ÐÒéºÍͨ¹ý 22¶Ë¿Ú À´·ÃÎʱ¾µØ×ÊÔ´¡£ÎÒÃÇ¿ÉÒÔÓÃÈçÏÂËùʾµÄÃüÁî¡£
$ sudo ufw allow from 192.168.0.104 proto tcp to any port 22
´´½¨¾Ü¾ø¹æÔòµÄÃüÁîºÍÔÊÐíµÄ¹æÔòÀàËÆ£¬½öÐèÒª°Ñ allow ²ÎÊý»»³É deny ²ÎÊý¾Í¿ÉÒÔ¡£
ɾ³ý¹æÔò
ijЩʱºòÐèҪɾ³ýÏÖÓеĹæÔò¡£ÔÙÒ»´ÎʹÓà UFW ɾ³ý¹æÔòÊǺܼòµ¥µÄ¡£ÔÚÉÏÃæµÄʾÀýÖУ¬ÒѾ´´½¨ÁËÈçÏµĹæÔò£¬ÏÖÔÚÄãÏëɾ³ýËüÃÇ¡£
To Action From
-- ----------- ------
22/tcp ALLOW 192.168.0.104
21/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere (v6)
ɾ³ý¹æÔòÓÐÁ½¸ö·½·¨¡£
·½·¨1
ÏÂÃæµÄÃüÁ»á ɾ³ý Óë ftp Ïà¹ØµÄ¹æÔò¡£ËùÒÔÏñ 21/tcp ÕâÌõ ftp ĬÈÏ·ÃÎʶ˿ڵĹæÔò½«»á±»É¾³ýµô¡£
$ sudo ufw delete allow ftp
·½·¨2
µ«µ±ÄãʹÓÃÈçÏÂÃüÁîÀ´É¾³ýÉÏÃæÀý×ÓÖеĹæÔòʱ£¬
$ sudo ufw delete allow ssh
»òÕß
$ sudo ufw delete allow 22/tcp
»á³öÏÖÈçÏÂËùʾµÄһЩ´íÎó
Could not delete non-existent rule
Could not delete non-existent rule (v6)
ÎÒÃÇ»¹ÓÐÒ»ÕС£ÉÏÃæÒѾÌáµ½¹ý£¬¿ÉÒÔÐòÁÐÊý×ÖÀ´´úÌæÄãÏëɾ³ýµÄ¹æÔò¡£ÈÃÎÒÃÇÊÔÊÔ¡£
$ sudo ufw status numbered
To Action From
-- ----------- ------
[1] 22/tcp ALLOW 192.168.0.104
[2] 21/tcp ALLOW Anywhere
[3] 21/tcp ALLOW Anywhere (v6)
È»ºóÎÒÃÇɾ³ýÕýÔÚʹÓõĵÚÒ»Ìõ¹æÔò¡£°´ ¡° y ¡± ¾Í»áÓÀ¾ÃµÄɾ³ýÕâÌõ¹æÔò¡£
$ sudo ufw delete 1
Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y
´ÓÕâЩÓ÷¨ÖÐÄã¾Í¿ÉÒÔ·¢ÏÖËüÃǵIJ»Í¬¡£ ·½·¨2 ÔÚɾ³ýǰÐèÒª Óû§È·ÈÏ £¬¶ø ·½·¨1 ²»ÐèÒª¡£
ÖØÖÃËùÓйæÔò
ijЩÇé¿öÏ£¬ÄãÒ²ÐíÐèÒª ɾ³ý/ÖØÖà ËùÓеĹæÔò¡£¿ÉÒÔÊäÈë¡£
$ sudo ufw reset
Resetting all rules to installed defaults. Proceed with operation (y|n)? y
Èç¹ûÄãÊäÈë¡° y ¡±£¬ UFW ÔÚÖØÖÃÄãµÄ ufw ǰ»á±¸·ÝËùÓÐÒѾ´æÔÚ¹æÔò£¬È»ºóÖØÖá£ÖØÖòÙ×÷Ò²»áʹÄãµÄ·À»ðǽ´¦ÓÚ²»¿ÉÓÃ״̬£¬Èç¹ûÄãÏëʹÓõÃÔÙÒ»´ÎÆôÓÃËü¡£
¸ß¼¶¹¦ÄÜ
ÕýÈçÎÒÉÏÃæËù˵£¬UFW·À»ðǽÄܹ»×öµ½iptables¿ÉÒÔ×öµ½µÄÒ»ÇС£ÕâÊÇͨ¹ýһЩ¹æÔòÎļþÀ´Íê³ÉµÄ£¬ËûÃÇÖ»²»¹ýÊÇ iptables-restore Ëù¶ÔÓ¦µÄÎı¾Îļþ¶øÒÑ¡£ÊÇ·ñ¿ÉÒÔͨ¹ý ufw ÃüÁî΢µ÷ UFW µÄÓë/»òÂß¼À´Ôö¼Ó iptables ÃüÁîÆäʵ¾ÍÊDZ༼¸¸öÎı¾ÎļþµÄÊ¡£
/etc/default/ufw: ĬÈϲßÂÔµÄÖ÷ÅäÖÃÎļþ£¬Ö§³Ö IPv6 ºÍ ÄÚºËÄ£¿é¡£
/etc/ufw/before[6].rules: ͨ¹ý ufw ÃüÁîÌí¼Ó½ø¹æÔò֮ǰÀïÃæ´æÔڵĹæÔò»áÊ×ÏȼÆËã¡£
/etc/ufw/after[6].rules: ͨ¹ý ufw ÃüÁîÌí¼Ó½ø¹æÔòÖ®ºóÀïÃæ´æÔڵĹæÔò»á½øÐмÆËã¡£
/etc/ufw/sysctl.conf: ÄÚºËÍøÂç¿Éµ÷²ÎÊý¡£
/etc/ufw/ufw.conf: ÉèÖÃϵͳÆô¶¯Ê± UFW ÊÇ·ñ¿ÉÓ㬺ÍÉèÖÃÈÕÖ¾¼¶±ð¡£
½áÂÛ
UFW ×÷Ϊ iptables µÄǰ¶ËÓ¦Ó㬸øÓû§ÌṩÁ˼òµ¥µÄ½Ó¿Ú½çÃæ¡£Ê¹ÓÃ×Ų»ÐèҪȥ¼Ç·Ç³£¸´Ô iptables Óï·¨¡£UFW ҲʹÓÃÁË¡® ¼òµ¥Ó¢Óï ¡¯×÷ΪËüµÄ²ÎÊý¡£
Ïñ Allow¡¢deny¡¢reset ¾ÍÊÇËûÃǵ±ÖеÄÒ»²¿·Ö¡£ÎÒÏàÐÅÓкܶàºÜ¶à iptables ǰ¶ËÓ¦Ó㬵« UFW ¾ø¶ÔÊÇÄÇЩÏëÒª¿ìËÙ¡¢¼òµ¥µÄ¾Í½¨Á¢×Ô¼ºµÄ·À»ðǽ£¬¶øÇÒ»¹ºÜ°²È«µÄÓû§µÄ×î¼ÑÌæ´úÆ·Ö®Ò»¡£ÇëÊäÈë man ufw ²é¿´ ufw Óû§ÊֲᣬÀ´Á˽â¸ü¶àÏêÇé¡£
À´Ô´£ºlinux.cn