The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"FreeBSD 5.1 + ipfw + natd (куча вопросов, FAQ's не помогают)"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [Проследить за развитием треда]

"FreeBSD 5.1 + ipfw + natd (куча вопросов, FAQ's не помогают)"
Сообщение от Gale Искать по авторуВ закладки on 17-Фев-04, 14:26  (MSK)
Привет всем. Новичок в 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....

Спасибо за внимание.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "FreeBSD 5.1 + ipfw + natd (куча вопросов, FAQ's не помогают)"
Сообщение от dev emailИскать по авторуВ закладки on 17-Фев-04, 15:35  (MSK)
>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" было :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "FreeBSD 5.1 + ipfw + natd (куча вопросов, FAQ's не помогают)"
Сообщение от Gale Искать по авторуВ закладки on 17-Фев-04, 19:09  (MSK)
Естественно default to deny.
Спасибо за ответы :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру