[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

firewall



Witam chciałbym zrobić coś takiego, żeby userowi o ip 192.168.1.11

Ograniczyć możliwość korzystania z sieci

do tego, żeby działał mu dns i poczta, zrobiłem takiego firewalla:

#!/bin/bash

IPT=/sbin/iptables

ETHOUT=eth0

ETHLAN=eth1

SWIAT=zewnetzne IP

LAN=192.168.1.0/24

TCP_IN_ALLOW=21,25,53,80,110,3128,8000

UDP_IN_ALLOW=53,33501

 

$IPT -F

$IPT -F INPUT

$IPT -F OUTPUT

$IPT -F FORWARD

$IPT -F -t nat

$IPT -F -t mangle

$IPT -P INPUT DROP

$IPT -P FORWARD DROP

$IPT -P OUTPUT ACCEPT

 

$IPT -A INPUT -i ! $ETHOUT -s $LAN -j ACCEPT

## uslugi, ktore wpuszczamy.

$IPT -A INPUT -i $ETHOUT -p tcp -j ACCEPT -m state --state NEW -m multiport --dport $TCP_IN_ALLOW

$IPT -A INPUT -i $ETHOUT -p udp -j ACCEPT -m state --state NEW -m multiport --dport $UDP_IN_ALLOW

 

#statefull-inspection

$IPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A OUTPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A OUTPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

 

$IPT -t nat -A POSTROUTING -s $LAN -d 0.0.0.0/0  -j SNAT --to $ SWIAT

 

#wpuszczamy ping

$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

$IPT -A OUTPUT -o $ETHLAN -p icmp --icmp-type echo-request -j ACCEPT

$IPT -A OUTPUT -o $ETHLAN -d 0.0.0.0/0 -j ACCEPT

$IPT -A OUTPUT -o $ETHOUT -p icmp --icmp-type echo-request -j ACCEPT

 

# wypuszczamy w swiat wszystko:

$IPT -A OUTPUT -o $ETHOUT -p tcp -j ACCEPT -s $ SWIAT  -m state --state NEW

 

#samba

$IPT -A INPUT -p tcp -m tcp --dport 137:139 -s 192.168.1.0/24 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 137:139 -s 192.168.1.0/24 -j ACCEPT

 

##Zabezpieczenie przez powodzią SYN (Syn-flood):

$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

##Skaner portów Furtive:

$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

##Ping of death:

$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

 

/sbin/iptables -A INPUT -s 192.168.1.11 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p tcp -m multiport --dport 25,53,110 -m state --state NEW -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p udp --dport 53 -m state --state NEW -j ACCEPT

/sbin/iptables -A FORWARD -p tcp -m multiport --dport 25,53,110 -d 192.168.1.11 -j ACCEPT

/sbin/iptables -A FORWARD -p tcp -m multiport --dport 25,53,110 -s 192.168.1.11 -j ACCEPT

 

############Tutaj inni userzy############

 

echo 1 > /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/conf/all/accept_source_route

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

echo 0 > /proc/sys/net/ipv4/tcp_ecn

 

Innych userów traktuje w inny sposób, dla każdego z nich

Oddzielne rególki  ale zależy mi, żeby temu odciąć wszystko oprócz poczty i dns`ow

I nie wiem gdzie zrobiłem blad. Za wszelką pomoc z góry dziękuje.

 

Pozdrawiam

Adam.


Reply to: