방화벽 규칙을 절반으로 줄임-TCP 및 UDP에 대한 IPTables 규칙 1 개


12

방화벽에 다음과 같은 많은 iptables 규칙이 있습니다.

iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT

모든 주소에 대해 두 가지 규칙 (tcp에 대한 규칙과 udp에 대한 규칙)이있는 지름길이 있습니까? 나는 이런 식으로 할 수 있다는 것을 의미한다.

iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT

답변:


22

TCP 및 UDP 패킷을 허용하는 새 체인을 만들고 개별 IP / 포트 허용 규칙에서 해당 체인으로 이동하십시오.

iptables -N ACCEPT_TCP_UDP
iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT
iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT

iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP

이로 인해 몇 줄의 추가 오버 헤드가 추가되지만 TCP / UDP 규칙 수는 절반으로 줄어 듭니다.

나는 할 수 없습니다 재진입 -p만 ICMP에 대한 방화벽을 열고, 또한 다른 프로토콜을하지 않을 때문에, 인수를. iptables 매뉴얼 페이지에서 -p:

지정된 프로토콜은 tcp, udp, icmp 또는 all 중 하나이거나 이러한 프로토콜 중 하나 또는 다른 프로토콜을 나타내는 숫자 값일 수 있습니다. / etc / protocols의 프로토콜 이름도 허용됩니다.

현재 TCP, UDP 및 ICMP를 제외한 다른 프로토콜을 듣지 않을 수도 있지만 미래에 어떤 영향을 줄지 누가 알 수 있습니까? 방화벽을 불필요하게 열어 두는 것은 좋지 않습니다.

면책 조항 : iptables 명령은 내 머리 꼭대기에 있습니다. ATM을 테스트 할 상자에 액세스 할 수 없습니다.


방화벽을 불필요하게 열어 두지 않는 매우 우아한 솔루션입니다.
— Big McLargeHuge

4
그러나 대상 포트 번호를 통해 필터링을 수행하면이 새로운 체인 작성 방법이 실패합니다. 위에서 언급 한 문제를 극복하는 방법을 제안 할 수 있습니까?
— Amor

@Amor이 예제 에서 체인의 -p all모든 --dport규칙에 사용 zone_lan_forward하면 원하는 것을 얻을 수 있습니다. 물론 체인으로 인해 비 TCP / UDP 프로토콜을 사용하여 해당 체인에 연결할 수있는 다른 방법이 없다고 가정합니다 ACCEPT_TCP_UDP. 여러 사람이 규칙을 수정할 수 있고 누군가가이 미묘함을 이해하지 않고 규칙을 수정하고 편집하는 경우 분명히 이것은 위험한 전략입니다.
— 사무엘 하머

죄송합니다. 체인의 순서를 알지 못했습니다. 이 예제에서 체인 순서를 전환하여 방금 올바르게 작동한다고 말한 내용을 전환해야합니다. 따라서로 ACCEPT_TCP_UDP이동하여 zone_lan_forward로 이동합니다 ACCEPT.
— Samuel Harmer

2

ICMP 트래픽에 관심이 없다면 (어쨌든 규칙으로 전역 적으로 차단할 수 있음) -p 플래그를 생략하면 모든 프로토콜이 적용됩니다.


ICMP 트래픽을 고려해야합니까? 나는 주로 HTTP 액세스에 관심이 있습니다.
— Big McLargeHuge 16:17에

실제로는 아닙니다. 원하는 경우 ICMP (ping)를 차단할 수 있지만 HTTP 트래픽을 제공하므로 아무 의미가 없습니다.
— Nathan C

@NathanC, OP가 규칙을 반으로 줄이려면 현재 또는 미래에 문제가 발생할 수 있다고 요청할 때 모든 포트를 여는 것이 좋습니다.
— Jed Daniels

@JedDaniels -p 스위치는 포트가 아닌 프로토콜을 지정합니다. 아래의 대답은 tcp & udp 이외의 것을 잠그는 경우 대안이 있습니다.
— Nathan C

@NathanC 예. -p를 제거한다는 것은 "tcp 또는 udp뿐만 아니라 모든 프로토콜을 엽니 다"를 의미하며 위험하지 않은 경우 무모합니다.
— Jed Daniels
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.