Vinnaren i pepparkakshustävlingen!
2018-11-30, 21:47
  #1
Medlem
Vet inte om jag skrivit i rätt forumdel, annars får ni gärna flytta den till rätt.

Jag kör VPN på servern, men jag vill att port 80, 443 och 21145 ska vara öppna och gå genom eth0. Hur löser man det med detta scriptet, som jag förövrigt inte får till att fungera.

Kod:
#!/bin/bash
#allow a dyndns name

HOSTNAME=MIN DYNDNS ADRESS
LOGFILE=loggfil-for-ip.log

Current_IP=$(host $HOSTNAME | cut -f4 -d' ')

if [ $LOGFILE = "" ] ; then
  iptables -I INPUT -i eth0 -s $Current_IP -j ACCEPT
  echo $Current_IP > $LOGFILE
else

  Old_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Old_IP" ] ; then
    echo IP address has not changed
  else
    iptables -D INPUT -i eth0 -s $Old_IP -j ACCEPT
    iptables -I INPUT -p tcp -s $Current_IP --dport 21145 -i eth0 -j ACCEPT
    iptables -I INPUT -p tcp -s $Current_IP --dport 80 -i eth0 -j ACCEPT
    sudo iptables-save > /etc/iptables.rules
    echo $Current_IP > $LOGFILE
    echo iptables have been updated
  fi
fi

Anledningen att jag vill köra detta scriptet med cron på servern är för att den håller koll på mitt ipnummer och ska släppa in mig, kommer man från annat IP nummer så blir man blockerad.

Tacksam för hjälp!
Citera
2019-01-11, 12:08
  #2
Medlem
Ser att du nämner både iptables, cron och Ubuntu 18.
Det är inte så att problemet heter systemd?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback