Portál AbcLinuxu, 17. července 2025 13:45


Dotaz: Firewall, chyba

22.1.2010 19:41 Sttepa
Firewall, chyba
Přečteno: 215×
Odpovědět | Admin
Ahoj, priznam se, ze jsem si nasel script pro iptables. Ale neco se mu nelibi a ja jsem takova lama, ze to nejsem schopnej ani opravit.(pravdepodobne je to pro starsi iptables):

takze chyba(Bad argument `icmp_packets') je na radku s:

iptables -A INPUT -p ICMP -i $LAN_INTERFACE_1 -j icmp_packets ....

a celej kod pro firewall je tady:
#!/bin/sh

EXTERNAL_INTERFACE="ra0"
LOOPBACK_INTERFACE="lo"

LAN_BCAST_ADDRESS="192.168.2.255"
# Adjust LAN_BCAST_ADDRESS to suit your network

# Get the IP Addresses for the network cards
IPADDR=`/sbin/ifconfig $EXTERNAL_INTERFACE | grep -i "addr:" | cut -f2 -d: | cut -f1 -d " "`
LOCALHOST_IP="127.0.0.1/32"


##########

echo "Starting Firewalling... "
iptables --flush
iptables --delete-chain
iptables --zero

########## Set default policies
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i $LOOPBACK_INTERFACE -j ACCEPT
iptables -A OUTPUT -o $LOOPBACK_INTERFACE -j ACCEPT

########## Create Seperate Chains for ICMP, TCP and UDP to traverse
echo "Create Seperate Chains for ICMP, TCP and UDP to traverse..."
iptables --new icmp_packets
iptables --new tcp_packets
iptables --new udpincoming_packets

########## The Allowed Chain for TCP connections
echo "The Allowed Chain for TCP connections "
iptables -N allowed
iptables -A allowed -p TCP --syn -j ACCEPT
iptables -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP

########## ICMP rules (Internet Control Message Protocol)
echo "ICMP rules (Internet Control Message Protocol) "
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

########## TCP rules (Transmission Control Protocol)
echo "TCP rules (Transmission Control Protocol) "
### FTP port
#iptables -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed

### SSH port
iptables -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed

### SMTP Mail Server port
#iptables -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed

### HTTP port
iptables -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed

### POP3 port
#iptables -A tcp_packets -p TCP -s 0/0 --dport 110 -j allowed

### IRC port
#iptables -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed

### IMAP port
#iptables -A tcp_packets -p TCP -s 0/0 --dport 143 -j allowed

### No-ip DNS services port
#iptables -A tcp_packets -p TCP -s 0/0 --dport 8245 -j allowed

########## UDP ports (User Datagram Protocol)
echo "UDP ports (User Datagram Protocol) "
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 143 -j ACCEPT

########## INPUT chain # Establish the basic Input chain
##########	and filter the packets onto the correct chains.
echo "INPUT chain # Establish the basic Input chain "
iptables -A INPUT -p ICMP -i $LAN_INTERFACE_1 -j icmp_packets
iptables -A INPUT -p TCP -i $LAN_INTERFACE_1 -j tcp_packets
iptables -A INPUT -p UDP -i $LAN_INTERFACE_1 -j udpincoming_packets

iptables -A INPUT -p ALL -i $LAN_INTERFACE_1 -d $LAN_BCAST_ADDRESS -j ACCEPT
iptables -A INPUT -p ALL -d $LOCALHOST_IP -j ACCEPT
iptables -A INPUT -p ALL -d $LAN_IPADDR -j ACCEPT
iptables -A INPUT -p ALL -d $IPADDR -m state --state ESTABLISHED,RELATED -j ACCEPT

########## ENABLE TO LOG ERRORS
echo "ENABLE TO LOG ERRORS "
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "

########## OUTPUT chain # Establish the basic Output chain
##########	and filter them onto the correct chain

iptables -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $LAN_IPADDR -j ACCEPT
iptables -A OUTPUT -p ALL -s $IPADDR -j ACCEPT

########## ENABLE TO LOG ERRORS
iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: 
dekuji moc, za kazdej napad :)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.1.2010 19:52 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Firewall, chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na začátku máte iptables --new …, podle manuálových stránek to má být iptables --new-chain … nebo iptables -N …. Ale pokud nevíte, co ten skript dělá, je vám k ničemu – firewall se nedá nastavovat tak, že si okopírujete nějaká „správné řešení“, firewall je potřeba nastavit vždycky podle toho, co a jak potřebujete na daném počítači chránit.
22.1.2010 20:26 Sttepa
Rozbalit Rozbalit vše Re: Firewall, chyba
No ale zase kdyz si mrknu do
iptables --help
tak tam je napsano:
--new     -N chain		Create a new user-defined chain
takze to by melo byti spravne. Jinak jsem ze sebe mozna udelal vetsi lamu nez jsem. Ja vim co ten skript dela. A docela mi vyhovuje a chci si ho pak jeste doupravit podle sebe (takova dobra kostra pro zacatek), ale musi fungovat. Ale nevim co je tam spatne, syntaxe? Nee, to se mi nezda.
23.1.2010 10:51 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Firewall, chyba
To je tedy v té dokumentaci pěkný zmatek. Ale máte pravdu, pokud by --new byl špatný parametr, ten příkaz by neprošel, navíc v dalších příkazech se do toho řetězce přidávají pravidla, což by už vůbec neprošlo, to jsem přehlédl.

Nevidím ale nikde definovánu proměnnou $LAN_INTERFACE_1, řádek iptables -A INPUT -p ICMP -i $LAN_INTERFACE_1 -j icmp_packets se pak asi expanduje na iptables -A INPUT -p ICMP -i -j icmp_packets, takže -j je chápáno jako hodnota parametru -i a icmp_packets jako další (neznámý) parametr.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.