×ðÁú¿­Ê±

²»»áÓà Linux ·À»ðǽÈí¼þ IPtables£¡ÄãËãɶÔËάÈË£¡

ÅþÁ¬¸ú×Ù£¨conntrack£©

ÅþÁ¬¸ú×ÙÊÇÐí¶àÍøÂçÓ¦ÓõĻù´¡ ¡£ÀýÈ磬Kubernetes Service¡¢ServiceMesh sidecar¡¢ Èí¼þËIJ㸺ÔØƽºâÆ÷ LVS/IPVS¡¢Docker network¡¢OVS¡¢iptables Ö÷»ú·À»ðǽµÈµÈ£¬¶¼ÒÀÀµÅþÁ¬¸ú×Ù¹¦Ð§ ¡£
ÅþÁ¬¸ú×Ù£¬¹ËÃû˼Ò壬¾ÍÊǸú×Ù£¨²¢¼Í¼£©ÅþÁ¬µÄ״̬ ¡£ ÀýÈ磬ͼ 1.1 ÊÇһ̨ IP µØµãΪ 10.1.1.2 µÄ Linux »úе£¬ÎÒÃÇÄÜ¿´µ½Õą̂»úеÉÏÓÐÈýÌõ ÅþÁ¬£º

»úе»á¼ûÍⲿ HTTP ЧÀ͵ÄÅþÁ¬£¨Ä¿µÄ¶Ë¿Ú 80£©

Íⲿ»áʶȤеÄÚ FTP ЧÀ͵ÄÅþÁ¬£¨Ä¿µÄ¶Ë¿Ú 21£©

»úе»á¼ûÍⲿ DNS ЧÀ͵ÄÅþÁ¬£¨Ä¿µÄ¶Ë¿Ú 53£©

ÅþÁ¬¸ú×ÙËù×öµÄÊÂÇé¾ÍÊÇ·¢Ã÷²¢¸ú×ÙÕâЩÅþÁ¬µÄ״̬£¬Ïêϸ°üÀ¨£º

´ÓÊý¾Ý°üÖÐÌáÈ¡Ôª×飨tuple£©ÐÅÏ¢£¬Çø·ÖÊý¾ÝÁ÷£¨flow£©ºÍ¶ÔÓ¦µÄÅþÁ¬£¨connection£© ¡£

ΪËùÓÐÅþÁ¬Î¬»¤Ò»¸ö״̬Êý¾Ý¿â£¨conntrack table£©£¬ÀýÈçÅþÁ¬µÄ½¨Éèʱ¼ä¡¢·¢ËÍ °üÊý¡¢·¢ËÍ×Ö½ÚÊýµÈµÈ ¡£

½ÓÄÉÓâÆÚµÄÅþÁ¬£¨GC£© ¡£

Ϊ¸üÉϲãµÄ¹¦Ð§£¨ÀýÈç NAT£©ÌṩЧÀÍ ¡£

ÐèҪעÖصÄÊÇ£¬ÅþÁ¬¸ú×ÙÖÐËù˵µÄ¡°ÅþÁ¬¡±£¬¿´·¨ºÍ TCP/IP ЭÒéÖС°ÃæÏòÅþÁ¬¡±£¨connection oriented£©µÄ¡°ÅþÁ¬¡±²¢²»ÍêÈ«Ïàͬ£¬¼òÆÓÀ´Ëµ£º

TCP/IP ЭÒéÖУ¬ÅþÁ¬ÊÇÒ»¸öËIJ㣨Layer 4£©µÄ¿´·¨ ¡£TCP ÊÇÓÐÅþÁ¬µÄ£¬»ò³ÆÃæÏòÅþÁ¬µÄ£¨connection oriented£©£¬·¢ËͳöÈ¥µÄ°ü¶¼ÒªÇó¶Ô¶ËÓ¦´ð£¨ACK£©£¬²¢ÇÒÓÐÖØ´«»úÖÆ ¡£UDP ÊÇÎÞÅþÁ¬µÄ£¬·¢Ë͵İüÎÞÐè¶Ô¶ËÓ¦´ð£¬Ò²Ã»ÓÐÖØ´«»úÖÆ ¡£

conntrack(CT) ÖУ¬Ò»¸öÔª×飨tuple£©½ç˵µÄÒ»ÌõÊý¾ÝÁ÷£¨flow £©¾ÍÌåÏÖÒ»ÌõÅþÁ¬£¨connection£© ¡£ºóÃæ»á¿´µ½ UDP ÉõÖÁÊÇ ICMP ÕâÖÖÈý²ãЭÒéÔÚ CT ÖÐÒ²¶¼ÊÇÓÐÅþÁ¬¼Í¼µÄ£¬µ«²»ÊÇËùÓÐЭÒ鶼»á±»ÅþÁ¬¸ú×Ù ¡£

Netfilter

Linux µÄÅþÁ¬¸ú×ÙÊÇÔÚ Netfilter ÖÐʵÏÖµÄ ¡£
Netfilter ÊÇ Linux ÄÚºËÖÐÒ»¸ö¶ÔÊý¾Ý °ü¾ÙÐпØÖÆ¡¢Ð޸ĺ͹ýÂË£¨manipulation and filtering£©µÄ¿ò¼Ü ¡£ËüÔÚÄÚºËЭÒéÕ»ÖÐÉèÖÃÁËÈô¸É hook µã£¬ÒԴ˶ÔÊý¾Ý°ü¾ÙÐÐ×èµ²¡¢¹ýÂË»òÆäËû´¦Öóͷ£ ¡£
ÏÖÔÚÌáµ½ÅþÁ¬¸ú×Ù£¨conntrack£©£¬¿ÉÄÜÊ×Ïȶ¼»áÏëµ½ Netfilter£¬Netfilter Ö»ÊÇ Linux ÄÚºËÖеÄÒ»ÖÖÅþÁ¬¸ú×ÙʵÏÖ ¡£»»¾ä»°Ëµ£¬Ö»Òª¾ß±¸ÁË hook ÄÜÁ¦£¬ÄÜ×èµ²µ½ÊÕÖ§Ö÷»úµÄÿ¸ö°ü£¬ÍêÈ«¿ÉÒÔÔÚ´Ë»ù´¡ÉÏ×Ô¼ºÊµÏÖÒ»Ì×ÅþÁ¬¸ú×Ù ¡£
ÔÆÔ­ÉúÍøÂç¼Æ»® Cilium ÔÚ 1.7.4+ °æ±¾¾ÍʵÏÖÁËÕâÑùÒ»Ì××ÔÁ¦µÄÅþÁ¬¸ú×ÙºÍ NAT »úÖÆ £¨ÍêÕû¹¦Ð§ÐèÒª Kernel 4.19+£© ¡£Æä»ùÀ´Ô´ÀíÊÇ£º

»ùÓÚ BPF hook ʵÏÖÊý¾Ý°üµÄ×èµ²¹¦Ð§£¨µÈ¼ÛÓÚ netfilter ÄÚÀïµÄ hook »úÖÆ£©

ÔÚ BPF hook µÄ»ù´¡ÉÏ£¬ÊµÏÖÒ»Ì×È«Ð嵀 conntrack ºÍ NAT Òò´Ë£¬¼´±ãжÔصô Netfilter £¬Ò²²»»áÓ°Ïì Cilium ¶Ô Kubernetes ClusterIP¡¢NodePort¡¢ExternalIPs ºÍ LoadBalancer µÈ¹¦Ð§µÄÖ§³Ö ¡£ÓÉÓÚÕâÌ×ÅþÁ¬¸ú×Ù»úÖÆÊÇ×ÔÁ¦ÓÚ Netfilter µÄ£¬Òò´ËËüµÄ conntrack ºÍ NAT ÐÅϢҲûÓÐ ´æ´¢ÔÚÄں˵ģ¨Ò²¾ÍÊÇ Netfilter µÄ£©conntrack table ºÍ NAT table ¡£ÒÔÊÇͨÀýµÄ conntrack/netstats/ss/lsof µÈ¹¤¾ßÊÇ¿´²»µ½µÄ£¬ÒªÊ¹Óà Cilium µÄÏÂÁÀýÈ磺

$ cilium bpf nat list$ cilium bpf ct list global

µÇ¼ºó¸´ÖÆ

Iptables

