Ubuntu – Comment configurer un serveur Linux comme routeur

Motivation:

Je souhaite utiliser mon serveur Linux au lieu du routeur sans fil moyen pour plusieurs raisons

  1. Je veux apprendre à configurer un serveur plus complet sur Linux
  2. Je ne veux pas avoir de modem, connecté à un routeur, connecté à un commutateur réseau
  3. Je suis malade et fatigué de devoir débrancher mon routeur tous les 10 jours car il se bloque
  4. Je suis malade et fatigué d’acheter des routeurs pour me rendre compte qu’ils manquent quelque chose de crucial, comme la redirection de port ou l’adressage IP statique (DHCP)

Installer:

En fin de compte, la connexion entrera dans un modem et directement dans mon serveur via eth0 , puis eth1 sortira sur un commutateur réseau auquel tous les autres ordinateurs clients se connecteront via des câbles Ethernet (oubliez le sans fil pour le moment). Actuellement, cependant, je suis dans un immeuble de bureaux, et j’ai la connexion entrant dans un modem, qui va dans un routeur, qui va dans un commutateur réseau, qui va ensuite dans eth0 comme spécifié ci-dessus.

Tutoriels actuels:

J’ai regardé certains tutoriels (le tutoriel Ubuntu est le meilleur), et j’ai examiné certaines des questions du routeur ici (c’est-à-dire celui-ci), mais elles passent toutes sous silence plusieurs concepts clés, comme:

  • Quel est eth1 relation de eth0 ? Dans /etc/network/interfaces dois-je dire eth1 utiliser eth0 comme le network (il s’agit généralement de l’adresse physique réelle du routeur)?
  • Dois-je faire quelque chose pour instruire eth1 prendre l’internet qui entre en eth0 et le transmettre à qui le veut dans le commutateur réseau?

Approche actuelle:

Voici mon /etc/network/interfaces fichier sur le serveur:

 iface lo inet loopback

auto eth0
   iface eth0 inet static
   address 192.168.1.70
   netmask 255.255.255.0
   broadcast 192.168.1.255
   network 192.168.1.0
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8

auto eth1
   # iface eth1 inet dhcp
   iface eth1 inet static
   address 192.168.7.0
   netmask 255.255.255.0
   broadcast 192.168.1.255
   network 192.168.1.0
 

Et ifconfig me dit que les deux cartes réseau fonctionnent bien:

 eth0      Link encap:Ethernet  HWaddr 20:cf:30:55:a0:5f  
          inet addr:192.168.1.70  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:948633 (948.6 KB)  TX bytes:1274685 (1.2 MB)

eth1      Link encap:Ethernet  HWaddr 00:11:95:f7:f4:6d  
          inet addr:192.168.7.0  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:29934 (29.9 KB)  TX bytes:213055 (213.0 KB)
          Interrupt:21 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:470737 (470.7 KB)  TX bytes:470737 (470.7 KB)

wlan0     Link encap:Ethernet  HWaddr bc:f6:85:f8:70:5c  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 

Et voici ce que route -n returns sur le serveur:

 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.7.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
 

Ensuite, sur le client que j’ai

 auto lo
iface lo inet loopback
iface eth0 inet dhcp
 

Mais aucune adresse IP ne lui est attribuée.

EDIT:Voici le fichier de configuration du serveur isc-dhcp situé à /etc/dhcp3/dhcpd.con que j’ai copié principalement à partir de ce site.

 # Sample /etc/dhcpd.conf                                                                                                                                                  
# (add your comments here) 
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";

subnet 192.168.7.0 netmask 255.255.255.0 {
   range 192.168.7.10 192.168.7.25;
}  
 

EDIT:Sortie de sudo iptables -L 

 Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere             LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
 

Question:

Quelles étapes / composants cruciaux me manque dans cette configuration?

Meilleure réponse

  • Je dois aller comme Jack l’éventreur à cause de plusieurs choses manquantes que vous avez:

    1. Si votre client utilise DHCP pour obtenir les adresses IP, vous avez besoin d’un serveur DHCP.

      iface eth0 inet dhcp

      Dans les clients, cela indique qu’ils obtiendront leurs IP d’un serveur DHCP, si vous n’avez pas configuré de serveur DHCP, vous devez utiliser des IP fixes ou installer un serveur DHCP.

    2. Vous manquez de serveurs DNS configurés dans les clients. Soit en raison du manque de serveur DHCP, soit vous souhaiterez peut-être utiliser un serveur DNS local pour tout votre réseau.

    3. Vous n’avez pas offert le iptables règles (la sortie de sudo iptables -L ) mais je pourrais deviner que vous n’avez pas activé les règles Masquerade, ni le transfert IP comme décrit.

    4. L’adresse IP de eth1 n’est pas recommandé. Toute IP s’est terminée en 0 sont généralement le réseau lui-même, et la plupart des routeurs / pare-feu se confondent lorsqu’ils sont utilisés. Changez-le en 192.168.7.1 et vous irez surtout bien.

    5. Votre broadcast valeur dans le eth1 l’interface n’est pas correcte. Envoie des colis nulle part. La valeur correcte (en tenant compte des autres valeurs de l’interface) est 192.168.7.255 .

    6. Vos options sur le serveur DHCP sont vicieuses. Les packages ARP de votre routeur n’atteindront jamais. Voici ce que vous devriez avoir:

       default-lease-time 600;
      max-lease-time 7200;
      option subnet-mask 255.255.255.0;
      option broadcast-address 192.168.7.255;
      option routers 192.168.7.1; ## This should be the same value of the step 4
      option domain-name-servers 8.8.8.8;

      subnet 192.168.7.0 netmask 255.255.255.0 {
      range 192.168.7.10 192.168.7.25;
      }