211

funky, http://linuxforum.ru/viewtopic.php?pid=176106#p176106 - не важно debian/другой линукс - сам скрипт идентичен везде.

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

212

приветствую.

нужна ваша помощь вот в какой ситуации: есть одна машинка, на которой стоит debian, и которая смотрит в мир. она же является роутором для второй машинки в локальной сети. из локалки компьютер нормально выходит в интренет, и вроде бы всё хорошо. появилось желание воспользоваться услугой ip-tv от провайдера, компьютер в локалке достучаться не может. на debian-е ip-tv работает без претензий.

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

заранее благодарен за помощь

213

apollyon, http://linuxforum.ru/viewtopic.php?id=11837 не?

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

214

На Debian ставим либо igmpproxy или udpxy.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

215

newzenon пишет:

apollyon, http://linuxforum.ru/viewtopic.php?id=11837 не?

через vlc на debian-е всё работает отлично.  Kettler, спасибо, буду копать в этом направлении

216

http://f.kostix.net/index.php?board=122.0
вот как поднять роутер + проксик

217

apollyon поробуй на шлюзе правило
/sbin/iptables -A POSTROUTING -s LOCAL_NET -o INTERF_PROVIDER -j MASQUERADE

218 (18.11.2011 16:46:55 отредактировано zenon)

Дошли руки в Gentoo до TARPIT
Для этого надо

emerge -av xtables-addons

Пока загнал 22-ой

iptables -A INPUT  -i $EXT -p tcp --dport 22 -j TARPIT
iptables -A OUTPUT -o $EXT -p tcp --sport 22 -j DROP

Интересные подходы:
можно сделать так, чтобы сканеры портов принимали сканируемую систему за Microsoft Windows. Для этого надо открыть порты NetBIOS, а при попытке обращения к ним отправлять соединения в TARPIT:

iptables -A INPUT -i $EXT -p tcp -m tcp -m multiport --dports 135,139,1025 -j TARPIT

Защита ssh и ftp от брут-форса:

iptables -A INPUT -i $EXT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j TARPIT
iptables -A INPUT -i $EXT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT

Первое правило проверяет наличие в динамическом списке ip-адреса отправтеля, и запись об этом адресе должна быть “моложе” 20 секунд. Иначе – TARPIT. Второе правило разрешает обращение на 22-й порт и заносит IP-адрес в динамический список.

Чтобы работал TARPIT (ловушка):
в Debian -

aptitude install module-assistant xtables-addons-source
module-assistant prepare
module-assistant auto-install xtables-addons-source
depmod -a

в Gentoo -

emerge -av xtables-addons
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

219 (27.11.2011 02:07:24 отредактировано denis32)

Ребят, вопрос больше новечка:

Зачем в скриптах с правилами iptables писать например:

echo 1 > /proc/sys/net/ipv4/ip_forward

Много раз такое замечал в готовых... Или это глупость авторов?

Ведь можно задать это в /etc/sysctl.conf

net.ipv4.ip_forward=1

В чём  плюсы или минусы?

Debian GNU/Linux 6.0.4 | xfce4.6

220

denis32, лично мне надоедает про sysctl.conf каждому объяснять, а разницы никакой если в стартовом скрипте echo 1 > /proc/sys/net/ipv4/ip_forward.
Ну и конечно можно "на лету" менять параметры, например:

echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter    #
echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp    #
echo "1" > /proc/sys/net/ipv4/ip_dynaddr            # Нужно если IP динамический
echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6 # Выключаяем ipv6
echo "1" > /proc/sys/net/ipv4/ip_forward            # Включить перенаправление пакетов через ядро
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all  # Вдруг в ядре ping отключен, значит разрешим
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

221 (27.11.2011 02:35:08 отредактировано denis32)

Да, но если не скрипты - это только до ребута... ab
Понял, спасибо.

И на лету...

sysctl -w net.ipv4.ip_forward=1
sysctl -p

?

Debian GNU/Linux 6.0.4 | xfce4.6

222

Народ помогите разобраться в правилах, делал по примеру  http://linuxforum.ru/viewtopic.php?pid=176106#p176106 подозреваю что я настроил чтото не так, потомучто переодически идут потери при пинге шлюза, когда идет нагрузка на сеть.
вот правила

