SSH를 특정 IP 범위로 제한

SSH를 특정 IP 범위로 제한

저는 OpenBSD를 사용하고 있으며 192.168.42.40 - 192.168.42.60 사이의 IP를 가진 모든 사용자에게 포트 22를 제한하고 싶습니다. 하지만 어떻게 해야할지 모르겠습니다. 패킷 필터를 수정해야 합니까?

(SSH는 내 웹 서버에 있고 내 게이트웨이 IP는 192.168.2.2입니다.) 내 네트워크 다이어그램: 여기에 이미지 설명을 입력하세요.

해결책을 찾도록 도와주실 수 있나요?

답변1

예. 이것은 패킷 필터에 대한 (좋은) 작업입니다. 범위가 같다면서브넷IP 주소 + 넷마스크로 쓸 수 있습니다. 20개 이상의 주소가 필요한 경우 30개로 반올림하고 192.168.42.33에서 시작합니다. 즉, 서브넷 192.168.42.32/27에 대해 이야기하게 됩니다. 즉, 호스트의 주소 범위는 0.33에서 0.62까지입니다. 이것이 너무 많으면 /28로 범위를 좁힐 수 있습니다. 이렇게 하면 0.33에서 0.47까지 14개의 호스트가 생성됩니다. 이를 염두에 두고 다음을 추가할 수 있습니다.

pass on <ifname> inet proto tcp from 192.168.42.32/27 to port ssh

/etc/pf.confSSH 서버에서 는 SSH 트래픽을 수신할 인터페이스의 이름 입니다 <ifname>(예: em0). 생략할 수 있으며, 이 경우 규칙은 모든 인터페이스에 적용됩니다.

제발하다pf.conf패킷 필터 설정 및 구성 방법에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오 . OpenBSD의 man페이지는 일반적으로 매우 잘 작성되어 있고 철저하며 종종 예제가 포함되어 있습니다.

답변2

당신은 이것을 할 수 있습니다iptables

#allow the hosts
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.40 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.41 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.42 -j ACCEPT
...# you must specify all of them
iptables -I INPUT -p tcp --dport 22 -s 192.168.42.60 -j ACCEPT

#deny everyone else, note the -A (append) option.
iptables -A INPUT -p tcp --dport 22 -j DROP

iptables

관련 정보