CentOS iptables관련 질문드립니다.

쿨쿨쿨   
   조회 2942   추천 0    

사용자단에 서버가 들어가서 서버쪽 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는 실제 설정과 다른 임의로 아무거나 집어넣었습니다.

안녕하십니까 it관련 지식을 쌓아보고자 가입합니다.
짧은글 일수록 신중하게.
송주환 2019-02
서버가 느려진다는 게 어떤 의미이신지요.
그리고 룰과 체인은 각각 몇 개씩 있나요?
     
it생초보 2019-02
체인은 기본체인 3개 있습니다
INPUT, OUTPUT FORWARD
INPUT으로 들어오는것만 설정하려고 해서 OUTPUT과 FORWARD는 기본값이고
INPUT에 룰이 11개 들어가있습니다.
느려진다는것이 INPUT의 기본정책을 DROP으로 바꾸고나면 명령어 사용시 출력이 느려지고 전체적인 반응이 느려집니다.
ssh접속이 갑자기 끊기기도 합니다.
ssh접속관련 INPUT 설정은 맨 윗줄에 해놓았기 때문에 끊어질 이유가 없을텐데 이유를 모르겠습니다
INPUT정책은 다 ACCEPT설정만 있고 REJECT나 DROP설정은 없고
INPUT 기본정책을 DROP으로 하여 나머지 서비스를 막을 생각인데
INPUT 기본정책을 DROP으로 바꾸면 위에 말씀드린 증상이 나타납니다.
          
송주환 2019-02
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
               
it생초보 2019-02
답변 감사합니다 적용해보겠습니다.
염치없지만 해당룰의 옵션 설명 부탁드려도 될까요??
                    
송주환 2019-02
이전에 Accept된 커넥션을 통과시키는 룰입니다.
                         
it생초보 2019-02
이 룰이 없으면 글에있는것과같은 문제가 나타나는 걸까요??
위 룰을 iptables INPUT  필수 룰로 기억하고 있어야 되겠습니다.ㅎㅎ
감사합니다.
파닥파닥 2019-02
헌데 어떤 이유에서 outbound 트래픽을 output 체인에서 제어하지 않고 input 체인에서 제어하시는 걸까요
     
it생초보 2019-02
OUPUT은 최초패킷이 대상에서 나갈때 사용하는 것이 아닌가요 ??
iptables은 상태추적 기능이있어 INPUT으로 들어온 패킷들은 검사없이 나가는걸로 알고 있습니다.
그래서 OUTPUT은 신경쓰지 않은건데 잘못알고 있다면
고견 부탁드립니다
          
파닥파닥 2019-02
Client --> Server 패킷을 제어하시려고 하신거였군요.
서버입장에서 봤을 때 (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 을 포기하셔야 합니다.
박경원 2019-02
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A  INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

위 세 줄은 INPUT 체인 맨 위에 써주세요

첫 번째줄: 내가 요청한(나한테서 밖으로 나간) 요청은 통과
두 번째줄: 내가 나한테 보내는 통신은 통과(루프백 장치)
세 번째줄: 상태가 INVALID인 패킷은 드랍


QnA
제목Page 3156/5710
2015-12   1690671   백메가
2014-05   5156328   정은준1
2016-02   4027   김건우
2020-08   3059   라온제나
2017-02   4488   신은왜
2019-06   2776   머리감자
2023-09   3465   Uinx
2017-02   4948   전설속의미…
2019-06   3014   쓰레기단장
2014-12   7309   motion
2016-03   4518   김형준1
2022-03   1768   ginyunas
2013-08   11156   승후니도쿄
2017-02   7339   김도형
2018-05   6220   신은왜
2023-10   1698   atozztoa
2020-09   2685   사랑하라
2015-01   5784   이름미상
2010-10   9696   경박한시민
2015-01   4335   SpringValley
2016-03   4114   신우섭
2020-09   3116   Lucyed