IpTables, mon 1er script, j'ai des questions

IpTables, mon 1er script, j'ai des questions - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 18-07-2003 à 14:07:14    

Voila mon 1er script realisé a l'aide de lea-linux :
 


#!/bin/sh
 
##################################################
#                                                #
#   FIREWALL ET PARTAGE DE CONNECTION INTERNET   #
#                                                #
##################################################
 
# activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
 
# Je veux pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
  for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
  do
    echo 1 > $filtre
  done
fi
 
# pas de icmp (ping)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 
# chargement des modules necessaires
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
 
# vidage des regles courantes
iptables -F
iptables -X
 
# on logue et on refuse le paquet
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP
 
# on logue et on accepte le paquet
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT
 
# on refuse tout par defaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
 
# on autorise l'utilisation de l'interface lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
# on autorise ce qui se passe sur le reseau local
iptables -A INPUT -s 172.17.64.0/24 -j ACCEPT
iptables -A OUTPUT -d 172.17.64.0/24 -j ACCEPT
iptables -A FORWARD -s 172.17.64.0/24 -j ACCEPT
 
# on autorise le dns
iptables -A INPUT -i tun0 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i tun0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 53 -j ACCEPT
 
# on autorise la navigation sur le net
iptables -A INPUT -i tun0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
 
# on autorise les connections ssh vers internet
iptables -A INPUT -i tun0 --protocol tcp --source-port 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
 
# on autorise les connections ssh depuis le reseau local
#iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
#iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state ESTABLISHED -j LOG_ACCEPT
 
# on autorise les connections ftp
iptables -A INPUT -i tun0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
 
## connections en mode actif
iptables -A INPUT -i tun0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
 
## connection en mode passif
iptables -A INPUT -i tun0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
#
# PARTAGE DE LA CONNECTION INTERNET
#
 
# autorisation du forwarding
#iptables -F FORWARD
#iptables -A FORWARD -j ACCEPT
 
# masquage des machines du reseau local
#iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE
 
# acces complet a internet pour les machines du reseau local
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 -j ACCEPT
 
# masquage des machines du reseau local
iptables -t nat -A POSTROUTING -s 172.17.64.0/24 -j MASQUERADE
 
# tout le reste est refuse et logue
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
ptables -A OUTPUT -j LOG_DROP
 
echo " [Termine]"

 
 
voici mes questions :
 
pour les connections ssh du reseau que je mette ca ou non j'ai toujours le droit de faire du ssh depuis mon reseau sur cette machine je comprend pas pourquoi :


# on autorise les connections ssh depuis le reseau local
iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state ESTABLISHED -j LOG_ACCEPT


 
pour le partage de connection je sais pas quoi mettre :
ca :


iptables -F FORWARD
iptables -A FORWARD -j ACCEPT
 
# masquage des machines du reseau local
iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE


ou bien ca:


iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 -j ACCEPT
 
# masquage des machines du reseau local
iptables -t nat -A POSTROUTING -s 172.17.64.0/24 -j MASQUERADE


 
et j'ai un probleme, la resolution des noms ne se fait pas sur les machines du reseau, pour naviguer je dois taper les adresses ip :(
faut faire quoi?
    -un serveur de dns?
    -ajouter quelque chose dans mon script?
 
merci d'avance

Reply

Marsh Posté le 18-07-2003 à 14:07:14   

Reply

Marsh Posté le 18-07-2003 à 14:26:00    

# on autorise ce qui se passe sur le reseau local
iptables -A INPUT -s 172.17.64.0/24 -j ACCEPT
iptables -A OUTPUT -d 172.17.64.0/24 -j ACCEPT
iptables -A FORWARD -s 172.17.64.0/24 -j ACCEPT
 
ca explique pkoi tu peux faire du ssh en local
 
apres béh heu ... je te colel mon script a toi de l'adapter s il te plait
 
 

routeur:~# cat /etc/init.d/firewall  
#! /bin/sh
# Firewall par HuGoBosS
 
 
flush(){
#on purge les tables
iptables -F
iptables -X                      
iptables -t nat -F              
iptables -t nat -X              
}                                
                                 
