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ś?