S125.ru - форумы
Правила форума Помощь Поиск Пользователи Календарь
 
Ответить в данную темуНачать новую тему
ppp0+iptables, Требуется помощь в тонкой настройке файрвола на Debian
bayan-mobile
сообщение 18.7.2015, 16:14
Сообщение #1





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Доброго всем.
Суть такая: на работе какой-то хитрый интернет от альянса, но почему-то со старым VPN-подключением (PPTP) до этого воткнул dir300nru с прошивкой от keenetiс валил нам сеть иногда каждые 5 минут иногда раз в час... Сейчас выкинул роутер на помойку (убрал в долгий ящик) и поставил старый комп (Sempron 2600+; 2Gb DDR, 40Gb HDD, Wifi и две сетевухи+одна родная видюху снял с него нафик) Дебиан завел за 2 часа со всеми нужными пакетами и теперь уперся лбом в айпитэйблс.
Домашний сервак я настраивал по принципу запретить все и открыть только нужное, в данной ситуации если настройки с домашнего сервака подгружаю максимум получаю интернет с ppp0 на сервере но в локальную сеть (br0) интернет не идет (дальше inetvl.ru не пропускает) долбил два дня и так и так и порты уже перепроверил все ну нету его... в итоге получил интернет после полного разрешения всего в файрвол:
Цитата
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT

Вопрос к знающим людям: как правильно прописать чтобы в основных правилах стоял DROP и при этом трафик спокойно шел в локальную сеть. СПС
Перейти в начало страницы
 
+Цитировать сообщение
allbannc
сообщение 19.7.2015, 11:29
Сообщение #2





Группа: Пользователи
Сообщений: 104
Регистрация: 24.6.2015




шото типа такого,статей в нете тонна
Код
iptables -A INPUT -i eth0 -j ACCEPT
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 19.7.2015, 11:40
Сообщение #3





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(allbannc @ 19.7.2015, 11:29) *
шото типа такого,статей в нете тонна
Код
iptables -A INPUT -i eth0 -j ACCEPT

мне не надо чтото типа. у меня есть мои личные настройки и они работают так как надо на домашнем сервере. такого правила там нет и быть не может. Интерфейс на котором сидит трафик провайдера называется ppp0 вот с него трафик в локалку опракинуть не могу даже с -t nat POSTROUTING -o ppp0 MASQUERADE -j ACCEPT

еще раз задача: есть сервер на котором следующие интерфейсы: eth0 - сетевуха смотрит в сторону провайдера, br0 - мост из двух сетевых карт и вайфая смотрит в локальную сеть, ppp0 - впн трафик провайдера.
в конфиге айпитэйблов открыты только нужные порты и перенаправления трафика eth0<--->br0, ppp0 спокойно ходит внутри на lo я его цепляю есть пинг и возможность скачивать что-то на сервер необходимо добавить правило для перенаправления ppp0<--->lo<--->br0

зы. сейчас у меня работает с полностью открытым айпитэйблом это неправильно и мое параноидальное подсознание как бы говорит закрывай, закрывай нафик файрвол пока нечисть не полезла:)

Сообщение отредактировал bayan-mobile - 19.7.2015, 11:43
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 19.7.2015, 12:40
Сообщение #4





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(allbannc @ 19.7.2015, 11:29) *
шото типа такого,статей в нете тонна
Код
iptables -A INPUT -i eth0 -j ACCEPT

а хотя завтра попробую добавить это правило может действительно все решится. спс
Перейти в начало страницы
 
+Цитировать сообщение
mainframe
сообщение 19.7.2015, 17:00
Сообщение #5





Группа: Пользователи
Сообщений: 245
Регистрация: 2.9.2010
Из: Владивосток




Основной принцип такой: в INPUT - попадает всё, что идёт на эту машину, в OUTPUT - c неё куда-либо, в FORWARD - через неё кому-либо ещё.

Минимальный набор правил будет примерно таким (при выставлении политик на INPUT/FORWARD в DROP или REJECT):

Код
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT

$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state NEW -i eth0 -o ppp0 -j ACCEPT

# политика на OUTPUT - ACCEPT

$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

$IPT -t mangle -A FORWARD -p tcp --syn -j TCPMSS --clamp-mss-to-pmtu


Пишу по памяти, возможны минимальные изменения.
Перейти в начало страницы
 
+Цитировать сообщение
LU_
сообщение 19.7.2015, 17:12
Сообщение #6


Неизбежное зло форума


Группа: Пользователи
Сообщений: 11 065
Регистрация: 11.7.2011
Из: Антарктиды, где много диких пингвинов




Цитата(mainframe @ 19.7.2015, 17:00) *
Пишу по памяти, возможны минимальные изменения.

как ты это запоминаеш?
сколько я с етим возился - запомнить ето нереально.....
изобритатель айпитэйблс был явно не с нашей планеты, и я падазреваю, даже не гуманоид....
Перейти в начало страницы
 
+Цитировать сообщение
mainframe
сообщение 19.7.2015, 19:04
Сообщение #7





Группа: Пользователи
Сообщений: 245
Регистрация: 2.9.2010
Из: Владивосток




Цитата(LU_ @ 19.7.2015, 17:12) *
как ты это запоминаеш? сколько я с етим возился - запомнить ето нереально.....


хз, само как-то. Практика, наверное. iptables имеет более крутую кривую обучения относительно того же ipfw, но сам packet-flow устроен достаточно логично. Обычно для понимания хватает пары картинок отсюда.
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 19.7.2015, 19:07
Сообщение #8





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(mainframe @ 19.7.2015, 17:00) *
Основной принцип такой: в INPUT - попадает всё, что идёт на эту машину, в OUTPUT - c неё куда-либо, в FORWARD - через неё кому-либо ещё.

Минимальный набор правил будет примерно таким (при выставлении политик на INPUT/FORWARD в DROP или REJECT):

Код
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT

$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state NEW -i eth0 -o ppp0 -j ACCEPT

# политика на OUTPUT - ACCEPT

$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

$IPT -t mangle -A FORWARD -p tcp --syn -j TCPMSS --clamp-mss-to-pmtu


Пишу по памяти, возможны минимальные изменения.

Получается что мой набор правил отработает сам по себе если я поставлю OUTPUT на ACCEPT, верно? Может будет проще если я выложу сюда свой iptables подскажете что добавить надо для правильной работы когда INPUT, FOURWARD на DROP?
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 20.7.2015, 10:48
Сообщение #9





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Так, в общем для того чтобы понятно было вот мои правила с которыми сейчас оно работает:
Код
#!/bin/bash

# Включить перенаправление ipv4
echo 1 > /proc/sys/net/ipv4/ip_forward

# Подгрузить модули ядра
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ipt_TTL
modprobe ip_nat_pptp
modprobe nf_nat_pptp
modprobe nf_nat_proto_gre
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre

# Переменные
IPT="/sbin/iptables"
WAN="eth0"
LAN="br0" # *eth1+eth2+wlan0
#TUN=#tun0" # *openvpn
LOC="192.168.0.0/24" # *локальная сеть
#VPN=#10.8.0.0/32" # *впн-сеть
IPTV="224.0.0.0/4" # *iptv-вещание
TCP_PORTS="21,22,25,53,67,80,8080,143,443,1194,1723,4022,50000:60000"
UDP_PORTS="10000:20000,5000:6000,4569,2727,1234,1235,53,21,20" # 5555,5242:5352,5004:5082-->5000:6000

# Очистка всех правил файрвола
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# Основные правила
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT

# доступ в интернет на локальной петле
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# Разрешить установленные и исходящие пакеты
$IPT -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Открыть доступ выбранным портам
$IPT -A INPUT -p tcp -m multiport --dport $TCP_PORTS -j ACCEPT
$IPT -A INPUT -p udp -m multiport --dport $UDP_PORTS -j ACCEPT

# Разрешить исходящий ping
$IPT -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT

# Просмотр IPTV через igmpproxy
$IPT -I INPUT -p igmp -j ACCEPT
$IPT -t filter -A FORWARD -p igmp -i $WAN -o $LAN -j ACCEPT
$IPT -t filter -A INPUT -d $IPTV -j ACCEPT
$IPT -t filter -A FORWARD -d $IPTV -j ACCEPT
$IPT -t mangle -A PREROUTING -d $IPTV -p udp -j TTL --ttl-inc 1

# Разрешить доступ в интернет из локалки
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -s $LOC -j MASQUERADE
$IPT -A INPUT -p tcp -m state -m tcp -i $LAN --dport 53 --state NEW -j ACCEPT
$IPT -A INPUT -p udp -m state -m udp -i $LAN --dport 67 --state NEW -j ACCEPT
$IPT -A INPUT -p tcp -m state -m tcp -i $LAN --dport 1723 --state NEW,ESTABLISHED,RELATED -j ACCEPT


