¢Æ DolyÀÇ CentOS7 °ÁÂ29 12. ³×Æ®¿öÅ© º¸¾È¼³Á¤ 12.1 firewalld (2/2)
#################################################
ÀÛ¼ºÀÚ : Á¤¿ì¿µ
ÀÛ¼ºÀÏ : 2015.4.28
´ë»ó OS : CentOS7 x86_64
º» °Á¸¦ ±â¹ÝÀ¸·Î ¼ÀûÀ» ÁýÇÊÇÕ´Ï´Ù. ¿¬Àç°Á°¡ ¸¶¹«¸®µÇ°í ¸î´Þ ÈÄ¸é ¼ÀûÀÌ ³ª¿À°ÚÁÒ? CentOS7Àº ¼Àûµµ ¾øÁö¸¸ °Áµµ ¸¹ÀÌ ºÎÁ·Çϳ׿ä. ¸®´ª½º ¼¹ö¸¦ 10³â ³Ñ°Ô ±¸ÃàÇÏ°í °ü¸®Çϰí ÄÁ¼³ÆÃÇÏ¸é¼ ²À ÇÊ¿äÇÑ ºÎºÐ°ú ¾Ë¾Æ¾ß ÇÒ ºÎºÐµéÀ» ²Ä²ÄÈ÷ üũÇÏ¸é¼ °Á¸¦ ½áº¸·ÁÇÕ´Ï´Ù. °ÁÂÁß ¿ÀÅ»ÀÚ°¡ Àְųª ¼³¸íÀÌ ºÎÁ·Çϰí À߸øµÈ °æ¿ì doly°ñ¹ðÀÌsuperuser.co.krÀ¸·Î ¸ÞÀÏÇÑÅë ºÎŹµå¸³´Ï´Ù. °Á°¡ ¼öÁ¤µÇ¸é ´õ ¸¹Àº ºÐµé²² µµ¿òÀÌ µÉ°ÍÀ̶ó »ý°¢ÇÏ°í °Á¸¦ ±â¹ÝÀ¸·Î ÁýÇ浃 ¼Àû¶ÇÇÑ ¿Ï¼ºµµ°¡ ³ô¾ÆÁöÁö ¾ÊÀ»±î »ý°¢ÇÕ´Ï´Ù.
#################################################
12.1. firewalld
CentOS7ºÎÅÍ ¸¹Àº ºÎºÐÀÌ ÅëÇյǰí Ãß»óÈ µÇ¾ú´Ù. CentOS6±îÁö ¹æÈº® ¼³Á¤ÆÄÀÏÀ» º¯°æÇϰí iptables ¼ºñ½º¸¦ Àç½ÃÀÛÇÏ¿© ¹æÈº® ±ÔÄ¢À» ¼³Á¤ÇÏ¿´´Ù¸é, CentOS7Àº ¹æÈº® ±ÔÄ¢À» °ü¸®ÇÏ´Â µ¥¸ó(firewalld)°¡ ÀÛµ¿µÇ°í ÀÌ ¹æÈº® µ¥¸óÀÌ Á¦°øÇÏ´Â DBUS API¸¦ ÅëÇØ ¹æÈº®À» Á¦¾îÇÑ´Ù. GUIȯ°æ¿¡¼´Â firewall-config¸¦ ÀÌ¿ëÇÏ¿© ¹æÈº®¼³Á¤À» ÇÒ ¼ö ÀÖÀ¸¸ç, CUIȯ°æ¿¡¼´Â firewall-cmd¸¦ ÀÌ¿ëÇÏ¿© ¹æÈº® ¼³Á¤À» ÇÒ ¼ö ÀÖ´Ù. ¹æÈº®À» Á¦¾îÇÏ·Á´Â º°µµ ¾îÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§µµ filrewalld API¸¦ »ç¿ëÇÏ¸é ¼³Á¤ÆÄÀÏ º¯°æ¿¡ µû¸¥ °¢ ¹æÈº® °ü¸® ¾îÇø®ÄÉÀ̼ǰúÀÇ Ãæµ¹À» ÇÇÇÒ ¼ö ÀÖ´Ù.
firewalld¿¡¼ »ç¿ëµÇ´Â ¿ë¾î, GUI ÇÁ·Î±×·¥ÀÎ firewall-config, CUI ÇÁ·Î±×·¥ÀÎ firewall-cmd¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú´Ù.
12.1.3. ¹æÈº® CUI ¼³Á¤ (firewall-cmd)
firewalldÀÇ CUIÀÎÅÍÆäÀ̽ºÀÎ firewall-cmd¿¡ ´ëÇØ ¾Ë¾Æº¸±â ÀÌÀü¿¡ À¥¼¹ö¸¦ ¿î¿µÇϱâ À§ÇØ HTTP, HTTPS Æ÷Æ®¸¦ Çã¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.
Å͹̳Πâ¿¡¼ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
~]# firewall-cmd --permanent --add-service=http --add-service=https
success
~]# firewall-cmd --reload
success
~]# firewall-cmd --list-all
public (default)
interfaces:
sources:
services: dhcpv6-client http https ssh
ports: 5900-5910/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd¸í·ÉÀ» »ç¿ëÇÏ¿© À§¿Í °°ÀÌ ·êÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. --permanent ¿É¼ÇÀº ¿µ±¸ÀûÀÎ ¼³Á¤À» ÀǹÌÇÏ¸ç ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ·±Å¸ÀÓ È¯°æ¿¡¼ Àû¿ëµÇ±â ¶§¹®¿¡ ¼¹ö¸¦ ¸®ºÎÆÃÇÏ¸é ·êÀÌ ¾ø¾îÁø´Ù. --add-service ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿ÀÇÂÇϰíÀÚ ÇÏ´Â ¼ºñ½º¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÀÌ¹Ì Ãß°¡µÈ ¼ºñ½º¸¦ Á¦°ÅÇϱâ À§Çؼ´Â --remove-service ¿É¼ÇÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½À¸·Î --reload ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿µ±¸ÀûÀ¸·Î ¼³Á¤µÈ ·êÀ» ·±Å¸ÀÓ È¯°æ¿¡ Àû¿ë½ÃŲ´Ù. Àû¿ëÀÌ ¿Ï·áµÈ ÈÄ --list-all ¿É¼ÇÀ¸·Î ¼³Á¤µÈ ·êÀ» È®ÀÎÇÑ´Ù.
¹æÈº® ¿ÀÇ ¿©ºÎ¸¦ À§ÇØ ´Ù¸¥ ¸®´ª½º ÄÄÇ»ÅÍ¿¡¼ ´ÙÀ½°ú °°ÀÌ È®ÀÎÇØ º¸ÀÚ.
~]# nmap 192.168.0.201 -p 443,80,22,25
Starting Nmap 5.21 ( http://nmap.org ) at 2015-03-24 19:57 KST
Nmap scan report for 192.168.0.201
Host is up (0.00041s latency).
PORT STATE SERVICE
22/tcp open ssh
25/tcp filtered smtp
80/tcp closed http
443/tcp closed https
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
nmap¸í·É¾î¸¦ ¹æÈº® ¼³Á¤ ³»¿ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. 22/tcp(SSH)´Â ¿ÀÇÂµÈ °ÍÀÌ È®Àεǰí, 25/tcp(SMTP)´Â filteredµÇ¾ú´Ù. À¥¼ºñ½º Æ÷Æ® 80/tcp(HTTP), 443/tcp(HTTPS)´Â ¹æÈº®¿¡¼ Â÷´ÜµÈ °ÍÀº ¾Æ´ÏÁö¸¸ ´ÝÇô ÀÖ´Ù°í ³ªÅ¸³´Ù.
[Âü °í]
firewall-cmd ÀÚµ¿¿Ï¼º ±â´É
CentOS7ÀÇ ÅëÇÕµÈ ¸í·É¾îµéÀº ÀÚµ¿¿Ï¼º ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÚµ¿¿Ï¼ºÀ̶õ ¿É¼ÇÀÇ ¸î¸î ´Ü¾î¸¸ ÀÔ·ÂÇϰí <TAB>۸¦ ´©¸£°Ô µÇ¸é °ü·Ã ¿É¼ÇÀÇ ´Ü¾î°¡ ÀÚµ¿¿Ï¼ºµÈ´Ù. ¶Ç ¿©·¯°³ÀÇ °¡´ÉÇÑ ¿É¼ÇÀÌ ÀÖÀ»¶§´Â <TAB>۸¦ ¿©·¯¹ø ´©¸£¸é ¿É¼Ç ¸®½ºÆ®°¡ ³ªÅ¸³´Ù. ¾Æ·¡¿Í °°ÀÌ ¿É¼ÇÀ» ¸ð¸¦ ¶§´Â <TAB>۸¦ ¿©·¯¹ø ´©¸£¸é »ç¿ëÇÒ ¼ö ÀÖ´Â ¿É¼Ç ¸®½ºÆ®°¡ ³ªÅ¸³´Ù.
~]# firewall-cmd --permanent --
--add-forward-port= --list-rich-rules
--add-icmp-block= --list-services
--add-interface= --list-sources
--add-lockdown-whitelist-command= --query-forward-port=
...
12.1.3.1. ¿µ¿ª(zone) º¯°æ
¾Õ¿¡¼ ¼³¸íÇÑ ¿µ¿ª(zone)Àº ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î º¯°æÇÒ ¼ö ÀÖ´Ù.
~]# firewall-cmd --set-default-zone=block
success
±âº» ¿µ¿ªÀ» blockÀ¸·Î º¯°æÇÏ¿´´Ù. ¼³Á¤ °¡´ÉÇÑ ¿µ¿ªÀº ¿µ¿ª°ªÀ» ÀÔ·ÂÇÏÁö ¾Ê°í <TAB>۸¦ ¿©·¯¹ø ´©¸£¸é ´ÙÀ½°ú °°ÀÌ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
~]# firewall-cmd --set-default-zone=<TAB><TAB>
block dmz drop external home internal public trusted work
¼³Á¤µÈ ³»¿ªÀº ´ÙÀ½°ú °°ÀÌ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
~]# firewall-cmd --list-all
block (default, active)
interfaces: eth0
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
À§ °á°ú¸¦ º¸¸é ±âº»¿µ¿ªÀÌ blockÀ¸·Î º¯°æµÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¹°·Ð --get-default-zone ¿É¼ÇÀ¸·Î ±âº»¿µ¿ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
12.1.3.2. ¼ºñ½º(service) ¼öÁ¤
GUI¿Í ´Ù¸£°Ô firewall-cmd´Â ¼ºñ½º Ãß°¡/¼öÁ¤ ¹æ¹ýÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù. ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ¹Ì¸® Á¤ÀÇµÈ ¼ºñ½º¸¦ ÆíÁýÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸®´ª½º ¼¹ö Á¢¼ÓÀ» À§ÇØ SSH¸¦ °¡Àå ¸¹ÀÌ »ç¿ëÇÑ´Ù. ¸¹ÀÌ »ç¿ëµÇ´Â ¸¸Å ÀÎÅͳݿ¡ °ø°³µÈ ¼¹öÀÇ °æ¿ì »çÀü(dictionary) °ø°ÝÀ» ÅëÇØ Á¢¼ÓÁ¤º¸¸¦ ȹµæÇÏ·Á´Â ½Ãµµ°¡ ¸¹ÀÌ ÀϾÙ. ÀÌ·¯ÇÑ Á¢±Ù ½Ãµµ¸¦ ȸÇÇÇϱâ À§ÇØ SSH ±âº»Æ÷Æ®(tcp/22)¸¦ 1024ÀÌÈÄ Àß ¾Ë·ÁÁöÁö ¾ÊÀº Æ÷Æ®·Î º¯°æÇÑ´Ù. ÀÌ·¯ÇÑ °æ¿ì SSH ¼ºñ½º¿¡ ´ëÇÑ ¼ºñ½º Æ÷Æ® ¶ÇÇÑ º¯°æÀÌ µÇ¾î¾ß Çϱ⿡ ´ÙÀ½°ú °°ÀÌ ¹æÈº® ¼³Á¤À» º¯°æÇØ º¸µµ·Ï ÇÏÀÚ.
~]# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
¼ºñ½º°¡ Á¤ÀÇµÈ ÆÄÀÏ(ssh.xml)À» /usr/lib/firewalld/services µð·ºÅ丮¿¡¼ /etc/firewalld/services µð·ºÅ丮·Î º¹»çÇÑ´Ù.
/etc/firewalld/services/ssh.xml ÆÄÀÏÀ» ¿¾î ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="15322"/>
</service>
ÇÊÀÚ´Â SSHÆ÷Æ®·Î 15322¸¦ ÀÔ·ÂÇÏ¿´´Ù.
~]# firewall-cmd --reload
success
--reload¿É¼ÇÀ¸·Î º¯°æ³»¿ªÀ» ¹Ý¿µÇÑ´Ù.
~]# iptables -nL |grep 15322
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:15322 ctstate NEW
firewall-cmdÀ¸·Î´Â ¼ºñ½ºÀÇ º¯°æ³»¿ªÀ» È®ÀÎÇÒ ¼ö ¾ø¾ú´Ù. iptables¸í·ÉÀ» »ç¿ëÇÏ¿© º¯°æµÈ ¼ºñ½º Æ÷Æ®¸¦ È®ÀÎÇÏ¿´´Ù.
12.1.3.3. Æ÷Æ® ¹× ÇÁ·ÎÅäÄÝ Á÷Á¢ Ãß°¡
¾Õ¿¡¼ ´Ù·ð´ø ¼ºñ½º¸¦ ÀÌ¿ëÇÏ¿© ¹æÈº®À» °ü¸®Çϱ⵵ ÇÏÁö¸¸, ¾Õ ¿¹¿Í °°ÀÌ ¹Ì¸® Á¤ÀÇµÈ ¼ºñ½ºÀÇ Æ÷Æ®¸¦ º¯°æÇÏ´Â °æ¿ì´Â Æ÷Æ® ¹× ÇÁ·ÎÅäÄÝÀ» Á÷Á¢ Ãß°¡ÇÏ´Â °ÍÀÌ ¹æÈº® °ü¸®¿¡ ´õ È¿À²ÀûÀÌ´Ù. SSH Æ÷Æ®¸¦ º¯°æÇÑ °æ¿ì ¼ºñ½º ¸®½ºÆ®¿¡¼´Â ¹Ù·Î È®ÀÎÇÏ±â ¾î·Æ±â ¶§¹®¿¡ ¼¹ö¸¦ ÀÌÀüÇÏ´Â °æ¿ì ½Ç¼öÇÒ ¼ö ÀÖ´Ù.
VNCÁ¢¼ÓÀ» À§ÇØ Æ÷Æ® ¹× ÇÁ·ÎÅäÄÝÀ» Á÷Á¢ Ãß°¡ÇØ º¸µµ·Ï ÇÏÀÚ.
~]# firewall-cmd --permanent --add-port=5900-5910/tcp
success
~]# firewall-cmd --reload
success
~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 5900-5910/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd¸í·ÉÀ» »ç¿ëÇÏ¿© À§¿Í °°ÀÌ ·êÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. --permanent ¿É¼ÇÀº ¿µ±¸ÀûÀÎ ¼³Á¤À» ÀǹÌÇÏ¸ç ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ·±Å¸ÀÓ È¯°æ¿¡¼ Àû¿ëµÇ±â ¶§¹®¿¡ ¼¹ö¸¦ ¸®ºÎÆÃÇÏ¸é ·êÀÌ ¾ø¾îÁø´Ù. --add-port ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿ÀÇÂÇϰíÀÚ ÇÏ´Â Æ÷Æ® ¹× Æ÷Æ®¹üÀ§/ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇÑ´Ù. ¸¸¾à Ãß°¡µÈ Æ÷Æ®¸¦ Á¦°ÅÇϱâ À§Çؼ´Â --remove-port ¿É¼ÇÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½À¸·Î --reload ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿µ±¸ÀûÀ¸·Î ¼³Á¤µÈ ·êÀ» ·±Å¸ÀÓ È¯°æ¿¡ Àû¿ë½ÃŲ´Ù. Àû¿ëÀÌ ¿Ï·áµÈ ÈÄ --list-all ¿É¼ÇÀ¸·Î ¼³Á¤µÈ ·êÀ» È®ÀÎÇÑ´Ù. ¹°·Ð Ãß°¡µÈ Æ÷Æ®´Â --list-ports ¿É¼ÇÀ¸·Î È®ÀÎ °¡´ÉÇÏ´Ù.
12.1.3.4. ¸¶½ºÄ¿·¹À̵ù(Masquerading)
¸®´ª½º ½Ã½ºÅÛÀ» ÀÎÅÍ³Ý °øÀ¯ ¸ñÀûÀÇ ¶ó¿ìÅÍ ±â´ÉÀ» »ç¿ëÇϱâ À§ÇØ ¸¶½ºÄ¿·¹À̵ù ±â´ÉÀ» Ȱ¼ºÈ ½ÃŲ´Ù.
¸¶½ºÄ¿·¹À̵ùÀ» »ç¿ëÇϱâ À§ÇØ °øÀθÁ, »ç¼³¸Á ³×Æ®¿öÅ© ±¸¼ºÀ» ¹Ì¸® ÇØ µÎ¾î¾ß ÇÑ´Ù.
~]# firewall-cmd --permanent --add-masquerade
success
~]# firewall-cmd --reload
success
~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 5900-5910/tcp
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd¸í·ÉÀ» »ç¿ëÇÏ¿© À§¿Í °°ÀÌ ¸¶½ºÄ¿·¹À̵ùÀ» Ȱ¼ºÈ ½Ãų ¼ö ÀÖ´Ù. --permanent ¿É¼ÇÀº ¿µ±¸ÀûÀÎ ¼³Á¤À» ÀǹÌÇÏ¸ç ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ·±Å¸ÀÓ È¯°æ¿¡¼ Àû¿ëµÇ±â ¶§¹®¿¡ ¼¹ö¸¦ ¸®ºÎÆÃÇÏ¸é ·êÀÌ ¾ø¾îÁø´Ù. --add-masquerade ¿É¼ÇÀ» »ç¿ë ¸¶½ºÄ¿·¹À̵ùÀ» Ȱ¼ºÈ½ÃŲ´Ù. ¸¸¾à ¸¶½ºÄ¿·¹À̵ùÀ» ºñȰ¼ºÈ½Ã°í ½Í´Ù¸é --remove-masquerade ¿É¼ÇÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½À¸·Î --reload ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿µ±¸ÀûÀ¸·Î ¼³Á¤µÈ ·êÀ» ·±Å¸ÀÓ È¯°æ¿¡ Àû¿ë½ÃŲ´Ù. Àû¿ëÀÌ ¿Ï·áµÈ ÈÄ --list-all ¿É¼ÇÀ¸·Î masquerade Ȱ¼ºÈ À¯ºÎ¸¦ È®ÀÎÇÑ´Ù.
12.1.3.5. Æ÷Æ® Æ÷¿öµù(port forwarding)
¾Õ¿¡¼ ¸¶½ºÄ¿·¹À̵ù ¼³Á¤À¸·Î ÀÎÅÍ³Ý °øÀ¯ ¶ó¿ìÅ͸¦ ¼³Á¤ÇÑ °æ¿ì ¿ÜºÎ¿¡¼ °øÀÎIP·Î Á¢¼ÓµÇ´Â ¿¬°á¿¡ ´ëÇØ¼ Æ÷Æ®¿¡ µû¶ó ³»ºÎ ¼¹ö·Î ¿¬°á½Ãų ¼ö ÀÖ´Â Æ÷Æ® Æ÷¿öµù ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¶Ç, ½Ã½ºÅÛÀ¸·Î µé¾î¿À´Â Æ÷Æ®¸¦ Æ÷¿öµùÇÏ¿© ·ÎÄÃÀÇ ´Ù¸¥ Æ÷Æ®·Î Æ÷¿öµùÇÒ ¼ö ÀÖ´Ù. ½Ã½ºÅÛÀÇ °¢ ¼ºñ½ºµéÀº º¸¾ÈÀ» À§ÇØ ÀÏ¹Ý »ç¿ëÀÚ ±ÇÇÑÀ¸·Î ¼ºñ½º¸¦ ½ÇÇàÇϱ⸦ ±ÇÀåÇÑ´Ù. ¿¹¸¦ µé¾î TomcatÀº JSP ÄÁÅ×À̳ÊÀÌ¸é¼ À¥¼¹ö ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. TomcatÀº ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤À¸·Î ½ÇÇàÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù. ÇÏÁö¸¸, HTTP±âº»Æ÷Æ® 80À» »ç¿ëÇÒ °æ¿ì root±ÇÇÑÀÌ ¾Æ´Ï¸é 80Æ÷Æ®¸¦ BindÇÒ ¼ö ¾ø´Ù. ÀÌ·¯ÇÑ °æ¿ì Æ÷Æ®Æ÷¿öµùÀ» »ç¿ëÇÏ¿© 80Æ÷Æ®·Î Á¢¼ÓµÇ´Â ÆÐŶÀ» ·ÎÄÃÀÇ 8080(TomcatÀÇ ±âº» HTTP Æ÷Æ®)Æ÷Æ®·Î Æ÷¿öµù ½ÃÅ´À¸·Î root±ÇÇÑ ¾øÀÌ 80Æ÷Æ®¸¦ »ç¿ëÇÏ¿© À¥¼ºñ½º¸¦ ÇÒ ¼ö ÀÖ´Ù.
80Æ÷Æ®·Î Á¢¼ÓµÇ´Â ÆÐŶÀ» 8080Æ÷Æ®·Î Æ÷¿öµù ¼³Á¤ÇØ º¸ÀÚ.
~]# firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
success
~]# firewall-cmd --reload
success
~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 5900-5910/tcp
masquerade: yes
forward-ports: port=80:proto=tcp:toport=8080:toaddr=
icmp-blocks:
rich rules:
firewall-cmd¸í·ÉÀ» »ç¿ëÇÏ¿© À§¿Í °°ÀÌ Æ÷Æ® Æ÷¿öµù ÇÏ¿´´Ù. --permanent ¿É¼ÇÀº ¿µ±¸ÀûÀÎ ¼³Á¤À» ÀǹÌÇÏ¸ç ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ·±Å¸ÀÓ È¯°æ¿¡¼ Àû¿ëµÇ±â ¶§¹®¿¡ ¼¹ö¸¦ ¸®ºÎÆÃÇÏ¸é ·êÀÌ ¾ø¾îÁø´Ù. --add-forward-port ¿É¼ÇÀ» »ç¿ë Æ÷Æ® Æ÷¿öµù ±ÔÄ¢À» Ãß°¡ÇÏ¿´´Ù. ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÀԷµȴÙ.
--add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
¸¸¾à Æ÷Æ®Æ÷¿öµùÀ» Á¦°ÅÇϱâ À§Çؼ´Â --remove-forward-port ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÀԷµȴÙ.
--remove-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
´ÙÀ½À¸·Î --reload ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿µ±¸ÀûÀ¸·Î ¼³Á¤µÈ ·êÀ» ·±Å¸ÀÓ È¯°æ¿¡ Àû¿ë½ÃŲ´Ù. Àû¿ëÀÌ ¿Ï·áµÈ ÈÄ --list-all ¿É¼ÇÀ¸·Î Æ÷Æ®Æ÷¿öµù ¼³Á¤³»¿ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¹°·Ð --list-forward-ports ¿É¼ÇÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.
12.1.3.6. ping ÀÀ´ä ÇÏÁö ¾Ê±â
½Ã½ºÅÛÀÇ ³×Æ®¿öÅ© »óŸ¦ È®ÀÎÇϱâ À§ÇØ ping¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© ÀÀ´ä Å×½ºÆ®¸¦ ÇÑ´Ù. pingÀº ³×Æ®¿öÅ© È®ÀÎÀ» À§ÇØ À¯¿ëÇÏ°Ô »ç¿ëµÇÁö¸¸, ¾ÇÀÇÀûÀ¸·Î ÆÐŶũ±â¸¦Á¶ÀýÇÏ¿© ³×Æ®¿öÅ©ÀÇ °ú´ÙÇÑ Æ®·¡ÇÈÀ» À¯¹ßÇϱ⵵ ÇÑ´Ù. ÀÌ·¯ÇÑ °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇØ ping¿¡ ´ëÇØ ÀÀ´äÇÏÁö ¾Êµµ·Ï ¼³Á¤ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.
´ÙÀ½Àº ICMP ÇÁ·ÎÅäÄÝ Áß ping¿¡ ´ëÇØ ÀÀ´äÇÏÁö ¾Ê°Ô ¼³Á¤Çϰí ÀÖ´Ù.
~]# firewall-cmd --permanent --add-icmp-block=echo-request
success
~]# firewall-cmd --reload
success
~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 5900-5910/tcp
masquerade: yes
forward-ports: port=80:proto=tcp:toport=8080:toaddr=
icmp-blocks: echo-request
rich rules:
firewall-cmd¸í·ÉÀ» »ç¿ëÇÏ¿© À§¿Í °°ÀÌ pingÀ» Â÷´ÜÇÒ ¼ö ÀÖ´Ù. --permanent ¿É¼ÇÀº ¿µ±¸ÀûÀÎ ¼³Á¤À» ÀǹÌÇÏ¸ç ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ·±Å¸ÀÓ È¯°æ¿¡¼ Àû¿ëµÇ±â ¶§¹®¿¡ ¼¹ö¸¦ ¸®ºÎÆÃÇÏ¸é ·êÀÌ ¾ø¾îÁø´Ù. --add-icmp-block ¿É¼ÇÀ» »ç¿ë ICMP Â÷´ÜÇÒ À¯ÇüÀ» Ãß°¡ÇÏ¿´´Ù. ¸¸¾à Â÷´ÜÇÒ À¯ÇüÀ» Á¦°ÅÇϱâ À§Çؼ´Â --remove-icmp-block¿É¼ÇÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½À¸·Î --reload ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿µ±¸ÀûÀ¸·Î ¼³Á¤µÈ ·êÀ» ·±Å¸ÀÓ È¯°æ¿¡ Àû¿ë½ÃŲ´Ù. Àû¿ëÀÌ ¿Ï·áµÈ ÈÄ --list-all ¿É¼ÇÀ¸·Î Â÷´ÜµÈ ICMP À¯ÇüÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¹°·Ð --list-icmp-blocks ¿É¼ÇÀ¸·Îµµ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
12.1.3.7. Á÷Á¢ ¹æÈº® ±ÔÄ¢ ³Ö±â
¸®´ª½º ¹æÈº® iptables´Â ¸·°ÇÑ È®Àå±â´ÉÀ» Á¦°øÇÑ´Ù. firewalld¿¡¼ Á¦°øµÇ´Â ±â´ÉÀº È®Àå ±â´É Áß ÀϺθ¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ¿øÇÏ´Â È®Àå ±â´É »ç¿ëÀ» À§ÇØ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î Á÷Á¢ ÀÔ·ÂÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽º°¡ Á¦°øµÈ´Ù.
À¥¼¹ö¸¦ ´ë»óÀ¸·Î DOS°ø°ÝÀÌ ¸¹ÀÌ ¹ß»ýµÈ´Ù. ƯÁ¤ Ŭ¶óÀÌ¾ðÆ® IP¿¡¼ Á¢¼ÓÀÌ ¸¹ÀÌ ¹ß»ýµÈ´Ù¸é ƯÁ¤ Ŭ¶óÀÌ¾ðÆ® IP Â÷´ÜÀ» À§ÇØ »ç¿ëÇÏ´Â ¸ðµâÀÌ connlimitÀÌ´Ù.
´ÙÀ½Àº connlimit¸¦ »ç¿ëÇÏ¿© DOS°ø°ÝÀ» ¸·µµ·Ï ¼³Á¤ÇØ º¸°Ú´Ù.
~]# firewall-cmd --permanent --direct --add-passthrough ipv4 -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 -j REJECT
success
~]# firewall-cmd --reload
success
firewall-cmd¸í·ÉÀ» »ç¿ëÇÏ¿© DOS°ø°ÝÀ» ¸·À» ¼ö ÀÖ´Ù. --permanent ¿É¼ÇÀº ¿µ±¸ÀûÀÎ ¼³Á¤À» ÀǹÌÇÏ¸ç ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ·±Å¸ÀÓ È¯°æ¿¡¼ Àû¿ëµÇ±â ¶§¹®¿¡ ¼¹ö¸¦ ¸®ºÎÆÃÇÏ¸é ·êÀÌ ¾ø¾îÁø´Ù. --direct ¿É¼ÇÀº Á÷Á¢ ÀÔ·ÂÇÑ´Ù´Â ¼³Á¤ÀÌ´Ù. --add-passthrough´Â Åë°ú ±ÔÄ¢À» Á÷Á¢ ÀÔ·ÂÇÏ´Â ¿É¼ÇÀÌ´Ù. ¸¸¾à Åë°ú ±ÔÄ¢À» Á¦°ÅÇϱâ À§Çؼ´Â --remove-passthroughÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½À¸·Î --reload ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿µ±¸ÀûÀ¸·Î ¼³Á¤µÈ ·êÀ» ·±Å¸ÀÓ È¯°æ¿¡ Àû¿ë½ÃŲ´Ù.
~]# iptables -nL |grep conn
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 flags:0x17/0x02 #conn src/32 > 16 reject-with icmp-port-unreachable
firewall-cmdÀ¸·Î´Â Á÷Á¢ ¼³Á¤ÇÑ ±ÔÄ¢ È®ÀÎÀÌ ¾î·Á¿ö iptables¸í·ÉÀ» »ç¿ëÇÏ¿© Á÷Á¢ Ãß°¡ÇÑ ±ÔÄ¢À» È®ÀÎÇÏ¿´´Ù.
ÀÌ»óÀ¸·Î 29¹øÂ° °Á¸¦ ¸¶¹«¸® ÇÕ´Ï´Ù. CentOS7ÀÇ »õ·Î¿î ±â´ÉÁß¿¡ Çϳª°¡ firewalldÀÌ´Ù. firewalldÀÇ CUI ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ½ÃÀÛÀ» ÇßÀ¸¸é ³¡À» ºÁ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ±×°Ç ³²¾ÆÀÖÁö ¾Ê´Â °ÍÀÌÁÒ. CentOS 7ÀÇ ´Ù¾çÇÑ ±â´É¿¡ ´ëÇØ¼ ÁßÁ¡ÀûÀ¸·Î ´Ù·ç°Ú½À´Ï´Ù. 2015³â 4¿ù 28ÀÏ(È) ¿½ÉÈ÷ ¶Ù´Â µµ¸®(Doly)¿´½À´Ï´Ù.^^
#################################################
* º» °Á´ ¾ðÁ¦µç °»½ÅµÉ ¼ö ÀÖÀ¸¸ç, ¿ø±ÛÀº www.linux.co.kr °ÁÂ>¸®´ª½º>DolyÀÇ ¿¬Àç°Á ¿¡¼ ¼öÁ¤µË´Ï´Ù.
* º» °ÁÂÀÇ ÀϺΠ¶Ç´Â Àüü¸¦ ÀοëÇÏ½Ç °æ¿ì, ¹Ýµå½Ã Ãâó¸¦ ¹àÇô Áֽñ⠹ٶø´Ï´Ù.
* ¼öÁ¤ÀÌ·Â :
2015.4.28(È): ÃÖÃÊÀÛ¼º