+ открыть спойлер

!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp


# Объявление переменных
export IPT="iptables"

# localhost
export LO="lo"
LO_IP="127.0.0.1"

# Интерфейс который смотрит в интернет
export WAN=eth1
WAN_IP1="yyy.yyy.yyy.yy" #почта
WAN_IP2="xxx.xxx.xxx.xx" #интернет
# Локальная сеть 1 eth0
export LAN1=eth0
export LAN_IP_RANGE1=192.168.2.0/24
LAN_IP1="192.168.2.254"
# Локальная сеть(бухгалтерия) 2 eth2
export LAN2=eth2
export LAN_IP_RANGE2=192.168.10.0/24
LAN_IP2="192.168.10.254"
# openVPN сеть - через него идет интернет
export VPN=tun0
export VPN_IP_RANGE=10.10.10.0/24

# допольнительное оборудование скажем роутер
export IP_ROUTER="192.168.2.11"
# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i $LO -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A INPUT -i $LAN2 -j ACCEPT
$IPT -A OUTPUT -o $LO -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT
$IPT -A OUTPUT -o $LAN2 -j ACCEPT
$IPT -A OUTPUT -p ALL -s $WAN_IP1 -j ACCEPT
$IPT -A OUTPUT -p ALL -s $WAN_IP2 -j ACCEPT

#$IPT -A INPUT -p ALL -i $WAN -s $LAN_IP_RANGE1 -j ACCEPT
#$IPT -A INPUT -p ALL -i $LAN2 -s $LAN_IP_RANGE2 -j ACCEPT
$IPT -A INPUT -p ALL -i $LO -s $LO_IP -j ACCEPT
#$IPT -A INPUT -p ALL -i $LO -s $LAN_IP1 -j ACCEPT
#$IPT -A INPUT -p ALL -i $LO -s $LAN_IP2 -j ACCEPT
#$IPT -A INPUT -p ALL -i $LO -s $WAN_IP -j ACCEPT
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT
$IPT -A FORWARD -i $LAN2 -o $WAN -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT
$IPT -A FORWARD -i $WAN -o $LAN2 -j REJECT

# Маскарадинг для openVPN сети чтобы весь трафик шел через впн сеть
$IPT -t nat -A POSTROUTING -o $WAN -s $VPN_IP_RANGE -j MASQUERADE
#$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE1 -j MASQUERADE
# Маскарадинг для бухгалтерии
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE2 -j MASQUERADE

# Маскарадинг для роутера
#$IPT -t nat -A POSTROUTING -o $WAN -s $IP_ROUTER -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 192.168.20.11 -j MASQUERADE -o eth1

#  для почтовых портов
$IPT -t nat -A POSTROUTING -p tcp -o $WAN --dport 110 -j SNAT --to-source $WAN_IP1
$IPT -t nat -A POSTROUTING -p tcp -o $WAN --dport 25 -j SNAT --to-source $WAN_IP1
$IPT -t nat -A POSTROUTING -p tcp -o $WAN --dport 143 -j SNAT --to-source $WAN_IP1
$IPT -t nat -A POSTROUTING -p tcp -o $WAN -j SNAT --to-source $WAN_IP2

# Далее дано как пример открытие портов извне:
# **********************************************************************
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Разрешаем dns серверу
$IPT -A INPUT -i $WAN -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p udp --sport 53 -j ACCEPT

# Открытие портов для торрентов (такие же указать в torrent-клиенте)
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 50100:51100 -j ACCEPT
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 50100:51100 -j ACCEPT

# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT

# Открытие порта udp 1194 для openVPN
$IPT -A INPUT -p tcp --dport 1194 -j ACCEPT
$IPT -A INPUT -p udp --dport 1194 -j ACCEPT
# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p all --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 80 -j ACCEPT
$IPT -A INPUT -p udp --dport 80  -j ACCEPT
$IPT -A OUTPUT -p udp --sport 80 -j ACCEPT

