들어오는 모든 트래픽을 수락하려면 iptables 규칙이 필요합니다.


34

내 테스트 환경에서 들어오는 모든 트래픽을 수락하고 싶습니다. 누가 나에게 iptable 규칙을 추가 할 수 있습니까?

내 현재 iptables -L -n 출력은 다음과 같습니다

체인 입력 (정책 ACCEPT) 대상 prot opt ​​소스
대상 ACCEPT all-0.0.0.0/0 0.0.0.0/0
상태 관련, 설정 ACCEPT icmp
-0.0.0.0/0 0.0.0.0/0 ACCEPT all-0.0.0.0 / 0 0.0.0.0/0 ACCEPT tcp-0.0.0.0/0 0.0.0.0/0 상태 NEW tcp dpt : 22 거부 모두-0.0.0.0/0 0.0.0.0/0
거부 (icmp-host 금지 ACCEPT 사용) tcp-0.0.0.0/0
0.0.0.0/0 tcp dpt : 8443 ACCEPT tcp-0.0.0.0/0 0.0.0.0/0 tcp dpt : 8080 ACCEPT tcp-0.0.0.0/0 0.0.0.0/0 tcp dpt : 9443 ACCEPT TCP-0.0.0.0/0 0.0.0.0/0 tcp dpt : 2124

Chain FORWARD (정책 ACCEPT) 대상 prot opt ​​소스
대상 거부 모두-0.0.0.0/0 0.0.0.0/0
거부-icmp-host 금지

체인 출력 (정책 수락) 대상 선택 소스
대상

감사

답변:


53

다음을 실행하십시오. iptables 상단에 규칙을 삽입하고 이후에 다른 규칙으로 처리하지 않는 한 모든 트래픽을 허용합니다.

iptables -I INPUT -j ACCEPT

다음을 사용하여 전체 iptables 설정을 플러시 할 수도 있습니다.

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

플러시하면 다음과 같이 실행할 수 있습니다.

iptables -A INPUT -i lo -j ACCEPT -m comment --comment "Allow all loopback traffic"
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT -m comment --comment "Drop all traffic to 127 that doesn't use lo"
iptables -A OUTPUT -j ACCEPT -m comment --comment "Accept all outgoing"
iptables -A INPUT -j ACCEPT -m comment --comment "Accept all incoming"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow all incoming on established connections"
iptables -A INPUT -j REJECT -m comment --comment "Reject all incoming"
iptables -A FORWARD -j REJECT -m comment --comment "Reject all forwarded"

트래픽을 좀 더 안전하게하려면 들어오는 모든 규칙 수락을 사용하지 말거나 "iptables -D INPUT -j ACCEPT -m comment --comment"comcept all incoming ""으로 제거하십시오. 다음과 같은 특정 규칙 :

iptables -I INPUT -p tcp --dport 80 -j ACCEPT -m comment --comment "Allow HTTP"
iptables -I INPUT -p tcp --dport 443 -j ACCEPT -m comment --comment "Allow HTTPS"
iptables -I INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT -m comment --comment "Allow SSH"
iptables -I INPUT -p tcp --dport 8071:8079 -j ACCEPT -m comment --comment "Allow torrents"

참고 : 하단에있는 2 개의 거부 규칙 위에 있어야하므로 상단에 삽입하려면 I을 사용하십시오. 또는 나와 비슷한 항문 인 경우 "iptables -nL --line-numbers"를 사용하여 줄 번호를 얻은 다음 "iptables -I INPUT ..."을 사용하여 특정 줄 번호에 규칙을 삽입하십시오.

마지막으로 다음 작업으로 작업을 저장하십시오.

iptables-save > /etc/network/iptables.rules #Or wherever your iptables.rules file is

1
이 대답은 마침내 나의 고통을 종식시켰다. 이 답변은 "# @ $ # % iptables가 원하는 작업과 원하는 작업을 수행하는 방법"에 대한 질문을 해결합니다. 권장하는 유일한 개선 사항은 포트 전달 예제를 추가하는 것입니다. (즉, 80에서 8080 및 443에서 8443까지) iptables에 대한 질문의 99 %가 단일 게시물로 답변 될 것이라고 생각합니다.
Eric Hartford 18

이것으로 돌아 오는 데 조금 늦었지만 여기 있습니다. 한 포트에서 다른 포트로 트래픽 리디렉션 : "iptables -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080". 원하는 작업을 수행하도록 쉽게 조정할 수 있습니다. 유일한 요구 사항은 포트 가 모두 열려 있어야한다는 것입니다 (이 문장 위의 항목을 통해). 즐기십시오!
Alex Atkinson

16

들어오는 모든 트래픽을 수락하려면 다음 명령을 사용할 수 있습니다. -P는 기본 정책을 accept로 설정하는 것입니다.

iptables -P INPUT ACCEPT  

이전 규칙이 필요하지 않은 경우 규칙을 플러시 / 제거한 다음 위 명령을 사용하십시오.
모든 규칙 사용을 플러시

iptables -F    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.