[LINUX:5023] Re: Firewall
Remzi =?iso-8859-1?Q?AKY=DCZ?= (remzi@service.raksnet.com.tr)
Sat, 10 Apr 1999 03:34:48 +0300 (EET DST)
Remzi AKYÜZ wrote:
> 
> Remzi AKYÜZ wrote:
> 
> > Mustafa Erer wrote:
> >
> > > ipfwadm konutuna hangi parametleri vererek
> > > linuxa disaridan 80,25,110 portlari disinda erisimi engellyebilirm
> > > istedigim bir ip den belli bir userdan 23 poruna ersiebilecek sekilde
> > > ipfwadm nasil configure etmem lazim.
> >
> > Yukarıdaki işlemi yerine getirecek şekilde bir zamanlar Murat bir script
> > yazmıştı.
> > onu listeye ekliyorum.
> > Çalıştırmak için
> > chmod +x f
> > ./f
> > demeniz yeterli.
> > Kolay gelsin.
> >
> > Saygılarımla
> >
> >   ------------------------------------------------------------------------
> >
> 
>   ------------------------------------------------------------------------
> 
> #!/bin/sh
> # Ipfwadm Kiti v0.0.000000000000000000000000000000001
> # Murat Arslan <arslanm@linux-tr.EU.org> 03/04/98
> #
> PATH="$PATH:/sbin:/usr/sbin:/bin:/usr/bin"
> PORTS="1024:65535"
> LOCIP="`ifconfig | grep P-t-P | awk '{print $2}' | cut -d ':' -f2`"
> 
> checkroot() {
>   KIMIM=`whoami`
>   if [ "$KIMIM" != "root" ]; then
>   dialog --infobox "Root degilsiniz!" \
>   3 22
>   sleep 1
>   exit 0
> fi
> }
> dnsekle() {
>         while [ "$DNS1" = "" ]; do
>          dialog --inputbox "Birinci DNS adresi" \
> 8 50 \
> 2> /tmp/dns1.$$
>          if [ $? = 1 -o $? = 255 ]; then
>                 rm -f /tmp/dns1.$$
>                 main;
>          fi
>          DNS1="`cat /tmp/dns1.$$`"
>          rm -f /tmp/dns1.$$
>         done
>         while [ "$DNS2" = "" ]; do
>          dialog --inputbox "Ikinci DNS adresi" \
> 8 50 \
> 2> /tmp/dns2.$$
>          if [ $? = 1 -o $? = 255 ]; then
>                 rm -f /tmp/dns2.$$
>                 main;
>          fi
>          DNS2="`cat /tmp/dns2.$$`"
>          rm -f /tmp/dns2.$$
>         done
>         dialog --yesno \
> "DNS kurallarini uygulayayim mi?
> Birinci DNS: $DNS1
> Ikinci DNS: $DNS2" \
> 7 40
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         ipfwadm -I -a accept -P tcp -S $DNS1 53 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P udp -S $DNS1 53 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P tcp -S $DNS2 53 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P udp -S $DNS2 53 -D $LOCIP $PORTS
>         main;
> }
> cekirdek() {
>         if [ -r /proc/net/ip_input -a -r /proc/net/ip_output ]; then
>                 dialog --infobox "IPfwadm kullanmaniz icin cekirdek
> desteginiz verilmis. Hersey OK." 5 40
>            sleep 2
>            main;
>            else
>                 dialog --infobox "Cekirdek desteginiz yok!
> Cekirdek derlemeniz gerekiyor. Asagidakileri
> isaretlemeyi unutmayin!
> 
> Networking options  --->
>   [*] Network firewalls
>   ....
>   [*] IP: forwarding/gatewaying
>   ....
>   [*] IP: firewalling
>   [ ] IP: firewall packet logging" 15 50
>         exit 0
>         fi
> }
> flush() {
>         dialog --yesno "Mevcut kurallari silip yeniden baslamak \
> istermisiniz ?" 5 60
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         ipfwadm -I -f
>         ipfwadm -I -p reject
>         main;
> }
> loekle() {
>         dialog --yesno "Localhostu ekliyorum.. OK ?" 5 33
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         # localhost ekleniyor..
>         ipfwadm -I -a accept -W lo
>         main;
> }
> wwwekle() {
>         dialog --yesno "Tum adreslerin 80. ve 8080. portlarini \
> erisime aciyorum. OK ?" 5 66
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         ipfwadm -I -a accept -P tcp -S 0/0 80 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P udp -S 0/0 80 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P tcp -S 0/0 8080 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P udp -S 0/0 8080 -D $LOCIP $PORTS
>         main;
> }
> ftpekle() {
>         dialog --yesno "Tum adreslerin 21. portunu erisime \
> aciyorum.. OK ?" 5 60
>         if [ $? = 1 -o $? = 1024 ]; then
>                 main;
>         fi
>         ipfwadm -I -a accept -P tcp -S 0/0 21 -D $LOCIP $PORTS
>         ipfwadm -I -a accept -P udp -S 0/0 21 -D $LOCIP $PORTS
> 
>         main;
> }
> pop3ekle() {
> POP3ADDR=""
>         while [ "$POP3ADDR" = "" ]; do
>          dialog --inputbox "POP3 adresiniz nedir ? " \
> 8 35 \
> 2> /tmp/pop3.$$
>          if [ $? = 1 -o $? = 255 ]; then
>                 rm -f /tmp/pop3.$$
>                 main;
>          fi
>          POP3ADDR="`cat /tmp/pop3.$$`"
>          rm -f /tmp/pop3.$$
>         done
>         dialog --yesno "POP3 Adresini ekliyim mi ?
> Adres: $POP3ADDR" 7 40
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         ipfwadm -I -a accept -P tcp -S $POP3ADDR 110 -D $LOCIP $PORTS
>         main;
> }
> shellekle() {
> SHELLADDR=""
>         while [ "$SHELLADDR" = "" ]; do
>         dialog --inputbox "Shell account adresiniz nedir ?" \
> 8 40 \
> 2> /tmp/shell.$$
>          if [ $? = 1 -o $? = 255 ]; then
>                 rm -f /tmp/shell.$$
>                 main;
>          fi
>          SHELLADDR="`cat /tmp/shell.$$`"
>          rm -f /tmp/shell.$$
>         done
>         dialog --yesno "SHELL Adresini ekleyim mi ?
> Adres: $SHELLADDR" 7 40
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         ipfwadm -I -a accept -P tcp -S $SHELLADDR 23 -D $LOCIP $PORTS
>         main;
> }
> ircekle() {
>         dialog --yesno "Tum adreslerin 6667 portunu erisime \
> aciyorum.. OK ?" 5 61
>         if [ $? = 1 -o $? = 255 ]; then
>                 main;
>         fi
>         ipfwadm -I -a accept -P tcp -S 0/0 6667 -D $LOCIP $PORTS
>         main;
> }
> listele() {
>         dialog --infobox "Lutfen bekleyiniz.." 3 30
>         ipfwadm -I -l -n > /tmp/defpol.$$
>         DEFPOLICY="`cat /tmp/defpol.$$ | grep rules |\
> awk '{print $7}'`"
>         if [ "$DEFPOLICY" = "accept" ]; then
>                 DEFPOLICY="kabul"
>         elif [ "$DEFPOLICY" = "reject" -o "$DEFPOLICY" = "deny" ]; then
>                 DEFPOLICY="red"
>         fi
>         echo "Tip  Proto   Rem_IP               Loc_IP          \
>    Ports R->L" > /tmp/outfw.$$
>         OTHER="`cat /tmp/defpol.$$ | grep -v rules |\
> grep -v source >> /tmp/outfw.$$`"
>         rm -f /tmp/defpol.$$
>         dialog --title "Ongorulen islem: $DEFPOLICY" \
> --textbox /tmp/outfw.$$ 15 75
>         rm -f /tmp/outfw.$$
>         main;
> }
> yardim() {
>         cat << EOF > /tmp/yardim.$$
> 
> Ipfwadm Kiti:
> -------------
> 
> Ipfwadm kiti sadece dial-up internete baglanan kullanicilar icin
> tasarlanmistir. Ilk etapta DNS,WWW,FTP,POP3,SHELL,IRC islemlerini
> gerceklestirmektedir. Ve sadece IP input firewall kurallarini
> uygulamaktadir.
> 
> Ideal bir baglanti guvenligi icin sirayla asagidaki islemleri
> yapmaniz tavsiye edilir:
> 
> FLUSH -> LO -> DNS -> WWW -> FTP -> POP3 -> SHELL -> IRC
> 
> FLUSH: (varsa) mevcut kurallari siler. En bastan baslamanizi saglar.
> LO: Localhosttan, yani kendi makinanizdan gene kendi makinaniza
>     baglanti yapabilmenizi saglar.
> DNS: Adres cevrimi islemi icin gereklidir.
> 
> __
> Murat Arslan <arslanm@linux-tr.EU.org>
> EOF
>         dialog --title "Ipfwadm Kiti Yardim" \
> --textbox /tmp/yardim.$$ 17 70
>         rm -f /tmp/yardim.$$
>         main;
> }
> main() {
>         checkroot;
>         dialog --title "IPfwadm Kiti" --menu "" 17 53 11 \
>         "FLUSH" "Mevcut kurallari sil, bastan basla" \
>         "LO" "Localhostu ekleme" \
>         "DNS" "Domain name server ekleme" \
>         "WWW" "Web serverlari ekleme" \
>         "FTP" "Ftp serverlari ekleme" \
>         "POP3" "POP3 serverini ekleme" \
>         "SHELL" "Shell makinasini ekleme" \
>         "IRC" "IRC ekleme" \
>         "LISTELE" "Tum kurallari listele" \
>         "CEKIRDEK" "Cekirdek destegi okmi?" \
>         "YARDIM" "Arac hakkinda yardim" \
>         2> /tmp/what.$$
>         if [ $? = 1 -o $? = 255 ]; then
>                 rm -f /tmp/what.$$
>                 exit
>            else
>                 ISTEK="`cat /tmp/what.$$`"
>         rm -f /tmp/what.$$
>         fi
>         if [ "$ISTEK" = "DNS" ]; then
>                 dnsekle;
>           elif [ "$ISTEK" = "FLUSH" ]; then
>                 flush;
>           elif [ "$ISTEK" = "LO" ]; then
>                 loekle;
>           elif [ "$ISTEK" = "WWW" ]; then
>                 wwwekle;
>           elif [ "$ISTEK" = "FTP" ]; then
>                 ftpekle;
>           elif [ "$ISTEK" = "POP3" ]; then
>                 pop3ekle;
>           elif [ "$ISTEK" = "SHELL" ]; then
>                 shellekle;
>           elif [ "$ISTEK" = "IRC" ]; then
>                 ircekle;
>           elif [ "$ISTEK" = "CEKIRDEK" ]; then
>                 cekirdek;
>           elif [ "$ISTEK" = "LISTELE" ]; then
>                 listele;
>           elif [ "$ISTEK" = "YARDIM" ]; then
>                 yardim;
>         fi
> }
> main;
 
 Listeden  cikmak icin: 
 	 unsub  linux 
 mesajini  listeci@bilkent.edu.tr'a  gonderiniz.
   Lutfen Listeci icin MIME / HTML / Turkce Aksan kullanmayin. 
  Liste arsivinin adresi:  http://listweb.bilkent.edu.tr/