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

Cevap