iptables에 대한 IP "화이트리스트" 생성

iptables에 대한 IP "화이트리스트" 생성

저는 iptables가 있는 셀룰러 모뎀/라우터를 사용하고 있습니다. WAN ICMP/HTTPS/SSH를 켜는 등 간단한 조정이 가능한 투박한 webUI도 있습니다. 나는 분명히 그 포트가 넓어지고 공개적으로 향하는 것을 원하지 않습니다. 하지만 미리 결정된 주소 화이트리스트에서 이 장치에 대한 원격 관리 액세스 권한을 갖고 싶습니다. 최대 10개의 주소가 있을 수 있으며 일부는 IP 범위/서브넷입니다. 나는 다음과 같은 규칙을 사용하여 단일 주소로 이것을 테스트했습니다.

-A HTTPS_WAN_INPUT -i ppp0 -s x.x.x.x -p tcp -m tcp --dport 443 -j ACCEPT

하지만 각 포트/프로토콜에 대해 그런 규칙을 10번 작성하는 것은 어설픈 것 같아서 이를 수행하는 더 좋은 방법이 있는지 알아보기 위해 글을 쓰고 있습니다. 모든 주소를 포함하는 $WHITELIST 변수를 생성하고 이를 -s에서 사용할 수 있습니까? 아니면 정책 중 하나와 같이 체인의 상위 항목에 화이트리스트를 적용할 수 있나요?

저는 각 규칙에 대해 10개의 다른 줄을 작성하지 않고 IP 집합에 대한 원격 액세스를 허용하는 보다 우아한 방법이 있는지 알아내려고 노력 중입니다.

답변1

실제로는 2가지 옵션(또는 조합)만 있지만... 하나는 다른 것보다 약간 더 위험합니다. 이 src필드에는 서브넷도 허용됩니다. 즉, 192.168.1.0/24입니다.

첫 번째,만약에귀하의 iptables/커널은 모듈과 함께 구축되었으며 iprange, 이를 사용하여 1-2 대신 IP 범위를 지정할 수 있습니다. 그러나 IP의 "목록"을 제공할 수는 없습니다. 예:

-A HTTPS_WAN_INPUT -i ppp0 -m iprange --src-range x.x.x.x-y.y.y.y -p tcp -m tcp --dport 443 -j ACCEPT

둘째, 모든 것을 깨끗하게 유지하기 위해 "화이트리스트에 등록된" IP를 포함하여 새로운 대상 특정 대상을 설정할 수 있습니다. 예:

iptables -N RemoteManagement
iptables -P RemoteManagement DROP
iptables -A -A HTTPS_WAN_INPUT -i ppp0 -p tcp -m tcp --dport 443 -j RemoteManagement

...그리고 허용하려는 각 IP에 대해...

iptables -I RemoteManagement -s x.x.x.x -j ACCEPT

이를 통해 규칙을 좀 더 깔끔하게 유지할 수 있으며 필요에 따라 간단히 IP를 삭제하거나 IP를 추가할 수 있습니다. 물론 iprange사용 가능한 모듈이 있는 경우 RemoteManagement 체인에서 범위를 지정할 수도 있습니다. 적용되는 다른 시나리오에서도 동일한 체인을 재사용할 수도 있습니다.

관련 정보