LINUX.ORG.RU
ФорумAdmin

NAT logging


0

0

здравствуйте.

у меня роутер Ubuntu 9.10, на одной сетевой карте два интерфейса ETH0 и ETH0:0, все ип статические.

как мне его настроить так чтобы в журналы он писал подобную информацию?:


Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.1 DST=213.226.132.42 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=6628 DF PROTO=TCP SPT=1431 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.2 DST=88.222.172.55 LEN=110 TOS=0x00 PREC=0x00 TTL=126 ID=14058 PROTO=UDP SPT=11526 DPT=50160 LEN=90
Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.3 DST=81.203.55.209 LEN=66 TOS=0x00 PREC=0x00 TTL=126 ID=41956 PROTO=UDP SPT=15271 DPT=4672 LEN=46
Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.1 DST=217.212.240.174 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=6641 DF PROTO=TCP SPT=1432 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0

то есть чтобы регистрировал все подключения.

Ну ты скажи для начала, какие подключения откуда и куда нужно регистрировать.

nnz ★★★★ ()

iptables -I PREROUTING -t nat -j LOG --log-prefix «test»

?

или если хочется вообще все логать iptables -I INPUT -j LOG --log-prefix «бум писать все!»

а вообще просто покажи кудой ты поьзователей натишь.

offtop ()
Ответ на: комментарий от nnz

нужно регистрировать подключения из локальной сети в интернет.

pavliuccio ()
Ответ на: комментарий от pavliuccio

нужно регистрировать подключения из локальной сети в интернет.

iptables -I FORWARD -m conntrack --ctstate NEW -o eth1 -j LOG --log-level DEBUG --log-prefix "New internet connection: "
nnz ★★★★ ()
Ответ на: комментарий от nnz

Ура! работает! только замного пишет. Пишет ДНС и еще пару одних и тех же адресов каждых несколько секунд, плюс адреса на которые «ходит» клиент.
В принципе мне эта система нужна для того чтобы отслеживать в локалке зараженные компьютеры, т.е. когда сеть перегружена отслеживать IP который ее «грузит».

есть ли какая-нибудь возможность фиксировать только именно такие IP?


(вернее мне так провайдер велел сделать. и для этого дал инструкцию, по которой у меня вообще ничего не пишет)

pavliuccio ()
Ответ на: комментарий от pavliuccio

Чтобы записывало только адреса, дающие высокую нагрузку, перепиши правило так:

iptables -I FORWARD -m conntrack --ctstate NEW -m hashlimit --hashlimit-name h1 --hashlimit-mode srcip --hashlimit-above 32/min -o eth1 -j LOG --log-level DEBUG --log-prefix "New internet connection: "
Будет записывать только с тех адресов, с которых было больше 32 новых соединений в минуту.

Можно слегка переделать конструкцию:

iptables -N logger
iptables -I FORWARD -m conntrack --ctstate NEW -o eth1 -j logger
iptables -A logger -d адрес_днса -j RETURN
iptables -A logger -d адрес_второго_днса -j RETURN
iptables -A logger -m hashlimit --hashlimit-name h1 --hashlimit-mode srcip --hashlimit-above 32/min -o eth1 -j LOG --log-level DEBUG --log-prefix "New internet connection: "

Теперь обращения на адреса днсов в лог попадать не будут.

nnz ★★★★ ()
Ответ на: комментарий от nnz

отлично! днс'ы пропали. но простые соединения почему-то все равно пишет, даже если оно единственное в минуту.

P.S. вместо -name h1 и eth1 я пишу соответственно -name h0 и eth0, так как у меня нет eth1, а только eth0 и eth0:0.

pavliuccio ()
Ответ на: комментарий от pavliuccio

>но простые соединения почему-то все равно пишет, даже если оно единственное в минуту

Странно. Ты абсолютно уверен, что оно записывает адреса, с которых по одному соединению в минуту? Старое правило (без hashlimit) удалил?

nnz ★★★★ ()
Ответ на: комментарий от nnz

этот роутер работает пока еще только в тестовом режиме, в локальной сети только один мой компьютер.
К примеру: я захожу на сайт www.linux.org.ru, сразу иду проверять логи. и там такой результат:

Feb 5 09:35:22 vartai1 kernel: [ 3972.940135] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=217.76.32.61 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22707 DF PROTO=TCP SPT=51544 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3972.941867] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=81.19.66.32 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22708 DF PROTO=TCP SPT=51546 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3972.942596] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=217.76.32.61 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22709 DF PROTO=TCP SPT=51548 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3972.963428] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=94.100.178.220 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22716 DF PROTO=TCP SPT=51550 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.019706] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=74.125.79.102 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22728 DF PROTO=TCP SPT=51552 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.020427] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=94.100.178.218 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22729 DF PROTO=TCP SPT=51554 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.063918] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=129.42.56.216 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22738 DF PROTO=TCP SPT=51556 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.094742] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=81.19.66.32 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22753 DF PROTO=TCP SPT=51558 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.103288] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=94.100.178.218 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22756 DF PROTO=TCP SPT=51560 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.405205] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=129.42.56.216 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22794 DF PROTO=TCP SPT=51562 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
Feb 5 09:35:22 vartai1 kernel: [ 3973.405940] New internet connection: IN=eth0 OUT=eth0 SRC=192.168.2.100 DST=129.42.56.216 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=22795 DF PROTO=TCP SPT=51564 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0

и это пишется сразу в трех местах: debug, kern.log и syslog.

правила я нигде и не сохранял пока и после рестарта ничего не пишет. поскольку этой проблемой я занимаюсь уже не первую неделю и перепробовал много способов, может где-нибудь что-то и осталось. где я мог бы это посмотреть?

pavliuccio ()
Ответ на: комментарий от pavliuccio