Iptables ÊÇÉèÖà Netfilter ¹ýÂ˹¦Ð§µÄÓû§¿Õ¼ä¹¤¾ß ¡£ netfilter ²ÅÊÇ·À»ðǽÕæÕýµÄÇå¾²¿ò¼Ü£¨framework£©£¬netfilter λÓÚÄں˿ռä ¡£iptables ×ÅʵÊÇÒ»¸öÏÂÁîÐй¤¾ß£¬Î»ÓÚÓû§¿Õ¼ä£¬ÎÒÃÇÓÃÕâ¸ö¹¤¾ß²Ù×÷ÕæÕýµÄ¿ò¼Ü ¡£Iptable ƾ֤¹æÔòËù½ç˵µÄÒªÁìÀ´´¦Öóͷ£Êý¾Ý°ü£¬Èç·ÅÐУ¨accept£©¡¢¾Ü¾ø£¨reject£©ºÍÑïÆú£¨drop£©µÈ ¡£
ÀýÈçµ±¿Í»§¶Ë»á¼ûЧÀÍÆ÷µÄwebЧÀÍʱ£¬¿Í»§¶Ë·¢Ëͱ¨Îĵ½Íø¿¨£¬¶ø tcp/ip ЭÒéÕ»ÊÇÊôÓÚÄں˵ÄÒ»²¿·Ö£¬ÒÔÊÇ£¬¿Í»§¶ËµÄÐÅÏ¢»áͨ¹ýÄÚºËµÄ TCP ЭÒé´«Êäµ½Óû§¿Õ¼äÖÐµÄ web ЧÀÍÖУ¬¶ø´Ëʱ£¬¿Í»§¶Ë±¨ÎĵÄÄ¿µÄÖÕµãΪ web ЧÀÍËù¼àÌýµÄÌ×½Ó×Ö£¨IP:Port£©ÉÏ£¬µ±webЧÀÍÐèÒªÏìÓ¦¿Í»§¶ËÇëÇóʱ£¬web ЧÀÍ·¢³öµÄÏìÓ¦±¨ÎĵÄÄ¿µÄÖÕµãÔòΪ¿Í»§¶Ë£¬Õâ¸öʱ¼ä£¬web ЧÀÍËù¼àÌýµÄ IP Óë¶Ë¿Ú·´¶øÄð³ÉÁËÔ­µã£¬ÎÒÃÇ˵¹ý£¬netfilter ²ÅÊÇÕæÕýµÄ·À»ðǽ£¬ËüÊÇÄں˵ÄÒ»²¿·Ö£¬ÒÔÊÇ£¬ÈôÊÇÎÒÃÇÏëÒª·À»ðǽÄܹ»µÖ´ï¡±·À»ð¡±µÄÄ¿µÄ£¬ÔòÐèÒªÔÚÄÚºËÖÐÉèÖùؿ¨£¬ËùÓÐÊÕÖ§µÄ±¨ÎĶ¼ÒªÍ¨¹ýÕâЩ¹Ø¿¨£¬¾­Óɼì²éºó£¬ÇкϷÅÐÐÌõ¼þµÄ²Å»ª·ÅÐУ¬ÇкÏ×èÀ¹Ìõ¼þµÄÔòÐèÒª±»×èÖ¹ ¡£
²»»áÓà Linux ·À»ðǽÈí¼þ IPtables£¡ÄãËãɶÔËάÈË£¡
iptables °üÀ¨ 4¸ö±í£¬5¸öÁ´ ¡£ÆäÖбíÊÇƾ֤¶ÔÊý¾Ý°üµÄ²Ù×÷Çø·Ö£¨¹ýÂË£¬ NATµÈ£©µÄ£¬Á´ÊÇƾ֤²î±ðµÄ Hook µãÀ´Çø·ÖµÄ£¬±íºÍÁ´ÏÖʵÉÏÊÇnetfilterµÄÁ½¸öά¶È ¡£
iptables µÄËĸö±í»®·ÖÊÇ filter£¬mangle£¬nat£¬raw£¬Ä¬ÈϱíÊÇfilter ¡£

filter ±í£ºÓÃÀ´¶ÔÊý¾Ý°ü¾ÙÐйýÂË£¬ÏêϸµÄ¹æÔòÒªÇó¾öÒéÈçÄÇÀïÖÃÒ»¸öÊý¾Ý°ü ¡£

nat ±í£ºÖ÷ÒªÓÃÀ´ÐÞ¸ÄÊý¾Ý°üµÄ IP µØµã¡¢¶Ë¿ÚºÅÐÅÏ¢ ¡£

mangle ±í£ºÖ÷ÒªÓÃÀ´ÐÞ¸ÄÊý¾Ý°üµÄЧÀÍÀàÐÍ£¬ÉúÑÄÖÜÆÚ£¬ÎªÊý¾Ý°üÉèÖñê¼Ç£¬ÊµÏÖÁ÷Á¿ÕûÐΡ¢Õ½ÂÔ·ÓɵÈ ¡£

raw ±í£ºÖ÷ÒªÓÃÀ´¾öÒéÊÇ·ñ¶ÔÊý¾Ý°ü¾ÙÐÐ״̬¸ú×Ù ¡£

iptables µÄÎå¸öÁ´»®·ÖÊÇ PREROUTING£¬INPUT£¬FORWARD£¬OUTPUT£¬POSTROUTING ¡£

input Á´£ºµ±ÊÕµ½»á¼û±¾»úµØµãµÄÊý¾Ý°üʱ£¬½«Ó¦ÓôËÁ´ÖеĹæÔò ¡£

output Á´£ºµ±±¾»úÏòÍâ·¢ËÍÊý¾Ý°üʱ£¬½«Ó¦ÓôËÁ´ÖеĹæÔò ¡£

forward Á´£ºµ±ÊÕµ½ÐèҪת·¢¸øÆäËûµØµãµÄÊý¾Ý°üʱ£¬½«Ó¦ÓôËÁ´ÖеĹæÔò£¬×¢ÖØÈôÊÇÐèҪʵÏÖforwardת·¢ÐèÒª¿ªÆôLinuxÄÚºËÖеÄip_forward¹¦Ð§ ¡£

prerouting Á´£ºÔÚ¶ÔÊý¾Ý°ü×ö·ÓÉÑ¡Ôñ֮ǰ£¬½«Ó¦ÓôËÁ´ÖеĹæÔò ¡£

postrouting Á´£ºÔÚ¶ÔÊý¾Ý°ü×ö·ÓÉÑ¡ÔñÖ®ºó£¬½«Ó¦ÓôËÁ´ÖеĹæÔò ¡£

±íºÍÁ´µÄ¶ÔÓ¦¹ØϵÈçÏÂͼËùʾ£º
ÎÒÃÇÄܹ»ÏëÏó³öijЩ³£Óó¡¾°ÖУ¬±¨ÎĵÄÁ÷Ïò£º

µ½±¾»úijÀú³ÌµÄ±¨ÎÄ£ºPREROUTING ¨C> INPUT ¡£

Óɱ¾»úת·¢µÄ±¨ÎÄ£ºPREROUTING ¨C> FORWARD ¨C> POSTROUTING ¡£

Óɱ¾»úµÄijÀú³Ì·¢³ö±¨ÎÄ£¨Í¨³£ÎªÏìÓ¦±¨ÎÄ£©£ºOUTPUT ¨C> POSTROUTING ¡£

ÎÒÃÇ¿ÉÒÔ½«Êý¾Ý°üͨ¹ý·À»ðǽµÄÁ÷³Ì×ܽáΪÏÂͼ£º

ÅÌÎʹæÔò

-t£º±íÃû

-n£º²»ÆÊÎöIPµØµã

-v£º»áÏÔʾ³ö¼ÆÊýÆ÷µÄÐÅÏ¢£¬Êý¾Ý°üµÄÊýÄ¿ºÍ¾Þϸ

-x£ºÑ¡ÏîÌåÏÖÏÔʾ¼ÆÊýÆ÷µÄ׼ȷֵ

–line-numbers£ºÏÔʾ¹æÔòµÄÐòºÅ£¨¼òдΪ–line£©

ÁíÍ⣬ËÑË÷¹«ÖÚºÅLinux¾Í¸ÃÕâÑùѧºǫ́»Ø¸´¡°ºï×Ó¡±£¬»ñÈ¡Ò»·Ý¾ªÏ²Àñ°ü ¡£

-L£ºÁ´Ãû

#iptables -t filter -nvxL DOCKER  --lineChain DOCKER (1 references)num      pkts      bytes target     prot opt in     out     source               destination1        5076   321478 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.2           tcp dpt:84432       37233 54082508 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.2           tcp dpt:223        1712   255195 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.3           tcp dpt:90004           0        0 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.3           tcp dpt:80005       40224  6343104 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.4           tcp dpt:34436       21034  2227009 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.5           tcp dpt:33067          58     5459 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.6           tcp dpt:808         826    70081 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.6           tcp dpt:4439    10306905 1063612492 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.9           tcp dpt:330610     159775 12297727 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.7           tcp dpt:11111

µÇ¼ºó¸´ÖÆ

ÔöÌí¹æÔò

