Новичок во FreeBSD, собираю Web-сервер, а в будущем почтовый на той же машине.
Имеется 1 интерфейс, который будет смотреть в интернет (пока он смотрит в локалку).
Задача - разрешить http и ssh (попозже https, ftp (sftp) и почту).
В результате чтения документации, статей и форумов подобрал следующий набор правил для ipfw (чуть пониже)...
Достаточно ли указанных правил для IPFW (т.е. не нужно ли чего сюда дописать - другие компоненты защиты сейчас не рассматриваю)?
И еще маленький вопросик - на этом форуме есть поиск (или для него надо регистрироваться)?
Спасибо!
Код: Выделить всё
#!/bin/sh
FwCMD="/sbin/ipfw -q " # IPFW binary
# При переносе в интернет - заменить
external_if="fxp0" # External interface
external_ip="192.168.0.196" # IP
external_nw="192.168.0.0" # local network
external_mk="24"
# При переносе в интернет - заменить
ip_adm="192.168.0.108" # Admin ip for SSH, etc
ip_dns="192.168.0.1" # DNS Server (and gate)
loopback_if="lo0" # Loopback interface
${FwCMD} -f flush
${FwCMD} add check-state
# Deny private networks
${FwCMD} add deny log ip from 172.16.0.0/12 to any
${FwCMD} add deny log ip from any to 172.16.0.0/12
${FwCMD} add deny log ip from 127.0.0.1/8 to any
${FwCMD} add deny log ip from any to 127.0.0.1/8
${FwCMD} add deny log ip from 10.0.0.0/8 to any
${FwCMD} add deny log ip from any to 10.0.0.0/8
${FwCMD} add deny log ip from 169.254.0.0/16 to any
${FwCMD} add deny log ip from any to 169.254.0.0/16
# Раскомментировать при переносе в интернет
# ${FwCMD} add deny log ip from 192.168.0.0/16 to any
# ${FwCMD} add deny log ip from any to 192.168.0.0/16
# Multicast dispatches
${FwCMD} add deny ip from any to 240.0.0.0/4 in
${FwCMD} add deny ip from any to 240.0.0.0/4 out
# ${FwCMD} add deny log ip from 192.0.2.0/24 to any
# ${FwCMD} add deny log ip from 204.152.64.0/23 to any
# ${FwCMD} add deny tcp from any to any 137 in
# ${FwCMD} add deny tcp from any to any 138 in
# ${FwCMD} add deny tcp from any to any 139 in
# ${FwCMD} add deny tcp from any to any 81 in
# Loopback
${FwCMD} add 5000 allow ip from any to any via ${loopback_if}
# Allow ICMP type from any to any
# OLD
${FwCMD} add deny icmp from any to any frag
# IN OLD - 0,3,5,8,11
${FwCMD} add pipe 10 icmp from any to any icmptypes 0,8,11
${FwCMD} pipe 10 config bw 64000
# For TraceRouting
# ${FwCMD} add allow udp from ${external_ip} to any 33434-33600
# For SSH
${FwCMD} add allow tcp from ${ip_adm} 1024-65535 to ${external_ip} ssh in via ${external_if}
${FwCMD} add allow tcp from ${external_ip} ssh to ${ip_adm} 1024-65535 out via ${external_if}
# Allow DNS Req
${FwCMD} add allow udp from ${external_ip} to ${ip_dns} 53 out via ${external_if}
${FwCMD} add allow udp from ${ip_dns} 53 to ${external_ip} in via ${external_if}
# For Web Server
${FwCMD} add allow tcp from ${external_nw}/${external_mk} 1024-65525 to ${external_ip} http in via ${external_if}
${FwCMD} add allow tcp from ${external_ip} http to ${external_nw}/${external_mk} 1024-65525 out via ${external_if}
# deny all
${FwCMD} add deny from any to any via ${external_if}
Код: Выделить всё
# ${FwCMD} add deny log ip from 192.0.2.0/24 to any
# ${FwCMD} add deny log ip from 204.152.64.0/23 to any
# ${FwCMD} add deny tcp from any to any 137 in
# ${FwCMD} add deny tcp from any to any 138 in
# ${FwCMD} add deny tcp from any to any 139 in
# ${FwCMD} add deny tcp from any to any 81 in