Попробуй добавить к параметрам --hashlimit-burst 32.

nnz ★★★★ ()
Ответ на: комментарий от nnz

ввел команду:

iptables -A logger -m hashlimit --hashlimit-name h0 --hashlimit-mode srcip --hashlimit-above 32/min --hashlimit-burst 32 -o eth -j LOG --log-level DEBUG --log-prefix «New internet connection: »

теперь вроде все хорошо, почти ничего лишнего не пишет. Пишет только подключения к некоторым сайтам (насколько я заметил это сайты на которых в качестве рекламы расположено много всяких ссылок). И еще пишет подключения из P2P (DC++).

pavliuccio ()
Ответ на: комментарий от pavliuccio

С рекламными серваками имхо ничего умного не сделать — просто вычеркивай их по одному, как с днсами.

iptables -I logger -d адрес -j RETURN

Насчет DC++... Если реально мешает, придется немного попрыгать.

# Качаешь сорцы для набора дополнений к iptables
apt-get install module-assistant xtables-addons-common xtables-addons-source
# Собираешь и устанавливаешь эти дополнения
m-a a-i xtables-addons
# Юзаешь
iptables -t mangle -A FORWARD -m ipp2p --dc -j CONNMARK --set-mark 11
iptables -I logger -m connmark --mark 11 -j RETURN

nnz ★★★★ ()
Ответ на: комментарий от nnz

все прошло успешно кроме:

iptables -t mangle -A FORWARD -m ipp2p --dc -j CONNMARK --set-mark 11

iptables: No chain/target/match by that name

pavliuccio ()
Ответ на: комментарий от nnz

Desired=Unknown/Install/Remove/Purge/Hold

| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend

|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)

||/ Имя Версия Описание

+++-==============-==============-

============================================

ii xtables-addons 1.17-1 Userspace components of xtables-addons

un xtables-addons <нет> (описание недоступно)

un xtables-addons <нет> (описание недоступно)

ii xtables-addons 1.17-1 Source for the xtables-addons driver biblioteka@vartai1:~$

pavliuccio ()
Ответ на: комментарий от pavliuccio

Значит, m-a a-i xtables-addons завершилось с ошибками. Что именно там не сработало?

nnz ★★★★ ()
Ответ на: комментарий от pavliuccio

Убунта в своем репертуаре.

apt-get install quilt
m-a a-i xtables-addons

nnz ★★★★ ()
Ответ на: комментарий от pavliuccio

uname -r

Раз не знаешь, значит, стандартное убунтовское.
Получается, с ним xtables-addons не собирается.

Ну что ж, придется теперь тебе страдать из-за кривого убунтовского ядра.

nnz ★★★★ ()
Ответ на: комментарий от nnz

поскольку у меня в сети только три DC++ клиента будет максимум, то может можно сделать что-нибудь подобного:?

iptables -I logger -d адрес_DC++_клиента -j RETURN

pavliuccio ()
Ответ на: комментарий от pavliuccio

>поскольку у меня в сети только три DC++ клиента будет максимум, то может можно сделать что-нибудь подобного:?

А, это сильно упрощает дело. Только не -d, а -s.
Но после этого уже никаких подключений от этих товарищей ты не увидишь.

nnz ★★★★ ()
Ответ на: комментарий от nnz

понимаю, ничего страшного.

И теперь как мне все это дело зафиксировать? т.е куда вписать чтобы после рестарта заново не надо было набирать?

pavliuccio ()
Ответ на: комментарий от pavliuccio

apt-get install iptables-persistent
iptables -Z && iptables-save > /etc/iptables/rules

nnz ★★★★ ()
Ответ на: комментарий от nnz

E: Не удалось найти пакет iptables-persistent

bash: /etc/iptables/rules: No such file or directory

pavliuccio ()
Ответ на: комментарий от pavliuccio
cat << EOF > /etc/init.d/iptables-persistent
#!/bin/sh
### BEGIN INIT INFO
# Provides:          iptables
# Required-Start:    mountkernfs $local_fs
# Required-Stop:     $local_fs
# Default-Start:     S
# Default-Stop:      
# Short-Description: Set up iptables rules
### END INIT INFO

case "$1" in
start)
    if [ -f /etc/iptables/rules ]; then
        iptables-restore </etc/iptables/rules
    fi
    ;;
stop|force-stop|restart|force-reload|status)
    ;;
*)
    echo "Usage: $0 {start|stop|force-stop|restart|force-reload|status}" >&2
    exit 1
    ;;
esac

exit 0
EOF
update-rc.d iptables-persistent start 37 S .
mkdir /etc/iptables
iptables -Z && iptables-save > /etc/iptables/rules
nnz ★★★★ ()
Ответ на: комментарий от nnz

все успешно выполнил. смотрел файлы /etc/init.d/iptables-persistent и /etc/iptables/rules все что нужно вписано. но все равно почему-то не пишет. начинает писать только после того как вручную пишу через терминал.

pavliuccio ()
Ответ на: комментарий от pavliuccio

Видимо, опять сказывается кривизна убунты.

Попробуй вписать
/etc/init.d/iptables-persistent start
в конец файла /etc/rc.local

nnz ★★★★ ()
Ответ на: комментарий от nnz

Ура!!! все отлично работает! спасибо! только пишет все сразу в три файла: debug, kern.log и syslog. как сделать чтобы в один писало?

pavliuccio ()
Ответ на: комментарий от pavliuccio

Если поменять log-level с DEBUG на EMERG, то в debug писаться не будет.
В kern пишется все, связанное с ядром, а в syslog — вообще все. Не вижу причин менять это поведение.
Но если все-таки очень хочется — ковыряй /etc/rsyslog.conf.

nnz ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.