Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

iptables firewall/router

Dieses Thema im Forum "Netzwerkprogrammierung" wurde erstellt von lano, 6. November 2016.

  1. lano

    lano Well-Known Member c-b Experte

    Moin.

    Ich habe einen Router.
    Der hat an der Wan Schnittstelle (eth0) die ip 192.168.2.20/24
    Auf der Lan Seite hat er mehrere Schnittstellen (ppp+)
    Außerdem läuft auf dem Rechner einiges an Diensten die sowohl von Lan wie auch von Wan Seite erreichbar sein sollen.

    Ich hab da mal versucht, funktioniert aber nich.

    Code (Bash):
    Quelltext kopieren
    1. #!/bin/bash
    2.  
    3. printf "Initializing firewall ...\n"
    4.  
    5. WAN=eth0
    6.  
    7. ## FLUSHING / CLEANING UP EARLIER RULES
    8. iptables -t nat -F POSTROUTING
    9. iptables -t nat -F PREROUTING
    10. iptables -t nat -F OUTPUT
    11. iptables -t nat -F
    12. iptables --delete-chain
    13. iptables -F
    14.  
    15. ## RULES
    16. iptables -P INPUT ACCEPT
    17. iptables -P FORWARD ACCEPT
    18. iptables -P OUTPUT ACCEPT
    19.  
    20. printf "Setting up firewall rules ...\n"
    21.  
    22. ### Basic rules ###
    23.  
    24. ## ENABLE MASQUERADE AND FORWARDING
    25. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    26.  
    27. iptables -A INPUT -i lo -j ACCEPT
    28. iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
    29.  
    30. # Accepts all established inbound connections
    31. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    32.  
    33. # Allows all outbound traffic
    34. iptables -A OUTPUT -j ACCEPT
    35.  
    36. # Allow ping
    37. iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    38.  
    39. # log iptables denied calls (access via 'dmesg' command)
    40. iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
    41.  
    42.  
    43. ### Custom rules ###
    44.  
    45. # Allows HTTP and HTTPS connections from anywhere
    46. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    47. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    48.  
    49. # Allows SSH connections
    50. iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
    51.  
    52. # PPPOE
    53. iptables -A INPUT -i ppp+ -j ACCEPT
    54.  
    55. # Bind
    56. iptables -A INPUT -p tcp --dport 53 -j ACCEPT
    57. iptables -A INPUT -p udp --dport 53 -j ACCEPT
    58.  
    59. # smtp
    60. iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    61.  
    62. # pop3
    63. iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    64.  
    65. # imap
    66. iptables -A INPUT -p tcp --dport 143 -j ACCEPT
    67.  
    68. #ftp
    69. #iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    70.  
    71. # SIP on UDP port 5060. Other SIP servers may need TCP port 5060 as well
    72. iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT
    73.  
    74. # IAX2- the IAX protocol
    75. iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT
    76.  
    77. # IAX - most have switched to IAX v2, or ought to
    78. iptables -A INPUT -p udp -m udp --dport 5036 -j ACCEPT
    79.  
    80. # RTP - the media stream
    81. iptables -A INPUT -p udp -m udp --dport 10000:10100 -j ACCEPT
    82.  
    83. # MGCP - if you use media gateway control protocol in your configuration
    84. iptables -A INPUT -p udp -m udp --dport 2727 -j ACCEPT
    85.  
    86. # Reject all other inbound
    87. iptables -A INPUT -j REJECT
    88. iptables -A FORWARD -j REJECT
    89.  
    90.  
    91. echo 1 > /proc/sys/net/ipv4/ip_forward
    92. printf "Firewall is now configured and active!\n"

    Ich weis da selbst nicht so wirklich was ich da versuche aber ich hoffe das was ich mir so vorgestellt hab wird irgendwie ein wenig deutlich :)
  2. coding-board

    coding-board Member

    Werbung
  3. DJFelipe

    DJFelipe Active Member c-b Experte

    Sehe auf Anhieb mal keinen Fehler.... Was klappt denn genau nicht?
  4. lano

    lano Well-Known Member c-b Experte

    Von den ppp Verbindungen wollte nix funktionieren.

    Mittlerweile klappt es eigentlich. Bis auf das Asterisk routing.

    Ich hab da mal nen bisschen Übersichtlicher:
    Code (Bash):
    Quelltext kopieren
    1. #!/bin/bash
    2.  
    3. printf "Initializing firewall ...\n"
    4.  
    5. ## FLUSHING / CLEANING UP EARLIER RULES
    6. iptables -F
    7. iptables -X
    8. iptables -Z
    9.  
    10. ## RULES
    11. iptables -N TCP
    12. iptables -N UDP
    13.  
    14. iptables -P OUTPUT ACCEPT
    15. iptables -P INPUT DROP
    16.  
    17. iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    18.  
    19. iptables -A INPUT -i lo -j ACCEPT
    20.  
    21. iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
    22.  
    23. iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
    24.  
    25. iptables -A INPUT -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix '** HACKERS **' --log-level 4
    26.  
    27. iptables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP
    28. iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
    29.  
    30. iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
    31. iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
    32.  
    33. iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable
    34.  
    35.  
    36. printf "Setting up firewall rules ...\n"
    37.  
    38. ### Basic rules ###
    39.  
    40. # SSH
    41. iptables -A TCP -p tcp --dport 22 -j ACCEPT
    42.  
    43. # HTTP
    44. iptables -A TCP -p tcp --dport 80 -j ACCEPT
    45.  
    46. # HTTPS
    47. iptables -A TCP -p tcp --dport 443 -j ACCEPT
    48.  
    49. # DNS
    50. iptables -A UDP -p udp --dport 53 -j ACCEPT
    51. iptables -A TCP -p tcp --dport 53 -j ACCEPT
    52.  
    53. # POP
    54. iptables -A TCP -p tcp --dport 110 -j ACCEPT
    55.  
    56. # SMTP
    57. iptables -A TCP -p tcp --dport 25 -j ACCEPT
    58.  
    59. # SQUID
    60. iptables -A TCP -p tcp --dport 3128 -j ACCEPT
    61.  
    62. # SIP
    63. iptables -A UDP -p udp --dport 5060 -j ACCEPT
    64.  
    65. # SIP
    66. iptables -A UDP -p udp --dport 4569 -j ACCEPT
    67.  
    68. # SIP
    69. iptables -A UDP -p udp --dport 5036 -j ACCEPT
    70.  
    71. # SIP
    72. iptables -A UDP -p udp --dport 10000:10100 -j ACCEPT
    73.  
    74. # SIP
    75. iptables -A UDP -p udp --dport 2727 -j ACCEPT
    76.  
    77. # IRC
    78. iptables -A TCP -p tcp --dport 6667 -j ACCEPT
    79.  
    80. # ntop
    81. iptables -A TCP -p tcp --dport 9981 -j ACCEPT
    82.  
    83.  
    84.  
    85. ### Custom rules ###
    86.  
    87. iptables -N fw-interfaces
    88. iptables -N fw-open
    89.  
    90. iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    91.  
    92. iptables -A FORWARD -j fw-interfaces
    93. iptables -A FORWARD -j fw-open
    94.  
    95. iptables -A FORWARD -j REJECT --reject-with icmp-host-unreachable
    96. iptables -P FORWARD DROP
    97.  
    98. # Keine Ahnung
    99. iptables -A fw-interfaces -i ppp+ -j ACCEPT
    100. iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
    101. #iptables -A fw-interfaces -i eth0 -j ACCEPT
    102. #iptables -t nat -A POSTROUTING -s 10.3.0.0/16 -o ppp0 -j MASQUERADE
    103.  
    104. # HTTP
    105. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.20
    106. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 80 -j ACCEPT
    107.  
    108. # HTTPS
    109. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 192.168.2.20
    110. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 443 -j ACCEPT
    111.  
    112. # DNS
    113. iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to 192.168.2.20
    114. iptables -A fw-open -d 192.168.2.20 -p udp --dport 53 -j ACCEPT
    115. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to 192.168.2.20
    116. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 53 -j ACCEPT
    117.  
    118. # POP
    119. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 -j DNAT --to 192.168.2.20
    120. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 110 -j ACCEPT
    121.  
    122. # SMTP
    123. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to 192.168.2.20
    124. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 25 -j ACCEPT
    125.  
    126. # SIP on UDP port 5060.
    127. iptables -t nat -A PREROUTING -i eth0 -p udp --dport 5060 -j DNAT --to 192.168.2.20
    128. iptables -A fw-open -d 192.168.2.20 -p udp --dport 5060 -j ACCEPT
    129.  
    130. # IAX2- the IAX protocol
    131. iptables -t nat -A PREROUTING -i eth0 -p udp --dport 4569 -j DNAT --to 192.168.2.20
    132. iptables -A fw-open -d 192.168.2.20 -p udp --dport 4569 -j ACCEPT
    133.  
    134. # IAX - most have switched to IAX v2, or ought to
    135. iptables -t nat -A PREROUTING -i eth0 -p udp --dport 5036 -j DNAT --to 192.168.2.20
    136. iptables -A fw-open -d 192.168.2.20 -p udp --dport 5036 -j ACCEPT
    137.  
    138. # RTP - the media stream
    139. iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10000:10100 -j DNAT --to 192.168.2.20
    140. iptables -A fw-open -d 192.168.2.20 -p udp --dport 10000:10100 -j ACCEPT
    141.  
    142. # MGCP - if you use media gateway control protocol in your configuration
    143. iptables -t nat -A PREROUTING -i eth0 -p udp --dport 2727 -j DNAT --to 192.168.2.20
    144. iptables -A fw-open -d 192.168.2.20 -p udp --dport 2727 -j ACCEPT
    145.  
    146. # Tinc TCP Port 655
    147. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 655 -j DNAT --to 192.168.2.20
    148. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 655 -j ACCEPT
    149.  
    150. # Tinc TCP Port 655
    151. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6667 -j DNAT --to 192.168.2.20
    152. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 6667 -j ACCEPT
    153.  
    154. # Tinc TCP Port 655
    155. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9981 -j DNAT --to 192.168.2.20
    156. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 9981 -j ACCEPT
    157.  
    158.  
    159. echo 1 > /proc/sys/net/ipv4/ip_forward
    160. printf "Firewall is now configured and active!\n"
    161.  
    Dazu hab ich Grundlegende Fragen.

    Mit
    Code (Text):
    Quelltext kopieren
    1. # SSH
    2. iptables -A TCP -p tcp --dport 22 -j ACCEPT
    Erlaube ich doch Port 22 an allen Schnittstellen

    Mit
    Code (Text):
    Quelltext kopieren
    1. # POP
    2. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 -j DNAT --to 192.168.2.20
    3. iptables -A fw-open -d 192.168.2.20 -p tcp --dport 110 -j ACCEPT
    4.  
    Was mach en die zwei Sachen jetzt genau.

    Wenn ich mir das anschaue wo die Pakete lang gehen sieht das irgendwie komisch aus.
  5. DJFelipe

    DJFelipe Active Member c-b Experte

    Naja du schiebst 2 neue Rules in die Firewall (1x NAT direkt und 1x eine eigene Tabelle fw-open). Beide adressieren die Pakete an die 192.168.2.20 zum Port 110...
    Wenn ich die help von IPTables verstehe, besteht der unterschied zwischen -t und -A darin, das du bei -t eine Tabelle editierst, bei -A fügst du nur Einträge in eine Chain hinzu.
  6. lano

    lano Well-Known Member c-b Experte

    Mein Ziel ist es irgendwie die Ports auf der Maschine zu erlauben und ggf welche zu einer anderen ip und port weiter zu leiten.

    Ist das da dann jetzt nicht doppelt gemoppelt?
  7. DJFelipe

    DJFelipe Active Member c-b Experte

    Ich denk schon... Probiers mal ohne den (D)NAT Eintrag
Die Seite wird geladen...
Ähnliche Themen - iptables firewall router Forum Datum
ddwrt vlan Iptables Regel Netzwerkprogrammierung 1. Juni 2016
PHP + iptables PHP - Hypertext Preprocessor 27. August 2006
Antivirus-Software und/oder Firewall Dritter - sinnvoll? Off Topic 10. Oktober 2017
MyWall - Open Source Personal Firewall in ASM Projekt - Forum 8. März 2009
Port öffnen im Windows Firewall-VB6 Visual Basic, Visual Basic for Applications (VBA) 29. Dezember 2006