Masqurade LAN

Firewall scripts No Comments »

#
# Turning IP Forwarding on
#

echo 1>/proc/sys/net/ipv4/ip_forward ; ha 0
$ vi /etc/sysctl.conf   ; net.ipv4.ip_forward = 1

#
# Allow masquerading from LAN PC
# Save settings for next boot
#

$ iptables -t nat -A POSTROUTING -o eth1 -s 192.168.30.20 -j MASQUERADE
$ iptables-save > /etc/sysconfig/iptables

iptables firewall script

Firewall scripts, shell scripts No Comments »


#!/bin/bash

# firewall script using iptables
# Platform: Red Hat Linux 9 (Shrike)
# Author: webHauser
# Created: 2005.08.10.

IPTABLES="/sbin/iptables"
LAN="eth1"
WAN="eth0"

# Flush rules and delete all user chains
$IPTABLES -t filter -F
$IPTABLES -t filter -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -F
$IPTABLES -X

# Set default policies
$IPTABLES --policy INPUT DROP
$IPTABLES --policy OUTPUT DROP
$IPTABLES --policy FORWARD DROP

# enable masquerading to allow LAN internet access
$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE

# Forward all packets from internal network to eth0 (the internet).
$IPTABLES -A FORWARD -i $LAN -o $WAN -j ACCEPT
# Forward packets that are part of existing and related connections from eth0 to eth1.
$IPTABLES -A FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow unlimited traffic on the loopback interface
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Previously initiated and accepted exchanges bypass rule checking
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ICMP echo requests on LAN interface
$IPTABLES -A INPUT -i $LAN -p icmp --icmp-type echo-request -j ACCEPT

# Allow incoming port 22 (ssh) connections on LAN interface
$IPTABLES -A INPUT -i $LAN -p tcp --destination-port 22 -m state --state NEW -j ACCEPT

# Allow DNS resolution on all interfaces
$IPTABLES -A INPUT -p udp --destination-port 53 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 53 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p udp --destination-port 53 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp --destination-port 53 -m state --state NEW -j ACCEPT

# Allow ntp synchronization
$IPTABLES -A INPUT -i $WAN -p udp --destination-port 123 -m state --state NEW -j ACCEPT

# Allow OpenVPN Port and VLAN tunnel
$IPTABLES -A INPUT -p udp --destination-port 1194 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 1194 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i tun+ -p udp -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i tun+ -p tcp -m state --state NEW -j ACCEPT
/sbin/iptables-save > /root/iptables-new

iptables segédlet

Magyar nyelven, Firewall scripts No Comments »

iptables láncok (chains):
 INPUT
 OUTPUT
 FORWARD

Az iptables a csomagokat a filter táblázatban az alábbi láncokban kezeli:
-Ha a csomag errol a szamitogeprol indul ki (egy olyan program generalta, amely erre a gepre lett telepitve) akkor a csomag CSAK az OUTPUT chain-be fog menni.
-Ha a csomag erre a gepre erkezik, akkor CSAK az INPUT chain-en halad keresztul.
-Ha a csomag valahova mashova megy, akkor CSAK a FORWARD chain-en fog keresztul haladni.

Tehat egy mashova meno csomag SOHA sem erinti az INPUT chaint, hasonloan egy tovabbitott csomag (forwarded packet) SOHA nem lesz benne az OUTPUT chain-ben.
Az iptables minden kapcsolatot nyilvantart amit a `cat /proc/net/ip_conntract` paranccsal lehet listazni.

Mikor es hogyan kell letrehozni es hasznalni egyedileg letrehozott chaineket?
A kovetkezo peldaban letre fogunk hozni egy sajat “mychain”-t annak erdekeben, hogy az INPUT es FORWARD chain-ek szinten felhasznaljak a szabalyait.


# iptables -N mychain
# iptables -A mychain -m state --state ESTABLISHED,RELATED -j ACCEPT
# ...tovabbi tuzfal szabalyok...
# iptables -A mychain -j DROP
# iptables -A INPUT -j mychain
# iptables -A FORWARD -j mychain

Ezzel a modszerrel azt ertuk el, hogy nem kell kulon programozni az INPUT es FORWARD chaineket, hanem felhasznaljak az uj “mychain” szabalyait.

A tuzfalak rendszerint legalabb ket halozati kartyat tartalmaznak. Az egyik az internet fele, a tobbi pedig a lokalis halozatnak biztositja az eleresi feluletet. Ha egy csomag a kulso illeszton keresztul beerkezik azt lehet, hogy tovabbitani kell a helyi halozat fele (FORWARD chain), ami a halozat szempontjabol INPUT chain. Ezert tehat elkepzelheto, hogy egy csomag vezerlesehez tobb szabalyra van szukseg.