ÔÚÖ¸¶¨±íµÄÖ¸¶¨Á´µÄβ²¿Ìí¼ÓÒ»Ìõ¹æÔò£¬-A Ñ¡ÏîÌåÏÖÔÚ¶ÔÓ¦Á´µÄĩβÌí¼Ó¹æÔò£¬Ê¡ÂÔ -t Ñ¡Ïîʱ£¬ÌåÏÖĬÈϲÙ×÷ filter ±íÖеĹæÔò£º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -A Á´Ãû Æ¥ÅäÌõ¼þ -j Ðж¯Ê¾Àý£ºiptables -t filter -A INPUT -s 192.168.1.146 -j DROP

µÇ¼ºó¸´ÖÆ
ÔÚÖ¸¶¨±íµÄÖ¸¶¨Á´µÄÊײ¿Ìí¼ÓÒ»Ìõ¹æÔò£¬-I Ñ¡ÐÍÌåÏÖÔÚ¶ÔÓ¦Á´µÄ¿ªÍ·Ìí¼Ó¹æÔò£º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -I Á´Ãû Æ¥ÅäÌõ¼þ -j Ðж¯Ê¾Àý£ºiptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT

µÇ¼ºó¸´ÖÆ
ÔÚÖ¸¶¨±íµÄÖ¸¶¨Á´µÄÖ¸¶¨Î»ÖÃÌí¼ÓÒ»Ìõ¹æÔò£º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -I Á´Ãû ¹æÔòÐòºÅ Æ¥ÅäÌõ¼þ -j Ðж¯Ê¾Àý£ºiptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT

µÇ¼ºó¸´ÖÆ

ɾ³ý¹æÔò

ƾ֤¹æÔòÐòºÅɾ³ý¹æÔò£¬É¾³ýÖ¸¶¨±íµÄÖ¸¶¨Á´µÄÖ¸¶¨¹æÔò£¬-D Ñ¡ÏîÌåÏÖɾ³ý¶ÔÓ¦Á´ÖеĹæÔò ¡£Ê¾ÀýÌåÏÖɾ³ýfilter±íÖÐINPUTÁ´ÖÐÐòºÅΪ3µÄ¹æÔò ¡££º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -D Á´Ãû ¹æÔòÐòºÅʾÀý£ºiptables -t filter -D INPUT 3

µÇ¼ºó¸´ÖÆ
ƾ֤ÏêϸµÄÆ¥ÅäÌõ¼þÓëÐж¯É¾³ý¹æÔò£¬É¾³ýÖ¸¶¨±íµÄÖ¸¶¨Á´µÄÖ¸¶¨¹æÔò ¡£Ê¾ÀýÌåÏÖɾ³ýfilter±íÖÐINPUTÁ´ÖÐÔ´µØµãΪ192.168.1.146²¢ÇÒÐж¯ÎªDROPµÄ¹æÔò ¡££º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -D Á´Ãû Æ¥ÅäÌõ¼þ -j Ðж¯Ê¾Àý£ºiptables -t filter -D INPUT -s 192.168.1.146 -j DROP

µÇ¼ºó¸´ÖÆ
ɾ³ýÖ¸¶¨±íµÄÖ¸¶¨Á´ÖеÄËùÓйæÔò£¬-FÑ¡ÏîÌåÏÖÇå¿Õ¶ÔÓ¦Á´ÖеĹæÔò£º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -F Á´ÃûʾÀý£ºiptables -t filter -F INPUT

µÇ¼ºó¸´ÖÆ

Ð޸ĹæÔò

ÐÞ¸ÄÖ¸¶¨±íÖÐÖ¸¶¨Á´µÄÖ¸¶¨¹æÔò£¬-R Ñ¡ÏîÌåÏÖÐ޸ĶÔÓ¦Á´ÖеĹæÔò£¬Ê¹Óà -R Ñ¡ÏîʱҪͬʱָ¶¨¶ÔÓ¦µÄÁ´ÒÔ¼°¹æÔò¶ÔÓ¦µÄÐòºÅ£¬²¢ÇÒ¹æÔòÖÐÔ­±¾µÄÆ¥ÅäÌõ¼þ²»¿ÉÊ¡ÂÔ ¡£Ê¾ÀýÌåÏÖÐÞ¸Äfilter±íÖÐINPUTÁ´µÄµÚ3Ìõ¹æÔò£¬½«ÕâÌõ¹æÔòµÄÐж¯ÐÞ¸ÄΪACCEPT£¬ -s 192.168.1.146ΪÕâÌõ¹æÔòÖÐÔ­±¾µÄÆ¥ÅäÌõ¼þ£¬ÈôÊÇÊ¡ÂÔ´ËÆ¥ÅäÌõ¼þ£¬Ð޸ĺóµÄ¹æÔòÖеÄÔ´µØµã¿ÉÄÜ»á±äΪ0.0.0.0/0£º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -R Á´Ãû ¹æÔòÐòºÅ ¹æÔòÔ­±¾µÄÆ¥ÅäÌõ¼þ -j Ðж¯Ê¾Àý£ºiptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

µÇ¼ºó¸´ÖÆ
ÉèÖÃÖ¸¶¨±íµÄÖ¸¶¨Á´µÄĬÈÏÕ½ÂÔ£¨Ä¬ÈÏÐж¯£©£º

ÏÂÁîÓï·¨£ºiptables -t ±íÃû -P Á´Ãû Ðж¯Ê¾Àý£ºiptables -t filter -P FORWARD ACCEPT

µÇ¼ºó¸´ÖÆ

ÉúÑĹæÔò

·½·¨Ò»

µ±ÎÒÃǶԹæÔò¾ÙÐÐÁËÐÞ¸ÄÒÔºó£¬ÈôÊÇÏëÒªÐÞ¸ÄÓÀÊÀÉúЧ£¬±ØÐèʹÓÃÏÂÃæÏÂÁîÉúÑĹæÔò£º

service iptables save

µÇ¼ºó¸´ÖÆ
ËäÈ»£¬ÈôÊÇÄãÎó²Ù×÷Á˹æÔò£¬¿ÉÊDz¢Ã»ÓÐÉúÑÄ£¬ÄÇôʹÓà service iptables restart ÏÂÁîÖØÆô iptables ÒԺ󣬹æÔò»áÔٴλص½ÉÏ´ÎÉúÑÄ /etc/sysconfig/iptables ÎļþʱµÄÈÝò ¡£
centos7 ÖУ¬ÒѾ­²»ÔÙʹÓà init Æø¸ÅµÄ¾ç±¾Æô¶¯Ð§ÀÍ£¬¶øÊÇʹÓà unit Îļþ£¬ÒÔÊÇ£¬ÔÚ centos7 ÖÐÒѾ­²»¿ÉÔÙʹÓÃÀàËÆ service iptables start ÕâÑùµÄÏÂÁîÁË£¬ÒÔÊÇ service iptables save Ò²ÎÞ·¨Ö´ÐУ¬Í¬Ê±£¬ÔÚ centos7ÖУ¬Ê¹Óà firewall Ìæ»»ÁËÔ­À´µÄ iptables service£¬²»¹ý²»±Øµ£ÐÄ£¬ÎÒÃÇֻҪͨ¹ý yum Ô´×°Öà iptablesÓëiptables-services ¼´¿É£¨iptables Ò»Ñùƽ³£»á±»Ä¬ÈÏ×°Ö㬿ÉÊÇiptables-services ÔÚ centos7 ÖÐÒ»Ñùƽ³£²»»á±»Ä¬ÈÏ×°Öã©£¬ÔÚcentos7 ÖÐ×°ÖÃÍê iptables-services ºó£¬¼´¿ÉÏñ centos6 ÖÐÒ»Ñù£¬Í¨¹ý service iptables save ÏÂÁîÉúÑĹæÔòÁË£¬¹æÔòͬÑùÉúÑÄÔÚ /etc/sysconfig/iptables ÎļþÖÐ ¡£´Ë´¦¸ø³ö centos7 ÖÐÉèÖà iptables-service µÄ°ì·¨£º

#ÉèÖúÃyumÔ´ÒÔºó×°ÖÃiptables-serviceyum install -y iptables-services#×èÖ¹firewalldsystemctl stop firewalld#եȡfirewalld×Ô¶¯Æô¶¯systemctl disable firewalld#Æô¶¯iptablessystemctl start iptables#½«iptablesÉèÖÃΪ¿ª»ú×Ô¶¯Æô¶¯£¬ÒÔºó¼´¿Éͨ¹ýiptables-service¿ØÖÆiptablesЧÀÍsystemctl enable iptables

µÇ¼ºó¸´ÖÆ
ÉÏÊöÉèÖÃÀú³ÌÖ»ÐèÒ»´Î£¬ÒÔºó¼´¿ÉÔÚ centos7 ÖÐʹÓà service iptables save ÏÂÁîÉúÑÄ iptables ¹æÔòÁË ¡£

·½·¨¶þ

