LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
LinkBack Search this Thread
Old 09-06-2004, 05:23 PM   #16
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348

here's my contribution on the mac address thing...

i've put the relevant changes in bold... i'll try to contribute something for the other issues soon...

i think this should work fine, but i haven't been able to test it yet... let me know how it goes...


Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LOOPBACK_INTERFACE="lo"
LOOPBACK_IP="127.0.0.1"
EXTERNAL_INTERFACE="eth1"
EXTERNAL_IP="81.196.55.xxx"
LOCAL_INTERFACE="eth0"
LOCAL_IP="192.168.0.2"
LOCAL_NETWORK="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT

$IPT -A INPUT -p ALL -m state --state INVALID -j DROP
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LOOPBACK_INTERFACE -j ACCEPT
$IPT -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A INPUT -p ALL -i $LOCAL_INTERFACE -s ! $LOCAL_NETWORK -j DROP
$IPT -A INPUT -p ALL -i $EXTERNAL_INTERFACE -s $LOCAL_NETWORK -j DROP
$IPT -A INPUT -p UDP -i $LOCAL_INTERFACE -s 192.168.0.5 -m mac \
--mac-source xx.xx.xx.xx.xx.xx --dport 53 -j ACCEPT
$IPT -A INPUT -p UDP -i $LOCAL_INTERFACE -s 192.168.0.9 -m mac \
--mac-source xx.xx.xx.xx.xx.xx --dport 53 -j ACCEPT
$IPT -A INPUT -p UDP -i $LOCAL_INTERFACE -s 192.168.0.19 -m mac \
--mac-source xx.xx.xx.xx.xx.xx --dport 53 -j ACCEPT
#$IPT -A INPUT -p TCP -i $LOCAL_INTERFACE --dport 22 -j ACCEPT
#$IPT -A INPUT -p ICMP -i $LOCAL_INTERFACE --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "

$IPT -A OUTPUT -p ALL -o $LOOPBACK_INTERFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LOOPBACK_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LOCAL_INTERFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $EXTERNAL_INTERFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $EXTERNAL_IP -j ACCEPT

$IPT -A FORWARD -p ALL -m state --state INVALID -j DROP
$IPT -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A FORWARD -p ALL -i $LOCAL_INTERFACE -s ! $LOCAL_NETWORK -j DROP
$IPT -A FORWARD -p ALL -i $EXTERNAL_INTERFACE -s $LOCAL_NETWORK -j DROP
$IPT -A FORWARD -p ALL -i $LOCAL_INTERFACE -o $EXTERNAL_INTERFACE \
-s 192.168.0.5 -m mac --mac-source xx.xx.xx.xx.xx.xx -j ACCEPT
$IPT -A FORWARD -p ALL -i $LOCAL_INTERFACE -o $EXTERNAL_INTERFACE \
-s 192.168.0.9 -m mac --mac-source xx.xx.xx.xx.xx.xx -j ACCEPT
$IPT -A FORWARD -p ALL -i $LOCAL_INTERFACE -o $EXTERNAL_INTERFACE \
-s 192.168.0.19 -m mac --mac-source xx.xx.xx.xx.xx.xx -j ACCEPT
$IPT -A FORWARD -p ALL -i $EXTERNAL_INTERFACE -o $LOCAL_INTERFACE \
-m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE -j SNAT \
--to-source $EXTERNAL_IP

PS: what is greater? the things you want to allow or the things you want to block?

i ask because, for example, if you only want to allow people on those mac addresses to SURF THE WEB, then you could accomplish that with one rule which would block any traffic that isn't WEB traffic, without having to block other things one by one... like, you could block everything, and then allow only certain things... let me know where you stand here please...




Last edited by win32sux; 09-06-2004 at 05:45 PM.
 
Old 09-06-2004, 07:46 PM   #17
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
i've polished the script a little... added a few chains and labels to help make things easier...

i also made some small changes here and there...

this setup only allows web traffic from certain mac/ip addresses on the lan to the internet...

what other traffic do you want to allow besides web traffic??

you can easily allow other types of traffic by using the "FORWARD_MAC" chain...


Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="81.196.55.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT

$IPT -N BAD_PACKETS
$IPT -N INPUT_MAC
$IPT -N FORWARD_MAC


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j INPUT_MAC
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p ALL -j FORWARD_MAC
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p ALL -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN


###############################################################################
### INPUT_MAC
###############################################################################

### Allow DNS requests from the LAN to the gateway:
$IPT -A INPUT_MAC -p UDP -i $LAN_IFACE -s 192.168.0.5 -m mac --mac-source \
xx.xx.xx.xx.xx.xx --dport 53 -j ACCEPT
$IPT -A INPUT_MAC -p UDP -i $LAN_IFACE -s 192.168.0.9 -m mac --mac-source \
xx.xx.xx.xx.xx.xx --dport 53 -j ACCEPT
$IPT -A INPUT_MAC -p UDP -i $LAN_IFACE -s 192.168.0.19 -m mac --mac-source \
xx.xx.xx.xx.xx.xx --dport 53 -j ACCEPT

