regen doc
[opensuse:susefirewall2.git] / doc / FAQ.SuSEfirewall2.html
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SuSEfirewall2 FAQ</title><link rel="stylesheet" href="susebooks.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /></head><body><div class="article" title="SuSEfirewall2 FAQ"><div class="titlepage"><div><div><h2 class="title"><a id="id265940"></a>SuSEfirewall2 FAQ</h2></div></div><hr /></div><div class="qandaset" title="Frequently Asked Questions"><a id="id265953"></a><dl><dt>1. <a href="#id265955">
4           Why is communication between two interfaces in the same zone not working?
5         </a></dt><dt>2. <a href="#id284299">Some service does not work when the firewall is enabled. How do I find out what's wrong?
6         </a></dt><dt>3. <a href="#id284177">
7           Some web site that offers port scanning claims my system is not
8           protected properly as it still responds to ICMP echo requests (ping)
9         </a></dt><dt>4. <a href="#id300911">
10           Can't the evil guys detect whether my host is online if it responds
11           to ICMP echo requests?
12         </a></dt><dt>5. <a href="#id287255">
13           SuSEfirewall2 drops most packets but it doesn't fully hide the
14           presence of my machine. Isn't that a security hole?
15         </a></dt><dt>6. <a href="#id283023">
16           The ipsec0 interface I had with kernel 2.4 is
17           gone. How do I assign IPsec traffic to a different zone now?
18         </a></dt><dt>7. <a href="#id296343">
19           Why is SuSEfirewall2 so slow? / Can't you just use iptables-restore?
20         </a></dt><dt>8. <a href="#id284377">
21           Enabling drbd blocks the boot process. How to get around that?
22         </a></dt><dt>9. <a href="#id265660">
23           I need to connect to differntly trusted networks, e.g. to
24           use printing or file sharing. How can I solve that without
25           opening ports in the external zone?
26         </a></dt><dt>10. <a href="#id265685">
27           I'm executing an external script from within FW_CUSTOMRULES but the rules my script installs vanish.
28         </a></dt></dl><table border="0" width="100%" summary="Q and A Set"><col align="left" width="1%" /><col /><tbody><tr class="question" title="1."><td align="left" valign="top"><a id="id265955"></a><a id="id265958"></a><p><b>1.</b></p></td><td align="left" valign="top"><p>
29           Why is communication between two interfaces in the same zone not working?
30         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
31
32           For security reasons, no network may communicate to another until
33           configured otherwise. Even if both are "trusted" internal networks.
34           You can allow full traffic with
35           <code class="varname">FW_ALLOW_CLASS_ROUTING</code> or specifying all allowed
36           traffic with <code class="varname">FW_FORWARD</code>. Keep in mind that this
37           affects all interfaces in all zones.
38
39         </p></td></tr><tr class="question" title="2."><td align="left" valign="top"><a id="id284299"></a><a id="id284301"></a><p><b>2.</b></p></td><td align="left" valign="top"><p>Some service does not work when the firewall is enabled. How do I find out what's wrong?
40         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
41
42           Enable logging of all dropped packets and disable the log limit in
43           <code class="filename">/etc/sysconfig/SuSEfirewall2</code>:
44           </p><div class="informalexample"><pre class="programlisting">FW_LOG_DROP_CRIT="yes"
45 FW_LOG_DROP_ALL="yes"
46 FW_LOG_LIMIT="no"</pre></div><p>
47
48           Run <span class="command"><strong>SuSEfirewall2</strong></span> again.
49           <code class="filename">/var/log/messages</code> will now quickly fill up with
50           log messages about dropped packets when you try to use the not
51           working service. Those messages tell you the protocol and port you
52           need to open.
53         </p><p>
54
55           You may also run SuSEfirewall2 in test mode:
56           <span class="command"><strong>SuSEfirewall2┬átest</strong></span>. Then try to connect to the
57           service in a way which failed before. It will work
58           because SuSEfirewall2 does <span class="emphasis"><em>not</em></span> actually filter any
59           packets this time. However, it will still log all packets it normally
60           would have dropped.
61
62         </p><p>
63
64           If everything works again don't forget to set the log options back to
65           normal to not fill up you log files.
66
67         </p></td></tr><tr class="question" title="3."><td align="left" valign="top"><a id="id284177"></a><a id="id298654"></a><p><b>3.</b></p></td><td align="left" valign="top"><p>
68           Some web site that offers port scanning claims my system is not
69           protected properly as it still responds to ICMP echo requests (ping)
70         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
71           ICMP echo requests are harmless however they are a fundametal means
72           to determine whether hosts are still reachable. Blocking them would
73           seriously impact the ability to track down network problems. It is
74           therefore not considered nice behaviour for an internet citizen to
75           drop pings.
76         </p></td></tr><tr class="question" title="4."><td align="left" valign="top"><a id="id300911"></a><a id="id280233"></a><p><b>4.</b></p></td><td align="left" valign="top"><p>
77           Can't the evil guys detect whether my host is online if it responds
78           to ICMP echo requests?
79         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
80           Yes but they can detect that anyways. The router at your provider
81           behaves different depending on whether someone is dialed in or not.
82         </p></td></tr><tr class="question" title="5."><td align="left" valign="top"><a id="id287255"></a><a id="id304035"></a><p><b>5.</b></p></td><td align="left" valign="top"><p>
83           SuSEfirewall2 drops most packets but it doesn't fully hide the
84           presence of my machine. Isn't that a security hole?
85         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
86           You machine is never fully invisible, see previous question. The
87           purpose of dropping packets is not to hide your machine but to slow
88           down port scans.
89         </p></td></tr><tr class="question" title="6."><td align="left" valign="top"><a id="id283023"></a><a id="id297483"></a><p><b>6.</b></p></td><td align="left" valign="top"><p>
90           The <code class="literal">ipsec0</code> interface I had with kernel 2.4 is
91           gone. How do I assign IPsec traffic to a different zone now?
92         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
93
94           Set the variable <code class="varname">FW_IPSEC_TRUST</code> to the zone you
95           would have put the <code class="literal">ipsec0</code> into before. For example
96           if your IPsec tunnel is set up on the external interface but you want
97           to grant the <span class="emphasis"><em>decrypted</em></span> traffic access to all
98           your services as if it was in the internal zone:
99
100           </p><div class="informalexample"><pre class="programlisting">FW_IPSEC_TRUST="int"
101 FW_SERVICES_EXT_IP="esp"
102 FW_SERVICES_EXT_UDP="isakmp"
103 FW_PROTECT_FROM_INT="no"</pre></div><p>
104
105         </p></td></tr><tr class="question" title="7."><td align="left" valign="top"><a id="id296343"></a><a id="id292896"></a><p><b>7.</b></p></td><td align="left" valign="top"><p>
106           Why is SuSEfirewall2 so slow? / Can't you just use iptables-restore?
107         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
108
109           <code class="literal">SuSEfirewall2</code> is implemented in bourne shell which is not exactly the
110           fastest thing on earth especially if it has that much work to do as
111           <code class="literal">SuSEfirewall2</code>. Administrators still prefer bourne shell scripts
112           because of readability <span class="emphasis"><em>*cough*</em></span>.
113         </p><p>
114           <code class="literal">SuSEfirewall2</code> already uses a method
115           similar to <code class="literal">iptables-restore</code> to apply
116           as much filter rules as possible at once.
117           <code class="literal">SuSEfirewall2</code> doesn't use
118           <code class="literal">iptables-restore</code> natively to be able to
119           easily fall back to individual <code class="literal">iptables</code>
120           calls in case of error.
121         </p></td></tr><tr class="question" title="8."><td align="left" valign="top"><a id="id284377"></a><a id="id284379"></a><p><b>8.</b></p></td><td align="left" valign="top"><p>
122           Enabling drbd blocks the boot process. How to get around that?
123         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
124
125           During boot process all incoming traffic is blocked
126           unconditionally. The very last boot script then sets up
127           the configured firewall rules. The problem is that drbd
128           blocks the boot process while waiting for incoming
129           connection from other nodes. Therefore configuring the
130           drbd port in <code class="literal">SuSEfirewall2</code> has no
131           effect.
132
133         </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
134               SLES10
135             </p><p>
136               Add a manual iptables call to
137               <code class="literal">/etc/init.d/boot.local</code>:
138             </p><div class="informalexample"><pre class="programlisting">iptables -A INPUT -p tcp --dport 7788 -j ACCEPT</pre></div><p>
139
140             </p></li><li class="listitem"><p>
141               SLES11, openSUSE &lt;= 11.2
142             </p><p>
143               On SLES11 SuSEfirewall2_init is called after
144               boot.local, therefore the method for SLES10
145               doesn't work anymore. It's possible to modify the
146               dependencies of the SuSEfirewall2_setup script to run
147               before drbd though:
148               </p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>
149                     Create the directory
150                     <code class="filename">/etc/insserv/overrides</code>
151                   </p></li><li class="listitem"><p>
152                     Create a new file
153                     <code class="filename">/etc/insserv/overrides/SuSEfirewall2_setup</code>
154                   </p></li><li class="listitem"><p>
155                     Copy the the LSB header (the part between and
156                     including the lines "<code class="literal">### BEGIN INIT
157                       INFO</code>" and "<code class="literal">### END INIT
158                       INFO</code>") from
159                     <code class="filename">/etc/init.d/SuSEfirewall2_setup</code>
160                     to
161                     <code class="filename">/etc/insserv/overrides/SuSEfirewall2_setup</code>
162                   </p></li><li class="listitem"><p>
163                     Replace <code class="literal">$ALL</code> with
164                     <code class="literal">$null</code> and add the following
165                     line:
166                     </p><div class="informalexample"><pre class="programlisting"># X-Start-Before: drbd</pre></div><p>
167
168                   </p></li><li class="listitem"><p>
169                     run <span class="command"><strong>/sbin/insserv</strong></span>
170                   </p></li></ul></div><p>
171
172             </p></li><li class="listitem"><p>
173               openSUSE &gt;= 11.3
174             </p><p>
175               Configure the open ports for <code class="literal">drbd</code> and set
176             </p><div class="informalexample"><pre class="programlisting">FW_BOOT_FULL_INIT="yes"</pre></div><p>
177
178             </p></li></ul></div></td></tr><tr class="question" title="9."><td align="left" valign="top"><a id="id265660"></a><a id="id265662"></a><p><b>9.</b></p></td><td align="left" valign="top"><p>
179           I need to connect to differntly trusted networks, e.g. to
180           use printing or file sharing. How can I solve that without
181           opening ports in the external zone?
182         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
183
184           The <a class="ulink" href="http://lizards.opensuse.org/2009/08/28/firewall-zone-switcher-updated/" target="_top">Firewall
185             Zone Switcher applet</a> allows desktop users to
186           switch zones with only few mouse clicks. It's included in
187           openSUSE since version 11.2.
188
189         </p></td></tr><tr class="question" title="10."><td align="left" valign="top"><a id="id265685"></a><a id="id265687"></a><p><b>10.</b></p></td><td align="left" valign="top"><p>
190           I'm executing an external script from within <code class="literal">FW_CUSTOMRULES</code> but the rules my script installs vanish.
191         </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
192
193           When <code class="literal">FW_USE_IPTABLES_BATCH</code> is on (which
194           is the default) the <span class="command"><strong>iptables</strong></span> command is
195           an alias that doesn't exist outside the script context of
196           SuSEfirewall2. So either must source your script or set
197           <code class="literal">FW_USE_IPTABLES_BATCH="no"</code>
198
199         </p></td></tr></tbody></table></div></div></body></html>