Если будет вот так:
Код
$IPT -P INPUT DROP
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT DROP


Интернет пойдет в локалку а на сервере упрется лбом об айпитэйблс, если FORWARD тоже будет DROP интернета не будет нигде. До этого было еще одно правило с которым при DROP на всем интернет на сервере был, но не проходил в локалку... прошу помощи(

Сообщение отредактировал bayan-mobile - 20.7.2015, 10:50
Перейти в начало страницы
 
+Цитировать сообщение
mainframe
сообщение 21.7.2015, 1:00
Сообщение #10





Группа: Пользователи
Сообщений: 245
Регистрация: 2.9.2010
Из: Владивосток




Код
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
<...>
$IPT -P OUTPUT DROP

Вот зачем ты это делаешь? Эти правила взаимно нейтрализуют друг-друга. Оставь OUTPUT в покое.

Код
$IPT -t filter

Тоже можно не указывать, оно по умолчанию и так подставляет "filter".

Код
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -s $LOC -j MASQUERADE

дубль.

Код
$IPT -A FORWARD -p igmp -i $WAN -o $LAN -j ACCEPT

Не будет работать, мультикаст не маршрутизируется. См костыли под названием udpxy и igmpproxy.

Остальное разбирать не буду, поздно уже, но покажу направление поисков: см цель -j LOG. Втыкаешь её в конец правил в нужной цепочке, пускаешь трафик, потом смотршь в логи, если записи есть - значит какой-то трафик был заблокирован. Смотришь что это был за трафик, исправляешь правила.

Далее, есть утилитка iptables-save, вывод с неё читать легче, чем скрипты типа того что выше.

Ещё пригодился бы список маршрутов ip route show как со шлюза, так и с любого клиента.

Сообщение отредактировал mainframe - 21.7.2015, 1:04
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 21.7.2015, 8:21
Сообщение #11





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




спасибо, сегодня подправлю
Цитата(mainframe @ 21.7.2015, 1:00) *
...Далее, есть утилитка iptables-save, вывод с неё читать легче, чем скрипты типа того что выше.

Ещё пригодился бы список маршрутов ip route show как со шлюза, так и с любого клиента.

утилитка на дебиан называет netfilter-save, а та про которую Вы говорите для шапки/centos
ip route show приложу

ps. igmpproxy не костыли он в роутерах стоит. Как раз таки обе эти программы с этими настройками и работают

Сообщение отредактировал bayan-mobile - 21.7.2015, 8:24
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 21.7.2015, 19:06
Сообщение #12





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Подправил согласно Вашим замечаниям ситуация аналогична продвижки ноль... теперь вот так:
Код
#!/bin/bash

# Включить перенаправление ipv4
echo 1 > /proc/sys/net/ipv4/ip_forward

# Подгрузить модули ядра
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ipt_TTL
modprobe ip_nat_pptp
modprobe nf_nat_pptp
modprobe nf_nat_proto_gre
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre

# Переменные
IPT="/sbin/iptables"
WAN="eth0"
LAN="br0" # *eth1+eth2+wlan0
#TUN=#tun0" # *openvpn
LOC="192.168.0.0/24" # *локальная сеть
#VPN=#10.8.0.0/32" # *впн-сеть
IPTV="224.0.0.0/4" # *iptv-вещание
TCP_PORTS="21,22,25,53,67,80,8080,143,443,1194,1723,4022,50000:60000"
UDP_PORTS="10000:20000,5000:6000,4569,2727,1234,1235,53,21,20" # 5555,5242:5352,5004:5082-->5000:6000

# Очистка всех правил файрвола
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# Основные правила
$IPT -P INPUT DROP - тут если не ACCEPT написано сервер пингует но ничего не скачивает
$IPT -P FORWARD DROP - тут только на ACCEPT можно выставить
#$IPT -P OUTPUT ACCEPT

# доступ в интернет на локальной петле
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# Разрешить установленные и исходящие пакеты
$IPT -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state NEW -i $WAN -o ppp0 -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Открыть доступ выбранным портам
$IPT -A INPUT -p tcp -m multiport --dport $TCP_PORTS -j ACCEPT
$IPT -A INPUT -p udp -m multiport --dport $UDP_PORTS -j ACCEPT

# Разрешить исходящий ping
$IPT -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT

# Просмотр IPTV через igmpproxy
$IPT -I INPUT -p igmp -j ACCEPT
$IPT -t filter -A FORWARD -p igmp -i $WAN -o $LAN -j ACCEPT
$IPT -t filter -A INPUT -d $IPTV -j ACCEPT
$IPT -t filter -A FORWARD -d $IPTV -j ACCEPT
$IPT -t mangle -A PREROUTING -d $IPTV -p udp -j TTL --ttl-inc 1
$IPT -t mangle -A FORWARD -p tcp --syn -j TCPMSS --clamp-mss-to-pmtu

# Разрешить доступ в интернет из локалки
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -s $LOC -j MASQUERADE
$IPT -A INPUT -p tcp -m state -m tcp -i $LAN --dport 53 --state NEW -j ACCEPT
$IPT -A INPUT -p udp -m state -m udp -i $LAN --dport 67 --state NEW -j ACCEPT
$IPT -A INPUT -p tcp -m state -m tcp -i $LAN --dport 1723 --state NEW,ESTABLISHED,RELATED -j ACCEPT


Вывод iptables:
Код
***@******:~# iptables -L -v
Chain INPUT (policy ACCEPT 1233 packets, 1603K bytes)
pkts bytes target     prot opt in     out     source               destination                                              
    7   196 ACCEPT     igmp --  any    any     anywhere             anywhere                                                
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere                                                
3866 2370K ACCEPT     all  --  eth0   any     anywhere             anywhere                                                          state RELATED,ESTABLISHED
  155  9572 ACCEPT     tcp  --  any    any     anywhere             anywhere                                                          multiport dports ftp,ssh,smtp,domain,bootps,http,http-alt,imap2,https,o                                             penvpn,1723,4022,50000:60000
   75  4702 ACCEPT     udp  --  any    any     anywhere             anywhere                                                          multiport dports 10000:20000,5000:x11,iax,2727,1234,1235,domain,fsp,20
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere                                                          icmp echo-reply
    0     0 ACCEPT     all  --  any    any     anywhere             base-address                                             .mcast.net/4
    0     0 ACCEPT     tcp  --  br0    any     anywhere             anywhere                                                          state NEW tcp dpt:domain
    6  1981 ACCEPT     udp  --  br0    any     anywhere             anywhere                                                          state NEW udp dpt:bootps
    0     0 ACCEPT     tcp  --  br0    any     anywhere             anywhere                                                          state NEW,RELATED,ESTABLISHED tcp dpt:1723

Chain FORWARD (policy ACCEPT 6409 packets, 986K bytes)
pkts bytes target     prot opt in     out     source               destination                                              
1927 1495K ACCEPT     all  --  eth0   any     anywhere             anywhere                                                          state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth0   ppp0    anywhere             anywhere                                                          state NEW
    0     0 ACCEPT     igmp --  eth0   br0     anywhere             anywhere                                                
   82 22034 ACCEPT     all  --  any    any     anywhere             base-address                                             .mcast.net/4
1780 80349 ACCEPT     all  --  br0    eth0    anywhere             anywhere                                                

Chain OUTPUT (policy ACCEPT 2 packets, 80 bytes)
pkts bytes target     prot opt in     out     source               destination                                              
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere                                                
6788  752K ACCEPT     all  --  any    any     anywhere             anywhere                                                          state NEW,RELATED,ESTABLISHED


маршрутизация сервера:
Код
***@*******:~# ip route show
default dev ppp0  scope link
10.32.0.0/11 via 172.25.222.1 dev eth0
10.132.0.0/14 via 172.25.222.1 dev eth0
10.254.186.22 dev ppp0  proto kernel  scope link  src 10.25.222.66
37.220.80.0/21 via 172.25.222.1 dev eth0
46.19.64.0/21 via 172.25.222.1 dev eth0
81.200.144.0/20 via 172.25.222.1 dev eth0
94.198.216.0/21 via 172.25.222.1 dev eth0
95.154.112.64/26 via 172.25.222.1 dev eth0
95.154.113.0/25 via 172.25.222.1 dev eth0
172.16.0.0/12 via 172.25.222.1 dev eth0
172.16.4.1 via 172.25.222.1 dev eth0  src 172.25.222.66
172.25.222.0/24 dev eth0  proto kernel  scope link  src 172.25.222.66
192.168.0.0/24 dev br0  proto kernel  scope link  src 192.168.0.1


виндоус клиент:
Код
C:\Windows\system32>route print
===========================================================================
Список интерфейсов
11...00 25 22 0a a9 8f ......Realtek PCIe GBE Family Controller
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.114     20
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0         On-link     192.168.0.114    276
    192.168.0.114  255.255.255.255         On-link     192.168.0.114    276
    192.168.0.255  255.255.255.255         On-link     192.168.0.114    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     192.168.0.114    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     192.168.0.114    276
===========================================================================
Постоянные маршруты:
  Отсутствует

IPv6 таблица маршрута
===========================================================================
Активные маршруты:
Метрика   Сетевой адрес            Шлюз
  1    306 ::1/128                  On-link
11    276 fe80::/64                On-link
11    276 fe80::78d0:83d1:20e:173a/128
                                    On-link
  1    306 ff00::/8                 On-link
11    276 ff00::/8                 On-link
===========================================================================
Постоянные маршруты:
  Отсутствует


Сообщение отредактировал bayan-mobile - 21.7.2015, 19:38
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 24.7.2015, 19:59
Сообщение #13





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




В общем, на данный момент у меня все работает с такими правилами (менять не собираюсь все перепроверено только добавлю несколько правил для samba и openvpn):

Код
#!/bin/bash

# Включить перенаправление ipv4
echo 1 > /proc/sys/net/ipv4/ip_forward

# Подгрузить модули ядра
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ipt_TTL
modprobe ip_nat_pptp
modprobe nf_nat_pptp
modprobe nf_nat_proto_gre
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre

# Переменные
IPT="/sbin/iptables"
WAN="eth0"
LAN="br0" # *eth1+eth2+wlan0
#TUN=#tun0" # *openvpn
LOC="192.168.0.0/24" # *локальная сеть
#VPN=#10.8.0.0/32" # *впн-сеть
IPTV="224.0.0.0/4" # *iptv-вещание
TCP_PORTS="21,22,25,53,67,80,8080,143,443,1194,1723,4022,50000:60000"
UDP_PORTS="10000:20000,5000:6000,4569,2727,1234,1235,53,21,20" # 5555,5242:5352$

# Очистка всех правил файрвола
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# Основные правила
$IPT -P INPUT DROP
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT DROP

# доступ в интернет на локальной петле
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# Разрешить установленные и исходящие пакеты
$IPT -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i ppp+ -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $WAN -o ppp+ -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i ppp+ -o $WAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Открыть доступ выбранным портам
$IPT -A INPUT -p tcp -m multiport --dport $TCP_PORTS -j ACCEPT
$IPT -A INPUT -p udp -m multiport --dport $UDP_PORTS -j ACCEPT

# Разрешить исходящий ping
$IPT -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT

# Просмотр IPTV через igmpproxy
$IPT -I INPUT -p igmp -j ACCEPT
$IPT -t filter -A FORWARD -p igmp -i $WAN -o $LAN -j ACCEPT
$IPT -t filter -A INPUT -d $IPTV -j ACCEPT
$IPT -t filter -A FORWARD -d $IPTV -j ACCEPT
$IPT -t mangle -A PREROUTING -d $IPTV -p udp -j TTL --ttl-inc 1
$IPT -t mangle -A FORWARD -p tcp --syn -j TCPMSS --clamp-mss-to-pmtu

# Разрешить доступ в интернет из локалки
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
$IPT -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
#$IPT -t nat -A POSTROUTING -o ppp0 -i $WAN -j MASQUERADE
#$IPT -t nat -A POSTROUTING -o $WAN -s $LOC -j MASQUERADE
$IPT -A INPUT -p tcp -m state -m tcp -i $LAN --dport 53 --state NEW -j ACCEPT
$IPT -A INPUT -p udp -m state -m udp -i $LAN --dport 67 --state NEW -j ACCEPT
$IPT -A INPUT -p tcp -m state -m tcp -i $LAN --dport 1723 --state NEW,ESTABLISHED,RELATED -j ACCEPT


Теперь другой вопрос. Чтобы исключить вероятность падения сети у меня есть вот такой скрипт:
Код
#!/bin/bash
ping -c 3 8.8.8.8 > /root/ping
a=$(cat /root/ping | tail -n2 | head -n1 | awk {'print $6'} | sed s/%//)
if [ $a != 0 ]
then kill -s 9 `pgrep pptp` && sleep .5 && pon inetvl.ru
fi


Его задача проверять пинг и если его вдруг нету перезапускать ppp соединение. Можно ли его допилить чтобы выполнялся постоянно? (не в крон, а именно демоном сделать)
Перейти в начало страницы
 
+Цитировать сообщение
LU_
сообщение 24.7.2015, 20:05
Сообщение #14


Неизбежное зло форума


Группа: Пользователи
Сообщений: 11 065
Регистрация: 11.7.2011
Из: Антарктиды, где много диких пингвинов




чем крон не устраивает?
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 24.7.2015, 20:18
Сообщение #15





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(LU_ @ 24.7.2015, 20:05) *
чем крон не устраивает?

скрипт работает разное время когда пинга нет или ктото качает дольше если воткнуть в крон будет не очень хорошо. есть бесконечный цикл но я не знаю как его реализовать на bash может кто вкурсе
Перейти в начало страницы
 
+Цитировать сообщение
LU_
сообщение 24.7.2015, 21:13
Сообщение #16


Неизбежное зло форума


Группа: Пользователи
Сообщений: 11 065
Регистрация: 11.7.2011
Из: Антарктиды, где много диких пингвинов




Цитата(bayan-mobile @ 24.7.2015, 20:18) *
скрипт работает разное время когда пинга нет или ктото качает дольше если воткнуть в крон будет не очень хорошо. есть бесконечный цикл но я не знаю как его реализовать на bash может кто вкурсе

Код
I=0
while [ 1 ]; do
I=$(( I + 1));
echo "$I"
done


так например
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 24.7.2015, 21:16
Сообщение #17





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(LU_ @ 24.7.2015, 21:13) *
Код
I=0
while [ 1 ]; do
I=$(( I + 1));
echo "$I"
done


так например

если бы мне надо было скрипт который отчитывает цифры я бы так и спросил мой скрипт вверху надо чтобы выполнялся постоянно
Перейти в начало страницы
 
+Цитировать сообщение
LU_
сообщение 24.7.2015, 21:24
Сообщение #18


Неизбежное зло форума


Группа: Пользователи
Сообщений: 11 065
Регистрация: 11.7.2011
Из: Антарктиды, где много диких пингвинов




Цитата(bayan-mobile @ 24.7.2015, 21:16) *
если бы мне надо было скрипт который отчитывает цифры я бы так и спросил мой скрипт вверху надо чтобы выполнялся постоянно

т.е. панимания что такое скрипт и как он работает, нету совершенно?
ну хоть про основы баша почитай, чтоли....
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 24.7.2015, 21:35
Сообщение #19





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(LU_ @ 24.7.2015, 21:24) *
т.е. панимания что такое скрипт и как он работает, нету совершенно?
ну хоть про основы баша почитай, чтоли....

ну давай тогда начнем с того что твой скрипт работать не будет потому что твой I=0 а правило для I=1
Перейти в начало страницы
 
+Цитировать сообщение
LU_
сообщение 24.7.2015, 21:38
Сообщение #20


Неизбежное зло форума


Группа: Пользователи
Сообщений: 11 065
Регистрация: 11.7.2011
Из: Антарктиды, где много диких пингвинов




Цитата(bayan-mobile @ 24.7.2015, 21:35) *
ну давай тогда начнем с того что твой скрипт работать не будет потому что твой I=0 а правило для I=1

тебе пример цикла нужен был?
я тебе его показал, тут даже особо и баш-то знать нинада, чтобо понять как в него твой скрипт засувать -))
намякну: само тело скрипта в моем примере находитца между do и done -))
Перейти в начало страницы
 
+Цитировать сообщение
bayan-mobile
сообщение 24.7.2015, 21:53
Сообщение #21





Группа: Пользователи
Сообщений: 277
Регистрация: 11.6.2014




Цитата(LU_ @ 24.7.2015, 21:38) *
тебе пример цикла нужен был?
я тебе его показал, тут даже особо и баш-то знать нинада, чтобо понять как в него твой скрипт засувать -))
намякну: само тело скрипта в моем примере находитца между do и done -))

ну не получится то что у меня запихать между do и done надо дополнительный скрипт тогда который будет проверять запущен этот скрипт или нет если незапущен запускать
Перейти в начало страницы
 
+Цитировать сообщение
LU_
сообщение 24.7.2015, 21:54
Сообщение #22


Неизбежное зло форума


Группа: Пользователи
Сообщений: 11 065
Регистрация: 11.7.2011
Из: Антарктиды, где много диких пингвинов




а ты попробуй
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Для

Тема
Сообщение
Текстовая версия Сейчас: 3.4.2020, 8:37