### Allow pings from the LAN to the gateway:
$IPT -A INPUT_MAC -p ICMP -i $LAN_IFACE --icmp-type 8 -m mac --mac-source \
xx.xx.xx.xx.xx.xx -s 192.168.0.5 -j ACCEPT
$IPT -A INPUT_MAC -p ICMP -i $LAN_IFACE --icmp-type 8 -m mac --mac-source \
xx.xx.xx.xx.xx.xx -s 192.168.0.9 -j ACCEPT
$IPT -A INPUT_MAC -p ICMP -i $LAN_IFACE --icmp-type 8 -m mac --mac-source \
xx.xx.xx.xx.xx.xx -s 192.168.0.19 -j ACCEPT
$IPT -A INPUT_MAC -p ALL -j RETURN


###############################################################################
### FORWARD_MAC
###############################################################################

### Allow WWW traffic from the LAN to the Internet:
$IPT -A FORWARD_MAC -p TCP -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.5 -m \
mac --mac-source xx.xx.xx.xx.xx.xx --dport 80 -j ACCEPT
$IPT -A FORWARD_MAC -p TCP -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.9 -m \
mac --mac-source xx.xx.xx.xx.xx.xx --dport 80 -j ACCEPT
$IPT -A FORWARD_MAC -p TCP -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.19 -m \
mac --mac-source xx.xx.xx.xx.xx.xx --dport 80 -j ACCEPT
$IPT -A FORWARD_MAC -p ALL -j RETURN


echo "So let it be written, so let it be done..."

Last edited by win32sux; 09-06-2004 at 08:00 PM.
 
Old 09-06-2004, 10:06 PM   #18
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
i've updated the script again...

i think it's better to use a chain for each of your mac-allowed hosts... it makes it simpler to manage everything, and the packets will have to travel less rules...

you can manage the mac address verification in two locations: INPUT_MACS for input and FORWARD_MACS for routing...

you can easily control the allowed traffic for each host from the "HOST" chains...

in the commented examples in chains INPUT_HOST_C and FORWARD_HOST_C, you'll see how easily host (192.168.0.19) can be made "special", where it not only gets to connect to the dns daemon on the gateway and web servers on the internet, but also to ssh and ftp daemons on the internet (as well as ping internet IPs), and it gets to connect to the ssh daemon on the gateway, while hosts 192.168.0.5 and 192.168.0.9 can only connect to internet web servers...


Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="81.196.55.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT


###############################################################################
### Let's make some chains...
###############################################################################

$IPT -N BAD_PACKETS
$IPT -N INPUT_MACS
$IPT -N INPUT_HOST_A
$IPT -N INPUT_HOST_B
$IPT -N INPUT_HOST_C
$IPT -N FORWARD_MACS
$IPT -N FORWARD_HOST_A
$IPT -N FORWARD_HOST_B
$IPT -N FORWARD_HOST_C


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j INPUT_MACS
#$IPT -A INPUT -p TCP -i $INET_IFACE --dport 22 -j ACCEPT
#$IPT -A INPUT -p ICMP -i $INET_IFACE --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p ALL -j FORWARD_MACS
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### INPUT_MACS
###############################################################################

$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.5 -m mac --mac-source \
aa:xx:xx:xx:xx:xx -j INPUT_HOST_A
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.9 -m mac --mac-source \
bb:xx:xx:xx:xx:xx -j INPUT_HOST_B
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.19 -m mac --mac-source \
cc:xx:xx:xx:xx:xx -j INPUT_HOST_C
$IPT -A INPUT_MACS -p ALL -j RETURN


###############################################################################
### INPUT_HOST_A
###############################################################################

$IPT -A INPUT_HOST_A -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_A -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_A -p ALL -j RETURN


###############################################################################
### INPUT_HOST_B
###############################################################################

$IPT -A INPUT_HOST_B -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_B -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_B -p ALL -j RETURN


###############################################################################
### INPUT_HOST_C
###############################################################################

$IPT -A INPUT_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
#$IPT -A INPUT_HOST_C -p TCP --dport 22 -j ACCEPT
$IPT -A INPUT_HOST_C -p ALL -j RETURN


###############################################################################
### FORWARD_MACS
###############################################################################

$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.5 -m \
mac --mac-source aa:xx:xx:xx:xx:xx -j FORWARD_HOST_A
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.9 -m \
mac --mac-source bb:xx:xx:xx:xx:xx -j FORWARD_HOST_B
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.19 -m \
mac --mac-source cc:xx:xx:xx:xx:xx -j FORWARD_HOST_C
$IPT -A FORWARD_MACS -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_A
###############################################################################

$IPT -A FORWARD_HOST_A -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_A -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_B
###############################################################################

$IPT -A FORWARD_HOST_B -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_B -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_C
###############################################################################

$IPT -A FORWARD_HOST_C -p TCP --dport 80 -j ACCEPT
#$IPT -A FORWARD_HOST_C -p TCP --dport 22 -j ACCEPT
#$IPT -A FORWARD_HOST_C -p TCP --dport 21 -j ACCEPT
#$IPT -A FORWARD_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A FORWARD_HOST_C -p ALL -j RETURN


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p ALL -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
#$IPT -A BAD_PACKETS -p ALL -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN


echo "So let it be written, so let it be done..."

Last edited by win32sux; 09-07-2004 at 02:14 AM.
 
Old 09-07-2004, 03:11 AM   #19
fritz001
Member
 
Registered: Aug 2004
Posts: 88

Original Poster
Rep: Reputation: 17
and another problem i didn't figure howto make it working


for my machine witch is one from lan 192.168.0.4 i want to make dc++ working in active mode

i only know that 411 is the dc++ autentification port tcp protocol

and the dc++ ports is in range 3200 -32000 tcp protocol

dc++ 1414 <----only for active mode both tcp/udp protocol are using


so howto setup the firewall to allow for a local machine to run in active mode and howto setup to run in passive mode


and an ftp problem:

on my machine i have a ftp server 192.168.0.4:1415(conection port)


...so howto setup the firewall to translate ftp request 81.196.55.xx:1415 to 192.168.0.4:1415 ???????
 
Old 09-07-2004, 08:43 AM   #20
fritz001
Member
 
Registered: Aug 2004
Posts: 88

Original Poster
Rep: Reputation: 17
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="81.196.55.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT


###############################################################################
### Let's make some chains...
###############################################################################

$IPT -N BAD_PACKETS
$IPT -N INPUT_MACS
$IPT -N INPUT_HOST_A
$IPT -N INPUT_HOST_B
$IPT -N INPUT_HOST_C
$IPT -N FORWARD_MACS
$IPT -N FORWARD_HOST_A
$IPT -N FORWARD_HOST_B
$IPT -N FORWARD_HOST_C


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j INPUT_MACS
#$IPT -A INPUT -p TCP -i $INET_IFACE --dport 22 -j ACCEPT
#$IPT -A INPUT -p ICMP -i $INET_IFACE --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p ALL -j FORWARD_MACS
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### INPUT_MACS
###############################################################################


$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.4 -m mac --mac-source \
11:22:33:44:55:66 -j INPUT_HOST_C
$IPT -A INPUT_MACS -p ALL -j RETURN


###############################################################################
### INPUT_HOST_C
###############################################################################

$IPT -A INPUT_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_C -p TCP --dport 22 -j ACCEPT
$IPT -A INPUT_HOST_C -p ALL -j RETURN


###############################################################################
### FORWARD_MACS
###############################################################################

$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.4 -m \
mac --mac-source 11:22:33:44:55:66 -j FORWARD_HOST_C
$IPT -A FORWARD_MACS -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_C
###############################################################################

$IPT -A FORWARD_HOST_C -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_C -p TCP --dport 22 -j ACCEPT
$IPT -A FORWARD_HOST_C -p TCP --dport 21 -j ACCEPT
$IPT -A FORWARD_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A FORWARD_HOST_C -p ALL -j RETURN


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p ALL -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
#$IPT -A BAD_PACKETS -p ALL -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN

dnsmasq
#################################################################################

welllllll, the script doesn't work, i mean on my machine with ip: 192.168.0.4 and MAC ADRESS 11:22:33:44:55:66 no more browse, no more pings, no more ftp.....

the script seems to be ok, then what is wrong ?
 
Old 09-09-2004, 01:37 AM   #21
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
here's my contribution on the ftp port forwarding issue... i've put the relevant stuff in bold, as usual...

Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="81.196.55.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT


###############################################################################
### Let's make some chains...
###############################################################################

$IPT -N BAD_PACKETS
$IPT -N INPUT_MACS
$IPT -N INPUT_SERVER1
$IPT -N INPUT_HOST_A
$IPT -N INPUT_HOST_B
$IPT -N INPUT_HOST_C
$IPT -N FORWARD_MACS
$IPT -N FORWARD_SERVER1
$IPT -N FORWARD_HOST_A
$IPT -N FORWARD_HOST_B
$IPT -N FORWARD_HOST_C


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j INPUT_MACS
#$IPT -A INPUT -p TCP -i $INET_IFACE --dport 22 -j ACCEPT
#$IPT -A INPUT -p ICMP -i $INET_IFACE --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 1415 -j ACCEPT
$IPT -A FORWARD -p ALL -j FORWARD_MACS
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### PREROUTING
###############################################################################

$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE --dport 21 -j DNAT \
--to-destination 192.168.0.4:1415


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### INPUT_MACS
###############################################################################

$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.4 -m mac --mac-source \
zz:xx:xx:xx:xx:xx -j INPUT_SERVER1
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.5 -m mac --mac-source \
aa:xx:xx:xx:xx:xx -j INPUT_HOST_A
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.9 -m mac --mac-source \
bb:xx:xx:xx:xx:xx -j INPUT_HOST_B
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.19 -m mac --mac-source \
cc:xx:xx:xx:xx:xx -j INPUT_HOST_C
$IPT -A INPUT_MACS -p ALL -j RETURN


###############################################################################
### INPUT_SERVER1
###############################################################################

#$IPT -A INPUT_SERVER1 -p UDP --dport 53 -j ACCEPT
#$IPT -A INPUT_SERVER1 -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_SERVER1 -p ALL -j RETURN


###############################################################################
### INPUT_HOST_A
###############################################################################

$IPT -A INPUT_HOST_A -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_A -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_A -p ALL -j RETURN


###############################################################################
### INPUT_HOST_B
###############################################################################

$IPT -A INPUT_HOST_B -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_B -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_B -p ALL -j RETURN


###############################################################################
### INPUT_HOST_C
###############################################################################

$IPT -A INPUT_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_C -p ALL -j RETURN


###############################################################################
### FORWARD_MACS
###############################################################################

$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.4 -m \
mac --mac-source zz:xx:xx:xx:xx:xx -j FORWARD_SERVER1
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.5 -m \
mac --mac-source aa:xx:xx:xx:xx:xx -j FORWARD_HOST_A
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.9 -m \
mac --mac-source bb:xx:xx:xx:xx:xx -j FORWARD_HOST_B
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.19 -m \
mac --mac-source cc:xx:xx:xx:xx:xx -j FORWARD_HOST_C
$IPT -A FORWARD_MACS -p ALL -j RETURN


###############################################################################
### FORWARD_SERVER1
###############################################################################

$IPT -A FORWARD_SERVER1 -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD_SERVER1 -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_A
###############################################################################

$IPT -A FORWARD_HOST_A -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_A -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_B
###############################################################################

$IPT -A FORWARD_HOST_B -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_B -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_C
###############################################################################

$IPT -A FORWARD_HOST_C -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_C -p ALL -j RETURN


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p ALL -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
#$IPT -A BAD_PACKETS -p ALL -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN


echo "So let it be written, so let it be done..."

here's the only things that are allowed in the script FYI, AFAIK:

machine SERVER1:
- tcp traffic from the internet to $INET_IP:21 (ftp) is forwarded to 192.168.0.4:1415*
- established and related traffic from 192.168.0.4 to the internet

*this is the only traffic that isn't MAC verified for obvious reasons...

machine A:
- established and related traffic from the internet
- web traffic to the internet
- dns traffic to the gateway
- icmp 8 (ping) to the gateway

machine B:
- established and related traffic from the internet
- web traffic to the internet
- dns traffic to the gateway
- icmp 8 (ping) to the gateway

machine C:
- established and related traffic from the internet
- web traffic to the internet
- dns traffic to the gateway
- icmp 8 (ping) to the gateway

none of the hosts can ping the internet, they can only ping the gateway, except SERVER1, which can't ping or surf or anything, it can only receive traffic for the ftp daemon and respond to it... it can't establish a connection to a host on the internet on it's own... this is in sync with the security methodology of the rest of the script (allowing only the wanted traffic, denying everything else)...

i haven't been able to test the forwarding, but it should work... let me know how it goes...

i'll try to contribute something for the dc++ issue soon, but i can't make any promises...

good luck...


Last edited by win32sux; 09-09-2004 at 03:00 AM.
 
Old 09-09-2004, 05:06 AM   #22
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
i've added the support for dc++ in active mode... i hope...

=)


Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="81.196.55.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT


###############################################################################
### Let's make some chains...
###############################################################################

$IPT -N BAD_PACKETS
$IPT -N INPUT_MACS
$IPT -N INPUT_SERVER1
$IPT -N INPUT_HOST_A
$IPT -N INPUT_HOST_B
$IPT -N INPUT_HOST_C
$IPT -N FORWARD_MACS
$IPT -N FORWARD_SERVER1
$IPT -N FORWARD_HOST_A
$IPT -N FORWARD_HOST_B
$IPT -N FORWARD_HOST_C


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j INPUT_MACS
#$IPT -A INPUT -p TCP -i $INET_IFACE --dport 22 -j ACCEPT
#$IPT -A INPUT -p ICMP -i $INET_IFACE --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 1415 -j ACCEPT
$IPT -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 555 -j ACCEPT
$IPT -A FORWARD -p UDP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 555 -j ACCEPT
$IPT -A FORWARD -p ALL -j FORWARD_MACS
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### PREROUTING
###############################################################################

$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE --dport 21 -j DNAT \
--to-destination 192.168.0.4:1415
$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE --dport 555 -j DNAT \
--to-destination 192.168.0.4:555
$IPT -t nat -A PREROUTING -p UDP -i $INET_IFACE --dport 555 -j DNAT \
--to-destination 192.168.0.4:555


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### INPUT_MACS
###############################################################################

