Привет всем. Новичок в FreeBSD.
После упорного штурма man man... итд есть пара вопросов :)
opennet и его форум по интересующим вопросам читал,
но не увидел нужных ответов.Имеем:
FreeBSD 5.1-RELEASEУстановленные пакеты:
CommuniGate Pro Messaging Server v4.1.8
rinetd-0.62
mysql 3.23
sshd из портов (последний)
named из портов (последний)
ftpd из портов (последний)Два сетевых интерфейса, ed0 - в интернет, ed1 - в локалку
Внутренняя сеть видит интернет через диверт (natd)
Sshd, named, ftpd и mysql висят только на локальном интерфейсе
rinetd переадресует для edonkey
communigate pro - корпоративная почта (домен), relay несвоим запрещенВопросы следующие:
##################################################################
1. Немного офф-топик. Устанавливаю Midnight Commander из портов. Вместо кириллицы
вижу кракозябры (через ssh-клиент Putty). Многочисленные FAQ's по
русификации не помогли. В Putty charset стоит 1251, в MC тоже 1251, 8-bit.
echo $TERM - xterm########### rc.conf ###########
keymap=ru.cp1251
scrnmap="win2cpp866"
font8x16=cp866-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
keychange="61 ESC[K"
###################### rc.conf ###########
russian|Russian Users Accounts:\
:charset=CP1251:\
:lang=ru_RU.CP1251:\
:tc=default:
###########Через pw для root'a выставлен класс russian. Во всем остальном русский язык
работает на ура, только в MC проблемы... В чем могут быть грабли?
Случайно нашел начало граблей - MC вместо CP1251 подсовывает KOI-8R.
Несмотря на настройки через меню (WIN1251).##################################################################
(конфиги в самом низу)
2. Упорно не могу найти, куда пристроить правила для подсчета ИСХОДЯЩЕГО
трафика из внутренней сети. Нужно считать по каждому хосту отдельно, т.е.
это кучка правил. В нижеприведенном конфиге есть пример того, как я пытаюсь
этот ИСХОДЯЩИЙ трафик считать - увы неверно считаю. Подскажите плз....)3. Не нашел способа пускать Edonkey пользователям. Беда в том,
что их несколько. Так-бы просто сделал форвард таких-то портов туда-то.
Правила с флагом keep-state не проходят, т.к. ввиду корявости
конфига пришлось вначале пускать локальную сеть на юникс, а уже следующим
правилом уже в интернет.4. Не разобрался с ICMP. В одних документациях сказано, что пускать
следует такие типы ICMP туда, в других другие типы туда. А может
есть общепринятые правила пропуска ICMP? Т.е. из локальной сети
пускать все ICMP, в локальную никакие, от юникса пускать такие,
к юниксу только такие.###################################################################
5. От провайдера постоянно сыпятся broadcast по udp. ????????
Трафик хоть и мелкий но тарифицируется. Кто-нибудь с этим боролся?6. Далее - написал скрипт, забирающий счетчики IPFW в sql,
юзера смотрят статистику другим скриптом через http. С большой
радостью обнаружил, что перловые скрипты хотя и работают, но при запуске
из консоли каждый раз ругаются на мою любимую русскую кодировку CP1251.
Это не фатально, но неприятно. Чем этот perl прибить? )))####################
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset),
LANG = "ru_RU.CP1251"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
####################7. Ftpd тормозит на отдачу. Настройки дефолтные. Тормозит так,
будто канал раз в 10 меньше чем есть. На прием все отлично.
Других проблем с быстродействием сети на этой машине нет.
Да, тормозит во всех режимах, passive и без passive.8. Fetch вообще не генерит трафик!! Писал пустой конфиг рода
ipfw add pass log ip from any to any
и после команды fetch www.ru (скачено 12кб) в ipfw show были нули
???????################# кусок rc.conf #################
ifconfig_ed0="inet xxx.xxx.xxx.xxx netmask 255.255.255.0"
ifconfig_ed1="inet 192.168.1.100 netmask 255.255.255.0"
defaultrouter="xxx.xxx.xxx.xxx"
gateway_enable="YES"
hostname="blablabla.ru"kern_securelevel_enable="NO"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="MY"
firewall_quiet="YES"
firewall_logging="YES"
tcp_extensions="NO"
tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
natd_enable="YES"
natd_interface="xxx.xxx.xxx.xxx"
natd_flags="-f /etc/natd.conf"################# natd.conf ####################
log no
log_denied no
use_sockets yes
same_ports yes
unregistered_only yes
dynamic yes################ собственно rc.firewall ######################
#!/bin/sh -
## ALIASES
# internet interface
oif="ed0"
onet="xxx.xxx.xxx.xxx"
omask="255.255.255.0"
oip="xxx.xxx.xxx.xxx"# lan interface
iif="ed1"
inet="192.168.1.0"
imask="255.255.255.0"
iip="192.168.1.100"
local=${inet}:${imask}# dns servers
dns1="xxx.xxx.xxx.xxx"
dns2="xxx.xxx.xxx.xxx"# 21,20,80,3128,8000,8080 - ftp & http
# 7000 - preferance
# 2147 - poker
# 5190 - icq
# 4000,9000 - muds
# 7771 - mirc
# 4662, 3759(udp) - edonkey
# 25,110 - mail (@mail.ru)
ports="21,25,110,20,80,3128,8000,8080,7000,2147,5190,4000,9000,7771,4662,3759"# inet interface allowed ports
unix_in="25"
unix_out="0-65535" # +user_out if not 0-65535# local interface allowed ports
unix_local_in="0-65535"
unix_local_out="0-65535"# INIT
ipfw -f flush
ipfw add 50 check-state# Keep open our ssh session forever & when flushing rules
ipfw add pass tcp from $local to 192.168.1.100 dst-port 22 established
ipfw add pass tcp from 192.168.1.100 to $local src-port 22 established
ipfw add pass all from $local to 192.168.1.100 dst-port 22
ipfw add pass all from 192.168.1.100 to $local src-port 22# SETUP LOOPBACK
ipfw add pass all from any to any via lo0
ipfw add deny all from any to 127.0.0.0/8
ipfw add deny ip from 127.0.0.0/8 to any# MODEM rulez
ipfw add pass all from any to any via ppp0# FROM DEFAULT RC.FIREWALL
ipfw add deny all from ${inet}:${imask} to any in via $oif
ipfw add deny all from ${onet}:${omask} to any in via $iif
ipfw add deny all from any to 10.0.0.0/8 via $oif
ipfw add deny all from any to 172.16.0.0/12 via $oif
ipfw add deny all from any to 192.168.0.0/16 via $oif
ipfw add deny all from any to 0.0.0.0/8 via $oif
ipfw add deny all from any to 169.254.0.0/16 via $oif
ipfw add deny all from any to 192.0.2.0/24 via $oif
ipfw add deny all from any to 224.0.0.0/4 via $oif
ipfw add deny all from any to 240.0.0.0/4 via $oif
# COUNT OUTGOING TRAFFIC
ipfw add 3710 count all from 192.168.1.1 to not $local out via ed0
ipfw add 3720 count all from 192.168.1.2 to not $local out via ed0
ipfw add 3730 count all from 192.168.1.3 to not $local out via ed0
ipfw add 3740 count all from 192.168.1.4 to not $local out via ed0
ipfw add 3750 count all from 192.168.1.5 to not $local out via ed0
ipfw add 3760 count all from 192.168.1.6 to not $local out via ed0
ipfw add 3770 count all from 192.168.1.7 to not $local out via ed0
ipfw add 3780 count all from 192.168.1.8 to not $local out via ed0
ipfw add 3790 count all from 192.168.1.9 to not $local out via ed0
ipfw add 3800 count all from 192.168.1.10 to not $local out via ed0
ipfw add 3810 count all from $oip to not $local out via ed0# DIVERT
ipfw add 3900 divert natd all from any to any via $oif# COUNT INCOMING TRAFFIC
ipfw add 5010 count all from not $local to 192.168.1.1 in via ed0
ipfw add 5020 count all from not $local to 192.168.1.2 in via ed0
ipfw add 5030 count all from not $local to 192.168.1.3 in via ed0
ipfw add 5040 count all from not $local to 192.168.1.4 in via ed0
ipfw add 5050 count all from not $local to 192.168.1.5 in via ed0
ipfw add 5060 count all from not $local to 192.168.1.6 in via ed0
ipfw add 5070 count all from not $local to 192.168.1.7 in via ed0
ipfw add 5080 count all from not $local to 192.168.1.8 in via ed0
ipfw add 5090 count all from not $local to 192.168.1.9 in via ed0
ipfw add 5100 count all from not $local to 192.168.1.10 in via ed0
ipfw add 5110 count all from not $local to $oip in via ed0# FROM DEFAULT RC.FIREWALL
ipfw add deny all from any to 0.0.0.0/8 via $oif
ipfw add deny all from any to 169.254.0.0/16 via $oif
ipfw add deny all from any to 192.0.2.0/24 via $oif
ipfw add deny all from any to 224.0.0.0/4 via $oif
ipfw add deny all from any to 240.0.0.0/4 via $oif# ICMP
ipfw add deny icmp from any to 255.255.255.255 in via $oif
ipfw add reject icmp from any to 255.255.255.255 out via $oif
ipfw add deny icmp from any to $imask in via $oif
ipfw add reject icmp from any to $imask out via $oif
ipfw add deny icmp from any to $inet in via $oif
ipfw add reject icmp from any to $inet out via $oif
ipfw add pass icmp from any to any# UNIX_LAN
ipfw add pass all from $local to any via $iif
ipfw add pass all from any to $local via $iif# UNIX_INET
ipfw add pass tcp from $oip to any dst-port $unix_out out via $oif
ipfw add pass tcp from any to $oip dst-port $unix_out in via $oif established
ipfw add pass tcp from any to $oip dst-port $unix_in in via $oif
ipfw add pass udp from me to $dns1 dst-port 53 out via $oif keep-state
ipfw add pass udp from me to $dns2 dst-port 53 out via $oif keep-state# USERS
ipfw add pass all from not $local to $local src-port $ports in via ed0 established# Здесь секция для Edonkey
# DENY ALL OTHER
###########################################################И еще.. чем больше в этот конфиг вписываю, тем больше понимаю что написан он
очень криво (еще бы). Хотя все порты кроме 25 закрыты - сканировал из инета,
а 25 порт подвергал DOS-атакам. Может поделиться кто-нибудь надежным и
железобетонным конфигом?)))) Дошло до того, что после бессонных ночей с ipfw,
программируя на delphi начал писать ipfw add deny bla-bla-bla....Спасибо за внимание.
>2. Упорно не могу найти, куда пристроить правила для подсчета ИСХОДЯЩЕГО
>трафика из внутренней сети.Трафик надо считать самыми первыми правилами, еще до divert
ipfw add 10 count ip from 192.168.1.1 to any out via ed0>3. Не нашел способа пускать Edonkey пользователям. Беда в том,
>что их несколько.И не найдешь :)
Можешь поставить его на сервере и через веб-интерфейс пусть добавляют файлы на закачку.>4. Не разобрался с ICMP. В одних документациях сказано, что пускать
>следует такие типы ICMP туда, в других другие типы туда. А может
>есть общепринятые правила пропуска ICMP? Т.е. из локальной сети
>пускать все ICMP, в локальную никакие, от юникса пускать такие,
>к юниксу только такие.Я впускаю (на внешнем интерфейсе): 0,3,4,11,12,14,16,18
Выпускаю: 3,4,8,11,12,13,15,17
В локалке не ограничиваю.>5. От провайдера постоянно сыпятся broadcast по udp. ????????
>Трафик хоть и мелкий но тарифицируется. Кто-нибудь с этим боролся?Это только к провайдеру - он же считает сколько тебе отправил, а не сколько ты принял.
>8. Fetch вообще не генерит трафик!! Писал пустой конфиг рода
>ipfw add pass log ip from any to any
>и после команды fetch www.ru (скачено 12кб) в ipfw show были нулиГенерит, ты просто чего-то не того сделал :)
>Может поделиться кто-нибудь надежным и
>железобетонным конфигом?А чеи тебе твой не нравится? Главное чтоб "default to deny" было :)
Естественно default to deny.
Спасибо за ответы :)