iptables를 사용하여 허용 된 IP (입 / 출력) 허용 목록 있습니다. 다른 모든

서버에 연결할 수 있고 사용자가 연결할 수있는 몇 가지 IP 범위가 있습니다. 다른 모든 것은 차단해야합니다.

iptables로 어떻게해야합니까?

내 OS는 데비안 기반의 리눅스 배포판입니다.



답변

Firestarter 와 같은 방화벽 구성 도구를 가져 와서 제안하는 것이 좋습니다 . 그래도 몇 가지 기본 사항이 있습니다.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT

답변

iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

이렇게하면 시스템이 허용되지 않는 컴퓨터에 대해 존재하지 않는 시스템으로 바뀝니다.


답변

전체 서브넷이 아닌 임의의 범위를 허용하려면 ‘iprange’iptables 모듈을 사용할 수 있습니다.

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

예를 들어, 주소가 192.168.1.30에서 192.168.1.50 사이 인 모든 시스템에서 트래픽이 들어오는 것을 허용합니다.

동일한 범위의 IP로 들어오는 트래픽과 나가는 트래픽을 허용하려면 해당 IP를 허용하고 모든 입력 및 출력 대상을 대상으로하는 특정 체인을 만드는 것이 좋습니다.

-기본 정책을 정의하여 Everithing을 삭제하십시오.

iptables -P INPUT DROP

iptables -P OUTPUT DROP

-새 체인을 만듭니다 :

iptables -N allowed_ips

-소스가 허용 범위의 일부이면 수락

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

-그렇지 않으면 발신자 체인으로 돌아가서 처리를 계속하십시오.

iptables -A allowed_ips -j RETURN

-기계로 들어오고 나가는 모든 트래픽이 새로운 체인을 통과하도록합니다.

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

그리고 그게 다야! 물론 인터페이스와의 모든 트래픽을 허용하는 규칙 등과 같은 추가 규칙이 필요할 수 있습니다.


답변

규칙에 만족 하면 규칙 을 저장하고 싶을 것 입니다. 이 링크의 주석에는이를 수행하는 방법에 대한 몇 가지 옵션이 있습니다.

간단한 요구를위한 사용하기 쉬운 iptables 규칙 생성기는 ufw 입니다. 패키지는 데비안 불안정한 상태로 제공됩니다.

Firestarter 도 시도하십시오 . 레니에서 사용할 수 있습니다.


답변

지난 1 년 동안 사용한 ferm 도 사용할 수 있으며 조건부 방화벽 규칙과 같은 경우에 많은 도움이되었습니다.