»¹¿ÉÒÔʹÓÃÁíÒ»ÖÖÒªÁìÉúÑÄ iptables ¹æÔò£¬¾ÍÊÇʹÓà iptables-save ÏÂÁî ¡£Ê¹Óà iptables-save ²¢²»¿ÉÉúÑÄÄ¿½ñµÄ iptables ¹æÔò£¬¿ÉÊÇ¿ÉÒÔ½«Ä¿½ñµÄ iptables ¹æÔòÒÔ¡±ÉúÑĺóµÄÃûÌá±Êä³öµ½ÆÁÄ»ÉÏ ¡£
ÒÔÊÇ£¬ÎÒÃÇ¿ÉÒÔʹÓà iptables-save ÏÂÁÔÙÅäºÏÖض¨Ïò£¬½«¹æÔòÖض¨Ïòµ½ /etc/sysconfig/iptables ÎļþÖм´¿É ¡£

iptables-save > /etc/sysconfig/iptables

µÇ¼ºó¸´ÖÆ

¼ÓÔعæÔò

ÎÒÃÇÒ²¿ÉÒÔ½« /etc/sysconfig/iptables ÖеĹæÔòÖØÐÂÔØÈëΪĿ½ñµÄiptables ¹æÔò£¬¿ÉÊÇ×¢ÖØ£¬Î´ÉúÑÄÈë /etc/sysconfig/iptables ÎļþÖеÄÐ޸Ľ«»áɥʧ»òÕß±»ÁýÕÖ ¡£
ʹÓà iptables-restore ÏÂÁî¿ÉÒÔ´ÓÖ¸¶¨ÎļþÖÐÖØÔعæÔò£¬Ê¾ÀýÈçÏÂ

iptables-restore < /etc/sysconfig/iptables

µÇ¼ºó¸´ÖÆ

Æ¥ÅäÌõ¼þ

µ±¹æÔòÖÐͬʱ±£´æ¶à¸öÆ¥ÅäÌõ¼þʱ£¬¶à¸öÌõ¼þÖ®¼äĬÈϱ£´æ¡±Ó롱µÄ¹Øϵ£¬¼´±¨ÎıØÐèͬʱ֪×ãËùÓÐÌõ¼þ£¬²Å»ª±»¹æÔòÆ¥Åä ¡£
-s ÓÃÓÚÆ¥Å䱨ÎĵÄÔ´µØµã,¿ÉÒÔͬʱָ¶¨¶à¸öÔ´µØµã£¬Ã¿¸öIPÖ®¼äÓöººÅÀë¸ô£¬Ò²¿ÉÒÔÖ¸¶¨ÎªÒ»¸öÍø¶Î ¡£

#ʾÀýÈçÏÂiptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROPiptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPTiptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT

µÇ¼ºó¸´ÖÆ
-d ÓÃÓÚÆ¥Å䱨ÎĵÄÄ¿µÄµØµã,¿ÉÒÔͬʱָ¶¨¶à¸öÄ¿µÄµØµã£¬Ã¿¸ö IP Ö®¼äÓöººÅÀë¸ô£¬Ò²¿ÉÒÔÖ¸¶¨ÎªÒ»¸öÍø¶Î ¡£

#ʾÀýÈçÏÂiptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROPiptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPTiptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT

µÇ¼ºó¸´ÖÆ
-p ÓÃÓÚÆ¥Å䱨ÎĵÄЭÒéÀàÐÍ,¿ÉÒÔÆ¥ÅäµÄЭÒéÀàÐÍ tcp¡¢udp¡¢udplite¡¢icmp¡¢esp¡¢ah¡¢sctp µÈ£¨centos7 Öл¹Ö§³Ö icmpv6¡¢mh£© ¡£

#ʾÀýÈçÏÂiptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPTiptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT

µÇ¼ºó¸´ÖÆ
-i ÓÃÓÚÆ¥Å䱨ÎÄÊÇ´ÓÄĸöÍø¿¨½Ó¿ÚÁ÷Èë±¾»úµÄ£¬ÓÉÓÚÆ¥ÅäÌõ¼þÖ»ÊÇÓÃÓÚÆ¥Å䱨ÎÄÁ÷ÈëµÄÍø¿¨£¬ÒÔÊÇÔÚ OUTPUT Á´Óë POSTROUTING Á´Öв»¿ÉʹÓôËÑ¡Ïî ¡£

#ʾÀýÈçÏÂiptables -t filter -I INPUT -p icmp -i eth4 -j DROPiptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP

µÇ¼ºó¸´ÖÆ
-o ÓÃÓÚÆ¥Å䱨ÎĽ«Òª´ÓÄĸöÍø¿¨½Ó¿ÚÁ÷³ö±¾»ú£¬ÓÚÆ¥ÅäÌõ¼þÖ»ÊÇÓÃÓÚÆ¥Å䱨ÎÄÁ÷³öµÄÍø¿¨£¬ÒÔÊÇÔÚ INPUT Á´Óë PREROUTING Á´Öв»¿ÉʹÓôËÑ¡Ïî ¡£

#ʾÀýÈçÏÂiptables -t filter -I OUTPUT -p icmp -o eth4 -j DROPiptables -t filter -I OUTPUT -p icmp ! -o eth4 -j DROP

µÇ¼ºó¸´ÖÆ

À©Õ¹Æ¥ÅäÌõ¼þ

tcpÀ©Õ¹Ä£¿é

³£ÓõÄÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

¨Csport£ºÓÃÓÚÆ¥Åä tcp ЭÒ鱨ÎĵÄÔ´¶Ë¿Ú£¬¿ÉÒÔʹÓÃðºÅÖ¸¶¨Ò»¸öÒ»Á¬µÄ¶Ë¿Ú¹æÄ£ ¡£

¨Cdport£ºÓÃÓÚÆ¥Åä tcp ЭÒ鱨ÎĵÄÄ¿µÄ¶Ë¿Ú£¬¿ÉÒÔʹÓÃðºÅÖ¸¶¨Ò»¸öÒ»Á¬µÄ¶Ë¿Ú¹æÄ£ ¡£

¨Ctcp-flags£ºÓÃÓÚÆ¥Å䱨ÎĵÄtcpÍ·µÄ±ê¼Çλ ¡£

¨Csyn£ºÓÃÓÚÆ¥Åä tcp н¨ÅþÁ¬µÄÇëÇó±¨ÎÄ£¬Ï൱ÓÚʹÓà ¨Ctcp-flags SYN,RST,ACK,FIN SYN  ¡£

×¢ÖØ£¬-p tcpÓë -m tcp ²¢²»³åÍ»£¬-p ÓÃÓÚÆ¥Å䱨ÎĵÄЭÒ飬-m ÓÃÓÚÖ¸¶¨À©Õ¹Ä£¿éµÄÃû³Æ£¬ÕýºÃ£¬Õâ¸öÀ©Õ¹Ä£¿éÒ²½Ð tcp ¡£

#ʾÀýÈçÏÂiptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECTiptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp ! --sport 22 -j ACCEPTiptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECTiptables -t filter -I OUTPUT -p tcp -m tcp --sport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECTiptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags ALL SYN -j REJECTiptables -t filter -I OUTPUT -p tcp -m tcp --sport 22 --tcp-flags ALL SYN,ACK -j REJECTiptables -t filter -I INPUT -p tcp -m tcp --dport 22 --syn -j REJECT

µÇ¼ºó¸´ÖÆ

udp À©Õ¹Ä£¿é

³£ÓõÄÀ©Õ¹Æ¥ÅäÌõ¼þ£º

¨Csport£ºÆ¥Åäudp±¨ÎĵÄÔ´µØµã ¡£

¨Cdport£ºÆ¥Åäudp±¨ÎĵÄÄ¿µÄµØµã ¡£

#ʾÀýiptables -t filter -I INPUT -p udp -m udp --dport 137 -j ACCEPTiptables -t filter -I INPUT -p udp -m udp --dport 137:157 -j ACCEPT

µÇ¼ºó¸´ÖÆ

icmp À©Õ¹Ä£¿é

³£ÓõÄÀ©Õ¹Æ¥ÅäÌõ¼þ£º

¨Cicmp-type£ºÆ¥Åäicmp±¨ÎĵÄÏêϸÀàÐÍ ¡£

#ʾÀýiptables -t filter -I INPUT -p icmp -m icmp --icmp-type 8/0 -j REJECTiptables -t filter -I INPUT -p icmp --icmp-type 8 -j REJECTiptables -t filter -I OUTPUT -p icmp -m icmp --icmp-type 0/0 -j REJECTiptables -t filter -I OUTPUT -p icmp --icmp-type 0 -j REJECTiptables -t filter -I INPUT -p icmp --icmp-type "echo-request" -j REJECT

µÇ¼ºó¸´ÖÆ

multiport À©Õ¹Ä£¿é

³£ÓõÄÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

