레이블이 BSD인 게시물을 표시합니다. 모든 게시물 표시
레이블이 BSD인 게시물을 표시합니다. 모든 게시물 표시

mac pfctl 로 ip 블럭

# 특정 ip 를 블럭해 disconnection test 를 하려고 한다.
# mac 같은 BSD 계열에서는 iptables 대신
# pfctl (packet filter control)을 사용할 수 있다.

# pfctl 활성
sudo pfctl -e

# pfctl 비활성
sudo pfctl -d

# vi /etc/pf.conf 에 직접 블럭할 ip 를 명시한다.
block drop from any to 10.10.10.2
block drop from any to 10.10.10.3
block drop from any to 10.10.10.4

# 또는 ip 그룹을 테이블로 만들고 다음과 같이 지정할 수도 있다.
table <ysoftmantable> persist { 10.10.10.2, 10.10.10.3, 10.10.10.4}
block drop from any to { <ysoftmantable> }

# pf.conf 로딩
sudo pfctl -f /etc/pf.conf

# 이제 위에 명시된 ip 로 outbound 되는 패킷은 모두 블럭된다.

# ysoftmantable 테이블 상태보기
sudo pfctl -t ysoftmantable -vT show

# ysoftmantable 테이블에 ip 추가
sudo pfctl -t ysoftmantable -T add 10.10.10.10
sudo pfctl -t ysoftmantable -T add 10.10.10.11

# ysoftmantable 테이블에서 ip 제거
sudo pfctl -t ysoftmantable -T delete 10.10.10.11

# 생성한 테이블 모두 지우기(T대문자)
sudo pfctl -F Tables

# nat,info,queue,table ... 등 전체지우기
sudo pfctl -F all

# 참고 
man pfctl
man pf.conf