# Открытие порта 25, 143 для smtp imap
$IPT -A INPUT -i $WAN -p all --dport 25 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p all --dport 25 -j ACCEPT
$IPT -A INPUT -p tcp --dport 25 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 25 -j ACCEPT
$IPT -A INPUT -i $WAN -p all --dport 143 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p all --dport 143 -j ACCEPT
$IPT -A INPUT -p tcp --dport 143 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 143 -j ACCEPT
$IPT -A INPUT -i $WAN -p all --dport 110 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p all --dport 110 -j ACCEPT
$IPT -A INPUT -p tcp --dport 110 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 110 -j ACCEPT
$IPT -A FORWARD -p TCP -s 0/0 --dport 25 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 25 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --dport 110 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 110 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --dport 143 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 143 -j allowed
#$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets


$IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -s $WAN -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LAN1 -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LAN2 -j ACCEPT
$IPT -A OUTPUT -p ALL -s $VPN -j ACCEPT


# Открытие портов для игровых серверов
#$IPT -A INPUT -i $WAN -p tcp --dport 27010:27030 -j ACCEPT
#$IPT -A INPUT -i $WAN -p udp --dport 27010:27030 -j ACCEPT
# **********************************************************************
# Вывод информации о состоянии
$IPT -L

223

sagvir пишет:

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

ну посмотрите лог, в чём проблема. Если там пусто, используйте действие -j LOG.

Я не понимаю, у вас реально используются ВСЕ эти серверы и демоны? Или вы так скопиастили?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

224

Ну да, крутиться ddns + openvpn, postfix+dovecot+spamassassin+clamav, apache
Какой именно лог смотреть? системный ничего говорящего там вроде нет

less /var/log/syslog

+ открыть спойлер

Dec  7 10:29:22 mailserver dovecot: IMAP(ilfat@domain.ru): Effective uid=5000, gid=8, home=/var/vmail/domain.ru/ilfat
Dec  7 10:29:22 mailserver dovecot: IMAP(ilfat@domain.ru): maildir: data=/var/vmail/domain.ru/ilfat
Dec  7 10:29:22 mailserver dovecot: IMAP(ilfat@domain.ru): maildir++: root=/var/vmail/domain.ru/ilfat, index=, control=, inbox=/var/vmail/domain.ru/ilfat
Dec  7 10:29:34 mailserver dhcpd: DHCPINFORM from 192.168.2.178 via eth0
Dec  7 10:29:34 mailserver dhcpd: DHCPACK to 192.168.2.178 (00:26:9e:34:5c:54) via eth0
Dec  7 10:29:35 mailserver dhcpd: DHCPINFORM from 192.168.2.127 via eth0
Dec  7 10:29:35 mailserver dhcpd: DHCPACK to 192.168.2.127 (1c:6f:65:54:c9:82) via eth0
Dec  7 10:30:15 mailserver dhcpd: DHCPREQUEST for 192.168.2.160 from 00:0a:48:16:22:31 (

о с впн сегодня по логам сурезно)
less /var/log/openvpn.log

+ открыть спойлер

ed Dec  7 10:38:30 2011 us=194554 myrzinova.imsp/192.168.2.240:1194 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Dec  7 10:38:30 2011 us=194619 myrzinova.imsp/192.168.2.240:1194 TLS: move_session: dest=TM_ACTIVE src=TM_UNTRUSTED reinit_src=1
Wed Dec  7 10:38:30 2011 us=194882 myrzinova.imsp/192.168.2.240:1194 TLS: tls_multi_process: untrusted session promoted to semi-trusted
Wed Dec  7 10:38:30 2011 us=216573 myrzinova.imsp/192.168.2.240:1194 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Wed Dec  7 10:38:30 2011 us=293116 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:31 2011 us=201627 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:31 2011 us=675938 myrzinova.imsp/192.168.2.240:1194 PUSH: Received control message: 'PUSH_REQUEST'
Wed Dec  7 10:38:31 2011 us=676069 myrzinova.imsp/192.168.2.240:1194 SENT CONTROL [myrzinova.imsp]: 'PUSH_REPLY,route-gateway 192.168.2.254 255.255.255.0,dhcp-option DNS 192.168.2.254,redirect-gateway,route-gateway 10.10.10.1,ifconfig 10.10.10.9 255.255.255.0' (status=1)
Wed Dec  7 10:38:34 2011 us=662017 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:34 2011 us=665995 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:38 2011 us=73958 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:38 2011 us=77942 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:41 2011 us=769978 nyriclamov.imsp/192.168.2.138:1194 write UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:41 2011 us=773950 user15.imsp/192.168.2.178:1194 write UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:44 2011 us=773917 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:44 2011 us=781970 nagimov.imsp/192.168.2.187:1194 write UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:47 2011 us=777882 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:47 2011 us=785970 d12art.imsp/192.168.2.111:1194 write UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:50 2011 us=886140 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:54 2011 us=86037 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:54 2011 us=89931 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:38:57 2011 us=213998 afanaceva.imsp/192.168.2.195:1194 write UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:39:00 2011 us=217800 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)
Wed Dec  7 10:39:00 2011 us=221779 read UDPv4 [EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH|EHOSTUNREACH]: No route to host (code=113)