-p tcp -m multiport ¨Csports ÓÃÓÚÆ¥Å䱨ÎĵÄÔ´¶Ë¿Ú£¬¿ÉÒÔÖ¸¶¨ÀëÉ¢µÄ¶à¸ö¶Ë¿ÚºÅ,¶Ë¿ÚÖ®¼äÓᱶººÅ¡±Àë¸ô ¡£

-p udp -m multiport ¨Cdports ÓÃÓÚÆ¥Å䱨ÎĵÄÄ¿µÄ¶Ë¿Ú£¬¿ÉÒÔÖ¸¶¨ÀëÉ¢µÄ¶à¸ö¶Ë¿ÚºÅ£¬¶Ë¿ÚÖ®¼äÓᱶººÅ¡±Àë¸ô ¡£

#ʾÀýÈçÏÂiptables -t filter -I OUTPUT -d 192.168.1.146 -p udp -m multiport --sports 137,138 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport ! --dports 22,80 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 80:88 -j REJECTiptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80:88 -j REJECT

µÇ¼ºó¸´ÖÆ

iprange Ä£¿é

°üÀ¨µÄÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

¨Csrc-range£ºÖ¸¶¨Ò»Á¬µÄÔ´µØµã¹æÄ£ ¡£

¨Cdst-range£ºÖ¸¶¨Ò»Á¬µÄÄ¿µÄµØµã¹æÄ£ ¡£

#ʾÀýiptables -t filter -I INPUT -m iprange --src-range 192.168.1.127-192.168.1.146 -j DROPiptables -t filter -I OUTPUT -m iprange --dst-range 192.168.1.127-192.168.1.146 -j DROPiptables -t filter -I INPUT -m iprange ! --src-range 192.168.1.127-192.168.1.146 -j DROP

µÇ¼ºó¸´ÖÆ

Å£±Æ°¡£¡½Ó˽»î±Ø±¸µÄ N ¸ö¿ªÔ´ÏîÄ¿£¡¸ÏæÕä²Ø

µÇ¼ºó¸´ÖÆ

string Ä£¿é

³£ÓÃÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

¨Calgo£ºÖ¸¶¨¶ÔÓ¦µÄÆ¥ÅäËã·¨£¬¿ÉÓÃË㷨Ϊbm¡¢kmp£¬´ËÑ¡ÏîΪ±ØÐèÑ¡Ïî ¡£

¨Cstring£ºÖ¸¶¨ÐèҪƥÅäµÄ×Ö·û´®

ÎÒÃÇÏëÒªµÖ´ïµÄÄ¿µÄÊÇ£¬ÈôÊDZ¨ÎÄÖаüÀ¨¡±OOXX¡±×Ö·û£¬ÎÒÃǾ;ܾø±¨ÎĽøÈë±¾»ú£º

#ʾÀý
iptables -t filter -I INPUT -m string --algo bm --string "OOXX" -j REJECT

µÇ¼ºó¸´ÖÆ

time Ä£¿é

³£ÓÃÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

¨Ctimestart£ºÓÃÓÚָ׼ʱ¼ä¹æÄ£µÄ×îÏÈʱ¼ä£¬²»¿ÉÈ¡·´ ¡£

¨Ctimestop£ºÓÃÓÚָ׼ʱ¼ä¹æÄ£µÄ¿¢ÊÂʱ¼ä£¬²»¿ÉÈ¡·´ ¡£

¨Cweekdays£ºÓÃÓÚÖ¸¶¨¡±ÐÇÆÚ¼¸¡±£¬¿ÉÈ¡·´ ¡£

¨Cmonthdays£ºÓÃÓÚÖ¸¶¨¡±¼¸ºÅ¡±£¬¿ÉÈ¡·´ ¡£

¨Cdatestart£ºÓÃÓÚÖ¸¶¨ÈÕÆÚ¹æÄ£µÄ×îÏÈÈÕÆÚ£¬²»¿ÉÈ¡·´ ¡£

¨Cdatestop£ºÓÃÓÚÖ¸¶¨ÈÕÆÚ¹æÄ£µÄ¿¢ÊÂʱ¼ä£¬²»¿ÉÈ¡·´ ¡£

#ʾÀý
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 443 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time ! --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 5 --monthdays 22,23,24,25,26,27,28 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --datestart 2017-12-24 --datestop 2017-12-27 -j REJECT

µÇ¼ºó¸´ÖÆ

connlimit Ä£¿é

³£ÓõÄÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

¨Cconnlimit-above£ºµ¥¶ÀʹÓôËÑ¡Ïîʱ£¬ÌåÏÖÏÞÖÆÿ¸öIPµÄÁ´½ÓÊýÄ¿ ¡£

¨Cconnlimit-mask£º´ËÑ¡Ïî²»¿Éµ¥¶ÀʹÓã¬ÔÚʹÓèCconnlimit-aboveÑ¡Ïîʱ£¬ÅäºÏ´ËÑ¡ÏÔò¿ÉÒÔÕë¶Ô¡±Ä³ÀàIP¶ÎÄÚµÄÒ»¶¨ÃüÄ¿µÄIP¡±¾ÙÐÐÅþÁ¬ÊýÄ¿µÄÏÞÖÆ£¬ÈôÊDz»Ã÷È·¿ÉÒԲο¼ÉÏÎĵÄÏêϸڹÊÍ ¡£

#ʾÀý
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 --connlimit-mask 27 -j REJECT

µÇ¼ºó¸´ÖÆ

limit Ä£¿é

connlimit Ä£¿éÊǶÔÅþÁ¬ÊýÄ¿¾ÙÐÐÏÞÖƵÄ£¬limit Ä£¿éÊǶԡ±±¨ÎĵִïËÙÂÊ¡±¾ÙÐÐÏÞÖƵÄ ¡£ÓÃÃ÷È·»°Ëµ¾ÍÊÇ£¬ÈôÊÇÎÒÏëÒªÏÞÖƵ¥Î»Ê±¼äÄÚÁ÷ÈëµÄ°üµÄÊýÄ¿£¬¾ÍÄÜÓà limit Ä£¿é ¡£ÎÒÃÇ¿ÉÒÔÒÔÃëΪµ¥Î»¾ÙÐÐÏÞÖÆ£¬Ò²¿ÉÒÔÒÔ·ÖÖÓ¡¢Ð¡Ê±¡¢Ìì×÷Ϊµ¥Î»¾ÙÐÐÏÞÖÆ ¡£³£ÓõÄÀ©Õ¹Æ¥ÅäÌõ¼þÈçÏ£º

¨Climit-burst£ºÀà±È¡±ÁîÅÆÍ°¡±Ëã·¨£¬´ËÑ¡ÏîÓÃÓÚÖ¸¶¨ÁîÅÆÍ°ÖÐÁîÅƵÄ×î´óÊýÄ¿ ¡£

¨Climit£ºÀà±È¡±ÁîÅÆÍ°¡±Ëã·¨£¬´ËÑ¡ÏîÓÃÓÚÖ¸¶¨ÁîÅÆÍ°ÖÐÌìÉúÐÂÁîÅƵÄƵÂÊ£¬¿ÉÓÃʱ¼äµ¥Î»ÓÐsecond¡¢minute ¡¢hour¡¢day ¡£

ʾÀýÌåÏÖÏÞÖÆÍⲿÖ÷»ú¶Ô±¾»ú¾ÙÐÐping²Ù×÷ʱ£¬±¾»ú×î¶àÿ6ÃëÖзÅÐÐÒ»¸öping°ü

#ʾÀý£¬×¢ÖØ£¬ÈçÏÂÁ½Ìõ¹æÔòÐèÅäºÏʹÓÃ
#ÁîÅÆÍ°ÖÐ×î¶àÄÜ´æ·Å3¸öÁîÅÆ£¬Ã¿·ÖÖÓÌìÉú10¸öÁîÅÆ£¨¼´6ÃëÖÓÌìÉúÒ»¸öÁîÅÆ£©¡£
iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT
#ĬÈϽ«icmp°üÑïÆú
iptables -t filter -A INPUT -p icmp -j REJECT

µÇ¼ºó¸´ÖÆ

state À©Õ¹Ä£¿é