start(){                        
        echo -n "On met les regles en place : "
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
                                 
#On jete les packets par defaut  
iptables -P INPUT DROP          
iptables -P OUTPUT DROP          
iptables -P FORWARD DROP        
                                 
iptables -t nat -P PREROUTING ACCEPT
                                 
#on autorise le traffic sur lo  
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
                                 
#On accepte toutes les connexions venant du reseau local
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
                                 
 # Priorisation des connexions ftp et ssh
iptables -A PREROUTING -t mangle -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
# On donne un maximum de débit aux transferts ftp, peu importe la latence
iptables -A PREROUTING -t mangle -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
iptables -A PREROUTING -t mangle -p tcp --sport nntp -j TOS --set-tos Maximize-Throughput
 
#on met le nat et le masquerading en place
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
 
# Toutes les connexions qui sortent du LAN vers le Net sont acceptées
iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
# Seules les connexions déjà établies ou en relation avec des connexions établies sont acceptées venant du Net vers le LAN
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
#on interdit le spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]  
        then  
        for filtre in /proc/sys/net/ipv4/conf/*/rp_filter  
        do  
        echo 1 > $filtre  
done  
fi  
 
####################################
#On verifie la validité des paquets#
####################################
iptables -N CHECK_VALID
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID --tcp-flags ALL FIN,PSH,URG -j LOG --log-prefix '[IPTABLES X-max Packet] '  
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID --tcp-flags ALL FIN,PSH,URG -j DROP
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID --tcp-flags ALL NONE -j LOG --log-prefix '[IPTABLES NULL scan packet] '
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID --tcp-flags ALL NONE -j DROP
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID --tcp-flags ALL SYN,FIN -j LOG --log-prefix '[IPTABLES Syn-Fin packet] '
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID --tcp-flags ALL SYN,FIN -j DROP
#iptables -A CHECK_VALID -p tcp -m state --state NEW,RELATED ! --syn -j LOG --log-prefix '[IPTABLES ACK packet] '
iptables -A CHECK_VALID -p tcp -m state --state NEW,RELATED ! --syn -j REJECT
#iptables -A CHECK_VALID -p tcp -m state --state ESTABLISHED --syn -j LOG --log-prefix '[IPTABLES SYN packet] '
iptables -A CHECK_VALID -p tcp -m state --state ESTABLISHED --syn -j REJECT
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID,RELATED --tcp-flags ALL FIN -j LOG --log-prefix '[IPTABLES FIN packet]'
iptables -A CHECK_VALID -p tcp -m state --state NEW,INVALID,RELATED --tcp-flags ALL FIN -j REJECT
iptables -A CHECK_VALID -i ppp0 -m state --state INVALID -j LOG --log-prefix '[IPTABLES Paquet invalide] '
iptables -A CHECK_VALID -i ppp0 -m state --state INVALID -j DROP
 
#On se premunti contre les scans
iptables -A CHECK_VALID -i ppp0 -p tcp --syn -m limit --limit 10/m -j RETURN
#iptables -A CHECK_VALID -i ppp0 -p tcp --syn -m limit --limit 1/m -j LOG --log-prefix '[IPTABLES syn flood] '
iptables -A CHECK_VALID -i ppp0 -p tcp --syn -j DROP
 
#on fait passer tous les paquets par la
iptables -A INPUT -i ppp0 -j CHECK_VALID
iptables -A FORWARD -o eth0  -j CHECK_VALID
iptables -A FORWARD -o eth1 -j CHECK_VALID
 
#on autorise les connections etablies
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
 
#################################
#Ouverture des ports specifiques#
#################################
 
#on autorise le ping
#iptables -A INPUT -p icmp -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state NEW,RELATED -j ACCEPT
 
#acces aux serveurs web
iptables -A INPUT -i ppp0 -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp --dport 80 -m state --state NEW -j ACCEPT
 
#acces aux serveurs https
#iptables -A INPUT -i ppp0 -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 443 -m state --state NEW -j ACCEPT
 
#acces aux serveurs ftp
iptables -A INPUT -i ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT  
 
#acces aux serveurs smtp
iptables -A OUTPUT -o ppp0 -p tcp --dport 25 -m state --state NEW -j ACCEPT
 
#acces aux serveurs pop3
iptables -A OUTPUT -o ppp0 -p tcp --dport 110 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp --dport 110 -m state --state NEW -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 110 -m state --state NEW -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --dport 110 -m state --state NEW -j ACCEPT
 
#acces aux serveurs ssh
iptables -A INPUT -i ppp0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
 
#acces aux serveurs Yahoo
iptables -A OUTPUT -o ppp0 -p tcp --dport 5050 -m state --state NEW -j ACCEPT
 
#acces aux serveurs Icq
iptables -A OUTPUT -o ppp0 -p tcp --dport 5190 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 4000:4100 -m state --state NEW -j ACCEPT
 
#acces au serveur edk (desactivé car plus utilisé)
#iptables -A FORWARD -i ppp0 -p tcp --dport 4662 -j ACCEPT
#iptables -A PREROUTING -t nat -i ppp0 -p tcp --dport 4662 -j DNAT --to 192.168.0.2
#iptables -A INPUT -i ppp0 -p tcp --dport 4662 -j ACCEPT
 
#acces au serveur XXX
#iptables -A INPUT -i ppp0 -p tcp --dport XXX -m state --state NEW -j ACCEPT
#iptables -A OUTPUT -o ppp0 -p tcp --sport XXX -m state --state NEW -j ACCEPT
 
#on autorise les dns sur la passerelle
iptables -A OUTPUT -o ppp0 -p tcp -d 212.32.27.5 --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp -d 212.32.27.5 --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp -d 127.0.0.1 --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp -d 127.0.0.1 --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp -d 213.228.0.168 --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp -d 213.228.0.168 --dport 53 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -s 212.32.27.5 --dport 53 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -s 212.32.27.5 --dport 53 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -s 213.228.0.168 --dport 53 -j ACCEPT  
iptables -A INPUT -i ppp0 -p udp -s 213.228.0.168 --dport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 192.168.1.2 --dport 53 -j ACCEPT  
iptables -A INPUT -i eth1 -p udp -s 192.168.1.2 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 192.168.0.2 --dport 53 -j ACCEPT  
iptables -A INPUT -i eth0 -p udp -s 192.168.0.2 --dport 53 -j ACCEPT
 
 
        echo "Done."
}
 
passoire(){
#on purge les tables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
 
#On accepte les packets par defaut
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT
 
iptables -t nat -P PREROUTING ACCEPT
}
 
case "$1" in
   start)
        flush
        start
      ;;
   
   stop)
      flush
      ;;
   restart)
      flush && start
      ;;
   passoire)
      passoire
      ;;
   *)
   echo "Usage: /etc/init.d/firewall {start|restart|passoire|stop}"
   exit 1
      ;;
esac
 
exit 0


---------------
-= In Kik00 101 I trust :o =-
Reply

Marsh Posté le 18-07-2003 à 14:32:54    

c'est pour ca que je peux aussi me connecter sur le bureau a distance avec windows (une machine sur le reseau) sur une machine qui est sur le net alors que je n'ai pas autoriser ce port?
 
mais y'a moyen d'autoriser pour les machines du reseau les meme ports que ceux autorisés pour la passerelle?

Reply

Marsh Posté le 18-07-2003 à 14:35:15    

Astro a écrit :


mais y'a moyen d'autoriser pour les machines du reseau les meme ports que ceux autorisés pour la passerelle?


 
bah oui il faut virer ta regle par defaut accept pour tt ce qui vient du rezo local, et specifier ce que tu veux laisser entrer comme tu as fait pour ton autre interface

Reply

Marsh Posté le 18-07-2003 à 14:35:23    

Astro a écrit :

c'est pour ca que je peux aussi me connecter sur le bureau a distance avec windows (une machine sur le reseau) sur une machine qui est sur le net alors que je n'ai pas autoriser ce port?
 
mais y'a moyen d'autoriser pour les machines du reseau les meme ports que ceux autorisés pour la passerelle?


tu peux detailler exactement la connection d'ou vers ou tu veux autoriser ?


---------------
-= In Kik00 101 I trust :o =-
Reply

Marsh Posté le 18-07-2003 à 14:44:11    

voila ce que j'aimerais faire:
sur mon serveur ou y'a le modem, j'autorise par exemple le ftp, le www, ssh et je voudrais que les machine du reseau soit restreintes aux memes regles voila.
plus certains autres port pour les machines windows comme msn, bureau a distance pour me connecter sur un serveur sur le net.
 
j'espere que j'ai été a peu pres clair  :??:

Reply

Marsh Posté le 18-07-2003 à 14:46:07    

bah il suffit de tout mettre en drop par defaut pr le reseau local
et de faire les memes regles avec ethX qu'avec ppp0


---------------
-= In Kik00 101 I trust :o =-
Reply

Marsh Posté le 18-07-2003 à 14:46:49    

si tu n'autorise pas aussi le dns tu vas avoir du mal a surfer ...

Reply

Marsh Posté le 18-07-2003 à 14:57:50    

kayasax a écrit :

si tu n'autorise pas aussi le dns tu vas avoir du mal a surfer ...


 
je l'ai autorisé :

# on autorise le dns
iptables -A INPUT -i tun0 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i tun0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 53 -j ACCEPT


 
mais c'est sur les machines en local faut que je mette ladresse du serveur dns :)

Reply

Marsh Posté le 18-07-2003 à 15:35:55    

je veux essayer de laisser au reseau local juste le port 80 mais je n'y arrive pas, j'ai essayé ca:


# on autorise le dns
iptables -A FORWARD -i eth0 -o tun0 --protocol udp --source-port 53 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 --protocol tcp --destination-port 53 -j ACCEPT
 
 
# acces a internet pour les machines du reseau local
iptables -A FORWARD -i eth0 -o tun0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT


 
je dosi faire comment?

Reply

Marsh Posté le 18-07-2003 à 15:35:55   

Reply

Marsh Posté le 18-07-2003 à 16:03:54    

Astro a écrit :

je veux essayer de laisser au reseau local juste le port 80 mais je n'y arrive pas, j'ai essayé ca:


# on autorise le dns
iptables -A FORWARD -i eth0 -o tun0 --protocol udp --source-port 53 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 --protocol tcp --destination-port 53 -j ACCEPT
 
 
# acces a internet pour les machines du reseau local
iptables -A FORWARD -i eth0 -o tun0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT


 
je dosi faire comment?  


 
tes regles de dns ne sont pas bonnes. Avec les tiennes tu autorise le forward d'un truc venant d'internet vers le port 53 de ton pc. Remplaces les -dport par -sport et vice versa
 
idem pour l'acces internet
 
ensuite pour le dns, il faut que tu declares les dns de ton fai sur les machines du reseau local
 

Reply

Marsh Posté le 18-07-2003 à 17:56:07    

c'est bon ca marche, merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed