Cała idea polega na zamknięciu otwarciu portu po wykonaniu polecenia oraz jego zamknięcia po czasie z poziomu powłoki. Pierwsza cześć czyli otwarcie spisuje się znakomicie, czy druga część zadziała?
Mam takie coś,
#!/bin/bash
IP_ADRES=$(cat /ip)
iptables -t nat -I PREROUTING -i pppoe-wan -p tcp -s $IP_ADRES --dport 5789 -j DNAT --to-destination 192.168.10.2:5789
iptables -I FORWARD -p tcp -d 192.168.10.2 --dport 5789 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
REG1="iptables -t nat -D PREROUTING -i pppoe-wan -p tcp -s $IP_ADRES --dport 5789 -j DNAT --to-destination 192.168.10.2:5789"
REG2="iptables -D FORWARD -p tcp -d 192.168.10.2 --dport 5789 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT"
(sleep 14400 && REG1 && REG2) &
exit 0
Chcę wywołać i wyjść, czy poniższe powinno załatwić sprawę.
#sh program & exit