µ±ÎÒÃÇͨ¹ý http µÄ url »á¼ûij¸öÍøÕ¾µÄÍøҳʱ£¬¿Í»§¶ËÏòЧÀÍ¶ËµÄ 80 ¶Ë¿ÚÌᳫÇëÇó£¬Ð§ÀͶËÔÙͨ¹ý 80 ¶Ë¿ÚÏìÓ¦×ðÁú¿­Ê±ÇëÇó£¬ÓÚÊÇ£¬×÷Ϊ¿Í»§¶Ë£¬ÎÒÃÇËƺõÓ¦¸ÃÀíËùÓ¦µ±µÄ·ÅÐÐ 80 ¶Ë¿Ú£¬ÒÔÑàЧÀͶ˻ØÓ¦×ðÁú¿­Ê±±¨ÎÄ¿ÉÒÔ½øÈë¿Í»§¶ËÖ÷»ú£¬ÓÚÊÇ£¬ÎÒÃÇÔÚ¿Í»§¶Ë·ÅÐÐÁË 80 ¶Ë¿Ú£¬Í¬Àí£¬µ±ÎÒÃÇͨ¹ý ssh ¹¤¾ßÔ¶³ÌÅþÁ¬µ½Ä³Ì¨Ð§ÀÍÆ÷ʱ£¬¿Í»§¶ËÏòЧÀÍ¶ËµÄ 22 ºÅ¶Ë¿ÚÌᳫÇëÇó£¬Ð§ÀͶËÔÙͨ¹ý 22 ºÅ¶Ë¿ÚÏìÓ¦×ðÁú¿­Ê±ÇëÇó£¬ÓÚÊÇÎÒÃÇÀíËùÓ¦µ±µÄ·ÅÐÐÁËËùÓÐ 22 ºÅ¶Ë¿Ú£¬ÒÔ±ãÔ¶³ÌÖ÷»úµÄÏìÓ¦ÇëÇóÄܹ»Í¨¹ý·À»ðǽ£¬¿ÉÊÇ£¬×÷Ϊ¿Í»§¶Ë£¬ÈôÊÇÎÒÃDz¢Ã»ÓÐ×Ô¶¯Ïò 80 ¶Ë¿ÚÌᳫÇëÇó£¬Ò²Ã»ÓÐ×Ô¶¯Ïò 22 ºÅ¶Ë¿ÚÌᳫÇëÇó£¬ÄÇôÆäËûÖ÷»úͨ¹ý 80 ¶Ë¿Ú»òÕß 22 ºÅ¶Ë¿ÚÏòÎÒÃÇ·¢ËÍÊý¾Ýʱ£¬ÎÒÃÇ¿ÉÒÔÎüÊÕµ½Âð£¿Ó¦¸ÃÊÇ¿ÉÒԵģ¬ÓÉÓÚÎÒÃÇΪÁËÊÕµ½ http Óë ssh µÄÏìÓ¦±¨ÎÄ£¬ÒѾ­·ÅÐÐÁË 80 ¶Ë¿ÚÓë 22 ºÅ¶Ë¿Ú£¬ÒÔÊÇ£¬²»¹ÜÊÇ¡±ÏìÓ¦¡±×ðÁú¿­Ê±±¨ÎÄ£¬Õվɡ±×Ô¶¯·¢ËÍ¡±¸ø×ðÁú¿­Ê±±¨ÎÄ£¬Ó¦¸Ã¶¼ÊÇ¿ÉÒÔͨ¹ýÕâÁ½¸ö¶Ë¿ÚµÄ£¬ÄÇô×ÐϸÏëÏ룬ÕâÑùÊDz»ÊDz»Ì«Çå¾²ÄØ£¿´Ëʱ state À©Õ¹Ä£¿é¾ÍÅÉÉÏÓó¡ÁË ¡£
¹ØÓÚ state Ä£¿éµÄÅþÁ¬¶øÑÔ£¬¡±ÅþÁ¬¡±ÆäÖеı¨ÎÄ¿ÉÒÔ·ÖΪ5ÖÖ״̬£¬»®·ÖΪ£º

NEW£ºÅþÁ¬ÖеĵÚÒ»¸ö°ü£¬×´Ì¬¾ÍÊÇ NEW£¬ÎÒÃÇ¿ÉÒÔÃ÷ȷΪÐÂÅþÁ¬µÄµÚÒ»¸ö°üµÄ״̬Ϊ NEW ¡£

ESTABLISHED£ºÎÒÃÇ¿ÉÒÔ°Ñ NEW ״̬°üºóÃæµÄ°üµÄ״̬Ã÷ȷΪ ESTABLISHED£¬ÌåÏÖÅþÁ¬Òѽ¨Éè ¡£

RELATED£º´Ó×ÖÃæÉÏÃ÷È· RELATED ÒëΪ¹Øϵ£¬¿ÉÊÇÕâÑùÈÔÈ»½ûÖ¹Ò×Ã÷È·£¬ÎÒÃǾٸöÀý×Ó ¡£ºÃ±È FTP ЧÀÍ£¬FTP ЧÀͶ˻ὨÉèÁ½¸öÀú³Ì£¬Ò»¸öÏÂÁîÀú³Ì£¬Ò»¸öÊý¾ÝÀú³Ì ¡£ÏÂÁîÀú³ÌÈÏÕæЧÀͶËÓë¿Í»§¶ËÖ®¼äµÄÏÂÁî´«Ê䣨ÎÒÃÇ¿ÉÒÔ°ÑÕâ¸ö´«ÊäÀú³ÌÃ÷È·³É state ÖÐËùνµÄÒ»¸ö¡±ÅþÁ¬¡±£¬ÔݳÆΪ¡±ÏÂÁîÅþÁ¬¡±£© ¡£Êý¾ÝÀú³ÌÈÏÕæЧÀͶËÓë¿Í»§¶ËÖ®¼äµÄÊý¾Ý´«Êä (ÎÒÃÇ°ÑÕâ¸öÀú³ÌÔݳÆΪ¡±Êý¾ÝÅþÁ¬¡±) ¡£¿ÉÊÇÏêϸ´«ÊäÄÄЩÊý¾Ý£¬ÊÇÓÉÏÂÁîÈ¥¿ØÖƵÄ£¬ÒÔÊÇ£¬¡±Êý¾ÝÅþÁ¬¡±Öеı¨ÎÄÓ롱ÏÂÁîÅþÁ¬¡±ÊÇÓС±¹Øϵ¡±µÄ ¡£ÄÇô£¬¡±Êý¾ÝÅþÁ¬¡±Öеı¨ÎÄ¿ÉÄܾÍÊÇ RELATED ״̬£¬ÓÉÓÚÕâЩ±¨ÎÄÓ롱ÏÂÁîÅþÁ¬¡±Öеı¨ÎÄÓйØϵ ¡£(×¢£ºÈôÊÇÏëÒª¶Ôftp¾ÙÐÐÅþÁ¬×·×Ù£¬ÐèÒªµ¥¶À¼ÓÔضÔÓ¦µÄÄÚºËÄ£¿é nf_conntrack_ftp£¬ÈôÊÇÏëÒª×Ô¶¯¼ÓÔØ£¬¿ÉÒÔÉèÖà /etc/sysconfig/iptables-config Îļþ)

INVALID£ºÈôÊÇÒ»¸ö°üûÓв½·¥±»Ê¶±ð£¬»òÕßÕâ¸ö°üûÓÐÈκÎ״̬£¬ÄÇôÕâ¸ö°üµÄ״̬¾ÍÊÇ INVALID£¬ÎÒÃÇ¿ÉÒÔ×Ô¶¯ÆÁÕÏ״̬Ϊ INVALID µÄ±¨ÎÄ ¡£

UNTRACKED£º±¨ÎĵÄ״̬Ϊ untracked ʱ£¬ÌåÏÖ±¨ÎÄδ±»×·×Ù£¬µ±±¨ÎĵÄ״̬Ϊ Untracked ʱͨ³£ÌåÏÖÎÞ·¨ÕÒµ½Ïà¹ØµÄÅþÁ¬ ¡£

ÊʲžÙÀýÖеÄÎÊÌâ¼´¿ÉʹÓà state À©Õ¹Ä£¿é½â¾ö£¬ÎÒÃÇÖ»Òª·ÅÐÐ״̬Ϊ ESTABLISHED µÄ±¨Îļ´¿É£¬ÓÉÓÚÈôÊDZ¨ÎĵÄ״̬Ϊ ESTABLISHED£¬ÄÇô±¨ÎÄÒ»¶¨ÊÇ֮ǰ·¢³öµÄ±¨ÎĵĻØÓ¦£¬ÕâÑù£¬¾ÍÌåÏÖÖ»ÓлØÓ¦×ðÁú¿­Ê±±¨ÎÄÄܹ»Í¨¹ý·À»ðǽ£¬ÈôÊÇÊDZðÈË×Ô¶¯·¢Ë͹ýÀ´µÄеı¨ÎÄ£¬ÔòÎÞ·¨Í¨¹ý·À»ðǽ£º

iptables -t filter -I INPUT -m state --state ESTABLISHED -j ACCEPT

µÇ¼ºó¸´ÖÆ

mangle ±í

mangle ±íµÄÖ÷Òª¹¦Ð§ÊÇƾ֤¹æÔòÐÞ¸ÄÊý¾Ý°üµÄһЩ±ê¼Ç룬ÒÔ±ãÆäËû¹æÔò»ò³ÌÐò¿ÉÒÔʹÓÃÕâÖÖ±ê¼Ç¶ÔÊý¾Ý°ü¾ÙÐйýÂË»òÕ½ÂÔ·ÓÉ ¡£mangle ±íÖ÷ÒªÓÐÒÔÏ 3 ÖÖ²Ù×÷£º

