#iptable rules are being overwritten with every reboot. help!
Ok. Here we go.
When I restart the router all I see is this:
As you see, the rules are partly there, but the rest ist gone. What should I do?
Ok. Here we go.
Code:
>ls /jffs/scripts/
drwxr-xr-x 2 root root 0 Feb 3 14:05 ./
drwxr-xr-x 7 root root 0 Feb 4 11:48 ../
-rwxrwxrwx 1 root root 37 Feb 4 10:19 firewall-start*
-rwxrwxrwx 1 root root 47 Feb 3 14:33 nat-start*
-rwxrwxrwx 1 root root 965 Feb 3 15:00 post-mount*
-rwxrwxrwx 1 root root 836 Feb 3 13:29 pre-mount*
-rwxrwxrwx 1 root root 294 Feb 3 17:16 services-start*
-rwxrwxrwx 1 root root 60 Feb 3 13:22 services-stop*
-rwxrwxrwx 1 root root 1.6K Feb 3 13:46 tmail.sh*
-rwxrwxrwx 1 root root 457 Feb 3 13:40 unmount*
Code:
> cat /jffs/scripts/firewall-start
source /opt/etc/ssh/.bash/firewall.sh
Code:
> cat /opt/etc/ssh/.bash/firewall.sh
#!/bin/sh
if [ ! -z "$BASH_SOURCE" ]; then printf 'Loaded: %s\n' "$BASH_SOURCE"; fi
#http://vasilisc.com/21-examples-iptables
#chmod a+rx /jffs/scripts/firewall-start
# My system IP/set ip address of server
SERVER_IP="X.X.X.X"
# Flushing all rules
iptables -F
iptables -X
iptables -Z
# Setting default filter policy
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
iptables -N logaccept
iptables -N logdrop
iptables -N FUPNP
iptables -N SECURITY
# Allow unlimited traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i br0 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -o br0 -j ACCEPT
# Accept packets belonging to established and related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#What is it?
iptables -A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
iptables -A INPUT -i tap21 -j ACCEPT
iptables -A FORWARD -i tap21 -j ACCEPT
iptables -A FUPNP -d 192.168.1.128/32 -p udp -m udp --dport 58474 -j ACCEPT
iptables -A FUPNP -d 192.168.1.128/32 -p tcp -m tcp --dport 58474 -j ACCEPT
iptables -A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -A logaccept -j ACCEPT
iptables -A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -A logdrop -j DROP
iptables -A FORWARD -i eth0 -j SECURITY
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
#VPN
iptables -A INPUT -p tcp -i eth0 --dport 1194 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1194 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 1194 -j ACCEPT
iptables -A OUTPUT -p udp --sport 1194 -j ACCEPT
#Transmission
iptables -I INPUT -p tcp --destination-port 51413 -j ACCEPT
iptables -I INPUT -p udp --destination-port 51413 -j ACCEPT
# Allow incoming SSH
# iptables -A INPUT -p tcp -m tcp --dport 65535 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -d $SERVER_IP --dport 65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP -d 0/0 --sport 65535 -m state --state ESTABLISHED -j ACCEPT
#FTP
iptables -A INPUT -p tcp -i eth0 --dport 21 -j DROP
# iptables -A OUTPUT -p tcp --sport 21 -j DROP
# Block FTP connections @ port 21
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j DROP
# iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j DROP
# Block Passive FTP Connections
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
# Enable HTTP and HTTPS
# iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sport 80,8080,443 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,8080,433 -j ACCEPT
# #Enable DNS
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
# iptables -n -L -v --line-numbers
# iptables -L INPUT -n -v --line-numbers
# Где:
-L : Показать список правил.
-v : Отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы 'K', 'M' or 'G'.
-n : Отображать IP адрес и порт числами (не используя DNS сервера для определения имен. Это ускорит отображение).
# # Запрет FIN-сканирования
# iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
# #Запрет X-сканирования
# iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG -j DROP
# #Запрет N-сканирования
# iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
# iptables -I INPUT -p tcp -m osf --genre NMAP -j DROP
# iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min -j LOG --log-prefix "Stealth scan"
# iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min -j DROP
# # Проверка на стук в нерабочие порты (10 в час)
# iptables -A INPUT -m recent --rcheck --seconds 3600 --hitcount 10 --rttl -j RETURN
# # Вторая проверка на стук в нерабочие порты (2 в минуту)
# iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 2 --rttl -j RETURN
# # Заносим адреса стучащихся в список
# iptables -A INPUT -m recent --set
# Типы ICMP-сообщений
# 0 — echo reply (echo-ответ, пинг)
# 3 — destination unreachable (адресат недосягаем)
# 4 — source quench (подавление источника, просьба посылать пакеты медленнее)
# 5 — redirect (редирект)
# 8 — echo request (echo-запрос, пинг)
# 9 — router advertisement (объявление маршрутизатора)
# 10 — router solicitation (ходатайство маршрутизатора)
# 11 — time-to-live exceeded (истечение срока жизни пакета)
# 12 — IP header bad (неправильный IPзаголовок пакета)
# 13 — timestamp request (запрос значения счетчика времени)
# 14 — timestamp reply (ответ на запрос значения счетчика времени)
# 15 — information request (запрос информации)
# 16 — information reply (ответ на запрос информации)
# 17 — address mask request (запрос маски сети)
# 18 — address mask reply (ответ на запрос маски сети)
# Обычно выход во внешний мир разрешают ICMP-сообщениям 0, 3, 4, 11 и 12, в то время как на вход принимают только 3, 8 и 12.
# iptables -A INPUT -p icmp -icmp-type 3,8,12 -j ACCEPT
# iptables -A OUTPUT -p icmp -icmp-type 0,3,4,11,12 -j ACCEPT
# # Disable PING
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
# make sure nothing comes or goes out of this box
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j DROP
echo "Done!"
When I restart the router all I see is this:
Code:
> iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N FUPNP
-N NSFW
-N PControls
-N SECURITY
-N logaccept
-N logdrop
-A INPUT -i tap21 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tap21 -j ACCEPT
-A FORWARD ! -i br0 -o eth0 -j DROP
-A FORWARD -i eth0 -m state --state INVALID -j DROP
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -i br0 -j ACCEPT
-A PControls -j ACCEPT
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A SECURITY -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j RETURN
-A SECURITY -p icmp -m icmp --icmp-type 8 -j DROP
-A SECURITY -j RETURN
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
As you see, the rules are partly there, but the rest ist gone. What should I do?