사용자단에 서버가 들어가서 서버쪽 iptables구성을 하고 있는데
제가 알고있는 부분과 많이 달라 어려움을 겪고 있습니다.
INPUT체인만 작업생각하고 있고
OUTPUT ,FORWARD는 건드리지 않았습니다.
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 11 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 12 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 13 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 14 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 15 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 16 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 17 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.10 --dport 18 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.0.10 --dport 19 -j ACCEPT
위와같은식으로 허용해줄 목적지와 목적지포트를 지정한 후에
그외에 것들은 모두 차단하기위해 INPUT정책을 DROP으로 바꾸려고 하면 로컬단에서도 서버가 느려지는데
설정을 더 넣어야하는것이 있는지 도무지 모르겠습니다.
개인 가상화에서 실험을 해봐도 기본정책을 DROP이나 REJECT로 수정하니 로컬단에서 느려지네요...
무슨 문제가 있는지 해결책아시는분 고견좀 부탁드립니다.
포트와 IP는 실제 설정과 다른 임의로 아무거나 집어넣었습니다.
±×¸®°í ·ê°ú üÀÎÀº °¢°¢ ¸î °³¾¿ ÀÖ³ª¿ä?
INPUT, OUTPUT FORWARD
INPUTÀ¸·Î µé¾î¿À´Â°Í¸¸ ¼³Á¤ÇÏ·Á°í Çؼ OUTPUT°ú FORWARD´Â ±âº»°ªÀÌ°í
INPUT¿¡ ·êÀÌ 11°³ µé¾î°¡ÀÖ½À´Ï´Ù.
´À·ÁÁø´Ù´Â°ÍÀÌ INPUTÀÇ ±âº»Á¤Ã¥À» DROPÀ¸·Î ¹Ù²Ù°í³ª¸é ¸í·É¾î »ç¿ë½Ã Ãâ·ÂÀÌ ´À·ÁÁö°í ÀüüÀûÀÎ ¹ÝÀÀÀÌ ´À·ÁÁý´Ï´Ù.
sshÁ¢¼ÓÀÌ °©Àڱ⠲÷±â±âµµ ÇÕ´Ï´Ù.
sshÁ¢¼Ó°ü·Ã INPUT ¼³Á¤Àº ¸Ç ÀÁÙ¿¡ Çسõ¾Ò±â ¶§¹®¿¡ ²÷¾îÁú ÀÌÀ¯°¡ ¾øÀ»ÅÙµ¥ ÀÌÀ¯¸¦ ¸ð¸£°Ú½À´Ï´Ù
INPUTÁ¤Ã¥Àº ´Ù ACCEPT¼³Á¤¸¸ ÀÖ°í REJECT³ª DROP¼³Á¤Àº ¾ø°í
INPUT ±âº»Á¤Ã¥À» DROPÀ¸·Î ÇÏ¿© ³ª¸ÓÁö ¼ºñ½º¸¦ ¸·À» »ý°¢Àε¥
INPUT ±âº»Á¤Ã¥À» DROPÀ¸·Î ¹Ù²Ù¸é À§¿¡ ¸»¾¸µå¸° Áõ»óÀÌ ³ªÅ¸³³´Ï´Ù.
¿°Ä¡¾øÁö¸¸ ÇØ´ç·êÀÇ ¿É¼Ç ¼³¸í ºÎŹµå·Áµµ µÉ±î¿ä??
À§ ·êÀ» iptables INPUT Çʼö ·ê·Î ±â¾ïÇÏ°í ÀÖ¾î¾ß µÇ°Ú½À´Ï´Ù.¤¾¤¾
°¨»çÇÕ´Ï´Ù.
iptablesÀº »óÅÂÃßÀû ±â´ÉÀÌÀÖ¾î INPUTÀ¸·Î µé¾î¿Â ÆÐŶµéÀº °Ë»ç¾øÀÌ ³ª°¡´Â°É·Î ¾Ë°í ÀÖ½À´Ï´Ù.
±×·¡¼ OUTPUTÀº ½Å°æ¾²Áö ¾ÊÀº°Çµ¥ À߸ø¾Ë°í ÀÖ´Ù¸é
°í°ß ºÎŹµå¸³´Ï´Ù
¼¹öÀÔÀå¿¡¼ ºÃÀ» ¶§ (iptables rule »óÀ¸·Î) º¸ÅëÀº src IP (Ŭ¶óÀ̾ðÆ® IP)¿Í dst PORT (¼¹öÂÊ) À» ¼³Á¤Çϴµ¥ ¼³¸í ÁֽŠºÎºÐ¿¡¼´Â dst ip + dst port À¸·Î Áּż ±ô¦³î¶ú³×¿ä.
inbound Æ®·¡ÇÈÀ¸·Î º»´Ù¸é, ¿©·¯ ȸ¿øºÐµéÀÌ ¸»¾¸ÇϽŰÅó·³ stateful match À» INPUT üÀÎÀÇ ÃÖ»ó´Ü Á¤Ã¥À¸·Î ³Ö¾îÁÖ½Ã¸é µË´Ï´Ù.
(º¸Åë conntrack ¸ðµâÀº ±âº» ·ÎµùÇϱ⠶§¹®¿¡... »ý·«ÇÏ°í)
# Allow ESTABLISHED, RELATED state
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# DROP INVALID packet
-A INPUT -m state --state INVALID -j DROP
´Ù¸¸, stateful match ÀÇ °æ¿ì¿¡´Â conntrack table ¿¡ ÇØ´ç ÆÐŶ flow ¸¦ ¸¶Å·Çϱ⠶§¹®¿¡ ¾ÆÁÖ ´ë·®ÀÇ Æ®·¡ÇÈÀÌ È帥´Ù¸é (Å×À̺í Á¶Á¤ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼³ Á¤µµ)
ipset À» ½á¼ address group À» µû·Î °ü¸®ÇϽôø°¡, ¾Æ´Ï¸é NOTRACK À¸·Î ¼³Á¤ÇÏ¿© connection track À» Æ÷±âÇÏ¼Å¾ß ÇÕ´Ï´Ù.
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
À§ ¼¼ ÁÙÀº INPUT üÀÎ ¸Ç À§¿¡ ½áÁÖ¼¼¿ä
ù ¹ø°ÁÙ: ³»°¡ ¿äûÇÑ(³ªÇÑÅ×¼ ¹ÛÀ¸·Î ³ª°£) ¿äûÀº Åë°ú
µÎ ¹ø°ÁÙ: ³»°¡ ³ªÇÑÅ× º¸³»´Â Åë½ÅÀº Åë°ú(·çÇÁ¹é ÀåÄ¡)
¼¼ ¹ø°ÁÙ: »óÅ°¡ INVALIDÀÎ ÆÐŶÀº µå¶ø