방화벽 규칙을 절반으로 줄임-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.