← Back to team overview

sslug-teknik team mailing list archive

Re: firewall/router for dummies

 

Atte André Jensen wrote:

NB: Hvis ike firestarter er anbefalelsesværdig, er der så mon et godt script et-sted-på-nettet som nogenlunde passer til formålet og som jeg kan rette til?

Du kan få min iptables konf, fra en firewall/router og apache/mysql/ftp/samba/NFS server.

Det tillader alt fra LAN ud mod internet, pånær NetBIOS, og forwarder ikke noget fra internet til LAN. Derudover er der regler som tillader trafik fra LAN eller internet til de tjenester der kører. Der er kommentarer ved hver regel, så det skulle være rimelig nemt at tilpasse hvis der mangler noget eller fjerne hvis der er noget i overskud.

Jeg kører Mandrake, og scriptet er genereret med iptables-save og indlæses med iptables-restore, så jeg ved ikke om du kan bruge det direkte på en debian. Ellers skal der ikke meget andet til, end at du skriver /sbin/iptables foran hver linje (sådan omtrent).

Tallene i [ ] kan ignoreres - de tæller vist bare pakker, som den pågældende regel har matchet - tror jeg. ;)

Man skal vist nok indlæse et par moduler for at få ftp m.m. .til at virke gennem NAT - jeg mener at modprobe ip_conntrack_ftp er nok, så indlæses et par yderligere moduler automagisk.

Erstat "MIN_OFFENTLIGE_IP" med en passende værdi, og sørg for at eth0 og eth1 vender den rigtige vej - jeg har eth1 på internettet og eth0 på LAN.

Mvh
Kenneth






# Generated by iptables-save v1.2.7a on Tue Nov 25 11:33:08 2003

*nat
:PREROUTING ACCEPT [520:35630]
:POSTROUTING ACCEPT [77:8593]
:OUTPUT ACCEPT [77:8593]
[0:0] -A POSTROUTING -o eth1 -j SNAT --to-source MIN_OFFENTLIGE_IP
COMMIT

# Completed on Tue Nov 25 11:33:08 2003
# Generated by iptables-save v1.2.7a on Tue Nov 25 11:33:08 2003
#
# Modified by kaj, Nov 25 2003
# Allow: incoming ftp/ftp-data, ssh and http
# Allow: ping to localhost
# Allow: Samba/Netbios from LAN to localhost
# Allow: NFS from LAN to localhost
# Allow: rsync from LAN
# Drop: Samba/Netbios to internet


*filter
:INPUT DROP [357:24835]
:FORWARD DROP [2:168]
:OUTPUT ACCEPT [1483188:2120967743]

# Allow everything to the lo interface
[76:8176] -A INPUT -i lo -j ACCEPT

# Allow related incoming connections
# Relevant for Passive FTP
[1019891:77546214] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


# Allow ping to localhost from all interfaces
[12:1008] -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Allow FTP/FTP-DATA, SSH, HTTP to localhost from everywhere
[0:0] -A INPUT -m state --state NEW -p tcp -m multiport --dport ftp,ssh,http -j ACCEPT

# Allow Samba from LAN to localhost
[0:0] -A INPUT -i eth0 -p tcp -m tcp --dport 137:139 -j ACCEPT
[0:0] -A INPUT -i eth0 -p udp -m udp --dport 137:139 -j ACCEPT
[0:0] -A INPUT -i eth0 -p tcp -m tcp --dport 445 -j ACCEPT


# Allow NFS, MOUNTD and SUNRPC from LAN to localhost
[0:0] -A INPUT -i eth0 -p udp -m multiport --dport sunrpc,745,nfs -j ACCEPT
[0:0] -A INPUT -i eth0 -p tcp -m multiport --dport sunrpc,745 -j ACCEPT


# Allow traffic from the LAN to the MySQL server on tcp port 3306 [0:0] -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


# Allow traffic on the rsync ports tcp 873 an udp 873 from the LAN
[0:0] -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT


# Deny Netbios to pass through to the internet
[0:0] -A FORWARD -p tcp -m tcp --dport 137:139 -j DROP
[0:0] -A FORWARD -p udp -m udp --dport 137:139 -j DROP
[0:0] -A FORWARD -p tcp -m tcp --sport 137:139 -j DROP
[0:0] -A FORWARD -p udp -m udp --sport 137:139 -j DROP
[0:0] -A FORWARD -p tcp -m tcp --dport 445 -j DROP


# Forward new connections from LAN to internet
# and allow related incoming connections
[0:0] -A FORWARD -i eth0 -o eth1 -m state --state NEW -j ACCEPT
[0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT


# Allow output to the lo interface
[76:8176] -A OUTPUT -o lo -j ACCEPT
COMMIT


References