ipfw 설치 및 룰
페이지 정보
작성자 상석하대 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 에필로그 댓글 0건 조회 3,586회 작성일 19-05-29 12:24본문
FreeBSD 8, 9, 11, 12
웹서버
NIC 이름은 em0인 경우 예
ipfw은 커널의 기본 모듈이다. *커스터마이징하려면 커널을 컴파일한다.
sysrc firewall_enable="YES" *부팅시 ipfw 사용
sysrc firewall_type="simple" *simple은 네트워크 보호 모드
sysrc firewall_script="/etc/ipfw.rules" *룰 정의
sysrc firewall_logging="YES" *로깅, 로그 부담시 사용하지 않아도 무방
echo "net.inet.ip.fw.verbose_limit=5" >> /etc/sysctl.conf *로그 파일 크기 제한
sysrc firewall_logif="YES" *ipfw0 이름으로 로깅하는 경우다. 사용하지 않아도 무방, 기록되는 로그의 확인은 tcpdump -t -n -i ipfw0
ee /etc/ipfw.rules
#!/bin/sh
# 초기화
ipfw -q -f flush# 변수
cmd="ipfw -q add"
pif="em0"# 기타
$cmd 00100 check-state
$cmd 00101 allow ip from any to any via lo0
$cmd 00102 allow icmp from any to any out via $pif keep-state
$cmd 00103 allow icmp from any to any in via $pif
$cmd 00104 allow tcp from any to any dst-port 37 out via $pif setup keep-state
$cmd 00105 allow udp from any to any dst-port 123 out via $pif keep-state
$cmd 00106 deny log ip from any to any out via $pif# 일부 네트워크, 포트, 조각패킷 차단
$cmd 00107 deny ip from 192.168.0.0/16 to any in via $pif
$cmd 00108 deny ip from 172.16.0.0/12 to any in via $pif
$cmd 00109 deny ip from 10.0.0.0/8 to any in via $pif
$cmd 00110 deny ip from 127.0.0.0/8 to any in via $pif
$cmd 00111 deny ip from 0.0.0.0/8 to any in via $pif
$cmd 00112 deny ip from 169.254.0.0/16 to any in via $pif
$cmd 00113 deny ip from 192.0.2.0/24 to any in via $pif
$cmd 00114 deny ip from 204.152.64.0/23 to any in via $pif
$cmd 00115 deny ip from 224.0.0.0/3 to any in via $pif
$cmd 00116 deny tcp from any to any dst-port 113 in via $pif
$cmd 00117 deny tcp from any to any dst-port 137 in via $pif
$cmd 00118 deny tcp from any to any dst-port 138 in via $pif
$cmd 00119 deny tcp from any to any dst-port 139 in via $pif
$cmd 00120 deny tcp from any to any dst-port 81 in via $pif
$cmd 00121 deny ip from any to any frag in via $pif
$cmd 00122 deny tcp from any to any established in via $pif# DNS 조회
$cmd 00200 allow tcp from me to any dst-port 53 out via $pif setup keep-state
$cmd 00201 allow udp from me to any dst-port 53 out via $pif keep-state# 웹이용
$cmd 00202 allow tcp from me to any dst-port 80 out via $pif setup keep-state
$cmd 00203 allow tcp from me to any dst-port 443 out via $pif setup keep-state# SMTP 발송
$cmd 00204 allow tcp from me to any dst-port 25 out via $pif setup keep-state
$cmd 00205 allow tcp from me to any dst-port 465 out via $pif setup keep-state
$cmd 00206 allow tcp from me to any dst-port 587 out via $pif setup keep-state# 웹서비스
$cmd 00207 allow tcp from any to me dst-port 80 in via $pif setup limit src-addr 3
$cmd 00208 allow tcp from any to me dst-port 443 in via $pif setup limit src-addr 3# SSH, FTP 단속
$cmd 00300 deny ip from table\(22\) to any
$cmd 00301 allow tcp from any to me dst-port 22 in via $pif setup limit src-addr 2
$cmd 00302 allow tcp from any to me dst-port 21 in via $pif setup limit src-addr 10
$cmd 00303 allow tcp from any to me dst-port 35021-35120 in via $pif setup limit src-addr 10# 나머지 모두 차단 및 로깅
$cmd deny log ip from any to any in via $pif
service ipfw start
sysctl net.inet.ip.fw.verbose_limit=5 *재부팅하지 않고 적용
sysctl net.inet.ip.fw.verbose_limit=5 *재부팅하지 않고 적용
댓글목록
등록된 댓글이 없습니다.