[root@bbuwoo oops-firewall]$ cat /etc/oops-firewall/filter.conf
##########################################################################
# paket filtering 을 위한 설정
# $Id: filter.conf 338 2013-01-04 19:17:13Z oops $
#
# Rules:
#
# * IP address format
# - Anywhere format
# 0.0.0.0/0 = 0/0 = ANYWHERE = anywhere
# - IP range format
# 1.1.1.1-255 => 1.1.1.1-1.1.1.255
# 1.1.1.1-2.255 => 1.1.1.1-1.1.2.255
# 1.1.1.1-2.3.255 => 1.1.1.1-1.2.3.255
# 1.1.1.1-1.2.3.255 => 1.1.1.1-1.2.3.255
# - subnet
# 10.10.10.0/24
# 10.10.10.0/255.255.255.0
#
# * Port format
# port[:state] => state가 지정되지 않으면 기본으로 NEW를 사용
#
# 53
# 53-100 (range)
# 53:NEW
# 20:ESTABLISHED,RELATED
#
# => STATE
# NEW : 새로운 연결
# ESTABLISHED : 연결이 성립되어 있는 상태
# RELATED : FTP의 20번 포트나 passive port와 같은 연관 연결
# INVALID : 이상 패킷
#
# * 설정 format
#
# 값의 구분자는 공백문자를 사용함.
#
# Directive = VALUE1 VALUE2 VALUE3
#
# 다음과 같이 값을 여러줄로 설정이 가능. 마지막은 '\' 문자가 없어야 함.
#
# Directive = VALUE1 \
# VALUE2 \
# VALUE3
위의 표현법을 잘 인지해 두자.
##########################################################################
# GLOBAL Setting
##########################################################################
# 자신의 서브넷에 대해 모든 서비스 open
# 자기 자신만 접속이 가능하게 할때만 0 으로 지정 (이경우 콘솔에서만 접속
# 이 가능하게 됨)
#
# 사용 : 1 or true or yes
# 사용안함 : 0 or false or no
#
ALLOWSELF = true
ALLOSELF 의 값을 1로 하면 자신의 호스트에 설정이 되어 있는 NETWORK 와
SUBNET MASK 를 판단하여 해당 호스트의 네트워크에서는 아무런 제한이 없
이 접근이 가능하게 설정을 한다. 0 을 선택했을 경우에는 자기 자신의 주
소 에서만 아무런 제약이 없도록 한다.
기본값은 true(1)이지만 안전한 네트워크라는 확신이 없다면 false로 설정
하는 것을 권장한다.
# 모든 서비스를 허락할 호스트 설정
#
# RULE:
# SOURCE_IP
#
ALLOWALL =
ALLOWALL은 위에서의 자신의 네트워크 외에 다른 곳에서 아무런 제약을 받
지 않을 호스트나 네트워크를 설정을 한다. 설정 형식은 상단 주석의 IP주
소 표현 형식을 이용할 수 있다.
여기서 원격 작업을 하는 사람들은 꼭 현재 작업을 하고 있는 호스트의 IP
주소를 임시로 넣어 주도록 한다. 안그랬다가 원망살 일이 있게 된다고 앞
에서 분명히 경로를 했다.
좀더 쉽게 말하면.. firewall 설정을 하는 서버가 A이고 현재 키보드 작업
을 하고 있는 client 가 B 라면 여기에 B 의 IP 주소를 꼭 넣우 주고 작업
을 하라는 의미이다. 모든 작업이 완전 하게 되었다고 테스트를 마쳤을 경
우에만 삭제를 해 주도록 한다.
즉 ALLOWALL 은 말 그대로 아무런 제약을 하지 않을 곳이라는 의미이다.
##########################################################################
# TCP configuration
##########################################################################
#
# 모두 열여줄 포트를 설정
#
# RULE:
# DESTINATION_PORT[:STATE]
#
TCP_ALLOWPORT = 22
자 여기서 부터는 TCP protocol만 제어를 하게 된다. TCP_ALLPORT 는 여기
에 지정한 PORT번호들은 TCP service 안에서는 아무런 제약을 하지 않겠다
는 의미이다. 즉 service 를 하는 서버들은 이 부분에 지정이 되어야 할것
들이 꽤 될것이다. 웹 서비스를 하고 있다면 80 번을, mail service 를 하
고 있다면 25 번 (tls 기능을 사용시에는 587번도) 등 필요한 곳 즉, 불특
정 지역에서 접근을 가능하게 할 포트들을 적도록 한다. 참고로 name 서비
스의 경우에는 UDP 53 번만 열어 주면 된다.
포트 번호를 모른다면 /etc/services file 을 참고하면 된다.
주의 할것은 slave name server와의 통신이 필요하다면 slave name server
에서 tcp 53번으로의 접속을 허가해야 한다.
# 특정 호스트에 특정 포트를 열어 줄때
# RULE:
# SOURCE_IP[:DESTINATION_PORT[:STATE]]
#
TCP_HOSTPERPORT =
TCP_HOSTPERPORT 는 특정 호스트에 특정 PORT 만을 허락할 경우 설정을 한
다. 즉 192.168.1.1 에서만 텔넷에 접속을 할 수 있게 하려면 위의 전체를
열어주는 설정에서 텔넷(23) 포트를 제거한후에 이 설정에 192.168.1.1:22
라고 지정을 하면 된다. 즉 원하는 호트스에 원하는 포트 번호를 지정하는
것이라는 말이다.
##########################################################################
# UDP configuration
##########################################################################
#
# 모두 열여줄 포트를 설정
# RULE:
# DESTINATION_PORT[:STATE]
#
UDP_ALLOWPORT =
드디어 UDP 설정이다. 이곳에서의 설정은 거의 할 기회는 없을 것이다. 주
의할 것은 named, ircd 와 같은 daemon 을 운영할 경우에는 이곳에서의 설
정이 꼭 필요 하다는 것이다. samba 의 경우에도 udp 는 사용이 되기는 하
지만 samba 의 경우에는 내부 네트워크 안을 안 벗어 나는 것이 보안상 좋
으므로 ALL 의 설정 보다는 아래의 PERHOST의 설정에서 해 주는 것을 권장
한다. Name Server 를 운영한다면 위의 값에 53 이 꼭 들어가야 한다.
# 특정 호스트에 특정 포트를 열어 줄때
#
# RULE:
# SOURCE_IP[:DESTINATION_PORT[:STATE]]
#
UDP_HOSTPERPORT =
내 생각에는 samba 를 운영할때 외에는 별로 설정할 것이 없다고 생각된다.
##########################################################################
# ICMP configuration
##########################################################################
#
# 특정 호스트에 ping 을 열어 줄때
# RULE:
# SOURCE_IP
#
ICMP_HOSTPERPING =
ping 에 관한 설정이다. 문서들을 좀 보는 사람들이라면 ping 막는 법으로
sysctl 을 이용하여 막는 방법들을 본적이 있을 것이다. 하지만 sysctl 을
이용하여 ping 을 막을 경우에는 자기 자신도 ping 을 사용하지 못하게 된
다. 하지만 IPTABLE을 이용하면 상대방은 나에게 핑을 쏘지 못하지만 나는
핑을 테스트 할수 있게끔 설정이 가능하다.
일단 여기서의 설정은 이 설정을 하는 호스트로 핑을 할수 있는 권한을 주
는 것이다. 위의 GLOBAL 설정에서 지정된 호스트및 네트워크 와 여기서 지
정된 호스트및 네트워크를 제외하고는 핑을 보내면 패킷이 drop 된다.
# 특정 호스트에 traceroute 를 열여줄 때
#
# RULE:
# SOURCE_IP
ICMP_HOSTPERTRACE = ANYWHERE
oops-firewall 은 기본적으로 icmp 의 traceroute 에 관련된 패킷을 제어
하지는 않지만, Unix 의 traceroute 의 경우에는 패킷을 udp 로 보내기 때
문에 제어를 받게 된다. 그러므로 이 옵션에서 해당된 사이트로 열어 주기
위해서는 이 옵션을 지정해 줘야 한다. 이 옵션을 지정해 주면, 해당 주소
에 대하여 udp 33434 부터 30 홉스에 해당하는 33525 까지를 열어 주게 된
다.
7.0.0 부터는 tracepath가 사용하는 44444 포트도 지원을 한다.
만약 전체를 열어 주고 싶다면 0.0.0.0/0 으로 설정을 해 주면 된다.
##########################################################################
# LOG configuration
##########################################################################
#
# DENY rule 에 대한 로그를 남길 것인가 여부를 위해 설정.
# 형식 1 -> 남김
# 0 -> 남기지 않음
#
# 사용 : 1 or true or yes
# 사용안함 : 0 or false or no
#
# 보통 로그는 syslogd 에서 kernel message 를 다른곳으로 남기지 않는한은
# /var/log/messages 에 kernel: 이라는 분류로 로그가 남게된다.
#
USE_LOG = false
로그를 남길지 남기지 않을지 여부를 지정한다. DENY RULE 에 대해서만 로
그가 남는다. 로그는 위의 주석에 있듯이 따로 syslogd 에서 설정을 하지
않는 한은 RH 배포본의 경우 /var/log/messages 에 남게 된다.
이 기능은 현재 제거를 할지 유지를 할지 결정을 하지 못했다. 제대로 관
리가 되고있지 않아 정확하게 어느정도로 잘 작동하는지 확인해 보지 않아
서 이 기능의 정책성 사용 여부는 권장하지 않는다.
##########################################################################
# 외부 서비스 이용을 위한 filtering 설정
#
7.0.0 부터 OUT_TCP_HOSTPERPORT와 OUT_UDP_HOSTPERPORT 지시자가 추가 되
었다.
##########################################################################
# TCP configuration
##########################################################################
#
# 내부에서 외부로의 접속을 허가할 TCP 포트 설정
#
# RULE:
# DESTINATION_PORT[:STATE]
#
OUT_TCP_ALLOWPORT = 21 22 25 43 80 123 443 873
만약 rdate 를 이용해서 시간 동기화를 할 경우에는 37번 포트를 열어주도
록 한다. time.kriss.re.kr 과 같이 ntp 를 이용한 time server 로 동기화
를 할 경우에는 123 번을 열어준다.
또한, 제한을 하고 싶지 않을 경우에는 간단하게, 1-65535 으로 지정을 하
면 모든 포트를 열게 된다.
# 내부에서 접속할 외부 특정 호스트와 TCP 포트 설정
#
# RULE:
# DESTINATION_IP[:DESTINATION_PORT[:STATE]]
#
OUT_TCP_HOSTPERPORT =
##########################################################################
# UDP configuration
##########################################################################
#
# 내부에서 외부로의 접속을 허가할 UDP 포트 설정
#
# RULE:
# DESTINATION_IP[:DESTINATION_PORT[:STATE]]
#
OUT_UDP_ALLOWPORT =
원격으로 SNMP 연력을 위해서는 여기에 161 번을 열어줘야 한다.
# 내부에서 접속할 외부 특정 호스트와 UDP 포트 설정
#
# RULE:
# DESTINATION_IP[:DESTINATION_PORT[:STATE]]
#
OUT_UDP_HOSTPERPORT =
[root@bbuwoo oops-firewall]$
|