Az iptables az alabbi tablakat tartalmazza (`cat /proc/net/ip_tables_names`):

  • A “filter” az elso es alapertelmezett tabla, amely tartalmazza az INPUT (a gepre cimzett csomagok), OUTPUT (lokalisan generalt csomagok), es FORWARD (a gepen keresztul routolando csomagok) lancokat.
  • A “nat” tablaban olyan csomagok vannak amelyek uj kapcsolatokat hoztak letre. A nat tabla harom alapertelmezett lancot tartalmaz. Ezek PREROUTING (az eppen beerkezo csomagok megvaltoztatasara), OUTPUT (helyileg generalt csomagok routolas elotti megvaltoztatasara) es POSTROUTING (a gepet eppen elhagyo csomagok megvaltoztatasara) lancok.
  • A “mangle” tabla a csomagok specialis megvaltoztatasara van fenntartva. Lancai a PREROUTING (beerkezo csomagok routolas elotti modositasara) es OUTPUT (lokalisan generalt csomagok megvaltoztatasara).

További hasznos iptables parancsok:

# iptables -t nat -L -n (Nem kell idot vesztegetni a DNS lekereshez a helyi cimek forditasahoz: -n )
# iptables -p tcp --help
# iptables -m state --help
# iptables -j LOG --help

MEGJ. Ezt a cikket Hauser István írta, először 2005 május. 23.-án.

Make a hole into firewall to make your web server visible to others

Firewall scripts No Comments »

# Make a hole into firewall to make your web server visible to others.

iptables -I INPUT 1 -p tcp –dport 80 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
 

iptables firewall script

Firewall scripts No Comments »


#!/bin/bash
###############################################
#
# Copyright (c) webHauser
# iptables packet filtering firewall script
# RedHat Linux 9
# Kernel 2.4.20-8

NET=eth0
LAN=eth1
IPTABLES=/sbin/iptables

#
# ipkernel security settings
# /etc/sysctl.conf
#
# This setting is default
# echo 1 > /proc/sys/net/ipv4/ip_forward
# Drop ICMP echo-request messages sent to broadcast or multicast addresses
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Drop source routed packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Enable TCP SYN cookie protection from SYN floods
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Don't accept ICMP redirect messages
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Don't send ICMP redirect messages
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

# Enable source address spoofing protection
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

# Log packets with impossible source addresses
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
# Flush all tables and chains
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
$IPTABLES -t filter -F
$IPTABLES -t filter -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X

# Set default policies
$IPTABLES --policy INPUT DROP
$IPTABLES --policy FORWARD DROP
$IPTABLES --policy OUTPUT DROP
# Allow unlimited traffic on the loopback interface
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Previously initiated and accepted exchanges bypass rule checking
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow unlimited outbound traffic
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Allow incoming port 22 (ssh) connections on LAN interface
$IPTABLES -A INPUT -i $LAN -p tcp --destination-port 22 -m state --state NEW -j ACCEPT

# Allow ICMP ECHO REQUESTS on LAN interface
$IPTABLES -A INPUT -i $LAN -p icmp --icmp-type echo-request -j ACCEPT

# Allow incoming 80 (http) connections from LAN interface
$IPTABLES -A INPUT -i $LAN -p tcp --destination-port 80 -m state --state NEW -j ACCEPT
# Allow incoming 8080 (tomcat) connections from LAN interface
$IPTABLES -A INPUT -i $LAN -p tcp --destination-port 8080 -m state --state NEW -j ACCEPT
# Create a LOGDROP chain to log and drop packets to /var/log/messages
####$IPTABLES -N LOGDROP
####$IPTABLES -A LOGDROP -j LOG
####$IPTABLES -A LOGDROP -j DROP
####$IPTABLES -A INPUT -j LOGDROP

# Drop all other traffic
$IPTABLES -A INPUT -j DROP

/sbin/iptables-save > /root/setup/firewall/iptables-new

New Linux RedHat 7.3 firewall script

Network, Firewall scripts No Comments »


#!/bin/sh
# JAVITASOK:
# 2002/07/10 xbt 
# 2002/07/27 webHauser - tul sokat loggolt, elesben csak DENY eseten kell!

# kimeno forgalom:
# Card eth0 192.168.0.1
# Card eth1 DHCP
# Card eth2 192.168.1.1
ipchains -F

