Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Zmienne IP, moja walka

Cześć wszystkim. Zabrałem się za kolejny wpis. Przechodzę do sedna :).

Posiadam vps, postawiłem na nim serwer TeamSpeak. Chciałem odpowiednio zabezpieczyć serwer. Doradzono mi abym zablokował dostęp do query_port. Wprowadziłem odpowiednie reguły do firewalla, żaden problem. Niestety aby zarządzać serwerem np. za pomocą programu YaTQA. Muszę mieć do niego dostęp. W przypadku zmiennego IP zaczynają się schody. Każdy zmiana ip, zamienia regułę w coś bezużytecznego.

Taktyka

  • Sprawdzam czy router wspiera funkcje DDNS
  • Konfiguruje domene
  • Korzystam z gotowego skryptu po stronie vps

Sprawa wygląda dość prosto, zaczynam pracę.

DDNS, pierwsze starcie

Włączenie funkcji DDNS i poprawne skonfigurowanie, bardzo ułatwi mi pracę. Domena nie będzie miała stałego adresu ip, jeśli moje ip ulegnie zmianie. Dana domena automatycznie zaktualizuje swój adres numeryczny. Czyli osoba znająca nazwę mojego hosta nie przejmuje się gdy mój adres IP ulegnie zmianie.
Tworzę hosta DDNS, osobiście wybrałem no-ip. Założyłem na stronie konto a następnie utworzyłem swój własny hostname.

Ustawienia po stronie routera (netiaspot).

  • Zakładka Usługi>DDNS>Nowy wpis dynamicznego DNS>Uzupełniam dane
  • Sprawdzam poprawność konfiguracji.

  • Windows+R>CMD>ping -n 5 moja_domena.ddns
  • Wynik:
    C:\Users\KrzychuPC>ping -n 5 moja_domena.ddns

    Pinging tabaluga.ddns.net [scisle.tajne.0.0] with 32 bytes of data:
    Reply from scisle.tajne.0.0: bytes=32 time<1ms TTL=64
    Reply from scisle.tajne.0.0: bytes=32 time<1ms TTL=64
    Reply from scisle.tajne.0.0: bytes=32 time<1ms TTL=64
    Reply from scisle.tajne.0.0: bytes=32 time<1ms TTL=64
    Reply from scisle.tajne.0.0: bytes=32 time<1ms TTL=64

    Ping statistics for scisle.tajne.0.0:
    Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

    C:\Users\KrzychuPC>

    Gra muzyka.

    Konfiguracja po stronie VPS

    Czas na skrypt który automatycznie co 5 minut będzie sprawdzał adres ip i jeśli ulegnie on zmianie, wprowadzi automatycznie odpowiednią regułę do iptables.

    Skrypt odnaleziony.

    Źródło skryptu.
    http://rdstash.blogspot.ch/2013/09/allow-host-with-dynamic-ip-through.html

    #!/bin/bash DYNHOST=$1 DYNIP=$(host $DYNHOST | grep -iE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" |cut -f4 -d' '|head -n 1) # Exit if invalid IP address is returned case $DYNIP in 0.0.0.0 ) exit 1 ;; 255.255.255.255 ) exit 1 ;; esac # Exit if IP address not in proper format if ! [[ $DYNIP =~ (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) ]]; then exit 1 fi # If chain for remote doesn't exist, create it if ! /sbin/iptables -L $DYNHOST -n >/dev/null 2>&1 ; then /sbin/iptables -N $DYNHOST >/dev/null 2>&1 fi # Check IP address to see if the chain matches first; skip rest of script if update is not needed if ! /sbin/iptables -n -L $DYNHOST | grep -iE " $DYNIP " >/dev/null 2>&1 ; then # Flush old rules, and add new /sbin/iptables -F $DYNHOST >/dev/null 2>&1 /sbin/iptables -I $DYNHOST -s $DYNIP -j ACCEPT # Add chain to INPUT filter if it doesn't exist if ! /sbin/iptables -C INPUT -t filter -j $DYNHOST >/dev/null 2>&1 ; then /sbin/iptables -t filter -I INPUT -j $DYNHOST fi fi

    Czas na edycję skryptu.

    Przypisałem zmiennej nazwę mojej domeny.

  • DYNHOST=moj.ddns.net
  • Następnie ustawiam regułę która ma zostać wprowadzona do łańcucha.

  • /sbin/iptables -I $DYNHOST -p tcp -s $DYNIP --dport 13640 -j ACCEPT
  • Wprowadzam reguły do zapory. Oczywiście są one nadal dostępnie po restarcie serwera.

    iptables -A INPUT -i eth0 -p tcp -s 208.167.241.190 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 208.167.241.190 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 208.167.241.186 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 208.167.241.183 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 208.167.241.189 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 108.61.78.147 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 108.61.78.148 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 108.61.78.149 --dport 13640 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 108.61.78.150 --dport 13640 -j ACCEPT iptables -I INPUT -i lo -p tcp -d 127.0.0.1 --dport 13640 -j ACCEPT iptables -A INPUT -p TCP --dport 13640 -j DROP iptables -A INPUT -p UDP --dport 13640 -j DROP

    Skrypt będzie uruchamiany co 5 minut na vps.

    Wpis zamieszczony w crontab

  • */5 * * * * root /root/skrypty/dynamic_ip.sh > /dev/null 2>&1
  • Wynik polecenia

  • # iptables -L INPUT -V
  • Chain INPUT (policy ACCEPT 3022 packets, 204K bytes) pkts bytes target prot opt in out source destination 373K 26M moj.ddns.net all -- any any anywhere anywhere 259 14484 fail2ban-ssh tcp -- any any anywhere anywhere multiport dports ssh 259 14484 fail2ban-ssh tcp -- any any anywhere anywhere multiport dports ssh 259 14484 fail2ban-ssh tcp -- any any anywhere anywhere multiport dports ssh 0 0 ACCEPT tcp -- eth0 any www0.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any www0.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any www6.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any cache3.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any cache4.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any scanner1.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any scanner2.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any scanner3.gametracker.com anywhere tcp dpt:13640 0 0 ACCEPT tcp -- eth0 any scanner4.gametracker.com anywhere tcp dpt:13640 6 312 DROP tcp -- any any anywhere anywhere tcp dpt:13640 0 0 DROP udp -- any any anywhere anywhere udp dpt:13640

    Skrypt jako tako działa. Nierówna walka dobiegła końca. Nagłówek "Taktyka" nie sprawdził się do końca. Ogarnięcie wszystkiego zajęło mi sporo więcej czasu niż zakładałem.

    Podsumowanie

    Rozwiązanie działa dobrze, gotowy skrypt ułatwił mi mocno zadanie. Zawsze pozostanę amatorem jeśli chodzi o linuxa. Dlatego jestem pewny że dla domorosłego administratora, wpis może zawierać same herezje. Ponownie pozdrawiam czytelników i zachęcam do komentowania.

    Pozdrawiam Over. 

    linux bezpieczeństwo serwery

    Komentarze

    0 nowych
    Shaki81 MODERATOR BLOGA  37 #1 31.03.2016 23:14

    Nie ważne jak, ważne, że działa i sam do tego doszedłeś.

    GioWDS   13 #2 31.03.2016 23:26

    Osobiście do tego celu zestawiam VPN-a - nie myślałeś o tym rozwiązaniu?

    Axles   16 #3 01.04.2016 10:52

    Czy ktoś prócz mnie zastanawia się czy @Over F.A. ma coś wspólnego z Overem :) ? Bo ja czytając te wpisy powątpiewam, zbyt dobre są.
    Pozdrawiam

    falmic   8 #4 01.04.2016 11:34

    Powiem Ci szczerze. Wyrzuć ten badziew i kup prawdziwy router. Netia Spot to jeden z największych crapów jakie świat widział. Dodatkowo nie masz dostępu do większości opcji konfiguracyjnych (chyba że masz znajomego w Netii, który Ci poda hasło do admina). Niemniej gratki za pomysł ;]

    Autor edytował komentarz.
    Over F.A.   5 #5 01.04.2016 17:03

    @Shaki81: Jeśli można zapytać planujesz w najbliższym czasie wpis z kategorii "Specjalista ds. teleinformatycznych"

    @GioWDS: Szczerze to nie, mega rozwiązanie. Dzięki za info.

    @Axles: już któraś z kolei osoba mnie o to pyta :).

    @falmic: Niestety znajomego brak. Czytałem na blogu dobreprogramy w jaki sposób utworzyć swoje własne konta roota. Pytanie czy ta metoda jest nadal aktualna, druga sprawa to posiadanie routera, prawnie dzierżawie go tylko. Jeśli chodzi o same połączenie to do komputera mam przewodowe. Sieć wi-fi także dość sprawnie działa. Ogólnie słabe rozwiązanie, obecne firmawre nie zezwala na sprawdzenie parametrów łącza, wygląda to kiepsko.

    Autor edytował komentarz w dniu: 01.04.2016 21:41
      #6 01.04.2016 17:58

    Nie lepiej za 10 zł miesięcznie wykupić sobie stałe IP w netii?

    muska96   8 #7 01.04.2016 18:39

    Sam mam netiaspota i DDNS i cieszę się, że niedługo zmieniam operatora, a wraz z nim router. Jakie było moje zdziwienie, gdy zobaczyłem, że rozgłasza on panel administracyjny na zewnętrznym IP! (hasła admina chyba nie da się zmienić) Sam hardware jest ok, ale fakt, że nie możesz zrobić prawie nic z oprogramowaniem jest niedopuszczalny. A wpis ciekawy i najważniejsze. że działa!

    Over F.A.   5 #8 01.04.2016 20:19

    @muska96: Istnieje taka możliwość. Zakładka System>Użytkownicy>Administrator i zmieniasz login, pass.

    Jeśli chodzi o panel administracyjny zamieszczę w komentarzu także mały poradnik.

    System>zarządzanie>zdalna administracja>odznaczamy "Korzystaj z drugiego portu HTTPS (8443)"

    Szkoda że nie można uzyskać bezpośrednio wszystkich możliwych funkcji :(.

    muska96   8 #9 01.04.2016 21:17

    @Over F.A. Dzięki - to zawsze coś. Zastanawiam się, czy da się zmienić port dla panelu administracyjnego - to też by pomogło, choć nie aż tak bardzo jak wyłączenie zdalnej administracji.

    Over F.A.   5 #10 01.04.2016 21:38

    @muska96: Raczej nie, możliwy jest dostęp tylko przez port 8443. Ciekawe czy da się to ustawić na koncie roota/super admina. Według mnie wystarczy jak zmienisz nick administratora, hasło i jeśli potrzebujesz tej opcji możesz zdalnie zarządzać routerem w miarę bezpiecznie.

      #11 01.04.2016 22:12

    Ja używam now-ip i nie miałem żadnych problemów, wkleiłem jedną linijkę do crona i śmiga.

    Ale potrzebuję tego tylko żeby raz na ruski rok odpalić jakiś serwerek minicrafta czy innego dziadostwa dla max 4 osób.

    Over F.A.   5 #12 03.04.2016 10:07

    @anonbbb (niezalogowany): Biorąc pod uwagę mój obecny upload to stanowczo nie :(.

    Over F.A.   5 #13 03.04.2016 10:09

    @sdj (niezalogowany): Dobry sposób a do 4 osób to nawet upload nie musi być mega dobry. Odpalasz jak podejrzewam na swoim komputerze..

    Pudel89   7 #14 04.04.2016 01:16

    To ten sprzęt dalej żyje? Ehhh...
    Miałem to na testy. Pamiętam jak wpiąłem w niego drukarkę po USB. Widział ją i wspierał ale wydruk jednej strony trwał 1 minutę.
    Panel admina działał na jakimś haśle superadmina ale to chyba w którejś wersji softu. Natomiast rozczarowało mnie kilka rzeczy:
    1. Soft domyślnie dawał panel na WAN,
    2. Netia ma do niego dostęp,
    3. Netia go sama aktualizuje.
    Szpiegów jest wszędzie pełno dlatego ten Netiaspot wrócił do szafy po godzinie zabawy z nim. Nie bardzo mi się podoba że dostawca może w nim grzebać ot tak bez przyczyny.

    Over F.A.   5 #15 04.04.2016 18:34

    @Pudel89: Połączenie drukarka > router po wi-fi działało bardzo dobrze. Korzystałem z drukarki Brother DCP-J315W. Szkoda że po usb są takie problemy.
    Punkt 2,3 zgadzam się w 100% są to największe minusy.