$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.4 -m mac --mac-source \
zz:xx:xx:xx:xx:xx -j INPUT_SERVER1
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.5 -m mac --mac-source \
aa:xx:xx:xx:xx:xx -j INPUT_HOST_A
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.9 -m mac --mac-source \
bb:xx:xx:xx:xx:xx -j INPUT_HOST_B
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.19 -m mac --mac-source \
cc:xx:xx:xx:xx:xx -j INPUT_HOST_C
$IPT -A INPUT_MACS -p ALL -j RETURN


###############################################################################
### INPUT_SERVER1
###############################################################################

#$IPT -A INPUT_SERVER1 -p UDP --dport 53 -j ACCEPT
#$IPT -A INPUT_SERVER1 -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_SERVER1 -p ALL -j RETURN


###############################################################################
### INPUT_HOST_A
###############################################################################

$IPT -A INPUT_HOST_A -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_A -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_A -p ALL -j RETURN


###############################################################################
### INPUT_HOST_B
###############################################################################

$IPT -A INPUT_HOST_B -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_B -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_B -p ALL -j RETURN


###############################################################################
### INPUT_HOST_C
###############################################################################

$IPT -A INPUT_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_C -p ALL -j RETURN


###############################################################################
### FORWARD_MACS
###############################################################################

$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.4 -m \
mac --mac-source zz:xx:xx:xx:xx:xx -j FORWARD_SERVER1
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.5 -m \
mac --mac-source aa:xx:xx:xx:xx:xx -j FORWARD_HOST_A
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.9 -m \
mac --mac-source bb:xx:xx:xx:xx:xx -j FORWARD_HOST_B
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.19 -m \
mac --mac-source cc:xx:xx:xx:xx:xx -j FORWARD_HOST_C
$IPT -A FORWARD_MACS -p ALL -j RETURN


###############################################################################
### FORWARD_SERVER1
###############################################################################

$IPT -A FORWARD_SERVER1 -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD_SERVER1 -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_A
###############################################################################

$IPT -A FORWARD_HOST_A -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_A -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_B
###############################################################################

$IPT -A FORWARD_HOST_B -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_B -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_C
###############################################################################

$IPT -A FORWARD_HOST_C -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_C -p ALL -j RETURN


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p ALL -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
#$IPT -A BAD_PACKETS -p ALL -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN


echo "So let it be written, so let it be done..."
 
Old 09-10-2004, 06:09 AM   #23
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
ummm... so did the rules work???

Last edited by win32sux; 09-10-2004 at 06:19 AM.
 
Old 09-10-2004, 11:09 AM   #24
fritz001
Member
 
Registered: Aug 2004
Posts: 88

Original Poster
Rep: Reputation: 17
thanks man it was a grea help so far...i've tested the script and so far it worked good


but... i steel have a problem

###############################################################################
### INPUT_HOST_C
###############################################################################

$IPT -A INPUT_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_C -p ALL -j RETURN

$IPT -A INPUT_HOST_C -p TCP --dport 6660:6669 -j ACCEPT <---irc servers

but DCC gets didnt work

/ctcp aaa xdcc send #nr ------- conection established but after 2 second etasblish failed

howto make dcc gets to work ??

2. dc++ active mode did'nt test it
 
Old 09-10-2004, 02:06 PM   #25
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
Quote:
Originally posted by fritz001
$IPT -A INPUT_HOST_C -p TCP --dport 6660:6669 -j ACCEPT
this rule you added allows "host c" to connect to tcp ports 6660:6669 on the gateway...

i get the feeling this isn't what you were trying to accomplish...

remember that INPUT is for the gateway, the hosts on the lan need to have their stuff FORWARDed...

are you trying to give "host c" the ability to use IRC??

Quote:
dc++ active mode did'nt test it
well, the rules i posted were made for active mode, according to the FAQ i used:

http://dcplusplus.sourceforge.net/fa...n&onlynewfaq=1


Last edited by win32sux; 09-10-2004 at 05:16 PM.
 
Old 09-10-2004, 02:23 PM   #26
fritz001
Member
 
Registered: Aug 2004
Posts: 88

