User Tools

Site Tools


сервис_nat

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
сервис_nat [2021/07/22 08:45]
admin
сервис_nat [2025/06/22 15:03] (current)
val [Debian/Ubuntu (nftables)]
Line 8: Line 8:
 === Заполнение таблицы nat (eth1 - внешний интерфейс) === === Заполнение таблицы nat (eth1 - внешний интерфейс) ===
 <​code>​ <​code>​
 +debian11_12#​ apt install iptables
 +
 root@gate:​~#​ apt install conntrack root@gate:​~#​ apt install conntrack
  
Line 30: Line 32:
 </​code>​ </​code>​
  
-=== Сохранение состояния iptables ​===+=== Управление состоянием iptables === 
 + 
 +== Вариант 1 == 
 + 
 +== Сохранение состояния iptables ==
 <​code>​ <​code>​
 root@gate:​~#​ iptables-save > /​etc/​iptables.rules root@gate:​~#​ iptables-save > /​etc/​iptables.rules
 </​code>​ </​code>​
  
-=== Восстановление состояния iptables ​===+== Восстановление состояния iptables ==
 <​code>​ <​code>​
 root@gate:​~#​ iptables-restore < /​etc/​iptables.rules root@gate:​~#​ iptables-restore < /​etc/​iptables.rules
 </​code>​ </​code>​
  
-=== Восстановление состояния iptables при загрузке ​===+== Восстановление состояния iptables при загрузке ==
 <​code>​ <​code>​
 root@gate:​~#​ cat /​etc/​network/​interfaces root@gate:​~#​ cat /​etc/​network/​interfaces
Line 49: Line 55:
   pre-up iptables-restore < /​etc/​iptables.rules   pre-up iptables-restore < /​etc/​iptables.rules
 ... ...
 +</​code>​
 +
 +== Вариант 2 ==
 +<​code>​
 +# apt install iptables-persistent
 +
 +# netfilter-persistent save
 +</​code>​
 +
 +==== nftables ====
 +
 +  * [[https://​wiki.nftables.org/​wiki-nftables/​index.php/​Performing_Network_Address_Translation_(NAT)|Performing Network Address Translation (NAT)]]
 +  * https://​wiki.debian.org/​nftables
 +
 +<​code>​
 +gate### apt install nftables
 +
 +gate# man nft
 +
 +gate# nft add table nat
 +
 +gate# nft 'add chain nat postrouting { type nat hook postrouting priority srcnat ; }'
 +
 +gate# nft add rule nat postrouting ip saddr 192.168.X.0/​24 oif eth1 snat to 172.16.1.X
 +gate# nft add rule nat postrouting ip saddr 192.168.100+X.0/​24 oif eth1 snat to 172.16.1.X
 +
 +gate# nft list ruleset
 +
 +gate# nft flush ruleset
 +
 +gate# systemctl enable nftables.service --now
 +
 +gate# cat /​etc/​nftables.conf
 +</​code><​code>​
 +...
 +table ip nat {
 +        chain postrouting {
 +                type nat hook postrouting priority srcnat; policy accept;
 +                ip saddr 192.168.100+X.0/​24 oif "​eth1"​ snat to 172.16.1.X
 +        }
 +}
 +</​code><​code>​
 +gate# systemctl reload nftables.service
 </​code>​ </​code>​
  
Line 113: Line 162:
 </​code>​ </​code>​
  
 +==== Debian/​Ubuntu (nftables) ====
 +
 +<​code>​
 +root@gate:​~#​ cat /​etc/​nftables.conf
 +</​code><​code>​
 +...
 +table ip nat {
 +...
 + chain prerouting {
 + type nat hook prerouting priority dstnat; policy accept;
 + ip daddr 172.16.1.X tcp dport 2222 dnat to 192.168.X.10:​22
 + ip daddr 172.16.1.X udp dport 53 dnat to 192.168.X.10
 + ip daddr 172.16.1.X tcp dport 53 dnat to 192.168.X.10
 +
 + ip daddr 172.16.1.X tcp dport { 25, 80, 143, 465, 587, 5222 } dnat to 192.168.X.10
 +
 +                ip daddr 172.16.1.X udp dport { 10000-20000 } dnat to 192.168.X.10
 +                ip daddr 172.16.1.X udp dport { 5060 } dnat to 192.168.X.10:​5060
 +#                ip daddr 172.16.1.X udp dport { 6050 } dnat to 192.168.X.10:​5060
 +
 + ip daddr 172.16.1.X tcp dport 5061 dnat to 192.168.X.10
 + ip daddr 172.16.1.X udp dport 4569 dnat to 192.168.X.10
 +
 + }
 +}
 +</​code><​code>​
 +root@gate:​~#​ systemctl restart nftables.service
 +</​code>​
 ==== FreeBSD (pf) ==== ==== FreeBSD (pf) ====
 <​code>​ <​code>​
сервис_nat.1626932721.txt.gz · Last modified: 2021/07/22 08:45 by admin