Beste ...
Ik heb hier een servertje staan waarop ik een ftp wil draaien en (uiteraard) netjes wil dicht timmeren met iptables. Nu zodra ik mijn prachtige script er door heen jaag , connect de ftp niet meer.
Ik heb in mijn proftpd.conf door gegeven dat de pasive ports op 52000:52099 zitten, hier connect hij ook op als ik de firewall er uit haal. Uiteraard staat er ook in mijn firewall deze porten open.
--------------------- DE SCRIPT ---------------------------
#! /bin/bash
THISBOX=192.168.0.10
NAMESERVER_1=
NAMESERVER_2=
# Route packets between interfaces
#echo "1" > /proc/sys/net/ipv4/ip_forward
cd /sbin
# Flush tables
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t mangle
iptables -X
#iptables -F -t nat
# Create LOGOK table
iptables -N LOGOK > /dev/null
iptables -F LOGOK
iptables -A LOGOK -j LOG --log-prefix "LOGOK: "
iptables -A LOGOK -j ACCEPT
# Create DUMP table
iptables -N DUMP > /dev/null
iptables -F DUMP
iptables -A DUMP -p tcp -j LOG --log-level 6 --log-prefix "GEN-DUMP: "
iptables -A DUMP -p udp -j LOG --log-level 6 --log-prefix "GEN-DUMP: "
iptables -A DUMP -p tcp -j REJECT --reject-with tcp-reset
iptables -A DUMP -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A DUMP -j DROP
# Create Black List table
iptables -N BL > /dev/null
iptables -F BL
iptables -A BL -p tcp -j LOG --log-level 6 --log-prefix "BL-DUMP: "
iptables -A BL -p udp -j LOG --log-level 6 --log-prefix "BL-DUMP: "
iptables -A BL -p tcp -j REJECT --reject-with tcp-reset
iptables -A BL -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A BL -j DROP
# Stateful table
iptables -N STATEFUL > /dev/null
iptables -F STATEFUL
iptables -I STATEFUL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A STATEFUL -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A STATEFUL -j DUMP
# Loopback rules
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
################## ALLOW ####################
# Allow SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 22 -j ACCEPT
# FTP pasive ports
iptables -A INPUT -p tcp -i eth0 --dport 52000:52099 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 52000:52099 -j ACCEPT
# Allow DNS
iptables -A INPUT -p udp -i eth0 -s --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -s --dport 53 -j ACCEPT
# Allow HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 80 -j ACCEPT
# Allow FTP
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 21 -j ACCEPT
# Allow MYSQL
iptables -A INPUT -p tcp -i eth0 --dport 3306 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 3306 -j ACCEPT
# Allow SMTP
iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT
# Allow POP3
iptables -A INPUT -p tcp -i eth0 --dport 110 -j ACCEPT
# Allow IMAPS
iptables -A INPUT -p tcp -i eth0 --dport 993 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 993 -j ACCEPT
# Allow TOMCAT
iptables -A INPUT -p udp -i eth0 --dport 8080 -j ACCEPT
# Allow postgreSQL traffic
iptables -A INPUT -p tcp -i eth0 --dport 5432 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 5432 -j ACCEPT
# Allow POP3S
iptables -A INPUT -p tcp -i eth0 --sport 995 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 995 -j ACCEPT
# allow PCsync HTTPS (PSA)
iptables -A INPUT -p tcp -i eth0 --dport 8443 -j ACCEPT
# Allow certain inbound ICMP types (ping, traceroute..) #
iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
################ END ALLOW ##########################
######### DUMP ################
# Drop reserved addresses incoming (reserved addresses, but may change)
iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 1.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 2.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 5.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 7.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 23.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 27.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 31.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 36.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 39.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 41.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 42.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 58.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 59.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 60.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 169.254.0.0/16 -j DUMP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DUMP
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DUMP
iptables -A INPUT -i eth0 -s 197.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 224.0.0.0/3 -j DUMP
iptables -A INPUT -i eth0 -s 240.0.0.0/8 -j DUMP
# NetBus
iptables -A INPUT -p tcp -i eth0 --dport 12345:12346 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 12345:12346 -j DUMP
# Block Back Orifice (logged)
iptables -A INPUT -p tcp -i eth0 --dport 31337 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 31337 -j DUMP
# Trin00
iptables -A INPUT -p tcp -i eth0 --dport 1524 -j DUMP
iptables -A INPUT -p tcp -i eth0 --dport 27665 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 27444 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 31335 -j DUMP
######### END DUMP ####################
######### REJECT ######################
iptables -A INPUT -p tcp -i eth0 --dport 113 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 106 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 111 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 465 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 67 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 67 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 68 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 68 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 79 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 79 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 445 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 520 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 20 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 20 -j REJECT
######### END REJECT ######################
######### DROP ############################
# Don't log MS SQL Server & MS SQL Server Monitor packets
iptables -A INPUT -p tcp -i eth0 --dport 1433 -j DROP
iptables -A INPUT -p udp -i eth0 --dport 1434 -j DROP
######### END DROP ########################
# Chain policies
# Set default policies
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# push everything else to state table
iptables -A INPUT -j STATEFUL
---------------------- / DE SCRIPT -------------------------------
Ik heb hier een servertje staan waarop ik een ftp wil draaien en (uiteraard) netjes wil dicht timmeren met iptables. Nu zodra ik mijn prachtige script er door heen jaag , connect de ftp niet meer.
Ik heb in mijn proftpd.conf door gegeven dat de pasive ports op 52000:52099 zitten, hier connect hij ook op als ik de firewall er uit haal. Uiteraard staat er ook in mijn firewall deze porten open.
--------------------- DE SCRIPT ---------------------------
#! /bin/bash
THISBOX=192.168.0.10
NAMESERVER_1=
NAMESERVER_2=
# Route packets between interfaces
#echo "1" > /proc/sys/net/ipv4/ip_forward
cd /sbin
# Flush tables
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t mangle
iptables -X
#iptables -F -t nat
# Create LOGOK table
iptables -N LOGOK > /dev/null
iptables -F LOGOK
iptables -A LOGOK -j LOG --log-prefix "LOGOK: "
iptables -A LOGOK -j ACCEPT
# Create DUMP table
iptables -N DUMP > /dev/null
iptables -F DUMP
iptables -A DUMP -p tcp -j LOG --log-level 6 --log-prefix "GEN-DUMP: "
iptables -A DUMP -p udp -j LOG --log-level 6 --log-prefix "GEN-DUMP: "
iptables -A DUMP -p tcp -j REJECT --reject-with tcp-reset
iptables -A DUMP -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A DUMP -j DROP
# Create Black List table
iptables -N BL > /dev/null
iptables -F BL
iptables -A BL -p tcp -j LOG --log-level 6 --log-prefix "BL-DUMP: "
iptables -A BL -p udp -j LOG --log-level 6 --log-prefix "BL-DUMP: "
iptables -A BL -p tcp -j REJECT --reject-with tcp-reset
iptables -A BL -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A BL -j DROP
# Stateful table
iptables -N STATEFUL > /dev/null
iptables -F STATEFUL
iptables -I STATEFUL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A STATEFUL -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A STATEFUL -j DUMP
# Loopback rules
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
################## ALLOW ####################
# Allow SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 22 -j ACCEPT
# FTP pasive ports
iptables -A INPUT -p tcp -i eth0 --dport 52000:52099 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 52000:52099 -j ACCEPT
# Allow DNS
iptables -A INPUT -p udp -i eth0 -s --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -s --dport 53 -j ACCEPT
# Allow HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 80 -j ACCEPT
# Allow FTP
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 21 -j ACCEPT
# Allow MYSQL
iptables -A INPUT -p tcp -i eth0 --dport 3306 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 3306 -j ACCEPT
# Allow SMTP
iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT
# Allow POP3
iptables -A INPUT -p tcp -i eth0 --dport 110 -j ACCEPT
# Allow IMAPS
iptables -A INPUT -p tcp -i eth0 --dport 993 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 993 -j ACCEPT
# Allow TOMCAT
iptables -A INPUT -p udp -i eth0 --dport 8080 -j ACCEPT
# Allow postgreSQL traffic
iptables -A INPUT -p tcp -i eth0 --dport 5432 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 5432 -j ACCEPT
# Allow POP3S
iptables -A INPUT -p tcp -i eth0 --sport 995 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 995 -j ACCEPT
# allow PCsync HTTPS (PSA)
iptables -A INPUT -p tcp -i eth0 --dport 8443 -j ACCEPT
# Allow certain inbound ICMP types (ping, traceroute..) #
iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
################ END ALLOW ##########################
######### DUMP ################
# Drop reserved addresses incoming (reserved addresses, but may change)
iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 1.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 2.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 5.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 7.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 23.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 27.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 31.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 36.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 39.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 41.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 42.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 58.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 59.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 60.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 169.254.0.0/16 -j DUMP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DUMP
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DUMP
iptables -A INPUT -i eth0 -s 197.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 224.0.0.0/3 -j DUMP
iptables -A INPUT -i eth0 -s 240.0.0.0/8 -j DUMP
# NetBus
iptables -A INPUT -p tcp -i eth0 --dport 12345:12346 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 12345:12346 -j DUMP
# Block Back Orifice (logged)
iptables -A INPUT -p tcp -i eth0 --dport 31337 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 31337 -j DUMP
# Trin00
iptables -A INPUT -p tcp -i eth0 --dport 1524 -j DUMP
iptables -A INPUT -p tcp -i eth0 --dport 27665 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 27444 -j DUMP
iptables -A INPUT -p udp -i eth0 --dport 31335 -j DUMP
######### END DUMP ####################
######### REJECT ######################
iptables -A INPUT -p tcp -i eth0 --dport 113 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 106 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 111 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 465 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 67 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 67 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 68 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 68 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 79 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 79 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 445 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 520 -j REJECT
iptables -A INPUT -p tcp -i eth0 --dport 20 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 20 -j REJECT
######### END REJECT ######################
######### DROP ############################
# Don't log MS SQL Server & MS SQL Server Monitor packets
iptables -A INPUT -p tcp -i eth0 --dport 1433 -j DROP
iptables -A INPUT -p udp -i eth0 --dport 1434 -j DROP
######### END DROP ########################
# Chain policies
# Set default policies
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# push everything else to state table
iptables -A INPUT -j STATEFUL
---------------------- / DE SCRIPT -------------------------------