Home Operation and Maintenance Linux Operation and Maintenance Software firewall iptables under linux - setting of nat table rules

Software firewall iptables under linux - setting of nat table rules

Nov 18, 2020 pm 03:25 PM
linux

In addition to the most commonly used filter table, iptables also occasionally uses the nat table. NAT is Network Address Translation, which is used to modify the source IP address or destination IP address. Now let's look at the table and chain process of a simple data packet passing through iptables to the back-end host.

1. Go through the PREROUTING chain of the NAT table

2. Determine whether the data packet is going to enter the machine through routing. If not, perform the next step

3 .After the FORWARD chain of the Filter

4.After the POSTROUTING chain of the NAT table, it is finally transmitted

The first and last steps related to NAT are the PREROUTING chain and the POSTROUTING chain.

  • PREROUTING chain modifies the destination IP, referred to as DNAT

  • POSTROUTING chain modifies the source IP, referred to as SNAT

DNAT

So which scenarios require the use of DNAT, and what are the common applications of SNAT? For DNAT, the most common thing is to map the internal network port to the external network so that other users can access it. In this way, the security of the internal network is greatly improved, because the external network cannot directly transmit data to the internal network.

Scenario: There is a host A (192.168.1.111) in the intranet with a website set up on it, and there is also a host B (192.168.1.2) in the intranet with a public IP (39.100.92.12). So what? Let users on the external network access the website above A.

At this time, you need to perform a DNAT operation on host B to change the destination address from the public network ip39.100.92.12 to the internal network address 192.168.1.111. The operation is as follows:

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
> -j DNAT --to-destination 192.168.1.111:80

In addition to modifying the ip, the port can also be modified in the PREROUTING chain. For example, port 80 is mapped to port 8080, but the operation name is no longer DNAT, but REDIRECT.

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
> -j REDIRECT --to-ports 8080

SNAT

For SNAT, our most common application is that intranet machines access the Internet through a proxy server, and intranet hosts do not have a public network IP, then after the internal network host data packet passes through the proxy server, the proxy server needs to modify the source address of the data packet to the public network IP of the proxy server.

Scenario: There is a host A (192.168.1.111) in the intranet, and there is a host B (192.168.1.2) in the intranet with a public IP (39.100.92.12). So how can I operate host A? Connect to the public network.

# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 \
> -j SNAT --to-source 39.100.92.12

The operations of DNAT and SNAT are not very complicated. The main thing is to understand the application scenarios of DNAT and SNAT. It is easy to get confused when you first learn. I hope everyone can understand their differences.

Related recommendations: "linux video tutorial"

The above is the detailed content of Software firewall iptables under linux - setting of nat table rules. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to install software on Linux using the terminal? How to install software on Linux using the terminal? Aug 02, 2025 pm 12:58 PM

There are three main ways to install software on Linux: 1. Use a package manager, such as apt, dnf or pacman, and then execute the install command after updating the source, such as sudoaptininstallcurl; 2. For .deb or .rpm files, use dpkg or rpm commands to install, and repair dependencies when needed; 3. Use snap or flatpak to install applications across platforms, such as sudosnapinstall software name, which is suitable for users who are pursuing version updates. It is recommended to use the system's own package manager for better compatibility and performance.

The Ultimate Guide to High-Performance Gaming on Linux The Ultimate Guide to High-Performance Gaming on Linux Aug 03, 2025 am 05:51 AM

ChoosePop!_OS,Ubuntu,NobaraLinux,orArchLinuxforoptimalgamingperformancewithminimaloverhead.2.InstallofficialNVIDIAproprietarydriversforNVIDIAGPUs,ensureup-to-dateMesaandkernelversionsforAMDandIntelGPUs.3.EnabletheperformanceCPUgovernor,usealow-latenc

What are the main pros and cons of Linux vs. Windows? What are the main pros and cons of Linux vs. Windows? Aug 03, 2025 am 02:56 AM

Linux is suitable for old hardware, has high security and is customizable, but has weak software compatibility; Windows software is rich and easy to use, but has high resource utilization. 1. In terms of performance, Linux is lightweight and efficient, suitable for old devices; Windows has high hardware requirements. 2. In terms of software, Windows has wider compatibility, especially professional tools and games; Linux needs to use tools to run some software. 3. In terms of security, Linux permission management is stricter and updates are convenient; although Windows is protected, it is still vulnerable to attacks. 4. In terms of difficulty of use, the Linux learning curve is steep; Windows operation is intuitive. Choose according to requirements: choose Linux with performance and security, and choose Windows with compatibility and ease of use.

Understanding RAID Configurations on a Linux Server Understanding RAID Configurations on a Linux Server Aug 05, 2025 am 11:50 AM

RAIDimprovesstorageperformanceandreliabilityonLinuxserversthroughvariousconfigurations;RAID0offersspeedbutnoredundancy;RAID1providesmirroringforcriticaldatawith50�pacityloss;RAID5supportssingle-drivefailuretoleranceusingparityandrequiresatleastthre

Linux how to enable and disable services at boot Linux how to enable and disable services at boot Aug 08, 2025 am 10:23 AM

To manage the startup of Linux services, use the systemctl command. 1. Check the service status: systemctlstatus can check whether the service is running, enabled or disabled. 2. Enable the service startup: sudosystemctlenable, such as sudosystemctlenablenginx. If it is started at the same time, use sudosystemctlenable--nownginx. 3. Disable the service startup: sudosystemctldisable, such as sudosystemctldisablecups. If it is stopped at the same time, use sudosystemctldisabl

Linux how to list all running processes Linux how to list all running processes Aug 08, 2025 am 06:42 AM

Usepsauxforacompletesnapshotofallrunningprocesses,showingdetailedinformationlikeUSER,PID,CPU,andmemoryusage.2.Usetoporhtopforreal-timemonitoringofprocesseswithdynamicupdates,wherehtopoffersamoreintuitiveinterface.3.UsepgreporpidoftoquicklyfindthePIDs

How to clean up your Linux system How to clean up your Linux system Aug 22, 2025 am 07:42 AM

Removeunusedpackagesanddependencieswithsudoaptautoremove,cleanpackagecacheusingsudoaptcleanorautoclean,andremoveoldkernelsviasudoaptautoremove--purge.2.Clearsystemlogswithsudojournalctl--vacuum-time=7d,deletearchivedlogsin/var/log,andempty/tmpand/var

Linux how to view the contents of a file Linux how to view the contents of a file Aug 19, 2025 pm 06:44 PM

ToviewfilecontentsinLinux,usedifferentcommandsbasedonyourneeds:1.Forsmallfiles,usecattodisplaytheentirecontentatonce,withcat-ntoshowlinenumbers.2.Forlargefiles,uselesstoscrollpagebypageorlinebyline,searchwith/search_term,andquitwithq.3.Usemoreforbasi

See all articles