SHOW:
|
|
- or go back to the newest paste.
1 | #!/bin/sh | |
2 | ||
3 | ############################################################################## | |
4 | ||
5 | ||
6 | ||
7 | # Nazwa i lokalizacja programu | |
8 | ||
9 | IPTABLES=iptables | |
10 | ||
11 | ||
12 | ||
13 | # Sciezka do pliku wykonywlanego | |
14 | ||
15 | PATH="/usr/sbin" | |
16 | ||
17 | ||
18 | ||
19 | # Adres serwera - naszego kompa | |
20 | ||
21 | ||
22 | ||
23 | SERWER="192.168.0.3" | |
24 | ||
25 | ||
26 | ||
27 | # Adres komputera z ktorego logujemy sie jako admin :) | |
28 | ||
29 | ||
30 | ||
31 | KOMP="192.168.0.10" | |
32 | ||
33 | ||
34 | ||
35 | # Przestrzen adresowa naszej sieci wewnetrzenej i karta ja obslugujaca | |
36 | ||
37 | ||
38 | ||
39 | WEW_NET="192.168.0.1/28" | |
40 | ||
41 | WEW_DEV="eth0" | |
42 | ||
43 | ||
44 | ||
45 | # Adres wyjsciowy - zewnetrzny i karta obslugujaca | |
46 | ||
47 | ||
48 | ||
49 | ZEW_NET="0/0" # 0/0 wskazuje jakikolwiek adres IP | |
50 | ||
51 | ZEW_DEV="eth1" | |
52 | ||
53 | ||
54 | ||
55 | # Uslugi TCP,ktore chcemy przepuszczac - "" puste oznacza wszystkie porty | |
56 | ||
57 | # kolejne oddzielamy przecinkami | |
58 | ||
59 | ||
60 | ||
61 | TCP_IN="www,ssh,ftp-data,ftp" # 80,22,20,21 | |
62 | ||
63 | TCP_OUT="www,ftp,ftp-data,irc,ssh" # 80,21,20, ,22 | |
64 | ||
65 | ||
66 | ||
67 | ||
68 | ||
69 | # Uslugi UDP,ktore przepuszczamy - "" puste oznacza wszytskie porty | |
70 | ||
71 | # kolejne oddzielone przecinkami | |
72 | ||
73 | ||
74 | ||
75 | UDP_IN="443,465,995" | |
76 | ||
77 | UDP_OUT="" | |
78 | ||
79 | ||
80 | ||
81 | # Uslugi ICMP, ktore chcemy przepuszczac - "" puste oznacza wszystkie typy | |
82 | ||
83 | # kolejne oddzielone przecinkami | |
84 | ||
85 | ||
86 | ||
87 | ICMP_IN="" | |
88 | ||
89 | ICMP_OUT="" | |
90 | ||
91 | ||
92 | ||
93 | ################################################################################# | |
94 | ||
95 | ||
96 | ||
97 | # Usuwamy poprzednie reguly | |
98 | ||
99 | ||
100 | ||
101 | $IPTABLES -F INPUT | |
102 | ||
103 | $IPTABLES -F FORWARD | |
104 | ||
105 | $IPTABLES -F OUTPUT | |
106 | ||
107 | ||
108 | ||
109 | # Ustawienie domyslnej polityki | |
110 | ||
111 | ||
112 | ||
113 | $IPTABLES -P INPUT DROP | |
114 | ||
115 | $IPTABLES -P OUTPUT ACCEPT # akceptujemy wszystko co od nas wychodzi | |
116 | ||
117 | $IPTABLES -P FORWARD DROP | |
118 | ||
119 | ||
120 | ||
121 | ||
122 | ||
123 | # Zapisujemy caly nasz ruch w logach | |
124 | ||
125 | ||
126 | ||
127 | $IPTABLES -A INPUT -j LOG -m limit --limit 15/hor # 15 logów na godzine | |
128 | ||
129 | $IPTABLES -A OUTPUT -j LOG -m limit --limit 15/hour | |
130 | ||
131 | $IPTABLES -A FORWARD -j LOG -m limit --limit 15/hour | |
132 | ||
133 | ||
134 | ||
135 | # Ladujemy mozliwosc sledzenia polaczen | |
136 | ||
137 | ||
138 | ||
139 | modprobe ip_conntarck | |
140 | ||
141 | modprobe ip_conntarck_ftp | |
142 | ||
143 | ||
144 | ||
145 | # Wylaczamy odpowiedzi na pingi | |
146 | ||
147 | ||
148 | ||
149 | #echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all | |
150 | ||
151 | ||
152 | ||
153 | # Ochrona przed atakami typu Smurf | |
154 | ||
155 | ||
156 | ||
157 | echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts | |
158 | ||
159 | ||
160 | ||
161 | # Wlaczamy ochrone przed komunikacja ICMP error | |
162 | ||
163 | ||
164 | ||
165 | echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses | |
166 | ||
167 | ||
168 | ||
169 | # Wlacza logowanie dziwnych pakietow (spoofed. source routed. redirects) | |
170 | ||
171 | ||
172 | ||
173 | echo "1" > /proc/sys/net/ipv4/conf/all/log_martians | |
174 | ||
175 | ||
176 | ||
177 | # Nie akceptujemy datagramu IP z opcja "source route" | |
178 | ||
179 | ||
180 | ||
181 | echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route | |
182 | ||
183 | ||
184 | ||
185 | # Nie przyjmujemy pakietow ICMP redict, ktore moga zmienic nasza tablice routingu | |
186 | ||
187 | ||
188 | ||
189 | echo "0" /proc/sys/net/ipv4/conf/all/accept_redirects | |
190 | ||
191 | ||
192 | ||
193 | # Wszystkie karty nie beda przyjmowaly pakietow z sieici innych niz te | |
194 | ||
195 | # z tablicy routingu | |
196 | ||
197 | ||
198 | ||
199 | echo "1" /proc/sys/net/ipv4/conf/all/rp_filter | |
200 | ||
201 | ||
202 | ||
203 | ||
204 | ||
205 | # Pozwalamy pakietom biegac po naszym komputerze | |
206 | ||
207 | # czyli odblokowujemy petle zwrotna LOOPBACK | |
208 | ||
209 | ||
210 | ||
211 | $IPTABLES -A INPUT -i lo -j ACCEPT | |
212 | ||
213 | $IPTABLES -A OUTPUT -o lo -j ACCEPT | |
214 | ||
215 | ||
216 | ||
217 | # Pozwalamy na korzstanie z protokolow w trybie passive on | |
218 | ||
219 | ||
220 | ||
221 | $IPTABLES -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT | |
222 | ||
223 | ||
224 | ||
225 | # Pozwalamy na pingowanie nas i innych (opcje te zadzialaja jezli nie wylaczymy | |
226 | ||
227 | # pingowania) patrz wyzej | |
228 | ||
229 | ||
230 | ||
231 | #$IPTABLES -A INPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT | |
232 | ||
233 | #$IPTABLES -A OUTPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT | |
234 | ||
235 | ||
236 | ||
237 | $IPTABLES -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT # tylko my mozemy pingowac | |
238 | ||
239 | ||
240 | ||
241 | # Odblokowujemy uslugi na serwerze dla innych przychodzacych z zewnatrz | |
242 | ||
243 | ||
244 | ||
245 | #$IPTABLES -A INPUT -p tcp -s 0/0 --dport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh, | |
246 | ||
247 | #$IPTABLES -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT # czyli www | |
248 | ||
249 | #$IPTABLES -A INPUT -p udp -s 0/0 --dport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh, | |
250 | ||
251 | ||
252 | ||
253 | $IPTABLES -A INPUT -p tcp -s 0/0 --sport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh, | |
254 | ||
255 | $IPTABLES -A INPUT -p tcp -s 0/0 --sport 80 -j ACCEPT # czyli www | |
256 | ||
257 | $IPTABLES -A INPUT -p udp -s 0/0 --sport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh, | |
258 | ||
259 | ||
260 | ||
261 | $IPTABLES -A INPUT -p tcp -s 0/0 --dport 113 -j ACCEPT # identyfikacja | |
262 | ||
263 | ||
264 | ||
265 | $IPTABLES -A INPUT -p udp -s 0/0 --dport 1025:1100 -j ACCEPT # dla hotha | |
266 | ||
267 | ||
268 | ||
269 | # Odblokowujemy uslugi na sewerze dla danego adresu IP - KOMP patrz wyzej definicje TCP_IN, UDP_IN | |
270 | ||
271 | ||
272 | ||
273 | #$IPTABLES -A INPUT -p tcp -s $KOMP -m multiport --dport $TCP_IN -j ACCEPT # protokol tcp | |
274 | ||
275 | #$IPTABLES -A INPUT -p udp -s $KOMP -m multiport --dport $UDP_IN -j ACCEPT # protokol udp | |
276 | ||
277 | ||
278 | ||
279 | #$IPTABLES -A INPUT -p udp -s $KOMP --dport 137:139 -j ACCEPT # protokol udp | |
280 | ||
281 | ||
282 | ||
283 | # Zezwalamy na wszystko z danego adresu IP – administracja z tego adresu J | |
284 | ||
285 | ||
286 | ||
287 | $IPTABLES -A INPUT -s $KOMP -j ACCEPT # dlatego powyższe reguly sa wylaczone | |
288 | ||
289 | ||
290 | ||
291 | ||
292 | ||
293 | # dostep do DNS | |
294 | ||
295 | ||
296 | ||
297 | $IPTABLES -A INPUT -p tcp -s 0/0 --sport 53 -d $SERWER -j ACCEPT | |
298 | ||
299 | $IPTABLES -A INPUT -p udp -s 0/0 --sport 53 -d $SERWER -j ACCEPT | |
300 | ||
301 | ||
302 | ||
303 | #$IPTABLES -A OUTPUT -p tcp -s $SERWER -d 0/0 --dport 53 -j ACCEPT | |
304 | ||
305 | #$IPTABLES -A OUTPUT -p udp -s $SERWER -d 0/0 --dport 53 -j ACCEPT | |
306 | ||
307 | ||
308 | ||
309 | #mozna i tak | |
310 | ||
311 | ||
312 | ||
313 | $IPTABLES –A INPUT –s 213.173.209.70 –j ACCEPT # DNSy tele2 J | |
314 | ||
315 | $IPTABLES –A INPUT –s 213.173.209.71–j ACCEPT | |
316 | ||
317 | ||
318 | ||
319 | # Teraz troche się pozamykamy J | |
320 | ||
321 | # Pakiety z adresem zrodlowym ustawionym na nasz | |
322 | ||
323 | ||
324 | ||
325 | $IPTABLES -A INPUT -i $WEW_DEV -s $SERWER -j DROP # atak Land | |
326 | ||
327 | ||
328 | ||
329 | # Pakiety z adresow nierutowlanych, multicast i zarezerwowanych | |
330 | ||
331 | ||
332 | ||
333 | $IPTABLES -A INPUT -i $WEW_DEV -s 10.0.0.0/8 -j DROP #class A | |
334 | ||
335 | $IPTABLES -A INPUT -i $WEW_DEV -s 172.16.0.0/12 -j DROP #class B | |
336 | ||
337 | #$IPTABLES -A INPUT -i $WEW_DEV -s 192.168.0.0/16 -j DROP #class C - z tego korzystamy | |
338 | ||
339 | $IPTABLES -A INPUT -i $WEW_DEV -s 224.0.0.0/4 -j DROP #multicast | |
340 | ||
341 | $IPTABLES -A INPUT -i $WEW_DEV -d 224.0.0.0/4 -j DROP #multicast | |
342 | ||
343 | $IPTABLES -A INPUT -i $WEW_DEV -s 240.0.0.0/5 -j DROP #reserved | |
344 | ||
345 | - | $IPTABLES -A INPUT -i $WEW_DEV -s 127.0.0.0/5 -j DROP #lo |
345 | + | $IPTABLES -A INPUT -i $WEW_DEV -s 127.0.0.0/5 -j DROP #lo |
346 | ||
347 | iptables -t raw -I PREROUTING -p tcp -m tcp --syn -j CT --notrack | |
348 | iptables -I INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 | |
349 | iptables -A INPUT -m conntrack --ctstate INVALID -j DROP |