OpenBSD에서 pf를 사용하여 IP 주소 오용을 방지하는 방법은 무엇입니까?

OpenBSD에서 pf를 사용하여 IP 주소 오용을 방지하는 방법은 무엇입니까?

nginx 로그를 보면 불쾌한 일을 하는 IP 주소가 있다는 것을 알 수 있습니다.

명령을 사용하여 어떻게 pf차단한 다음 를 사용하여 영구적으로 차단할 수 있습니까 /etc/pf.log? 이 IP를 어떻게 차단할 수 있나요 x.x.x.x/24? 예: 1.2.3.4

업데이트: 아니요, OpenBSD에는 /etc에 허용/거부 파일이 없는 것 같습니다. 내가 아는 한, IP 주소 오용을 막기 위한 최선의 조언은 pf를 사용하는 것입니다.

# cd /etc 
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 amd64
# 

답변1

이를 수행하는 가장 좋은 방법은 테이블을 정의하고 다음과 같이 호스트를 차단하는 규칙을 만드는 것입니다 pf.conf.

table <badhosts> persist
block on fxp0 from <badhosts> to any

그런 다음 IP 주소를 동적으로 추가/제거합니다.

$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4

다른 "테이블" 명령에는 flush(모두 삭제) replace및 자세한 show내용이 포함됩니다 man pfctl.

보다 영구적인 목록을 원할 경우 파일로 저장할 수 있습니다. 존재하다 pf.conf:

table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any

IP 주소 대신 호스트 이름을 추가할 수도 있습니다. man pf.conf및 의 "테이블" 섹션을 참조하세요 man pfctl.

노트:위의 예에서는 인터넷 연결 인터페이스를 가정합니다 fxp0. 설정에 따라 이를 변경하십시오. 또한 의 규칙은 pf.conf순차적으로 평가되며 blockor pass규칙의 경우 마지막 일치 규칙이 적용됩니다. 이 규칙 세트를 사용하면

table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80

badhosts테이블에 1.2.3.4 및 192.168.0.10을 추가한 후

$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10

1.2.3.4 및 192.168.0.10의 모든 트래픽은 두 번째 호스트를 제외하고 차단됩니다.~ 할 것이다pass해당 규칙이 해당 규칙과 일치하고 재정의되므로 다른 시스템의 포트 80에 연결할 수 있습니다 block.

답변2

차단하려는 악성 호스트의 실제 테이블을 생성해야 한다는 것이 다른 답변에서는 명확하지 않습니다.

이것은 pf.conf 파일에 있습니다. 예를 들어 두 개의 badguys 파일이 있습니다. 1&2 badguys1은 오고 가는 사람들을 위한 것이고 badguys2는 영구 블랙리스트를 위한 것입니다.

그러니 시간이 지나면서 짜증나는 사람의 IP를 추가해야 한다면 badguys1에 추가하세요.

이제 pf.conf 파일에 이것이 있습니다. 제 예에서는 WiFi 인터페이스인 en1을 사용하고 있습니다. 네트워크가 들어오는 인터페이스에 따라 이를 설정하십시오.

table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on en1 from <badhosts> to any

이제 badguys1에 임시 주소를 추가할 수 있습니다. (나쁜 호스트가 아니라 테이블 이름입니다)

sudo pfctl -t badguys1 -T add 185.130.5.160

1 table created.
1/1 addresses added.

1개의 테이블이 생성되었다고 나와 있지만 실제로는 새 테이블을 생성하는 것이 아니라 IP를 추가합니다. 이제 badguys1을 보면 새 IP가 표시됩니다.

sudo pfctl -t badhosts -T show

답변3

이 정보는 웹사이트에서 얻은 정보 OpenBSD이므로 이해가 부족한 점 양해해 주시기 바랍니다. 확인 해봐URL. 이에 따르면 IP를 차단하려면 다음을 수행해야 합니다.

echo '123.123.123.123' >> /etc/pf.blocked.ip.conf

그런 다음 방화벽을 다시 시작합니다.

pfctl -d
pfctl -e -f /etc/pf.conf

또는 방화벽을 다시 시작하지 않고 추가하세요.

pfctl -t blockedips -T add 111.222.333.444

이제 추가되었는지 확인하세요.

pfctl -t blockedips -T show

업데이트: 아마도 이것이 도움이 될 것입니다.

  • vi에서 다음 파일을 엽니다.

    vi /etc/pf.conf

  • 다음 코드 줄을 추가합니다.

    table <blockedips> persist file "/etc/pf.blocked.ip.conf" ext_if="bge0" # interface connected to internet

  • 그런 다음 방화벽을 다시 시작하고 다음을 입력하여 IP가 차단되었는지 확인합니다.

    pfctl -d
    pfctl -e -f /etc/pf.conf
    pfctl -t blockedips -T show
    

관련 정보