[Решено]NAT

Ответить
banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

[Решено]NAT

Сообщение banzay242 » 25 май 2018, 10:06

У кого есть опыт настройки NAT?
куда сунуть в автозагрузку файл nat.sh c таким содержимым:

Код: Выделить всё

#!/bin/sh
# Очищаем iptables
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
# NAT Шлюз
#iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT
echo "1" > /proc/sys/net/ipv4/ip_forward
#sysctl -w net.ipv4.ip_forward=1
shorewall.service наверное выключить надо чтоб под ногами не путался, там вроде настройки NAT нет.
Причем нужно этот файл так сунуть чтоб сработало до поднятия интерфейсов?
сунул в /etc/systemconfig/network-scripts/ifup.d
не работает.
Куда копать?
Эта байда отсутствует в пакетах
urpmq -a gufw
Нет пакета с названием gufw
Последний раз редактировалось banzay242 01 июн 2018, 14:23, всего редактировалось 1 раз.

Аватара пользователя
ans
Сообщения: 2401
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: NAT

Сообщение ans » 25 май 2018, 11:55

banzay242 писал(а):
25 май 2018, 10:06
У кого есть опыт настройки
лет 6-7 назад настраивал прокси, только без скрипта, а сразу через iptables.
Надо было активировать службу IPTables:
#service iptables start

Чтобы IPTables по умолчанию запускалась при загрузке:
#chkconfig --level 345 iptables on

при этом нужно было остановить IP6Tables:
#service ip6tables stop
#chkconfig ip6tables off

Запись текущего состояния netfilter:
#service iptables save

P.S.Возможно сейчас внесли какие-то изменения.
Изображение

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 25 май 2018, 12:51

удалил shorewall
отключил ip6
включил ip4 в автозагрузку
загрузил правила скриптом выше
сохранил правила iptables-save > /etc/sysconfig/iptables
включил шлюз sysctl -w net.ipv4.ip_forward=1
после перезагрузки правила сохраняются но не работает

Код: Выделить всё

~ # iptables-save 
# Generated by iptables-save v1.4.21 on Fri May 25 14:51:26 2018
*mangle
:PREROUTING ACCEPT [602:174075]
:INPUT ACCEPT [371:64098]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [386:61862]
:POSTROUTING ACCEPT [421:67561]
COMMIT
# Completed on Fri May 25 14:51:26 2018
# Generated by iptables-save v1.4.21 on Fri May 25 14:51:26 2018
*nat
:PREROUTING ACCEPT [238:110692]
:INPUT ACCEPT [7:715]
:OUTPUT ACCEPT [76:6216]
:POSTROUTING ACCEPT [8:1043]
-A POSTROUTING -o enp0s20u2 -j MASQUERADE
COMMIT
# Completed on Fri May 25 14:51:26 2018
# Generated by iptables-save v1.4.21 on Fri May 25 14:51:26 2018
*filter
:INPUT ACCEPT [371:64098]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [386:61862]
COMMIT
# Completed on Fri May 25 14:51:26 2018
Это выхлоп

Код: Выделить всё

