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
순차적으로 평가되며 block
or 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