# Minden olyan csomag amely nem felel meg egyetlen
# tovabbi szabalynak sem, ne legyen atengedve,
# se beengedve, se tovabbitva.

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward ACCEPT
# Filter only TCP packets with bits SYN=1,ACK=0,FIN=0
#ipchains -A input -s 0/0 -d 0/0 -p tcp -y -j DENY
# lehessen a localhostot pingetni
#ipchains -A input -s 0/0 -d 0/0 -i lo -j ACCEPT
# Ne johessen be olyan csomag, amelynek
# forrascime a belso halozathoz tartozik!
#ipchains -A input -j DENY -l -s 127.0.0.0/8 -i ! lo
# DHCP beengedese
ipchains -A input -s 0/0 67:68 -d 0/0 67:68 -p udp -i eth1 -j ACCEPT

# Deny TCP and UDP packets to privileged ports
ipchains -A input -l -i eth1 -d 0.0.0.0/0 0:1023 -p udp -j DENY
ipchains -A input -l -i eth1 -d 0.0.0.0/0 0:1023 -p tcp -j DENY

# Deny TCP connection attempts on y packets
ipchains -A input -l -i eth1 -p tcp -y -j DENY

# Deny ICMP echo-requests from outside
ipchains -A input -l -i eth1 -s 0.0.0.0/0 echo-request -p icmp -j DENY

# A masik geprol erkezo csomagok elfogadasa
ipchains -A input -j ACCEPT -s 192.168.0.0/24 -i eth0

#ipchains -A input -j ACCEPT -l -s 192.168.0.0/24 -i eth0
#ipchains -A input -j ACCEPT -l -s 192.168.1.0/24 -i eth2

#
# A tobbi geprol is legyen elerheto az internet
#

ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Firewall rules set."

ipchains masquerading firewall script

Network, Firewall scripts No Comments »


#!/bin/sh
# Bejovo forgalom letiltva
# (nem kell tavolrol elernunk a gepet)
#
# kimeno forgalom:
# Card eth0 192.168.0.1
# Card eth1 DHCP
#

# Minden olyan csomag amely nem felel meg egyetlen
# tovabbi szabalynak sem, ne legyen atengedve,
# se beengedve, se tovabbitva.

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward ACCEPT
# Filter only TCP packets with bits SYN=1,ACK=0,FIN=0
#ipchains -A input -s 0/0 -d 0/0 -p tcp -y -j DENY
# lehessen a localhostot pingetni
#ipchains -A input -s 0/0 -d 0/0 -i lo -j ACCEPT
# Ne johessen be olyan csomag, amelynek
# forrascime a belso halozathoz tartozik!
#ipchains -A input -j DENY -l -s 127.0.0.0/8 -i ! lo
#
#
# Deny TCP and UDP packets to privileged ports
ipchains -A input -l -i eth1 -d 0.0.0.0/0 0:1023 -p udp -j DENY
ipchains -A input -l -i eth1 -d 0.0.0.0/0 0:1023 -p tcp -j DENY

# Deny TCP connection attempts
ipchains -A input -l -i eth1 -p tcp -y -j DENY

# Deny ICMP echo-requests
ipchains -A input -l -i eth1 -s 0.0.0.0/0 echo-request -p icmp -j DENY

# A masik geprol erkezo csomagok elfogadasa

ipchains -A input -j ACCEPT -l -s 192.168.0.0/24 -i eth0

#
# A tobbi geprol is legyen elerheto az internet
#

ipchains -A forward -j MASQ -l -s 192.168.0.0/24 -d 0.0.0.0/0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Firewall rules are set."

IPTABLES firewall deny list

Network, Firewall scripts No Comments »


$IPTABLES -A INPUT -s 60.248.80.238 -j DROP
$IPTABLES -A INPUT -s 65.167.60.74 -j DROP
$IPTABLES -A INPUT -s 67.15.121.19 -j DROP
$IPTABLES -A INPUT -s 69.22.169.151 -j DROP
$IPTABLES -A INPUT -s 80.14.129.19 -j DROP
$IPTABLES -A INPUT -s 81.7.88.137 -j DROP
$IPTABLES -A INPUT -s 82.127.122.15 -j DROP
$IPTABLES -A INPUT -s 83.102.131.30 -j DROP
$IPTABLES -A INPUT -s 134.117.69.20 -j DROP
$IPTABLES -A INPUT -s 147.46.66.97 -j DROP
$IPTABLES -A INPUT -s 150.165.168.31 -j DROP
$IPTABLES -A INPUT -s 155.208.240.133 -j DROP
$IPTABLES -A INPUT -s 210.212.20.142 -j DROP
$IPTABLES -A INPUT -s 219.238.235.188 -j DROP
$IPTABLES -A INPUT -s 220.130.3.60 -j DROP
$IPTABLES -A INPUT -s 221.151.113.26 -j DROP