iptables - alles blocken en 1 doorlaten

Pagina: 1
Acties:

  • wilbert
  • Registratie: December 2000
  • Laatst online: 05:47
Ik zit hier met een klein vraagstuk wat me maar niet wil lukken.

Er draait hier een router met coyote linux die keurig de internetverbinding deelt.
Nu was de opzet om voor 1 of 2 personen een poort naar een interne server open te zetten met port-forward, zodat enkel zij daar bij kunnen.

Het port forward verhaal is inmiddels gelukt, de bewuste server is voor de buitenwereld te bereiken.

Nu wil ik m.b.v iptables een aantal rules maken die ervoor zorgen dat slechts de mij bekende ip's er bij kunnen komen en heb het volgende gevonden en geprobeerd:

#bekend ip accepteren
iptables -A INPUT -p tcp --destination-port 9964 --in-interface eth1 --source 111.111.111.111 --jump ACCEPT

# verkeer naar poort 9964 algemeen blokkeren
iptables -A INPUT -p tcp --destination-port 9964 --in-interface eth1 --jump DROP

alleen als ik nu via een online portscanner op 9964 scan, vertelt deze mij dat de poort open staat, terwijl ik van mening ben dat hij zo dicht hoort te zitten.

Wat zie ik hier over het hoofd ?

Verwijderd

Weet het niet zeker maar volgens mij moet je aan het eind van je configuratiebestand nog een algemene DROP regel plaatsen, zodat de bak aan de andere kant geen enkele reactie terug krijgt..

zoiets dus:

iptables -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
iptables -A INPUT -s 0/0 -d 0/0 -p tcp --syn -j DROP

[ Voor 25% gewijzigd door Verwijderd op 25-09-2003 13:43 ]


  • wilbert
  • Registratie: December 2000
  • Laatst online: 05:47
Dat werkt ook niet naar behoren, zodra ik deze regels aan het script toevoeg is de poort nog steeds algemeen geopend, alleen wordt op deze manier het interne verkeer (remote admin) wel weer geblocked.

wellicht dat iemand van jullie in de iptables -L iets ziet ?

Chain INPUT (policy ACCEPT)
target prot opt source destination
remote-admin all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere state INVALID
DROP all -- anywhere anywhere state NEW
ACCEPT tcp -- 111.111.111.111 anywhere tcp dpt:9964
DROP tcp -- anywhere anywhere tcp dpt:9964

Chain FORWARD (policy ACCEPT)
target prot opt source destination
autofw-acl all -- anywhere anywhere
portfw-acl all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere state INVALID
DROP all -- anywhere anywhere state NEW

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain autofw-acl (1 references)
target prot opt source destination

Chain portfw-acl (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 192.168.0.24 tcp dpt:1500

Chain remote-admin (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ssh

[ Voor 80% gewijzigd door wilbert op 25-09-2003 14:02 ]


Verwijderd

wilbert schreef op 25 September 2003 @ 13:51:
Dat werkt ook niet naar behoren, zodra ik deze regels aan het script toevoeg is de poort nog steeds algemeen geopend, alleen wordt op deze manier het interne verkeer (remote admin) wel weer geblocked.
Voor een goede (lees werkende) beveiliging moeten deze regels er eigenlijk wel instaan. Wat je dan namelijk doet is alles blokkeren waar geen specifieke regel voor is aangemaakt. Ook moet je aan het begin van je config zoiets hebben staan:

# Configure default policies (-P), meaning default rule to apply if no
# more specific rule below is applicable.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Flush (-F) all specific rules
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F -t nat

<je eigen regels>

iptables -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
iptables -A INPUT -s 0/0 -d 0/0 -p tcp --syn -j DROP

En dan kun je tussen die twee alle specifieke dingen die je nodig hebt openzetten. Misschien kun je beter een voorbeeld downloaden en die editen (zoals ik gedaan heb ;))

dit is een goeie (eerste result Google): linkje

[ Voor 8% gewijzigd door Verwijderd op 25-09-2003 14:11 ]


  • wilbert
  • Registratie: December 2000
  • Laatst online: 05:47
Harstikke handige link mmmuttly, Volgens mij draait het zo naar behoren !


Edit: werkt nog niet naar behoren....

Het is voor het bekende ip adres ook niet mogelijk om op die poort (tcp) te komen :? :? :?


Dit is het huidige firewall script:

# Firewall Configuration File
#
# A "#" at the 1st character in a line can be used to denote a comment
#
# Remote Admin allow ports
# Comment out to disable SSH access from Internet
iptables -A remote-admin -i $IF_INET -p tcp --sport 1024: --dport 22 -j ACCEPT
#
# Uncomment to enable pinging from Internet
# iptables -A remote-admin -i $IF_INET -p icmp --icmp-type echo-request -j ACCEPT
#
# Add custom rules below

# Configure default policies (-P), meaning default rule to apply if no
# more specific rule below is applicable.
# Configure default policies (-P), meaning default rule to apply if no
# more specific rule below is applicable.

# Configure default policies (-P), meaning default rule to apply if no
# more specific rule below is applicable. These rules apply if a more specific rule below
# is not applicable. Defaults are to DROP anything sent to firewall or internal
# network, permit anything going out.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Flush (-F) all specific rules
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F -t nat

# Forward all packets from eth0 (internal network) to eth1 (the internet).
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

# Forward packets that are part of existing and related connections from eth0 to eth1.
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Permit packets in to firewall itself that are part of existing and related connections.
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow all inputs to firewall from the internal network and local interfaces
iptables -A INPUT -i eth0 -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE

#Hier de bekenden:

# --- Begin Bekenden ---


#Bekende 1 toevoegen
iptables -A INPUT -p tcp --destination-port 9964 --in-interface eth1 --source 62.xxx.xxx.xxx --jump ACCEPT

#Bekende 2 toevoegen
iptables -A INPUT -p tcp --destination-port 9964 --in-interface eth1 --source 212.xxx.xxx.xxx --jump ACCEPT

# --- Einde bekenden ---

# verkeer naar poort 9964 algemeen blokkeren
iptables -A INPUT -p tcp --destination-port 9964 --in-interface eth1 --jump DROP

iptables -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
iptables -A INPUT -s 0/0 -d 0/0 -p tcp --syn -j DROP


Ik kan er zo onderhand niks meer aan vastknopen.... :)

[ Voor 100% gewijzigd door wilbert op 25-09-2003 16:14 ]