~ # systemctl status iptables.service 
● iptables.service - iptables Firewall for IPv4
   Loaded: loaded (/lib/systemd/system/iptables.service; enabled; vendor preset:
   Active: active (exited) since Пт 2018-05-25 14:58:51 +05; 22s ago
  Process: 13189 ExecStop=/usr/lib64/iptables.init stop (code=exited, status=0/S
  Process: 13232 ExecStart=/usr/lib64/iptables.init start (code=exited, status=0
 Main PID: 13232 (code=exited, status=0/SUCCESS)

май 25 14:58:51 systemd[1]: Starting iptables Firewall for IPv4...
май 25 14:58:51 iptables.init[13232]: Applying iptables firewall rules:
май 25 14:58:51 iptables.init[13232]: [  OK  ]
май 25 14:58:51 systemd[1]: Started iptables Firewall for IPv4.
на РОСЕ шлюз не настравается что ли?

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: NAT

Сообщение Yamah » 27 май 2018, 19:38

Вывод

Код: Выделить всё

cat /etc/sysconfig/iptables
?

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 27 май 2018, 20:14

Yamah писал(а):
27 май 2018, 19:38
Вывод

Код: Выделить всё

cat /etc/sysconfig/iptables
?
вот вывод подправил для нескольких интерфейсов

Код: Выделить всё

cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Sun May 27 22:11:27 2018
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -o enp0s20u2 -j MASQUERADE
-A POSTROUTING ! -d 192.168.0.0/24 -o ppp0 -j MASQUERADE
-A POSTROUTING ! -d 192.168.0.0/24 -o enp0s20u2 -j MASQUERADE
COMMIT
# Completed on Sun May 27 22:11:27 2018
# Generated by iptables-save v1.4.21 on Sun May 27 22:11:27 2018
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Sun May 27 22:11:27 2018
# Generated by iptables-save v1.4.21 on Sun May 27 22:11:27 2018
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Sun May 27 22:11:27 2018
# Generated by iptables-save v1.4.21 on Sun May 27 22:11:27 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Sun May 27 22:11:27 2018
конфиг заливал с скрипта:

Код: Выделить всё

#!/bin/sh
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Очищаем iptables
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 -S
# NAT Шлюз
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT
sysctl -w net.ipv4.ip_forward=1
iptables-save > /etc/sysconfig/iptables

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: NAT

Сообщение Yamah » 28 май 2018, 09:02

1. Выполнить скрипт, которым правила прописываете.
2. Сохранить их.
3. Вывести сюда вывод iptables -L
4. Перезазгурзиться.
5. Вывести сюда вывод iptables -L.

Если решения не найдется, то как вариант запуск скрипта впихнуть в /etc/sysconfig/ifup-post.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 28 май 2018, 12:03

Yamah писал(а):
28 май 2018, 09:02
1. Выполнить скрипт, которым правила прописываете.
2. Сохранить их.
3. Вывести сюда вывод iptables -L
4. Перезазгурзиться.
5. Вывести сюда вывод iptables -L.

Если решения не найдется, то как вариант запуск скрипта впихнуть в /etc/sysconfig/ifup-post.
до и после перезагрузки:

Код: Выделить всё

sudo iptables -L -t nat 
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            
MASQUERADE  all  --  anywhere             anywhere
в том то и дело что скрипт работает, не работает NAT
вот сам скрипт:

Код: Выделить всё

#!/bin/sh
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Очищаем iptables
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 -S
# NAT Шлюз
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
iptables-save > /etc/sysconfig/iptables
статус:

Код: Выделить всё

sudo systemctl status iptables.service 
● iptables.service - iptables Firewall for IPv4
   Loaded: loaded (/lib/systemd/system/iptables.service; enabled; vendor preset:
   Active: active (exited) since Пн 2018-05-28 13:42:53 +05; 27min ago
 Main PID: 2812 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/iptables.service

май 28 13:42:53 mate systemd[1]: Stopped iptables Firewall for IPv4.
май 28 13:42:53 mate systemd[1]: Starting iptables Firewall for IPv4...
май 28 13:42:53 mate systemd[1]: Started iptables Firewall for IPv4.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 28 май 2018, 12:12

ip на клиенте и на сервере статический шлюз прописан, клиент в hosts прописан.
блин на убунте в пол тычка заводилось, где костыли? куда копать? клиент windows 7 фаервол отключен.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 28 май 2018, 14:26

sudo lsmod | grep nf_nat
nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE
nf_nat_ipv4 16384 1 iptable_nat
nf_nat 24576 2 nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack 114688 4 nf_conntrack_ipv4,nf_nat_masquerade_ipv4,nf_nat_ipv4,nf_nat

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: NAT

Сообщение Yamah » 31 май 2018, 16:44

Прошу прощения, что долго не отвечал.

Код: Выделить всё

# Запускаем модули ядра!
       modprobe iptable_nat
       modprobe ip_nat_ftp
       modprobe ip_conntrack_ftp
       modprobe ipt_LOG
# Включить перенаправление пакетов через ядро.
       echo "1" > /proc/sys/net/ipv4/ip_forward 

       echo "Starting firewall"
# Сбросить правила и удалить цепочки. 
       iptables -F 
       iptables -t nat -F
       iptables -t mangle -F
       iptables -t nat -F PREROUTING
       iptables -t nat -F POSTROUTING
       iptables -X
       iptables -t nat -X
       iptables -t mangle -X
       iptables -t mangle -N out-marking
       iptables -t mangle -N in-marking
# Политики по умолчанию.
       iptables -F INPUT
       iptables -F FORWARD
       iptables -F OUTPUT
       iptables -P FORWARD DROP
       iptables -P INPUT DROP
       iptables -P OUTPUT DROP
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
       iptables -A INPUT   -m state --state INVALID -j DROP
       iptables -A FORWARD -m state --state INVALID -j DROP
# Защита от некоторых видов атак
       iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
       iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
       iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
       iptables -A INPUT -p UDP -s 0/0 --destination-port 137 -j DROP
       iptables -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
       iptables -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
       iptables -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT
       iptables -A INPUT --fragment -p ICMP -j DROP
       iptables -A OUTPUT --fragment -p ICMP -j DROP
       iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
       iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
       iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
       iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
       iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
       iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
       iptables -A INPUT -p tcp --tcp-option 64 -j DROP
       iptables -A INPUT -p tcp --tcp-option 128 -j DROP
for HWNETIF in ${INET_IF[*]}
   do
# Запрет полный и обязательный
       iptables -A OUTPUT -p tcp -m tcp -o $HWNETIF --dport 23 --sport $UNPRIVPORTS -j ACCEPT
       iptables -A INPUT -p tcp -m tcp -i $HWNETIF --dport $UNPRIVPORTS --sport 23 -j ACCEPT ! --syn
       iptables -A INPUT -p tcp -m tcp -i $HWNETIF --dport $XPORTS -j DROP --syn
# Разрешаем передачу пакета - некорректный параметр
       iptables -A INPUT -p icmp -m icmp -i $HWNETIF --icmp-type parameter-problem -j ACCEPT
       iptables -A OUTPUT -p icmp -m icmp -o $HWNETIF --icmp-type parameter-problem -j ACCEPT
# Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
       iptables -A INPUT -p tcp -m tcp -m multiport -i $HWNETIF -j DROP --destination-ports $CLOSEPORTS
   done
for HWNETIF in ${NET_IF[*]} ${INET_IF[*]}
   do
# Разрешаем  ICMP соединение.
       iptables -A INPUT -p icmp -m icmp -i $HWNETIF --icmp-type source-quench -j ACCEPT
       iptables -A OUTPUT -p icmp -m icmp -o $HWNETIF --icmp-type source-quench -j ACCEPT
   done
# Принимать ответы по уже установленным соединениям
       iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
       iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT       iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
       iptables -A INPUT -i lo -j ACCEPT
       iptables -A OUTPUT -o lo -j ACCEPT
       iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
       iptables -A OUTPUT -p ALL -d 127.0.0.1 -o lo -j ACCEPT
       iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
for IP in ${NET_IP[*]} ${INET_IP[*]}
   do
       iptables -A INPUT -p ALL -s $IP -i lo -j ACCEPT
       iptables -A OUTPUT -p ALL -s $IP -j ACCEPT
   done

# Включаем NAT                                                                                                                                                                                                                                                                 
echo "NAT"                                                                                                                                                                                                                                                                     
index=0                                                                                                                                                                                                                                                                        
while [ "$index" -lt "${#INET_IF[@]}" ]                                                                                                                                                                                                                                        
    do                                                                                                                                                                                                                                                                         
        iptables -t mangle -A PREROUTING -i ${INET_IF[$index]} -j TTL --ttl-set 64
        iptables -t nat -A POSTROUTING -o ${INET_IF[$index]} -j SNAT --to-source ${INET_IP[$index]}
        iptables -t nat -A POSTROUTING -o ${INET_IF[$index]} -j MASQUERADE
        let "index = $index + 1"
    done                                                                                                                                                                                                                                                                       
Это фрагмент кода, который работает у меня на шлюзе. Внешних сетей может быть не более трех. Внутренних тестировалось на двух.
Правда у меня весь трафик по умолчанию запрещен. Потом уже разрешаю, что нужно.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 31 май 2018, 20:35

Благодарю!
С всего фрагмента предпологаю для простого шлюза должно работать вот эти куски:

Код: Выделить всё

#
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ipt_LOG
# Включить перенаправление пакетов через ядро.
echo "1" > /proc/sys/net/ipv4/ip_forward 

echo "Starting firewall"
# Сбросить правила и удалить цепочки. 
iptables -F 
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTIN
# Политики по умолчанию.
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT 

iptables -t nat -A POSTROUTING -o ${INET_IF[$index]} -j MASQUERADE

переменная ${INET_IF[$index]}   как понимаю интерфейс который смотрит в инет
не вижу где закрыто
                                                                                                                                                                                                                                                             

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 31 май 2018, 20:40

Код: Выделить всё

#!/bin/sh
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Очищаем iptables
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 -S
# NAT Шлюз
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # это если старый модем воткну
iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE # это если новый модем воткну
sysctl -w net.ipv4.ip_forward=1
# Сохраняем конфиг
iptables-save > /etc/sysconfig/iptables
тут тоже самое только без запретов где косяк?
modprobe iptable_nat? Если в ядре включил sysctl -w net.ipv4.ip_forward=1, наверное уже не надо? раньше как то это не использовалось.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 01 июн 2018, 09:27

что в этом скрипте не так, это простейшая конфигурация?

Код: Выделить всё

#!/bin/sh
# Отключаем ip6tables.service и shorewall.service
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
#modprobe ipt_LOG
# Очищаем iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
# По умолчанию разрешаем все
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# NAT Шлюз
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT
sysctl -w net.ipv4.ip_forward=1
iptables-save > /etc/sysconfig/iptables

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: NAT

Сообщение banzay242 » 01 июн 2018, 13:48

banzay242 писал(а):
01 июн 2018, 09:27
что в этом скрипте не так, это простейшая конфигурация?

Код: Выделить всё

#!/bin/sh
# Отключаем ip6tables.service и shorewall.service
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
#modprobe ipt_LOG
# Очищаем iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
# По умолчанию разрешаем все
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# NAT Шлюз
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT
sysctl -w net.ipv4.ip_forward=1
iptables-save > /etc/sysconfig/iptables
Разобрался почти, у клиента DNS надо прописывать вручную, не пойму пойму почему так, DNS при таком конфиге клиент не получает, а должен.
прописал 77.88.8.8 и заработало. Вчера поменял ядро на 4.15, до этого с этим же конфигом не работало.
без DNS в настройках клиента виндус7 доступ к интернету есть, а соединения нет. шлюз прописан 192.168.0.1
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
не помогает
прописывать свой 192.168.0.1 в dns клиента не помогает.
как я предпологаю поднятие своего dhcp c прописанным dhs провайдера поможет. если у клиената прописать 192.168.0.1
или поднять еще и dns свой сервер.
Сейчас даже и не знаю что помогло может что перешел на ядро на 4.15, или modprobe iptable_nat.

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: [Решено]NAT

Сообщение Yamah » 03 июн 2018, 15:12

Для DNS нужно правила прописывать.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: [Решено]NAT

Сообщение banzay242 » 03 июн 2018, 19:52

Yamah писал(а):
03 июн 2018, 15:12
Для DNS нужно правила прописывать.
А это что не правила, вроде все открыто, 53 порт туда сюда?
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: [Решено]NAT

Сообщение Yamah » 07 июн 2018, 17:25

iptables -A FORWARD -p UDP --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p TCP --dport 53 -j ACCEPT

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: [Решено]NAT

Сообщение banzay242 » 08 июн 2018, 08:49

Yamah писал(а):
07 июн 2018, 17:25
iptables -A FORWARD -p UDP --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p TCP --dport 53 -j ACCEPT
попробую FORWARD

notauser
Сообщения: 1216
Зарегистрирован: 06 май 2012, 21:00

Re: NAT

Сообщение notauser » 08 июн 2018, 21:37

banzay242 писал(а):
01 июн 2018, 13:48
banzay242 писал(а):
01 июн 2018, 09:27
что в этом скрипте не так, это простейшая конфигурация?

Код: Выделить всё

#!/bin/sh
# Отключаем ip6tables.service и shorewall.service
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
#modprobe ipt_LOG
# Очищаем iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
# По умолчанию разрешаем все
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# NAT Шлюз
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT
sysctl -w net.ipv4.ip_forward=1
iptables-save > /etc/sysconfig/iptables
Разобрался почти, у клиента DNS надо прописывать вручную, не пойму пойму почему так, DNS при таком конфиге клиент не получает, а должен.
...
Не должен. А вот перенаправить DNS-запросы на нужный DNS сервер (и конечно же ответы) можно. Лишь бы клиент отправил "классический" DNS-запрос "в сторону шлюза". Тогда вне зависимости от конкретного ip DNS сервера в настройках клиента будет использован тот, который в iptables. Смотрите в сторону -j DNAT --to-destination ip.dns.servera. Пока правила только разрешают прохождение DNS-трафика, но не определяют куда и откуда.
banzay242 писал(а):
01 июн 2018, 09:27
...
прописывать свой 192.168.0.1 в dns клиента не помогает.
как я предпологаю поднятие своего dhcp c прописанным dhs провайдера поможет. если у клиената прописать 192.168.0.1
или поднять еще и dns свой сервер.
...
Поможет "поднятие своего dhcp с прописанным dhs провайдера" только без "если у клиената прописать 192.168.0.1" в качестве DNS, как и "поднятие своего dhcp" "еще и dns свой сервер" с прописанным dns своего сервера 192.168.0.1, если он будет там.

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: [Решено]NAT

Сообщение Yamah » 09 июн 2018, 05:27

notauser
Я бы не стал делать перенаправление пакетов на правильные DNS-серверы. Если запрос генерирует строянс (не смог удержать, чтобы не отдать дань секлабу), то даже при перенаправлении на валидные DNS-сервера, до авторов трояна часть информации может дойти.
Обычно я рублю весь трафик к левым DNS-ам, разрешая доступ к серверам провайдера только локальному DNS-серверу и шлюзу.

Однако, спасибо за информацию! Пригодиться при запуске MagOS в корпоративной сети с внутренними адресами.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: [Решено]NAT

Сообщение banzay242 » 09 июн 2018, 06:48

Yamah писал(а):
09 июн 2018, 05:27
notauser
Я бы не стал делать перенаправление пакетов на правильные DNS-серверы. Если запрос генерирует строянс (не смог удержать, чтобы не отдать дань секлабу), то даже при перенаправлении на валидные DNS-сервера, до авторов трояна часть информации может дойти.
Обычно я рублю весь трафик к левым DNS-ам, разрешая доступ к серверам провайдера только локальному DNS-серверу и шлюзу.

Однако, спасибо за информацию! Пригодиться при запуске MagOS в корпоративной сети с внутренними адресами.
Вообще эту тему я создал для быстрой организации шлюза, безопасность здесь не причем. единственнре что нужно в скрипте это DNS добавить.
А для безопасности нужно другой скрипт писать от все запрещено до разрешено то что разрешено.
Благодарю за участие, можете тему на базе этого или другого скрипта создать, будет интересно, ведь конфигурации разные.

Аватара пользователя
Yamah
Сообщения: 1361
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: [Решено]NAT

Сообщение Yamah » 09 июн 2018, 11:19

banzay242 писал(а):
09 июн 2018, 06:48
Благодарю за участие, можете тему на базе этого или другого скрипта создать, будет интересно, ведь конфигурации разные.
Такая тема уже есть в форуме про RELS. Создавал ее я. там же был скрипт, который раздавал интернет с двух провайдеров на корпоративную сеть (точнее на корпоративные сети с общим шлюзом). Если интересно могу там выложить обновление скриптов, позволяющие подключать несколько сетей к интернету до трех максимально возможным количеством провайдеров.

crasher332
Сообщения: 81
Зарегистрирован: 25 июл 2016, 13:40
Operating system: ROSA DESKTOP FRESH R10 (PLASMA)

[Решено]NAT

Сообщение crasher332 » 25 апр 2019, 02:03

Доброго всем времени суток! Тоже бьюсь с "на-том". Всё сделал - правила все прописал, осталось только включить проброс в настройках ядра, чтоб сеть сразу стартовала с пробросом вместе с загрузкой ОС, но не могу найти файл sysctl.config - по идее он должен лежать по пути /etc/sysctl.config, но, в ROSA, его там нет.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

[Решено]NAT

Сообщение banzay242 » 26 апр 2019, 09:49

crasher332 писал(а):
25 апр 2019, 02:03
Доброго всем времени суток! Тоже бьюсь с "на-том". Всё сделал - правила все прописал, осталось только включить проброс в настройках ядра, чтоб сеть сразу стартовала с пробросом вместе с загрузкой ОС, но не могу найти файл sysctl.config - по идее он должен лежать по пути /etc/sysctl.config, но, в ROSA, его там нет.
на РОСЕ я так делал, содержание nat.sh:

Код: Выделить всё

#!/bin/sh
# Отключаем ip6tables.service и shorewall.service
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
#modprobe ipt_LOG
# Очищаем iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
# По умолчанию разрешаем все
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Разрешаем DNS
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
# NAT Шлюз
#iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o enp0s20u1 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o enp0s20u3 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT если надо отключить то ставим 0
sysctl -w net.ipv4.ip_forward=0
iptables-save > /etc/sysconfig/iptables
# В статическом клиенте нужно прописывать ДНС провайдера или любой другой.

crasher332
Сообщения: 81
Зарегистрирован: 25 июл 2016, 13:40
Operating system: ROSA DESKTOP FRESH R10 (PLASMA)

[Решено]NAT

Сообщение crasher332 » 29 апр 2019, 20:23

banzay242 писал(а):
26 апр 2019, 09:49
crasher332 писал(а):
25 апр 2019, 02:03
Доброго всем времени суток! Тоже бьюсь с "на-том". Всё сделал - правила все прописал, осталось только включить проброс в настройках ядра, чтоб сеть сразу стартовала с пробросом вместе с загрузкой ОС, но не могу найти файл sysctl.config - по идее он должен лежать по пути /etc/sysctl.config, но, в ROSA, его там нет.
на РОСЕ я так делал, содержание nat.sh:

Код: Выделить всё

#!/bin/sh
# Отключаем ip6tables.service и shorewall.service
systemctl stop shorewall.service
systemctl stop ip6tables.service
systemctl disable shorewall.service
systemctl disable ip6tables.service
systemctl enable iptables.service
systemctl start iptables.service
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
#modprobe ipt_LOG
# Очищаем iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
# По умолчанию разрешаем все
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Разрешаем DNS
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
# NAT Шлюз
#iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o enp0s20u1 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o enp0s20u2 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o enp0s20u3 -j MASQUERADE
# NAT на сеть
iptables -t nat -A POSTROUTING -o ppp0 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u1 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u2 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s20u3 ! -d 192.168.0.0/24 -j MASQUERADE
#Запрещаем доступ определенным IP из внутренней сети наружу (интернет)
#iptables -A FORWARD -s 192.168.0.20 -j DROP
# TTL для мобильного провайдера
#iptables -t mangle -A PREROUTING -j TTL --ttl-inc 1
# MTU
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
# Включаем NAT если надо отключить то ставим 0
sysctl -w net.ipv4.ip_forward=0
iptables-save > /etc/sysconfig/iptables
# В статическом клиенте нужно прописывать ДНС провайдера или любой другой.
Я тоже делал sh скрипт, но ОС упорно не хотела включать NAT sysctl -w net.ipv4.ip_forward=0. Команда выполнялась только с правами ROOT и после входа в систему, в какую бы автозагрузку я команду не запихивал - система её игнорировала. Поэтому пошёл другим путём - воспользовался shorewall - через него система послушалась. Возможно в системе были какие-то остатки от этого файрвола или какого другого, и из-за этого она не хотела выполнять команды в скрипте.

banzay242
Сообщения: 787
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

[Решено]NAT

Сообщение banzay242 » 30 апр 2019, 06:29

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

Ответить