This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
сервис_nat [2024/04/23 13:15] val [nftables] |
сервис_nat [2025/06/22 15:03] (current) val [Debian/Ubuntu (nftables)] |
||
---|---|---|---|
Line 8: | Line 8: | ||
=== Заполнение таблицы nat (eth1 - внешний интерфейс) === | === Заполнение таблицы nat (eth1 - внешний интерфейс) === | ||
<code> | <code> | ||
- | debian11# apt install iptables | + | debian11_12# apt install iptables |
root@gate:~# apt install conntrack | root@gate:~# apt install conntrack | ||
Line 71: | Line 71: | ||
<code> | <code> | ||
gate### apt install nftables | gate### apt install nftables | ||
+ | |||
+ | gate# man nft | ||
gate# nft add table nat | gate# nft add table nat | ||
- | gate# nft add rule nat postrouting ip saddr 192.168.X.0/24 oif eth1 snat to 172.16.1.254 | + | 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 list ruleset | ||
- | gate# file /etc/nftables.conf | + | gate# nft flush ruleset |
- | gate# systemctl enable nftables.service | + | 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 145: | 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> |