NAT网关,Iptables,端口转发,DNS和DHCP设置 - Ubuntu 8.10服务器
所以你太穷了,不能负担另一个昂贵的路由器,想要自己做的事情。 你找到了正确的教程! 本教程将向您展示如何设置具有NAT,端口保护,DNS服务器和DHCP服务器的Ubuntu 8.10路由器。
为什么Ubuntu你问?
Ubuntu不仅是一个伟大的操作系统,它也非常灵活,功能强大,可以让您无时无刻无故地起床和运行! 注意:请在每一步后重新启动计算机。 这将确保一切正常。
我们需要的一些基本事情是...
DHCP - dhcp3-server
DNS - bind9
iptables - 包含/ w ubuntu
第一件事
你需要2个网卡。 拿你的第一张网卡,并将你的WAN连接插入它。 你应该知道这是什么网卡,eth0 eth1 ect ...如果你不知道是什么,我的朋友尝试和错误。
我们只要说你的WAN卡将是eth0( 如果是eth1,只要做一切都相同,但是相应地调整你的配置 )。 我们要找到文件/ etc / network / interfaces
。 在文件上执行VI
sudo vi /etc/network/interfaces
您应该在文件中看到( 如果您还没有设置 ):
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback
我们要将其添加到文件中。 作为附注,如果您不知道如何使用VI使用nano或学习VI。
auto eth0 iface eth0 inet dhcp
auto eth0
代码告诉eth0在启动时启动,类似于运行
sudo ifconfig eth0 up
代码iface eth0 inet dhcp
告诉eth0接口寻找一个DHCP服务器并从那里获取它的信息。 如果您连接到电缆调制解调器,这是很重要的,因为您将希望从ISP获取公共IP。
下一步要配置您的网卡eth1。 这将是您的“LAN”卡。
如果你还记得我们的/ etc / network / interfaces
配置看起来像
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
我们再次将VI插入到interfaces
文件中,并添加了几行:
sudo vi /etc/network/interfaces
将这些行添加到文件的底部。
auto eth1 iface eth1 inet static address 172.17.207.121 netmask 255.255.255.0 broadcast 172.17.207.255 network 172.17.207.0
这只是为您的LAN卡上的服务器提供一个静态IP地址。
您的文件现在应该是这样的。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 172.17.207.121 netmask 255.255.255.0 broadcast 172.17.207.255 network 172.17.207.0
现在,在我们忘记之前,让我们编辑你的/ etc / hosts
文件。
sudo vi /etc/hosts
使文件看起来像我的,尽管如果你打电话给你的服务器userve
或myserver
你可以改变它。
另请注意asus.local
域名,使用自己的mydomain.local
是一个好主意,但您可以使用我所学习的东西。
我们使用.local
,因为它很容易记住,它不是公开的,所以我们不会干扰任何东西。
127.0.0.1 localhost server.localhost 172.17.207.121 server.asus.local server asus.local
现在我们配置了我们的接口,我们将安装和设置一个dhcp服务器。 要安装dhcp服务器,请运行命令
sudo apt-get install dhcp3-server
我们来编辑dhcpd.conf
文件。 首先运行命令
sudo vi /etc/dhcp3/dhcpd.conf
现在,如果该文件中有任何内容,请删除它 。
将其复制并粘贴到文件中,然后写入并退出。
ddns-update-style none; option domain-name "whatever.local"; //change this to something you want.local such as mydomain.local option domain-name-servers 172.17.207.121, 24.92.226.41; //you also might want to change that second dns server to your ISP's local DNS server option routers 172.17.207.121; default-lease-time 42300; max-lease-time 84600; authoritative; log-facility local7; subnet 172.17.0.0 netmask 255.255.255.0 { range 172.17.207.1 172.17.207.100; //you can expand the range just by changing .100 to .254 or somthing like that }
现在运行命令
sudo /etc/init.d/dhcp3-server start
这将启动您的DHCP服务器,我们可以标记该部分DONE。
继续... DNS
绑定是我们将要使用的DNS包。 要安装,我们只是运行
sudo apt-get install bind9
这将下载并安装我们的绑定服务器。
首先运行命令
vi /etc/bind/named.conf
然后删除文件中的所有内容,并查找我的注释,通常由//
指示。
// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "asus.local" { //change asus.local to whatever you named your domain such as mydomain.local type master; file "/etc/bind/zones/asus.local.db"; //this file or foler does not exist so we will need to make it }; zone "207.17.172.in-addr.arpa" { type master; file "/etc/bind/zones/rev.207.17.172.in-addr.arpa";//this file does not exist so we will also need to make it }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";
在我们可以使两个文件asus.local.db
和rev.207.17.172.in-addr.arpa之前
,我们需要编辑另一个文件。 所以
sudo vi /etc/bind/named.conf.options
删除文件中的所有内容并使用此...
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. forwarders { 24.92.226.41; //very important, change this to your LOCAL ISP's DNS server(s) 24.92.224.40; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; };
注意意见,他们告诉您更改我们的代理商地址到您的LOCAL ISP的DNS。
接下来,cd到你的绑定目录:
cd /etc/bind/
sudo mkdir zones
cd zones
sudo vi asus.local.db
(或使用您的域名,如mydomain.local.db
。)
一旦你在asus.local.db
文件或mydomain.local.db
文件(无论你调用它),复制并粘贴,对您的域名做适当的更改。
$ORIGIN . $TTL 4000 ; asus.local. IN SOA server.asus.local. admin.asus.local. ( 2007031001 ; serial 28800 ; refresh 3600 ; retry 604800 ; expire 38400 ; min ) NS server.asus.local. $ORIGIN asus.local. IN A 172.17.207.121 www IN A 172.17.207.121 //an example server IN A 172.17.207.121 //an example macpro IN A 172.17.207.4 //an example
如果你做一个nslookup macpro
,你将得到172.17.207.4
的回答,所以根据你的设置更改域名和IP。
接下来,我们将要修改
不存在的rev.207.17.172.in-addr.arpa
文件。 但一旦我们保存它。 假设您仍然在区域文件夹中:
vi rev.207.17.172.in-addr.arpa
复制并粘贴我在这里,进行适当的更改。
$ORIGIN . $TTL 28800 ; 8 hours 207.17.172.IN-ADDR.ARPA IN SOA server.asus.local. admin.asus.local. ( 2008110601 ; serial 28800 ; refresh (8 hours) 7200 ; retry (2 hours) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS server.asus.local. $ORIGIN 207.17.172.IN-ADDR.ARPA. 4 PTR macpro.asus.local.
所以现在,如果您在172.17.207.4
上进行了反向查找,那么您将获得macpro.asus.local
。
现在运行命令启动命名:
sudo /etc/init.d/named start
如果没有启动,请检查/ var / logs中的日志
。
最后但并非最不重要的是IPTABLES
首先是第一件事,我们需要在/ etc /
文件夹中编辑sysctl.conf
,所以:
sudo vi /etc/sysctl.conf
取消注释行28.这意味着删除它前面的#
。 该行应该是net.ipv4.ip_forward = 1
接下来,让我们再来rc.local
:
sudo vi /etc/rc.local
将这两行添加到文件的底部:
/sbin/iptables -P FORWARD ACCEPT /sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
这将使用iptables设置您的网关。 您可以使用iptables使其比此基本设置更安全。
要转发端口,可以将这样的内容添加到rc.local
文件的末尾。
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d jgibbs.dyndns.org --dport 3389 -j DNAT --to 172.17.207.4:3389
上面的长线将端口3389
上的所有传入流量转发到IP 172.17.207.4
,所以我可以从我的网络外部将远程桌面进入我的Windows框。
你可以用你想要的任何端口来做到这一点。
重新开始!
另外,报告任何问题,我将修复本教程与更新。 谢谢,Jeremy用户gibbsj。