모든 IP가 서버의 모든 항목에 액세스하지 못하도록 차단

모든 IP가 서버의 모든 항목에 액세스하지 못하도록 차단

내 집 IP를 제외한 모든 IP를 차단하고 싶습니다. 이렇게 하세요아무것내 서버에.

iptables로 어떻게 할 수 있나요? 예를 들어 내 집 IP가 1.2.3.4라고 가정해 보겠습니다.

내 서버는 여전히 다양한 IP에 연결할 수 있어야 합니다. 또한 이렇게 하면 일반적인 문제가 발생합니까?

이 같은? (작동하지 않음)

/sbin/iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -j DROP
iptables -A OUTPUT -d 0.0.0.0/0 -j DROP

답변1

OUTPUT체인을 가만히 유지하십시오 . 이것을 당신의 INPUT체인 에 넣어라

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -j DROP    # or REJECT

첫 번째 규칙을 사용하면 iptables구성에서 설정된 연결에 대한 트래픽(즉, 자체 서버에서 시작하여 다른 대상으로 향하는 트래픽)을 허용할 수 있습니다.

답변2

/etc/hosts.deny및 을 사용할 수 있습니다 /etc/hosts.allow.

/etc/hosts.allow:

ALL: allowed_ip

/etc/hosts.deny:

ALL: ALL

이 구성은 허용된 IP에서만 서버에 액세스합니다(일부 경우 문제가 될 수 있음). 아마도 firewall서버에 대한 액세스를 지정하려면 일부를 사용해야 할 것입니다 .

그러나 위의 방법은 ICMP 요청을 처리하지 않습니다 httpd. 다음을 시도해 볼 수 있습니다.

# Allow your server to other destinations
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Default Policy to DROP all incoming traffic
iptables -P INPUT DROP

# Allow traffic from source 1.2.3.4
# Add an additional rule for each allowed source
iptables -A INPUT -s 1.2.3.4 -j ACCEPT

관련 정보