1

Temat: Pilnie potrzebna pomoc w Ubuntu i iptables

Przepraszam, że na tym forum ale nie znam lepszych specjalistów od Cezarego i innych. Może różne Linuxy ale mam nadzieję, iptables podobne Mam zainstalowany Ubuntu Server 16.04 z dwoma kartami sieciowymi. Internet ADSL z rutera operatora podpięty pod kartę eth0. Mam stały adres publiczny. Internet chodzi na serwerze dobrze. Na drugiej karcie eth1 mam postawioną usługę DHCP. To wszystko ładnie działa. Problem w tym,że nie mam przerzucenia internetu przez karty. Adres dostaję z puli, DNS też ale brak netu. znalazłem na YT filmik, że trzeba zrobić to przez komendę dla firewalla :
iptables -t nat -A POSTROUTING -o (nazwa interfejsu 1) -j MASQUERADE
iptables -t nat -A POSTROUTING -0 (nazwa interfejsu 2) -j MASQUERADE
Na początku niby działało ale po restarcie brak internetu. Wiem, trzeba to wpisać w skrypt uruchomieniowy ale nie wiem gdzie. Mało tego jak po uruchomieniu wpiszę to ręcznie to i tak nie zawsze zadziała. Powiedzmy 2 na 10. Ostatnio zaskoczyło jak zrestartowałem modem.
Na tym serwerze kiedyś stał stary Linux Dark Star i tam podejrzałem , że było takie przekierownie portów
iptables -t nat  -A POSTROUTING -s 192.168.0.0/24 -j SNAT -- to  (mój adres publiczny)
iptables -t nat  -I PREROUTING -i eth0 -p tcp --dport (numer portu) -j DNAT -- to  (adres komputera w sieci wewnętrznej do którego chyba miał być dostęp zewnętrzny)
Po wpisaniu polecenia z SNAT także nie działa.
Moje pytanie brzmi, co zrobić żeby się uruchamiał internet podczas startu i czy nie należało by nieco uszczelnić zapory . Tylko gdzie i co wpisać bo powiem, że dla mnie to czarna magia.

2

Odp: Pilnie potrzebna pomoc w Ubuntu i iptables

1. Jeśli internety nie kłamią, to twoja wersja łubudu używa systemd. Tutaj masz info jak "załączyć" rc.local https://askubuntu.com/questions/765120/ … -a-command , a z rc.local wywołasz dowolny skrypt, np. firewall.sh z twoimi regułami iptables.
2. Albo używasz celu masquerade albo snat, żeby mieć nat na interfejsie. Celu dnat używasz do przekierowania portów z WAN na hosta w sieci lokalnej.
3. "natujesz" ruch wychodzący (przez WAN, łańcuch postrouting), a nie w obie strony (twój przykład z masq).
4. W drugiej regule z masq (niepotrzebnej) masz błędny zapis -zero , a nie -o (oznacza out interface).
5. Wpisz w google linux firewall script i wyskoczy Ci najprostszy skrypt mający chyba z 8 linii/reguł (liczone łącznie z czyszczeniem reguł i łańcuchów na początku.To ci wystarczy, żeby zapewnić nat i żeby było bezpiecznie.
6. Musisz się upewnić, że ipv4 forward masz załączone.

Trochę włóż w to serca i poczytaj.

rt-ac56u tomato, 2x wdr3600@16MB/u-boot pepe2k/lede, 2x wt3020f@16MB/e3372s/gargoyle/lede, 3x wr841n@16MB/64MB/u-boot pepe2k/lede, rt-n18u tomato, 2x rb750gr2 ROS, 3x rb750gr3 ROS, Unifi ap ac lr

3

Odp: Pilnie potrzebna pomoc w Ubuntu i iptables

Dziekuję za szybką odpowiedź. Na innych forach trwa to długo a mam serwer postawiony i w razie restartu mam problem.
1. Chcę natować, a nie przesyłać w obie strony.
2. To tylko literówka, że zamiast o pojawiło się 0
3. Mówiąc o google i linux firewall miałeś na myśli stronę http://oceanpark.com/notes/firewall_example.html  jeśli tak to jest to dobrze wyjaśnione na 2 kartach.
4. ipv4 włączyłem w configu wchodząc do sysctl.conf  i usuwając kometarz w linii net.ipv4.ip_forward=1
5. wkładam trochę serca i czytam ale tu stawiając taki serwer poszedłem na głębokie wody.Ale zmotywuje mnie to do nauki.

4

Odp: Pilnie potrzebna pomoc w Ubuntu i iptables

Skrypt, który podałeś jest oparty na łańcuchach INPUT, czyli pozwala na łączenie się z zewnątrz do usług na serwerze. Mi raczej chodziło o coś w tym stylu https://www.slackwiki.com/NAT_Script - prosty skrypt do natowania. Nie jest napisany w stylu systemd, ale korzystając ze sztuczki z rc.local też zabangla. Na początek wykomentuj tylko linie zawierające "$ipt -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT" oraz "$ipt -A INPUT -p tcp --destination-port 22 -j ACCEPT" i zmień adresy/zakresy adresów na początku skryptu. Jeśli masz zmienne ip to musisz pomienić też regułę "natującą" ze SNATa na MASQ. Nie zapomnij też o ipv6 - jeśli nie używasz, to na razie wyłącz to w systemie - załączysz, jak będziesz wiedział co robisz. Ewentualnie czeka cię nauka ip6tables.
A do tego czytaj, dużo czytaj. Na początek interesuje cię iptables (tablice, łańcuchy, cele, polityki) oraz https://www.lartc.org/. Po takiej lekturze powinieneś zrozumieć ten prosty skrypt.
Sorki za chaotyczność, ale piszę z telefonu.

rt-ac56u tomato, 2x wdr3600@16MB/u-boot pepe2k/lede, 2x wt3020f@16MB/e3372s/gargoyle/lede, 3x wr841n@16MB/64MB/u-boot pepe2k/lede, rt-n18u tomato, 2x rb750gr2 ROS, 3x rb750gr3 ROS, Unifi ap ac lr

5

Odp: Pilnie potrzebna pomoc w Ubuntu i iptables

IPtables skonfigurowalem ale pojawił się następny problem. Serwer pracuje jako ruter podpięty jednym interfejsem do rutera Orange (CELLPIPE).Mam stały adres IP. NA drugim interfejsie siedzi cała sieć z DHCP. Skonfigurowałem plik /etc/network/interfaces wpsując odpwiednio:
auto enp4s0
iface enp4s0 inet static
address xx.xx.xxx.xx (adres publiczny)
netmask 255.255.255.252
broadcast xx.xxx.xxx.xxx
gateway xx.xx.xx.xx
dns-nameservers yy.yyy.yyy.yyyy

Problem polega na tym, że po restarcie mam brak netu już na serwerze. Wpisując np. ping www.google.pl dostaję unknow host. Nie działa też aktualizacja update.
Próbowałem różnych kombinacji np. dopiero po włączeniu serwera załączyć ruter Orange, zrestartować ruter podczas pracy serwera i nadal nic. Czasami zaskoczy i działa, ale nie mam na to wytłumaczenia. Obawiam się, że ktoś może zrestartrować serwer i wszyscy nie będą mieli internetu, bo jak już ruszy to chodzi dobrze.
Nie mam pomysłu co z tym zrobić, czy to wina rutera Orange czy może w serwerze przy starcie powinna być jakaś negocjacja lub też trzeba gdzieś jeszcze wbić DNSy oprócz wspominanego interfaces. Może w resolv też trzeba wpisać. Proszę o sugestię.