Armadilloフォーラム

dnat設定方法について

takeiwata

2020年1月2日 0時13分

添付ファイルの機器構成になっています。
LTE(閉域網 IP:10.55.155.70)-G3L(IP:192.168.10.1)-PLC(IP:192.168.10.2ポート9094)

Linuxは初心者で下記のようなdnat設定方法は可能でしょうか?
10.11.155.70 ポート5001 →192.168.1.20 ポート9094 PLC本体へ接続
10.11.155.70 ポート80 →192.168.1.20 ポート80  PLC Webサーバー
10.11.155.70 ポート** →192.168.1.10 ポート80 G3L Webサーバー
10.11.155.70 ポート21 →192.168.1.20 ポート21 PLC FTP

現状の設定
■route
Destination Gateway Genmask Flags Metric Ref Use Iface
default OpenWrt.lan 0.0.0.0 UG 1024 0 0 usb1
link-local * 255.255.0.0 U 1000 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.15.0 * 255.255.255.0 U 0 0 0 usb1

■netstat -tanp
roto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1231/sshd
tcp 0 0 0.0.0.0:502 0.0.0.0:* LISTEN 940/wt_modbus
tcp 0 0 0.0.0.0:8991 0.0.0.0:* LISTEN 2130/dc
tcp6 0 0 :::80 :::* LISTEN 1628/apache2
tcp6 0 0 :::22 :::* LISTEN 1231/sshd
tcp6 0 0 192.168.1.10:80 192.168.1.20:55615 FIN_WAIT2

ファイル ファイルの説明
機器構成.jpg 機器構成
コメント

①下記のような方法でファイヤーウォール無効
apt-get install els31-utils
els31-firewall-disable

②FTP導入  apt-get install ftpd

③起動後に自動的にファイヤーウォールを無効にするように設定する。

els31-utils

#!/bin/bash

FIREWALL="disable"

④dnat設定
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.50.1 --dport 9094 -j DNAT --to-destination 10.55.155.70:5001
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.50.1 --dport 21 -j DNAT --to-destination 10.55.155.70:23
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.50.1 --dport 80 -j DNAT --to-destination 10.55.155.70:81

①~④設定しましたが、G3L側のwebサーバーとFTPは接続できるようになりましたが、PLC側への接続はできません。
どなたかアドバイス頂けると大変助かります。

また、resolv.confに下記の内容を追加したのですが再起動すると消えてしまいます。対応方法について教えてください。

search lan
nameserver 192.168.15.1
nameserver 8.8.8.8
nameserver 133.5.166.3
nameserver 133.243.238.164
nameserver 133.243.238.163
nameserver 133.243.238.243
nameserver 133.243.238.244

> 添付ファイルの機器構成になっています。
> LTE(閉域網 IP:10.55.155.70)-G3L(IP:192.168.10.1)-PLC(IP:192.168.10.2ポート9094)
>
> Linuxは初心者で下記のようなdnat設定方法は可能でしょうか?
> 10.11.155.70 ポート5001 →192.168.1.20 ポート9094 PLC本体へ接続
> 10.11.155.70 ポート80 →192.168.1.20 ポート80  PLC Webサーバー
> 10.11.155.70 ポート** →192.168.1.10 ポート80 G3L Webサーバー
> 10.11.155.70 ポート21 →192.168.1.20 ポート21 PLC FTP
>
>
> 現状の設定
> ■route
> Destination Gateway Genmask Flags Metric Ref Use Iface
> default OpenWrt.lan 0.0.0.0 UG 1024 0 0 usb1
> link-local * 255.255.0.0 U 1000 0 0 eth0
> 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
> 192.168.15.0 * 255.255.255.0 U 0 0 0 usb1
>
>
> ■netstat -tanp
> roto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
> tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1231/sshd
> tcp 0 0 0.0.0.0:502 0.0.0.0:* LISTEN 940/wt_modbus
> tcp 0 0 0.0.0.0:8991 0.0.0.0:* LISTEN 2130/dc
> tcp6 0 0 :::80 :::* LISTEN 1628/apache2
> tcp6 0 0 :::22 :::* LISTEN 1231/sshd
> tcp6 0 0 192.168.1.10:80 192.168.1.20:55615 FIN_WAIT2
>
>

中村です。

> ①~④設定しましたが、G3L側のwebサーバーとFTPは接続できるようになりましたが、PLC側への接続はできません。
> どなたかアドバイス頂けると大変助かります。

echo 1 >/proc/sys/net/ipv4/ip_forward
はやっていますか?

> また、resolv.confに下記の内容を追加したのですが再起動すると消えてしまいます。対応方法について教えてください。

NetworkManagerが書き換えていると思います。
対策をざっとネット検索してみたところ、
次ような記事が見つかりました。
https://qiita.com/a-hiroyuki/items/559ccde6d948d31af939
https://centos.bungu-do.jp/archives/472
(この2つ以外にもいろいろ見つかりましたが・・・)

--
なかむら

中村様 ご回答ありがとうございます。

下記のような流れで設定しましたがNGでした。
今回は別途LTEルーターを追加して対応することにしました。
もう少しLinuxを勉強して設定できるように努力してみます。

①アプリをダウンロード
apt-get install iptables-persistent

②vi /etc/iptables/rules.v4

rules.v4に下記を記述
# Generated by iptables-save v1.4.21 on Fri Feb 10 10:27:45 2017
*nat
:PREROUTING ACCEPT [14:944]
:INPUT ACCEPT [14:944]
:OUTPUT ACCEPT [66:4599]
:POSTROUTING ACCEPT [66:4599]
-A PREROUTING -d 10.55.155.70 -p tcp --dport 81 -j DNAT --to 192.168.1.20:80
-A PREROUTING -d 10.55.155.70 -p tcp --dport 5001 -j DNAT --to 192.168.1.20:9094
-A POSTROUTING -d 192.168.1.20 -j SNAT --to 10.55.155.70
COMMIT
*filter
:INPUT DROP [443:67708]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [509:41283]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 81 -j ACCEPT
-A INPUT -p tcp --dport 5001 -j ACCEPT
-A INPUT -p udp --sport 53 -j ACCEPT
-A OUTPUT -p udp --dport 53 -j ACCEPT
-A FORWARD -i usb1 -p tcp -d 192.168.1.20 --dport 80 -j ACCEPT
-A FORWARD -i usb1 -p tcp -d 192.168.1.20 --dport 9094 -j ACCEPT
T-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
COMMIT

③設定再ロード
 sudo netfilter-persistent reload

④echo 1 >/proc/sys/net/ipv4/ip_forward

> 中村です。
>
> > ①~④設定しましたが、G3L側のwebサーバーとFTPは接続できるようになりましたが、PLC側への接続はできません。
> > どなたかアドバイス頂けると大変助かります。
>
> echo 1 >/proc/sys/net/ipv4/ip_forward
> はやっていますか?
>
> > また、resolv.confに下記の内容を追加したのですが再起動すると消えてしまいます。対応方法について教えてください。
>
> NetworkManagerが書き換えていると思います。
> 対策をざっとネット検索してみたところ、
> 次ような記事が見つかりました。
> https://qiita.com/a-hiroyuki/items/559ccde6d948d31af939
> https://centos.bungu-do.jp/archives/472
> (この2つ以外にもいろいろ見つかりましたが・・・)
>
> --
> なかむら
>
>

中村です。

G3Lの場合、iptablesではなくてfirewalldで設定すべきなのかもしれません。

"firewalld ポート転送"でネット検索してみてください。
CentOSやRHELの話が多いですけど、debianでもほぼ同じだと思います。

--
なかむら