TOS£ºÓÃÀ´ÉèÖûò¸Ä±äÊý¾Ý°üµÄЧÀÍÀàÐÍÓò ¡£Õâ³£ÓÃÀ´ÉèÖÃÍøÂçÉϵÄÊý¾Ý°üÔõÑù±»Â·ÓɵÈÕ½ÂÔ ¡£×¢ÖØÕâ¸ö²Ù×÷²¢²»ÍêÉÆ£¬ÓÐʱµÃ²»ËùÔ¸ ¡£ËüÔÚInternet ÉÏ»¹²»¿ÉʹÓ㬲¢ÇÒÐí¶à·ÓÉÆ÷²»»á×¢Öص½Õâ¸öÓòÖµ ¡£»»¾ä»°Ëµ£¬²»ÒªÉèÖ÷¢Íù Internet µÄ°ü£¬³ý·ÇÄãÍýÏëÒÀÀµ TOS À´Â·ÓÉ£¬ºÃ±ÈÓà iproute2 ¡£

TTL£ºÓÃÀ´¸Ä±äÊý¾Ý°üµÄÉúÑÄʱ¼äÓò£¬ÎÒÃÇ¿ÉÒÔÈÃËùÓÐÊý¾Ý°üÖ»ÓÐÒ»¸öÌØÊâµÄ TTL ¡£ËüµÄ±£´æÓÐ Ò»¸öºÜºÃµÄÀíÓÉ£¬ÄǾÍÊÇÎÒÃÇ¿ÉÒÔÓÕƭһЩISP ¡£ÎªÊ²Ã´ÒªÓÕÆ­ËûÃÇÄØ£¿ÓÉÓÚËûÃDz»¿ÏÒâÈÃÎÒÃǹ²ÏíÒ»¸öÅþÁ¬ ¡£ÄÇЩ ISP »á²éÕÒһ̨µ¥¶ÀµÄÅÌËã»úÊÇ·ñʹÓòî±ðµÄ TTL£¬²¢ÇÒÒÔ´Ë×÷ΪÅжÏÅþÁ¬ÊÇ·ñ±»¹²ÏíµÄ±ê¼Ç ¡£

MARK ÓÃÀ´¸ø°üÉèÖÃÌØÊâµÄ±ê¼Ç ¡£iproute 2ÄÜʶ±ðÕâЩ±ê¼Ç£¬²¢Æ¾Ö¤²î±ðµÄ±ê¼Ç£¨»òûÓбê¼Ç£© ¾öÒé²î±ðµÄ·ÓÉ ¡£ÓÃÕâЩ±ê¼ÇÎÒÃÇ¿ÉÒÔ×ö´øÍÑÆÚÖƺͻùÓÚÇëÇóµÄ·ÖÀà ¡£

ÀýÈçÄÚÍøµÄ¿Í»§¶Ëͨ¹ý Linux Ö÷»úÁ¬Èë Internet£¬¶ø Linux Ö÷»úÓëInternet ÅþÁ¬Ê±ÓÐÁ½ÌõÏß·£¬ËüÃǵÄÍø¹ØÈçͼËùʾ ¡£ÏÖÒªÇó¶ÔÄÚÍø¾ÙÐÐÕ½ÂÔ·ÓÉ£¬ËùÓÐͨ¹ý TCP ЭÒé»á¼û 80 ¶Ë¿ÚµÄÊý¾Ý°ü¶¼´Ó ChinaNet Ïß·³öÈ¥£¬¶øËùÓлá¼û UDP ЭÒé 53 ºÅ¶Ë¿ÚµÄÊý¾Ý°ü¶¼´Ó Cernet Ïß·³öÈ¥ ¡£
²»»áÓà Linux ·À»ðǽÈí¼þ IPtables£¡ÄãËãɶÔËάÈË£¡
ÕâÊÇÒ»¸öÕ½ÂÔ·ÓɵÄÎÊÌ⣬ΪÁ˵ִïÄ¿µÄ£¬ÔÚ¶ÔÊý¾Ý°ü¾ÙÐзÓÉÇ°£¬ÒªÏÈƾ֤Êý¾Ý°üµÄЭæźÍÄ¿µÄ¶Ë¿Ú¸øÊý¾Ý°ü×öÉÏÒ»ÖÖ±ê¼Ç£¬È»ºóÔÙÖ¸¶¨ÏìÓ¦¹æÔò£¬Æ¾Ö¤Êý¾Ý°üµÄ±ê¼Ç¾ÙÐÐÕ½ÂÔ·ÓÉ ¡£ÎªÁ˸øÌض¨µÄÊý¾Ý°ü×öÉϱê¼Ç£¬ÐèҪʹÓÃmangle ±í£¬mangle ±í¹²ÓÐ 5 ÌõÁ´£¬ÓÉÓÚÐèÒªÔÚ·ÓÉÑ¡ÔñÇ°×ö±ê¼Ç£¬Òò´ËÓ¦¸ÃʹÓà PREROUTING Á´£¬ÏÂÃæÊÇÏêϸµÄÏÂÁ

iptables -t mangle -A PREROUTING -i eth0 -p tcp --dport 80 -j MARK --set-mark 1;
iptables -t mangle -A PREROUTING -i eth0 -p udp --dprot 53 -j MARK --set-mark 2;

µÇ¼ºó¸´ÖÆ
Êý¾Ý°ü¾­ÓÉ PREROUTING Á´ºó£¬½«Òª½øÈë·ÓÉÑ¡ÔñÄ£¿é£¬ÎªÁ˶ÔÆä¾ÙÐÐÕ½ÂÔ·ÓÉ£¬Ö´ÐÐÒÔÏÂÁ½ÌõÏÂÁÌí¼ÓÏìÓ¦µÄ¹æÔò£º

ip rule add from all fwmark 1 table 10
ip rule add from all fwmark 2 table 20

µÇ¼ºó¸´ÖÆ
ÒÔÉÏÁ½ÌõÏÂÁîÌåÏÖËùÓбê¼ÇÊÇ1µÄÊý¾Ý°üʹÓ÷Óɱí 10 ¾ÙÐзÓÉ£¬¶øËùÓбê¼ÇÊÇ 2 µÄÊý¾Ý°üʹÓ÷Óɱí 20 ¾ÙÐзÓÉ ¡£Â·Óɱí 10 ºÍ 20 »®·ÖʹÓÃÁË ChinaNet ºÍ Cernet Ïß·ÉϵÄÍø¹Ø×÷ΪĬÈÏÍø¹Ø£¬ÏêϸÉèÖÃÏÂÁîÈçÏÂËùʾ£º

ip route add default via 10.10.1.1 dev eth1 table 10
ip route add default via 10.10.2.1 dev eth2 table 20

µÇ¼ºó¸´ÖÆ
ÒÔÉÏÁ½ÌõÏÂÁîÔÚ·Óɱí 10 ºÍ 20 ÉÏ»®·ÖÖ¸¶¨ÁË 10.10.1.1 ºÍ 10.10.2.1 ×÷ΪĬÈÏÍø¹Ø£¬ËüÃÇ»®·ÖλÓÚ ChinaNet ºÍ Cernet Ïß·ÉÏ ¡£ÓÚÊÇ£¬Ê¹Ó÷Óɱí 10 µÄÊý¾Ý°ü½«Í¨¹ý ChinaNet Ïß·³öÈ¥£¬¶øʹÓ÷Óɱí20µÄÊý¾Ý°ü½«Í¨¹ý Cernet Ïß·³öÈ¥ ¡£

×Ô½ç˵Á´