Original Poster
Rep: Reputation: 17
Quote:
Originally posted by win32sux
[are you trying to give "host c" the ability to use IRC??

well..... yes i do
 
Old 09-10-2004, 04:34 PM   #27
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
this should enable an IRC client on "host c"... let me know...

Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="81.196.55.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT


###############################################################################
### Let's make some chains...
###############################################################################

$IPT -N BAD_PACKETS
$IPT -N INPUT_MACS
$IPT -N INPUT_SERVER1
$IPT -N INPUT_HOST_A
$IPT -N INPUT_HOST_B
$IPT -N INPUT_HOST_C
$IPT -N FORWARD_MACS
$IPT -N FORWARD_SERVER1
$IPT -N FORWARD_HOST_A
$IPT -N FORWARD_HOST_B
$IPT -N FORWARD_HOST_C


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j INPUT_MACS
#$IPT -A INPUT -p TCP -i $INET_IFACE --dport 22 -j ACCEPT
#$IPT -A INPUT -p ICMP -i $INET_IFACE --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 1415 -j ACCEPT
$IPT -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 555 -j ACCEPT
$IPT -A FORWARD -p UDP -i $INET_IFACE -o $LAN_IFACE -d 192.168.0.4 \
--dport 555 -j ACCEPT
$IPT -A FORWARD -p ALL -j FORWARD_MACS
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### PREROUTING
###############################################################################

$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE --dport 21 -j DNAT \
--to-destination 192.168.0.4:1415
$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE --dport 555 -j DNAT \
--to-destination 192.168.0.4:555
$IPT -t nat -A PREROUTING -p UDP -i $INET_IFACE --dport 555 -j DNAT \
--to-destination 192.168.0.4:555


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### INPUT_MACS
###############################################################################

$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.4 -m mac --mac-source \
zz:xx:xx:xx:xx:xx -j INPUT_SERVER1
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.5 -m mac --mac-source \
aa:xx:xx:xx:xx:xx -j INPUT_HOST_A
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.9 -m mac --mac-source \
bb:xx:xx:xx:xx:xx -j INPUT_HOST_B
$IPT -A INPUT_MACS -p ALL -i $LAN_IFACE -s 192.168.0.19 -m mac --mac-source \
cc:xx:xx:xx:xx:xx -j INPUT_HOST_C
$IPT -A INPUT_MACS -p ALL -j RETURN


###############################################################################
### INPUT_SERVER1
###############################################################################

#$IPT -A INPUT_SERVER1 -p UDP --dport 53 -j ACCEPT
#$IPT -A INPUT_SERVER1 -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_SERVER1 -p ALL -j RETURN


###############################################################################
### INPUT_HOST_A
###############################################################################

$IPT -A INPUT_HOST_A -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_A -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_A -p ALL -j RETURN


###############################################################################
### INPUT_HOST_B
###############################################################################

$IPT -A INPUT_HOST_B -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_B -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_B -p ALL -j RETURN


###############################################################################
### INPUT_HOST_C
###############################################################################

$IPT -A INPUT_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_HOST_C -p ALL -j RETURN


###############################################################################
### FORWARD_MACS
###############################################################################

$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.4 -m \
mac --mac-source zz:xx:xx:xx:xx:xx -j FORWARD_SERVER1
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.5 -m \
mac --mac-source aa:xx:xx:xx:xx:xx -j FORWARD_HOST_A
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.9 -m \
mac --mac-source bb:xx:xx:xx:xx:xx -j FORWARD_HOST_B
$IPT -A FORWARD_MACS -p ALL -i $LAN_IFACE -o $INET_IFACE -s 192.168.0.19 -m \
mac --mac-source cc:xx:xx:xx:xx:xx -j FORWARD_HOST_C
$IPT -A FORWARD_MACS -p ALL -j RETURN


###############################################################################
### FORWARD_SERVER1
###############################################################################

$IPT -A FORWARD_SERVER1 -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD_SERVER1 -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_A
###############################################################################

$IPT -A FORWARD_HOST_A -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_A -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_B
###############################################################################

$IPT -A FORWARD_HOST_B -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_B -p ALL -j RETURN


###############################################################################
### FORWARD_HOST_C
###############################################################################

$IPT -A FORWARD_HOST_C -p TCP --dport 6660:6669 -j ACCEPT
$IPT -A FORWARD_HOST_C -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_HOST_C -p ALL -j RETURN


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p ALL -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
#$IPT -A BAD_PACKETS -p ALL -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN


echo "So let it be written, so let it be done..."
 
Old 09-10-2004, 05:03 PM   #28
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
i made some improvements to the script once more...

with this new scheme, every host on your lan has two chains assigned: one controls traffic from the host to the gateway (INPUT_LAN2GATE_*), and the other controls traffic from the host to the internet (FORWARD_LAN2INET_*)...

there's also chains to easily control traffic from the internet to the gateway (INET2GATE) and from the internet to the lan (INET2LAN)...

Code:
#!/bin/sh

IPT="/usr/sbin/iptables"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IFACE="eth1"
INET_IP="xxx.xxx.xxx.xxx"
LAN_IFACE="eth0"
LAN_IP="192.168.0.2"
LAN="192.168.0.0/24"

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_mac

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT


###############################################################################
### Let's make some chains...
###############################################################################

$IPT -N INPUT_LAN2GATE
$IPT -N INPUT_LAN2GATE_SERVER1
$IPT -N INPUT_LAN2GATE_HOST_A
$IPT -N INPUT_LAN2GATE_HOST_B
$IPT -N INPUT_LAN2GATE_HOST_C
$IPT -N INPUT_INET2GATE
$IPT -N FORWARD_LAN2INET
$IPT -N FORWARD_LAN2INET_SERVER1
$IPT -N FORWARD_LAN2INET_HOST_A
$IPT -N FORWARD_LAN2INET_HOST_B
$IPT -N FORWARD_LAN2INET_HOST_C
$IPT -N FORWARD_INET2LAN
$IPT -N BAD_PACKETS


###############################################################################
### INPUT
###############################################################################

$IPT -A INPUT -p ALL -m state --state INVALID -j DROP
#$IPT -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
$IPT -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -p ALL -j BAD_PACKETS
$IPT -A INPUT -p ALL -i $INET_IFACE -j INPUT_INET2GATE
$IPT -A INPUT -p ALL -i $LAN_IFACE -j INPUT_LAN2GATE
$IPT -A INPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "INPUT DROP: "


###############################################################################
### OUTPUT
###############################################################################

$IPT -A OUTPUT -p ALL -m state --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT
$IPT -A OUTPUT -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "OUTPUT DROP: "


###############################################################################
### FORWARD
###############################################################################

$IPT -A FORWARD -p ALL -m state --state INVALID -j DROP
$IPT -A FORWARD -p ALL -j BAD_PACKETS
$IPT -A FORWARD -p ALL -i $INET_IFACE -o $LAN_IFACE -j FORWARD_INET2LAN
$IPT -A FORWARD -p ALL -i $LAN_IFACE -o $INET_IFACE -j FORWARD_LAN2INET
$IPT -A FORWARD -m limit --limit 12/minute --limit-burst 12 -j LOG \
--log-prefix "FORWARD DROP: "


###############################################################################
### PREROUTING
###############################################################################

$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $INET_IP --dport 21 \
-j DNAT --to-destination 192.168.0.4:1415
$IPT -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $INET_IP --dport 555 \
-j DNAT --to-destination 192.168.0.4:555
$IPT -t nat -A PREROUTING -p UDP -i $INET_IFACE -d $INET_IP --dport 555 \
-j DNAT --to-destination 192.168.0.4:555


###############################################################################
### POSTROUTING
###############################################################################

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


###############################################################################
### INPUT_LAN2GATE
###############################################################################

$IPT -A INPUT_LAN2GATE -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT_LAN2GATE -p ALL -s 192.168.0.4 -m mac --mac-source \
zz:xx:xx:xx:xx:xx -j INPUT_LAN2GATE_SERVER1
$IPT -A INPUT_LAN2GATE -p ALL -s 192.168.0.5 -m mac --mac-source \
aa:xx:xx:xx:xx:xx -j INPUT_LAN2GATE_HOST_A
$IPT -A INPUT_LAN2GATE -p ALL -s 192.168.0.9 -m mac --mac-source \
bb:xx:xx:xx:xx:xx -j INPUT_LAN2GATE_HOST_B
$IPT -A INPUT_LAN2GATE -p ALL -s 192.168.0.19 -m mac --mac-source \
cc:xx:xx:xx:xx:xx -j INPUT_LAN2GATE_HOST_C
$IPT -A INPUT_LAN2GATE -p ALL -j RETURN


###############################################################################
### INPUT_LAN2GATE_SERVER1
###############################################################################

#$IPT -A INPUT_LAN2GATE_SERVER1 -p UDP --dport 53 -j ACCEPT
#$IPT -A INPUT_LAN2GATE_SERVER1 -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_LAN2GATE_SERVER1 -p ALL -j RETURN


###############################################################################
### INPUT_LAN2GATE_HOST_A
###############################################################################

$IPT -A INPUT_LAN2GATE_HOST_A -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_LAN2GATE_HOST_A -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_LAN2GATE_HOST_A -p ALL -j RETURN


###############################################################################
### INPUT_LAN2GATE_HOST_B
###############################################################################

$IPT -A INPUT_LAN2GATE_HOST_B -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_LAN2GATE_HOST_B -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_LAN2GATE_HOST_B -p ALL -j RETURN


###############################################################################
### INPUT_LAN2GATE_HOST_C
###############################################################################

$IPT -A INPUT_LAN2GATE_HOST_C -p UDP --dport 53 -j ACCEPT
$IPT -A INPUT_LAN2GATE_HOST_C -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_LAN2GATE_HOST_C -p ALL -j RETURN


###############################################################################
### INPUT_INET2GATE
###############################################################################

$IPT -A INPUT_INET2GATE -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
#$IPT -A INPUT_INET2GATE -p TCP --dport 22 -j ACCEPT
#$IPT -A INPUT_INET2GATE -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT_INET2GATE -p ALL -j RETURN


###############################################################################
### FORWARD_LAN2INET
###############################################################################

$IPT -A FORWARD_LAN2INET -p ALL -s 192.168.0.4 -m mac --mac-source \
zz:xx:xx:xx:xx:xx -j FORWARD_LAN2NET_SERVER1
$IPT -A FORWARD_LAN2INET -p ALL -s 192.168.0.5 -m mac --mac-source \
aa:xx:xx:xx:xx:xx -j FORWARD_LAN2NET_HOST_A
$IPT -A FORWARD_LAN2INET -p ALL -s 192.168.0.9 -m mac --mac-source \
bb:xx:xx:xx:xx:xx -j FORWARD_LAN2NET_HOST_B
$IPT -A FORWARD_LAN2INET -p ALL -s 192.168.0.19 -m mac --mac-source \
cc:xx:xx:xx:xx:xx -j FORWARD_LAN2NET_HOST_C
$IPT -A FORWARD_LAN2INET -p ALL -j RETURN


###############################################################################
### FORWARD_LAN2INET_SERVER1
###############################################################################

$IPT -A FORWARD_LAN2INET_SERVER1 -p ALL -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD_LAN2INET_SERVER1 -p ALL -j RETURN


###############################################################################
### FORWARD_LAN2INET_HOST_A
###############################################################################

$IPT -A FORWARD_LAN2INET_HOST_A -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_LAN2INET_HOST_A -p ALL -j RETURN


###############################################################################
### FORWARD_LAN2INET_HOST_B
###############################################################################

$IPT -A FORWARD_LAN2INET_HOST_B -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_LAN2INET_HOST_B -p ALL -j RETURN


###############################################################################
### FORWARD_LAN2INET_HOST_C
###############################################################################

$IPT -A FORWARD_LAN2INET_HOST_C -p TCP --dport 6660:6669 -j ACCEPT
$IPT -A FORWARD_LAN2INET_HOST_C -p TCP --dport 80 -j ACCEPT
$IPT -A FORWARD_LAN2INET_HOST_C -p ALL -j RETURN


###############################################################################
### FORWARD_INET2LAN
###############################################################################

$IPT -A FORWARD_INET2LAN -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD_INET2LAN -p TCP -d 192.168.0.4 --dport 1415 -j ACCEPT
$IPT -A FORWARD_INET2LAN -p TCP -d 192.168.0.4 --dport 555 -j ACCEPT
$IPT -A FORWARD_INET2LAN -p UDP -d 192.168.0.4 --dport 555 -j ACCEPT
$IPT -A FORWARD_INET2LAN -p ALL -j RETURN


###############################################################################
### BAD_PACKETS
###############################################################################

$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s ! $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $LAN_IFACE -s $LAN_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LAN -j DROP
$IPT -A BAD_PACKETS -p ALL -i $INET_IFACE -s $LO_IP -j DROP
$IPT -A BAD_PACKETS -p ALL -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -p ALL -j RETURN


echo "So let it be written, so let it be done..."

Last edited by win32sux; 09-10-2004 at 07:14 PM.
 
Old 09-11-2004, 01:08 PM   #29
fritz001
Member
 
Registered: Aug 2004
Posts: 88

Original Poster
Rep: Reputation: 17
thank you mann it's a 100% working script...

so far so gut aber i have..... how should i say...

i want to create acces groups

on my lan there are 28 persons who have acces to net and another 70 no acces members

so let say
group1_full_net_acces (from the 28 persons only 20 hav full acces to net no restriction applied)

ip: 192.168.0.5 and mac 11:22:33:44:55:66
ip: 192.168.0.7 and mac 11:22:33:44:55:61
ip: 192.168.0.4 and mac 11:22:33:44:55:64
ip: 192.168.0.12 and mac 11:22:33:44:55:69
.
.
.
.
.
ip: 192.168.0.37 and mac 11:22:33:44:55:21

full access ftp, http, irc, messenger, ssh, pop3, imap...and so on


group2_limited_net_acces (for the rest of 8 persons)

ip: 192.168.0.33 and mac 11:22:33:44:55:26
ip: 192.168.0.71 and mac 11:22:33:44:55:51
ip: 192.168.0.45 and mac 11:22:33:44:55:14
ip: 192.168.0.112 and mac 11:22:33:44:55:59

they will only have acces to http, yahoo messenger and IRC


now how to set up the firewall to create this kind of rules


i try to modify last script but didn't figure out how to create the new rules...
 
Old 09-11-2004, 09:18 PM   #30
win32sux
Moderator
 
Registered: Jul 2003
Location: Los Angeles
Distribution: Ubuntu
Posts: 9,847

Rep: Reputation: 348Reputation: 348Reputation: 348Reputation: 348
what protocol and port does yahoo messenger use??
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
NAT problem akmon Linux - Networking 1 11-10-2005 12:00 PM
Susefirewall2 Nat Problem / nat 1:1 trubi Linux - Distributions 0 07-20-2004 06:50 AM
NAT problem Comatose51 Linux - Networking 1 06-23-2003 11:41 PM
What's the difference between Linux-NAT and Sygate-NAT? yuzuohong Linux - Networking 0 08-07-2002 05:07 AM
RH 7.3 NAT problem guanyu Linux - Networking 13 07-02-2002 06:52 AM


All times are GMT -5. The time now is 06:09 AM.

Main Menu
 
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: @linuxquestions
Open Source Consulting | Domain Registration