Strona 1 z 1

firewall i otwarcie portów

: 10 sierpnia 2007, 19:01
autor: milosz
Witam. Posiadam firewalla, który blokuje wszystkie porty i odblokowuje te które ja chce. Chce zrobić, tak żeby dla jednej sieci były odblokowane wszystkie porty a dla innych były stosowane regułki firewalla. Da się zrobić takie coś? Jeśli tak, to prosiłbym o opis jak to zrobić.

: 10 sierpnia 2007, 19:43
autor: artix90
milosz, a może powiesz jakiego?

: 10 sierpnia 2007, 21:02
autor: milosz
Iptables... Proszę, o to kod:

Kod: Zaznacz cały

#!/bin/sh

case "$1" in
start)
echo "Wlaczam Nat..."

IPT="/sbin/iptables"

/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ipt_ULOG

### czyszczenie firewalla ###
$IPT -X
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F -t nat
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A FORWARD -o lo -j ACCEPT

$IPT -A INPUT -i eth1 -j ACCEPT
$IPT -A OUTPUT -o eth1 -j ACCEPT
$IPT -A FORWARD -o eth1 -j ACCEPT

$IPT -A INPUT -i eth2 -j ACCEPT
$IPT -A OUTPUT -o eth2 -j ACCEPT
$IPT -A FORWARD -o eth2 -j ACCEPT


### odrzucamy polaczenia ident i socks ###
$IPT -A INPUT -p tcp --dport 113 -j REJECT --reject-with icmp-port-unreachable
$IPT -A INPUT -p tcp --dport 1080 -j REJECT --reject-with icmp-port-unreachable
###

### akceptacja ping na eth0 ###
#$IPT -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
#$IPT -A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j ACCEPT
#$IPT -A FORWARD -o eth0 -p icmp --icmp-type echo-request -j ACCEPT
###

### zezwolenie na wszystko co odbywa sie w ramach juz dozwolonych polaczen ###
$IPT -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
$IPT -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
$IPT -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
$IPT -A INPUT -p icmp -j ACCEPT -m state --state RELATED
$IPT -A FORWARD -p tcp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p tcp -j ACCEPT -m state --state RELATED
$IPT -A FORWARD -p udp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p tcp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p icmp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p icmp -j ACCEPT -m state --state RELATED
$IPT -A OUTPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
$IPT -A OUTPUT -p tcp -j ACCEPT -m state --state RELATED
$IPT -A OUTPUT -p udp -j ACCEPT -m state --state ESTABLISHED
$IPT -A OUTPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
$IPT -A OUTPUT -p icmp -j ACCEPT -m state --state RELATED
###

### wpuszczamy ssh ###
$IPT -A OUTPUT -o eth0 -p tcp -j ACCEPT -m state --state NEW -d 0/0 --destination-port 22
$IPT -A FORWARD -o eth0 -p tcp -j ACCEPT -m state --state NEW -d 0/0 --destination-port 22
#$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -m state --state NEW -s 0/0 --destination-port 22
### na port 29
$IPT -A OUTPUT -o eth0 -p tcp -j ACCEPT -m state --state NEW -d 0/0 --destination-port 29
$IPT -A FORWARD -o eth0 -p tcp -j ACCEPT -m state --state NEW -d 0/0 --destination-port 29
#$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -m state --state NEW -s 0/0 --destination-port 22
###

###   uslugi TCP, ktore wpuszczamy do sieci			###
###   80,8080 (WWW), 22 (SSH), 21 (FTP), 25 (SMTP), 110 (NEWS)  ###
###   53 (DNS), 2064 (distributed.net), 706 (SILC)		###
TCP_OUT_ALLOW=21,25,53,80,109,110,119,443,3389,8080,8008,20,5190,8050,8550
UDP_OUT_ALLOW=53
$IPT -A OUTPUT -o eth0 -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW
$IPT -A OUTPUT -o eth0 -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW
$IPT -A FORWARD -o eth0 -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW
$IPT -A FORWARD -o eth0 -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW
$IPT -A OUTPUT -o eth0 -p udp -j ACCEPT -d 0/0 --destination-port 4569
$IPT -A FORWARD -o eth0 -p udp -j ACCEPT -d 0/0  --destination-port 4569
$IPT -A INPUT -i eth0 -p udp -j ACCEPT -s 0/0  --destination-port 4569

$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 80
$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 53
$IPT -A INPUT -i eth0 -p udp -j ACCEPT -s 0/0 --destination-port 53
$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 25
$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 110
$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 995
$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 21
## port SSH zmieniony z 22 na 29
$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 29
### MySQL
#$IPT -A INPUT -i eth0 -p tcp -j ACCEPT -s 0/0 --destination-port 3306
#######


### maskarada ###
$IPT -t nat -A POSTROUTING -p all -s 192.168.1.0/24 -j MASQUERADE
$IPT -t nat -A POSTROUTING -p all -s 192.168.2.0/24 -j MASQUERADE
$IPT -t nat -A POSTROUTING -p all -s 192.168.3.0/24 -j MASQUERADE
$IPT -t nat -A POSTROUTING -p all -s 192.168.4.0/24 -j MASQUERADE
$IPT -t nat -A POSTROUTING -p all -s 192.168.5.0/24 -j MASQUERADE
###

### zabezpieczenie przed spoofingiem ###
#echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
#
#$IPT -A INPUT -j LOG -m limit --limit 10/hour
#$IPT -A OUTPUT -j LOG -m limit --limit 10/hour
#$IPT -A FORWARD -j LOG -m limit --limit 10/hour
###



echo "Wlaczam NiceShapera..."
/usr/local/bin/niceshaper start
echo "Wlaczam blokowanie spamu..."
/etc/init.d/firewall-smtp

;;
stop)
echo "Koncze prace NiceShapera..."
/usr/local/bin/niceshaper stop
echo "Koncze prace NetFiltera..."
#$IPT -F -t nat
#$IPT -X -t filter
;;
restart)
echo "Koncze prace NiceShapera..."
/usr/local/bin/niceshaper stop

echo "Koncze prace NetFiltera..."
#$IPT -F -t nat
#$IPT -X -t filter

/etc/init.d/firewall start
;;
*)
echo "Uzycie /etc/init.d/firewall {start|stop|restart}"
exit 1
;;
esac
exit 0
No i chciałbym odblokować wszystkie porty dla sieci 192.168.4.0.

[Dodano: 2007-08-15, 10:29]
Nikt nie ma pomysłu na takie coś?