web-dev-qa-db-ja.com

ルーターとしてのUbuntu 18.04

Ubuntu 18.04。 Ubuntuを単純なルーターとして使用する必要があります。

Ubuntuボックスには、ens33 DHCP、ens38 192.168.10.1/24の2つのインターフェイスがあります。私の目的では、33は外側、38は内側です。このボックスの背後には、192.168.10.xと192.168.20.xのネットワークがいくつかあります。これらのネットワークのいずれかから、ubuntuボックスの両方のインターフェースにpingを実行できます。外部インターフェイスを超えてpingを実行できません(33)。

/etc/sysctl.confを編集してipv4転送を許可しました-net.ipv4.ip_forward = 1。

38経由で他のネットワーク192.168.20.xへのゲートウェイを表示するルートを追加しました。

Natを探していない、ただルートします。

誰が私が行方不明になっているのを見ますか?さらに情報が必要かどうかを教えてください。

ダグ

4
Doug

他の誰かが同じシナリオを必要とする場合に備えて、私が探していた答えを投稿したかった。 AlexPは上記の正しい方向を示してくれました。外側のボックスは返信する方法を知らず、これを使用する可能性のあるすべてのネットワークにルートを追加する必要はありませんでした。

ルーティングが必要でしたが、NATも必要でした。

これらの手順はいくつかの異なるソースからまとめられていますが、主に- https://help.ubuntu.com/lts/serverguide/firewall.html <-ここにあるufw IPマカレディングセクションです。

ここからのCentOSの指示- https://ronnybull.com/2015/11/20/how-to-centos-7-router/

Ubuntuボックスに内部および外部インターフェイスがあり、それらの設定が既に構成されていると想定しています。 (CentOS 7で同じことを達成するために、一番下に指示も追加しました-それも私の要件でした)

1。まず、ufwおよびufwロギングを有効にします

Sudo ufw enable
Sudo ufw logging on

2。既存のルールをフラッシュします(ファイアウォール用にすでにufwまたはIPテーブルを使用している場合は、これを行わないでください)。削除してフラッシュします。デフォルトのテーブルは「フィルター」です。 「nat」のような他のものは明示的に述べられなければなりません。

iptables --flush            # Flush all the rules in filter and nat tables    
iptables --table nat --flush    
iptables --delete-chain    # Delete all chains that are not in default filter and nat table    
iptables --table nat --delete-chain    

3。最初に、パケット転送をufwで有効にする必要があります。 2つの構成ファイルを調整する必要があります。/etc/default/ufwでDEFAULT_FORWARD_POLICYを「ACCEPT」に変更します。

DEFAULT_FORWARD_POLICY="ACCEPT"

4。次に、/ etc/ufw/sysctl.confを編集してコメント解除します。

net/ipv4/ip_forward=1
net/ipv4/conf/all/forwarding=1 
net/ipv6/conf/default/forwarding=1 # if using IPv6

5。ここで、ルールを/etc/ufw/before.rulesファイルに追加します。デフォルトのルールはフィルタテーブルのみを設定し、マスカレードを有効にするにはnatテーブルを設定する必要があります。ファイルの先頭のヘッダーコメントの直後に次を追加します。

# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't be processed
COMMIT

各テーブルには、対応するCOMMITステートメントが必要です。これらの例では、natテーブルとfilterテーブルのみが示されていますが、rawテーブルとmangleテーブルのルールを追加することもできます。上記の例では、eth0、eth1、および192.168.0.0/24をネットワークの適切なインターフェイスとIP範囲に置き換えます。

6。最後に、ufwを無効にしてから再度有効にして、変更を適用します。

Sudo ufw disable && Sudo ufw enable

これで、IPマスカレードが有効になります。追加のFORWARDルールを/etc/ufw/before.rulesに追加することもできます。これらの追加ルールをufw-before-forwardチェーンに追加することをお勧めします。

同じことを達成するためのCentOS 7 firewalld config-

1。IPv4パケット転送を有効にします。

a。以下を/etc/sysctl.confに追加します。

 net.ipv4.ip_forward = 1

b。 sysctl設定を適用します。

sysctl -p

2。firewalldに直接ルールを追加します。 --permanentオプションを追加して、再起動後もこれらのルールを保持します。

firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE    
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_int -o eth_ext -j ACCEPT    
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_ext -o eth_int -m state --state RELATED,ESTABLISHED -j ACCEPT

a。以下を/etc/sysctl.confに追加します。

 net.ipv4.ip_forward = 1

b。 sysctl設定を適用します。

sysctl -p

2。firewalldに直接ルールを追加します。 --permanentオプションを追加して、再起動後もこれらのルールを保持します。

firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE    
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_int -o eth_ext -j ACCEPT    
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_ext -o eth_int -m state --state RELATED,ESTABLISHED -j ACCEPT
2
Doug