아래에 기재된 방법은 FreeBSD 5.3이상에서 가능한 방법이며.
4.X과 5.2이하의 방법은 또 다릅니다..
4.X버젼과 5.2 이하의 FreeBSD에서 안된다고 돌 던지지 마시옵소서.... :)
앞에 #이 붙은건 명령어 입니다.. terminal이나 console에서 바로 입력하시면 됩니다.
chapter 1. pf지원을 위한 커널 컴파일
1. 커널 소스 받기
1.1 CD-ROM에서 소스 설치 하기
# mount /cdrom
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cat /cdrom/src/ssys.[a-d]* tar -xzvf -
1.2 sysinstall을 이용한 ftp에서 받기
# /stans/sysinstall
Configure -> Distrubution -> src -> sys 선택후 다운경로를 ftp로 선택.
2. 커널 컴파일 준비 하기
커널 소스 디렉토리로 이동후 커널 config파일을 /root/kernels로 링크를 건후 작업
직접 GERNERIC파일을 사용하거나 /src/src/sys에서 작업하는건 비추천
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNE
커널 config에 pf지원 추가
# vi /usr/src/sys/i386/conf/MYKERNEL
아래의 구문을 추가(위치는 상관없음)
#FireWall support
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
3. 커널 컴파일
# /usr/sbin/config MYKERNEL
# cd ../compile/MYKERNEL
# make depend
# make# make install
# reboot
Chapter 2. NAT 설정
1. ip forwarding enable
# sysctl net.inet.ip.forwarding=1
재부팅 후에도 계속 적용되도록 /etc/sysctl.conf에 아래의 구문을 추가
net.inet.ip.forwarding=1
2. /etc/pf.conf의 수정
ext_if="rl0" <- ifconfig에서 출력되는 interface이름(인터넷에 연결된 인터페이스) int_if="vr0" <- 내부 인터페이스 block all <- 외부에서 들어오는 패킷은 모두 block(나가는건 상과없음) nat on $ext_if from $int_if:network to any -> ($ext_if) <- nat 지원
저장후
# pfctl -f /etc/pf.conf
위의 설정은 기본 NAT 설정이며 외부에서 요청하는 패킷은 모두 block되어 있는 설정이다.
모두 block되어 있으나 내부에서 요청에 의한 패킷은 block되지 않는다.
적절한 보안이나 ip, port forwarding은 다음에 다루도록 하겠다.
잘 안되거나 문의사항은 저의 메일이나 댓글로 주시면 감사하겠습니다.
움트트움트
쪽지보내기
이름으로 검색
메일보내기
자기소개
(134.♡.217.232) 06-04-25 16:38
bsdnet에서 보니, 커널옵션에
options IPDIVERT 와
options IPFIREWALL 를 주었던데,
위의 옵션과 어떤 차이점이 있으며,
저 옵션들이 어떤일을 하는지에 대해서 알고싶습니다.
처용
쪽지보내기
이름으로 검색
메일보내기
자기소개
(211.♡.10.73) 06-04-27 15:21
FreeBSD에는 방화벽이 ipfilter, ipfw, pf와 같이 총 3종류가 있습니다.
위 문서는 그중 OpenBSD에서 만들어져서 5.4부터 기본 커널에 포함된 pf를 사용하는 방법을 기술한겁니다.
움트트움트님이 물어보신건 ipfw를 이용한 방화벽이지요.
더 자세한 내용은 여기서 보실수 있습니다.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls.html
댓글 없음:
댓글 쓰기