Ekteki dosya gözümden kaçmış. Aşağıdaki scripti kullanabilirsin. Örnek
olarak bu kodları rc.firewall adlı bir dosyaya yazdıysan;
chmod +x rc.firewall
Başlatmak için: ./rc.firewall start
Durdurmak için: ./rc.firewall stop
Durumu kontrolü: ./rc.firewall status
Restart: ./rc.firewall restart
Notlar:
- Bunu yazdıktan sonra test etmedim, kullanırken dikkat.
- Bol miktarda log üretecektir, gereksiz olanları normal ACCEPT veya
DROP ile loglamayabilirsin.
#!/bin/sh
IPTABLES="/sbin/iptables"
case "$1" in
stop)
echo -ne "Shutting down firewall...\n"
$IPTABLES -F
$IPTABLES -F -t mangle
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -X -t mangle
$IPTABLES -X -t nat
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
echo -ne "Done!\n\n"
;;
status)
echo -ne "Firewall Status:\n"
echo -ne $"Table: filter\n"
iptables --list -n
echo -ne $"Table: nat\n"
iptables -t nat --list -n
echo -ne $"Table: mangle\n"
iptables -t mangle --list -n
;;
restart|reload)
$0 stop
$0 start
;;
start)
echo -ne "Starting firewall...\n"
#Paket forwarding icin
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#Bir kural bir chaine atanirsa paketler loglandiktan sonra kabul edilir.
$IPTABLES -N ACCEPTLOG
$IPTABLES -A ACCEPTLOG -j LOG --log-prefix '[IPTABLES ACCEPT] : '
$IPTABLES -A ACCEPTLOG -j ACCEPT
#Bir kural bir chaine atanirsa paketler loglandiktan sonra reddedilir.
$IPTABLES -N DROPLOG
$IPTABLES -A DROPLOG -j LOG --log-prefix '[IPTABLES DROP] : '
$IPTABLES -A DROPLOG -j DROP
#Lokal interface trafiğini serbest birakalim (Bunlari loglamaya da
gerek yok)
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
#INPUT kurallari
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPTLOG #Dis
interface SSH erisimi
$IPTABLES -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPTLOG #Ic
interface SSH erisimi
$IPTABLES -A INPUT -m state --state ESTABLISHED -j ACCEPTLOG
#Acilan baglantilarin geri donen cevaplari icin
$IPTABLES -A INPUT -m state --state RELATED -j ACCEPTLOG #Acilan
baglantilarin geri donen cevaplari icin
$IPTABLES -A INPUT -j DROPLOG #Geri kalan hersey icin LOG ve DROP
#OUTPUT kurallari (Makinanin kendisinin iceriye ve disariya erisimi icin)
$IPTABLES -A OUTPUT -o eth0 -j ACCEPTLOG
$IPTABLES -A OUTPUT -o eth1 -j ACCEPTLOG
#FORWARD kurallari
$IPTABLES -A FORWARD -i eth1 -s 192.168.10.10 -o eth0 -d
192.168.50.2 -p tcp -m multiport --dport 7001,7002 -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth1 -s 192.168.40.20 -o eth0 -d
192.168.50.2 -p tcp -m multiport --dport 7001,7002 -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth1 -s 192.168.10.10 -j DROPLOG
$IPTABLES -A FORWARD -i eth1 -s 192.168.40.20 -j DROPLOG
$IPTABLES -A FORWARD -i eth1 -s 192.168.10.0/24 -o eth0 -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth0 -o eth1 -d 192.168.10.0/24 -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth0 -o eth1 -d 192.168.40.20 -j ACCEPTLOG
#Acilan baglantilarin geri donen cevaplari icin
$IPTABLES -A FORWARD -i eth0 -m state --state ESTABLISHED -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth0 -m state --state RELATED -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPTLOG
$IPTABLES -A FORWARD -i eth1 -m state --state RELATED -j ACCEPTLOG
$IPTABLES -A FORWARD -j DROPLOG #Geri kalan hersey icin LOG ve DROP
echo -ne "Done!\n\n"
;;
*)
echo -ne "\nUsage: firewall (start|stop|restart|status)\n\n"
exit 1
esac
exit 0
2011/4/1 yaşar tunçez <[email protected]>:
> Merhaba,
> Ekteki şekilde belirtmiştim ama ;
> linux router üzerindeki interface'ler
> eth0: 10.10.10.1 ---- > dış network
> eth1: 192.168.10.2 ---- > iç network
> 192.168.10.X ---- > bu network dış network'e herhangi bir kurala takılmadan
> çıkacak, ancak
> 192.168.10.10 --- > ip ve bunun arkasındaki 192.168.40.20 ip'si sadece dış
> networkteki 192.168.50.2 ip'li sunucunun 7001 ve 7002 portlarına
> erişebilecek. Bunu aslında dış network diye tarbir ettiğim yerde bir fw
> marifetiyle yapmak daha mantıklı ama böyle bir imkan olmadığı için ben
> burada sadece bu istekleri dış networke aktararak sorunu çözmeyi amaçladım.
>
> 01 Nisan 2011 11:48 tarihinde emrecan ural <[email protected]> yazdı:
>>
>> Merhaba,
>>
>> Gözüktüğü kadarıyla kurallarda bazı karışıklıklar olabilir. Net bir
>> şekilde durumu anlamak için, Linux sunucu üzerindeki network
>> interfacelerini ve bunların üzerindeki IP adreslerini belirtir misin?
>> Ayrıca hangi network hangi interface arkasında onu da belirtmen
>> gerekiyor. Log için bir logging chaini oluşturup herhangi bir paketi
>> drop veya accept etmeden önce bu chainden geçirmen lazım. Yukarıdaki
>> bilgileriverdikten sonra logging ile ilgili de gerekli satırları
>> yazabilirim.
>>
>> 2011/3/31 yaşar tunçez <[email protected]>:
>> > Merhaba,
>> >
>> > router olarak görev yapan bir linux makinede iptables ile sınırlamalar
>> > yapmak istiyorum. Ekteki şekilde görüldüğü gibi 192.168.10.X ağı router
>> > olarak görev yapan linux makine üzerinden 192.168.50.2 ve buradaki diğer
>> > netwoklere erişecek. 192.168.40.20 sunucusu ise örneğin router
>> > 192.168.10.10
>> > üzerinden router'a router'dan da 192.168.50.2 sunucusunun iki farklı
>> > portuna
>> > (örneğin tcp 7001 ve 7002 olsun) bağlanacak. 192.168.50.2 ve buradaki
>> > network(ler)den 192.168.10.X ve 192.168.40.20 ye erişimde herhangi bir
>> > kısıtlama olmayacak.
>> >
>> > Bununla ilgili kuralları şu şekilde yazdım. Herhangi bir eksiklik ya da
>> > hata
>> > var mı acaba?
>> >
>> > #!/bin/sh
>> > iptables -t nat -F
>> > iptables -t nat -X
>> > iptables -F
>> > iptables -X
>> > iptables -P FORWARD DROP
>> > iptables -A FORWARD -ieth0 -j ACCEPT
>> > iptables -A FORWARD -i eth1 -s 192.168.10.10 -p tcp -m multiport --dport
>> > 7001,7002 -o eth0 -j ACCEPT
>> > iptables -A FORWARD -i eth1 -s 192.168.40.20 -p tcp -m multiport --dport
>> > 7001,7002 -o eth0 -j ACCEPT
>> > iptables -A FORWARD -i eth1 -s !192.168.10.10 -o eth0 -j ACCEPT
>> > iptables -P INPUT DROP
>> > iptables -A INPUT -i lo -j ACCEPT
>> > iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
>> >
>> > Son olarak kurallara takılan/geçen paketleri nasıl izleyebilirim?
>> >
>> >
>> > _______________________________________________
>> > Linux-guvenlik mailing list
>> > [email protected]
>> > https://liste.linux.org.tr/mailman/listinfo/linux-guvenlik
>> > Liste kurallari: http://liste.linux.org.tr/kurallar.php
>> >
>> >
>> _______________________________________________
>> Linux-guvenlik mailing list
>> [email protected]
>> https://liste.linux.org.tr/mailman/listinfo/linux-guvenlik
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
> _______________________________________________
> Linux-guvenlik mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-guvenlik
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
_______________________________________________
Linux-guvenlik mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-guvenlik
Liste kurallari: http://liste.linux.org.tr/kurallar.php