官术网_书友最值得收藏!

Setting up port forwarding

In the previous section, we configured iptables to accept connections to port 22 in order to allow people to SSH into the host. Sometimes, you want to forward a port to a system behind the firewall instead of having the service run on the firewall itself. For example, you may have a web server running on port 8080 on an internal box that you want to expose to the Internet via port 80 on the firewall.

How to do it…

  1. Rewrite packets addressed to port 80 to instead go to port 8080:
    # iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 80 \
    -j DNAT --to-destination 192.168.0.200:8080 
    
  2. Accept any packets addressed to 192.168.0.200 port 8080:
    # iptables -A FORWARD -p tcp -d 192.168.0.200 \
    --dport 8080 -m state --state NEW,ESTABLISHED,RELATED \
    -j ACCEPT 
    

How it works…

This example is a lot simpler since it builds upon concepts we've already learned. We just have two simple commands:

  • First we set up a PREROUTING rule which will be processed once the packet is received, prior to any routing rules being applied. If the packet is TCP and came in on the Internet interface (eth2) with a destination port, then the packet is added to the destination NAT (DNAT) chain with a final destination of 192.168.0.200 port 8080.
  • Next, any packet destined for 192.168.0.200 port 8080 is either a new connection or an established connection; the packet is then accepted for forwarding to the destination.
主站蜘蛛池模板: 贺州市| 遵化市| 广安市| 乐昌市| 保靖县| 榆树市| 万州区| 大石桥市| 太康县| 剑河县| 长沙县| 洪雅县| 南平市| 黄山市| 壤塘县| 大邑县| 潞城市| 深水埗区| 天津市| 维西| 乐安县| 万荣县| 临桂县| 丹寨县| 白沙| 大田县| 武夷山市| 绿春县| 天津市| 泰兴市| 曲松县| 松桃| 黄平县| 武冈市| 徐闻县| 阆中市| 年辖:市辖区| 乌兰浩特市| 红河县| 胶南市| 巴马|