µ±Ä¬ÈÏÁ´ÖеĹæÔòºÜÊǶàʱ£¬²»Àû±ãÎÒÃÇÖÎÀí ¡£ÏëÏóһϣ¬ÈôÊÇ INPUT Á´Öдæ·ÅÁË 200 Ìõ¹æÔò£¬Õâ 200 Ìõ¹æÔòÓÐÕë¶Ô httpd ЧÀ͵Ä£¬ÓÐÕë¶Ô sshd ЧÀ͵Ä£¬ÓÐÕë¶Ô˽Íø IP µÄ£¬ÓÐÕë¶Ô¹«Íø IP µÄ£¬ÈôÊÇ£¬ÎÒÃÇͻȻÏëÒªÐÞ¸ÄÕë¶Ô httpd ЧÀ͵ÄÏà¹Ø¹æÔò£¬Æñ·ÇÎÒÃÇ»¹ÒªÖØп´Ò»±éÕâ 200 Ìõ¹æÔò£¬ÕÒ³öÄÄЩ¹æÔòÊÇÕë¶Ô httpd µÄÂð£¿ÕâÏÔÈ»²»¶ÔÀí ¡£
ÒÔÊÇ£¬iptables ÖУ¬¿ÉÒÔ×Ô½ç˵Á´£¬Í¨¹ý×Ô½ç˵Á´¼´¿É½â¾öÉÏÊöÎÊÌâ ¡£¼ÙÉ裬ÎÒÃÇ×Ô½ç˵һÌõÁ´£¬Á´Ãû½Ð IN_WEB£¬ÎÒÃÇ¿ÉÒÔ½«ËùÓÐÕë¶Ô 80 ¶Ë¿ÚµÄÈëÕ¾¹æÔò¶¼Ð´Èëµ½ÕâÌõ×Ô½ç˵Á´ÖУ¬µ±ÒÔºóÏëÒªÐÞ¸ÄÕë¶Ô web ЧÀ͵ÄÈëÕ¾¹æÔòʱ£¬¾ÍÖ±½ÓÐÞ¸Ä IN_WEB Á´ÖеĹæÔò¾ÍºÃÁË£¬×ÝȻĬÈÏÁ´ÖÐÓÐÔÙ¶àµÄ¹æÔò£¬ÎÒÃÇÒ²²»»áη¾åÁË£¬ÓÉÓÚÎÒÃÇÖªµÀ£¬ËùÓÐÕë¶Ô 80 ¶Ë¿ÚµÄÈëÕ¾¹æÔò¶¼´æ·ÅÔÚIN_WEBÁ´ÖÐ ¡£

½¨Éè×Ô½ç˵Á´

#ÔÚfilter±íÖн¨ÉèIN_WEB×Ô½ç˵Á´
iptables -t filter -N IN_WEB

µÇ¼ºó¸´ÖÆ

ÒýÓÃ×Ô½ç˵Á´

#ÔÚINPUTÁ´ÖÐÒýÓÃÊʲŽ¨ÉèµÄ×Ô½ç˵Á´
iptables -t filter -I INPUT -p tcp --dport 80 -j IN_WEB

µÇ¼ºó¸´ÖÆ

ÖØÃüÃû×Ô½ç˵Á´

#½«IN_WEB×Ô½ç˵Á´ÖØÃüÃûΪWEB
iptables -E IN_WEB WEB

µÇ¼ºó¸´ÖÆ

ɾ³ý×Ô½ç˵Á´

ɾ³ý×Ô½ç˵Á´ÐèÒªÖª×ãÁ½¸öÌõ¼þ£º

1¡¢×Ô½ç˵Á´Ã»Óб»ÒýÓà ¡£

2¡¢×Ô½ç˵Á´ÖÐûÓÐÈκιæÔò ¡£

#µÚÒ»²½£ºÉ¨³ý×Ô½ç˵Á´ÖеĹæÔò
iptables -t filter -F WEB
#µÚ¶þ²½£ºÉ¾³ý×Ô½ç˵Á´
iptables -t filter -X WEB

µÇ¼ºó¸´ÖÆ

LOG Ðж¯

LOG Ðж¯Ä¬ÈϻὫ±¨ÎĵÄÏà¹ØÐÅÏ¢¼Í¼ÔÚ/var/log/messageÎļþÖУ¬ËäÈ»£¬ÎÒÃÇÒ²¿ÉÒÔ½«Ïà¹ØÐÅÏ¢¼Í¼ÔÚÖ¸¶¨µÄÎļþÖУ¬ÒÔ±ÜÃâ iptables µÄÏà¹ØÐÅÏ¢ÓëÆäËûÈÕÖ¾ÐÅÏ¢Ïà»ìÏý£¬ÐÞ¸Ä /etc/rsyslog.conf Îļþ£¨»òÕß /etc/syslog.conf£©£¬ÔÚ rsyslog ÉèÖÃÎļþÖÐÌí¼ÓÈçÏÂÉèÖü´¿É£º

kern.warning /var/log/iptables.log

µÇ¼ºó¸´ÖÆ
Íê³ÉÉÏÊöÉèÖúó£¬ÖØÆôrsyslogЧÀÍ£¨»òÕßsyslogd£©£º

service rsyslog restart

µÇ¼ºó¸´ÖÆ
LOG Ðж¯Ò²ÓÐ×Ô¼ºµÄÑ¡Ï³£ÓÃÑ¡ÏîÈçÏ£º

¨Clog-level Ñ¡Ïî¿ÉÒÔÖ¸¶¨¼Í¼ÈÕÖ¾µÄÈÕÖ¾¼¶±ð£¬¿ÉÓü¶±ðÓÐ emerg£¬alert£¬crit£¬error£¬warning£¬notice£¬info£¬debug ¡£

¨Clog-prefix Ñ¡Ïî¿ÉÒÔ¸ø¼Í¼µ½µÄÏà¹ØÐÅÏ¢Ìí¼Ó¡±±êÇ©¡±Ö®ÀàµÄÐÅÏ¢£¬ÒÔ±ãÇø·ÖÖÖÖּͼµ½µÄ±¨ÎÄÐÅÏ¢£¬Àû±ãÔÚÆÊÎöʱ¾ÙÐйýÂË ¡£¨Clog-prefix ¶ÔÓ¦µÄÖµ²»¿ÉÁè¼Ý 29 ¸ö×Ö·û ¡£

ºÃ±È£¬ÎÒÏëÒª½«×Ô¶¯ÅþÁ¬22ºÅ¶Ë¿ÚµÄ±¨ÎĵÄÏà¹ØÐÅÏ¢¶¼¼Í¼µ½ÈÕÖ¾ÖУ¬²¢ÇÒ°ÑÕâÀà¼Í¼ÃüÃûΪ¡±want-in-from-port-22¡å,Ôò¿ÉÒÔʹÓÃÈçÏÂÏÂÁ

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j LOG --log-prefix "want-in-from-port-22"

µÇ¼ºó¸´ÖÆ
Íê³ÉÉÏÊöÉèÖúó£¬ÎÒÔÚIPµØµãΪ 192.168.1.98 µÄ¿Í»§¶Ë»úÉÏ£¬ÊµÑéʹÓà ssh ¹¤¾ßÅþÁ¬ÉÏÀýÖеÄÖ÷»ú£¬È»ºóÉó²é¶ÔÓ¦µÄÈÕÖ¾Îļþ£¨ÒѾ­½«ÈÕÖ¾ÎļþÉèÖÃΪ /var/log/iptables.log£©£º
²»»áÓà Linux ·À»ðǽÈí¼þ IPtables£¡ÄãËãɶÔËάÈË£¡
ÈçÉÏͼËùʾ£¬ssh ÅþÁ¬²Ù×÷µÄ±¨ÎĵÄÏà¹ØÐÅÏ¢ÒѾ­±»¼Í¼µ½ÁË iptables.log ÈÕÖ¾ÎļþÖУ¬²¢ÇÒÕâÌõÈÕÖ¾ÖаüÀ¨¡±±êÇ©¡±£ºwant-in-from-port-22£¬ÈôÊÇÓÐÐí¶àÈÕÖ¾¼Í¼£¬ÎÒÃǾÍÄÜͨ¹ýÕâ¸ö¡±±êÇ©¡±¾ÙÐÐɸѡÁË£¬ÕâÑùÀû±ãÎÒÃÇÉó²éÈÕÖ¾£¬Í¬Ê±£¬´ÓÉÏÊö¼Í¼Öл¹Äܹ»µÃÖª±¨ÎĵÄÔ´IPÓëÄ¿µÄIP£¬Ô´¶Ë¿ÚÓëÄ¿µÄ¶Ë¿ÚµÈÐÅÏ¢£¬´ÓÉÏÊöÈÕÖ¾ÎÒÃÇÄܹ»¿´³ö£¬192.168.1.98 Õâ¸ö IP ÏëÒªÔÚ 14µã11·Ö ÅþÁ¬µ½ 192.168.1.139£¨Ä¿½ñÖ÷»úµÄ IP£©µÄ22ºÅ¶Ë¿Ú£¬±¨ÎÄÓÉeth4Íø¿¨½øÈ룬eth4 Íø¿¨µÄ MAC µØµãΪ 00:0c:29:b7:f4:d1£¬¿Í»§¶ËÍø¿¨µÄ MAC µØµãΪ f4:8e:38:82:b1:29 ¡£

²Î¿¼Á´½Ó

https://www.zsythink.net/archives/category/%e8%bf%90%e7%bb%b4%e7%9b%b8%e5%85%b3/iptables/

https://my.oschina.net/mojiewhy/blog/3039897

https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html#MARKTARGET

https://mp.weixin.qq.com/s/NOxY4ZC7Cay4LCWlMkVx8A

ÒÔÉϾÍÊDz»»áÓà Linux ·À»ðǽÈí¼þ IPtables£¡ÄãËãɶÔËάÈË£¡µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

13452372176

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