Ubuntu 18.04我被要求使用Ubuntu作为一个简单的路由器。
Ubuntu有两个接口-- ens33 DHCP,ens38 192.168.10.1/24。33在外面,38在里面是为了我的目的。这个盒子后面有几个网络- 192.168.10.x和192.168.20.x。在任何这些网络中,我都可以在ubuntu框上平平这两个接口。我无法通过外部接口(33)。
我已经编辑了/etc/sysctl.conf以允许ipv4转发- net.ipv4.ip_forward=1。
我增加了一条通过38向其他网络显示网关的路由192.168.20.x。
不是在找纳特,只是路线而已。
有人看到我错过了什么吗?如果需要更多的信息,请告诉我。
道格
发布于 2018-07-03 12:54:43
我想贴出我正在寻找的答案,以防其他人需要同样的场景。AlexP在上面指出了正确的方向--外面的盒子不知道怎么回复,我也不想在每一个可能使用它的网络上添加路由。
我确实想要路由,但我也需要NAT。
这些指令是从几个不同的来源拼凑在一起的,但主要是-- https://help.ubuntu.com/lts/serverguide/firewall.html <- -这里的ufw标记部分。
这里的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中启用数据包转发。需要调整两个配置文件,在/etc/default/ufw中将DEFAULT_FORWARD_POLICY更改为“接受”:
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/etc. 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表,但您也可以为原始表和mangle表添加规则。在上面的示例中,用适合您的网络的接口和IP范围替换eth0、eth1和192.168.0.0/24。
6.最后,禁用并重新启用ufw应用更改:
sudo ufw disable && sudo ufw enable
现在应该启用IP伪装。还可以将任何其他转发规则添加到/etc/ufw/etc.规则。建议将这些附加规则添加到ufw前向链中。
CentOS 7 firewalld配置来完成同样的任务-
1.启用IPv4包转发。
a.在/etc/sysctl.conf中添加以下内容:
net.ipv4.ip_forward = 1
b.应用sysctl设置:
sysctl -p
2.在消防系统中增加直接规则。添加--永久选项,以便在重新启动时保留这些规则。
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.在消防系统中增加直接规则。添加--永久选项,以便在重新启动时保留这些规则。
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
https://askubuntu.com/questions/1050816
复制相似问题