225

sagvir пишет:

Какой именно лог смотреть?

ну вы меня извините, но мне лень разбирать ваши 100500 ненужных правил. Давайте вы все уберёте, и оставите только нужные.
ну для начала расскажите, какие службы (ака демоны) у вас работают, и зачем?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

226

Ну вот убрал, и подписал демоны к правилам, хотя  и так подписаны были)

+ открыть спойлер

!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"

# localhost
export LO="lo"
LO_IP="127.0.0.1"

# Интерфейс который смотрит в интернет
export WAN=eth1
WAN_IP1="yyy.yyy.yyy.yy" #почта
WAN_IP2="xxx.xxx.xxx.xx" #интернет
# Локальная сеть 1 eth0
export LAN1=eth0
export LAN_IP_RANGE1=192.168.2.0/24
LAN_IP1="192.168.2.254"
# Локальная сеть(бухгалтерия) 2 eth2
export LAN2=eth2
export LAN_IP_RANGE2=192.168.10.0/24
LAN_IP2="192.168.10.254"
# openVPN сеть - через него идет интернет
export VPN=tun0
export VPN_IP_RANGE=10.10.10.0/24

# допольнительное оборудование скажем роутер
export IP_ROUTER="192.168.2.11"
# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i $LO -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A INPUT -i $LAN2 -j ACCEPT
$IPT -A OUTPUT -o $LO -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT
$IPT -A OUTPUT -o $LAN2 -j ACCEPT
$IPT -A OUTPUT -p ALL -s $WAN_IP1 -j ACCEPT
$IPT -A OUTPUT -p ALL -s $WAN_IP2 -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT
$IPT -A FORWARD -i $LAN2 -o $WAN -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT
$IPT -A FORWARD -i $WAN -o $LAN2 -j REJECT

# Маскарадинг для openVPN сети чтобы весь трафик шел через впн сеть
$IPT -t nat -A POSTROUTING -o $WAN -s $VPN_IP_RANGE -j MASQUERADE
# Маскарадинг для бухгалтерии
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE2 -j MASQUERADE

#  для почтовых портов
$IPT -t nat -A POSTROUTING -p tcp -o $WAN --dport 110 -j SNAT --to-source $WAN_IP1
$IPT -t nat -A POSTROUTING -p tcp -o $WAN --dport 25 -j SNAT --to-source $WAN_IP1
$IPT -t nat -A POSTROUTING -p tcp -o $WAN --dport 143 -j SNAT --to-source $WAN_IP1
$IPT -t nat -A POSTROUTING -p tcp -o $WAN -j SNAT --to-source $WAN_IP2

# **********************************************************************
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Разрешаем dns серверу
$IPT -A INPUT -i $WAN -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p udp --sport 53 -j ACCEPT

# Открытие портов для торрентов (такие же указать в torrent-клиенте)
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 50100:51100 -j ACCEPT
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 50100:51100 -j ACCEPT

# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT

# Открытие порта udp 1194 для openVPN
$IPT -A INPUT -p tcp --dport 1194 -j ACCEPT
$IPT -A INPUT -p udp --dport 1194 -j ACCEPT

# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p all --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 80 -j ACCEPT
$IPT -A INPUT -p udp --dport 80  -j ACCEPT
$IPT -A OUTPUT -p udp --sport 80 -j ACCEPT

# Открытие порта 25, 143 для smtp imap
$IPT -A INPUT -i $WAN -p all --dport 25 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p all --dport 25 -j ACCEPT
$IPT -A INPUT -p tcp --dport 25 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 25 -j ACCEPT
$IPT -A INPUT -i $WAN -p all --dport 143 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p all --dport 143 -j ACCEPT
$IPT -A INPUT -p tcp --dport 143 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 143 -j ACCEPT
$IPT -A INPUT -i $WAN -p all --dport 110 -j ACCEPT
$IPT -A OUTPUT -i $WAN -p all --dport 110 -j ACCEPT
$IPT -A INPUT -p tcp --dport 110 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 110 -j ACCEPT
$IPT -A FORWARD -p TCP -s 0/0 --dport 25 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 25 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --dport 110 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 110 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --dport 143 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 143 -j allowed
#$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

# Вывод информации о состоянии
$IPT -L

227

sagvir пишет:

$IPT -A FORWARD -p TCP -s 0/0 --dport 25 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 25 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --dport 110 -j allowed
$IPT -A FORWARD -p TCP -s 0/0 --sport 110 -j allowed

т.е. у вас на клиенте установлен почтовый сервер?

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

228 (09.12.2011 02:31:13 отредактировано denis32)

Подскажите плиз, как лучше защищаться от syn флуда? Сейчас используются такие правила, но больно часто наблюдаю так скажем ложные срабатывания.

$IPTABLES -N SYN_FLOOD
$IPTABLES -A INPUT -m recent --update --seconds 3600 --name bad_hosts --rsource -j DROP
$IPTABLES -A INPUT -i $external -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j SYN_FLOOD
$IPTABLES -A SYN_FLOOD -m limit --limit 5/sec --limit-burst 50 -j RETURN
$IPTABLES -A SYN_FLOOD -j LOG --log-prefix "SYN flood: "
$IPTABLES -A SYN_FLOOD -m recent --set --name bad_hosts --rsource -j DROP 
Debian GNU/Linux 6.0.4 | xfce4.6

229

Я сделал так $IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE1 -j MASQUERADE -j LOG --log-prefix "что не так?" --log-level debug
но ничего не появилось, а можно чтобы отдельные логи по iptables велись, а не для каждого правил приписывать и в syslog смотреть

230

sagvir, вот это есть: http://www.opennet.ru/docs/RUS/iptables/#ULOGTARGET
пойдёт?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

231

попробую для клинтов обновить openvpn может частично решит проблему
OpenVPN 2.2.2 -- released on 2011.12.22 (Change Log)
Changes include:
Pkcs11 support built into the Windows version
Fixed a bug in the Windows TAP-driver

232

Всем привет.
Есть такой скриптик:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport microsoft-ds -j DROP
iptables -A INPUT -i ppp0 -p udp --dport microsoft-ds -j DROP
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -A FORWARD -i eth0 -o ppp0 -j REJECT
iptables -t nat -I PREROUTING -p tcp --dport 90 -j DNAT --to-destination 10.1.3.195
iptables -t nat -I PREROUTING -p udp --dport 90 -j DNAT --to-destination 10.1.3.195
iptables -t nat -I PREROUTING -p tcp --dport 98 -j DNAT --to-destination 10.1.3.195        
iptables -t nat -I PREROUTING -p udp --dport 98 -j DNAT --to-destination 10.1.3.195        
iptables -A FORWARD -p tcp --syn -m connlimit --connlimit-above 10 -j REJECT
iptables -A INPUT -p icmp -m icmp -i eth0 --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -o eth0 --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp -m icmp -i ppp0 --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -o ppp0 --icmp-type echo-request -j ACCEPT

И такой вопрос.
Локальные порты я не открывал, но они уже открыты. Как сделать что-бы они были открыты из начале? И как открыть нужные!

И есть проброс портов "iptables -t nat -I PREROUTING -p tcp --dport 98 -j DNAT --to-destination 10.1.3.195"
Как сделать что-бы проброс был с 90 порта на 80?

233

GOGA, Моя примерная обертка.
http://linuxforum.ru/viewtopic.php?pid=257409#p257409

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

234

Здравствуйте. Скрип:

+ открыть спойлер

#!/bin/bash
#
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
#
## Setup policy DROP for all
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
#
## loop=trusted
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
#
## Reject invalid packets
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
#
## ESTABLISHED connection
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
## WEB-SERVER
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 10082 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 5222 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 5223 -j ACCEPT
#
## FTP-SERVER
/sbin/iptables -A INPUT -p tcp -m multiport --dport 20,21 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m multiport --sport 20,21 -j ACCEPT
#
## Remote control
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#
## DNS & Time
/sbin/iptables -A INPUT -p tcp -m multiport --dport 53,123 -s 172.17.0.0/255.255.0.0 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --dport 53,123 -s 172.17.0.0/255.255.0.0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -m multiport --dport 53,123 -j ACCEPT
#
## Samba connection
/sbin/iptables -A INPUT -p tcp -m multiport --dport 137,138,139,445 -s 172.17.0.0/255.255.0.0 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --dport 137,138,139,445 -s 172.17.0.0/255.255.0.0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m multiport --dport 137,138,139,445 -s 172.17.0.0/255.255.0.0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m multiport --dport 137,138,139,445 -s 172.17.0.0/255.255.0.0 -j ACCEPT
#
## Setup PING
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
#
## Setup to WEB acess for this mashine
/sbin/iptables -A OUTPUT -p tcp -m multiport --dport 22,80,443,3128,8000,8080 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -m multiport --dport 22,80,443,3128,8000,8080 -j ACCEPT
#

При использовании данного скрипта не вижу windows-шары. Подскажите пожалуйста что не так ?

235

newzenon а причем тут "защиты от скана"???
Мне это ничего не дало. Словно пальцем в небо...

236

GOGA пишет:

newzenon а причем тут "защиты от скана"???
Мне это ничего не дало. Словно пальцем в небо...

Я тебе пример привел, то что не надо, не используй, открытие портов там для примера есть, соображалку включи.

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

237

А гже и как блокировать неуказанно!

238

GOGA пишет:

И есть проброс портов "iptables -t nat -I PREROUTING -p tcp --dport 98 -j DNAT --to-destination 10.1.3.195"
Как сделать что-бы проброс был с 90 порта на 80?

Надо хотя бы тему в которой вопрос задал, прочитать, куча пробросов с примерами
Например http://linuxforum.ru/viewtopic.php?pid=133833#p133833

iptables -t nat -A PREROUTING -p udp --dport 4444 -j DNAT --to-destination 192.168.1.99:5061

===
А вот хамить будешь где угодно но не тут.

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

239

Наверно, по теме вопрос, какие преимущества (например, с точки зрения безопасности) своего dns сервера перед

iptables -t nat PREROUTING -j DNAT -p tcp/udp --dport 53 -j DNAT --to-destination <DNS провайдера>  

Кроме наличия "своего" DNS-сервера...

Можно ли PREROUTING заменить форвардингом, но на клиентских машинах указывать в качестве DNS-сервера адрес внутреннего интерфейса?

240 (27.04.2012 19:06:56 отредактировано XliN)

Такой вопрос.
Первый http сервер стоит на шлюзе (nginx) - 192.168.1.77:8080
Второй http сервер внутри локалки (apache) - 192.168.1.127:80

Второй сервер пробрасываю наружу.

iptables -t nat -A PREROUTING -p tcp -d 46.72.XXX.XXX --dport 80 -j DNAT --to-destination 192.168.1.127:80
iptables -A FORWARD -i vlan4 -d 192.168.1.127 -p tcp --dport 80 -j ACCEPT

Хочется такой же канителью заходить и на первый сервер, но только по порту 8080

iptables -t nat -A PREROUTING -p tcp -d 46.7.XXX.XXX.108 --dport 8080 -j DNAT --to-destination 192.168.1.77:8080
iptables -A FORWARD -i vlan4 -d 192.168.1.77 -p tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.1.77 -p tcp --sport 8080 -j ACCEPT

Не фурычит.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"