Делаю сервак, чтисто для узкого круга единоклубников, однако я есть нуб в iptables.
И сколько бы не пытался разобраться в том, что есть цепочка, что таблица и как они взаимодействуют,… я ничего не понял, кроме вершков и корешков, и нирваны не достиг.
Помогите пожалуйста с тюнингом настроек iptables для решение следующtй задачи:
# !!!!!!!!!!!!!!!!!!!!!!! Must be accessible from the internet without restrictions !!!!!!!!!!
# 80 TCP NGINX
# 81 TCP APACHE2
# 9090 TCP SIGNAL SERVER
# 5555 TCP API ATDA SERVER
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
А вот СИП должен пропускаться только если в UserAgent имеются определенные записи, остальные - идут в сад погулять еще до обработки (то ест в raw).
# !!!!!!!!!!!!!!!!!!!!!!! SIP Must be accessible only if "bm --string "ATDA"" OR "bm --string "ATCA"" !!!!!!!!!!
# 8081,8082 TCP FREESWITCH
# 5080 TCP/UDP FREESWITCH
# 5050 UDP ASTERISK
# 5160 UDP ASTERISK chan_SIP UDP
# 5161 UDP ASTERISK chan_SIP UDP
# 10000-20000 UDP ASTERISK RTP Strim in SIP
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Естественно что я, не жду чтоб за меня кто то, что то сделал, а прошу просто помочь увидеть и исправить те ошибки или косяки которые я скорее всего накосячил.
Вот мой "шедевр"
ActionScript 3 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
| # Tet-A-Tet fof ATDA, SOS and ATS firewal tuning
# USED POTRS LIST
# 80 TCP NGINX
# 81 TCP APACHE2
# 1212 TCP SSH
# 20033 TCP MARIADB
# 9090 TCP SIGNAL SERVER
# 5555 TCP API ATDA SERVER
# 5050 UDP ASTERISK
# 5160 UDP ASTERISK chan_SIP UDP
# 5161 UDP ASTERISK chan_SIP UDP
# 10000-20000 UDP ASTERISK RTP Strim in SIP
# 4569 UDP ASTERISK IAX
# 2000 TCP ASTERISK UNKNOWN NEED
# 6050 FREESWITCH
# 8081,8082 TCP FREESWITCH
# 5080 TCP/UDP FREESWITCH
# 1337 UDP FREESWITCH
# 239.255.255.250:1900 UDP FREESWITCH
# 587 TCP SENDMAIL
# 25 TCP SENDMAIL MTA
# !!!!!!!!!!!!!!!!!!!!!!! Must be accessible from the internet without restrictions !!!!!!!!!!
# 80 TCP NGINX
# 81 TCP APACHE2
# 9090 TCP SIGNAL SERVER
# 5555 TCP API ATDA SERVER
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# !!!!!!!!!!!!!!!!!!!!!!! SIP Must be accessible only if "bm --string "ATDA"" OR "bm --string "ATCA"" !!!!!!!!!!
# 8081,8082 TCP FREESWITCH
# 5080 TCP/UDP FREESWITCH
# 5050 UDP ASTERISK
# 5160 UDP ASTERISK chan_SIP UDP
# 5161 UDP ASTERISK chan_SIP UDP
# 10000-20000 UDP ASTERISK RTP Strim in SIP
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*raw
:BADSIP - [0:0]
:EQUIVOCAL - [0:0]
# Ponytelecom ranges
-A INPUT -s 62.210.0.0/16 -j DROP
-A INPUT -s 195.154.0.0/16 -j DROP
-A INPUT -s 212.129.0.0/18 -j DROP
-A INPUT -s 62.4.0.0/19 -j DROP
-A INPUT -s 212.83.128.0/19 -j DROP
-A INPUT -s 212.83.160.0/19 -j DROP
-A INPUT -s 212.47.224.0/19 -j DROP
-A INPUT -s 163.172.0.0/16 -j DROP
-A INPUT -s 51.15.0.0/16 -j DROP
-A INPUT -s 151.115.0.0/16 -j DROP
# VITOX TELECOM
-A INPUT -s 77.247.109.0/255.255.255.0 -p udp -j DROP
-A INPUT -s 185.53.88.0/24 -p udp -j DROP
-A INPUT -s 185.53.89.0/24 -p udp -j DROP
-A INPUT -s 37.49.224.0/24 -p udp -j DROP
-A INPUT -s 37.49.230.0/24 -p udp -j DROP
-A INPUT -s 37.49.231.0/24 -p udp -j DROP
-A INPUT -s 77.247.110.0/255.255.255.0 -p udp -j
# SPAM scrap-heap
-A INPUT -s 37.49.231.0/24 -m udp -p udp -j DROP
-A INPUT -s 37.120.129.0/19 -p udp -j DROP
-A INPUT -s 185.53.88.0/24 -p udp -j DROP
-A INPUT -s 185.53.89.0/24 -p udp -j DROP
-A INPUT -s 185.53.90.0/24 -p udp -j DROP
-A INPUT -s 185.53.91.0/24 -p udp -j DROP
-A INPUT -s 37.49.224.0/24 -p udp -j DROP
-A INPUT -s 37.49.225.0/24 -p udp -j DROP
-A INPUT -s 37.49.227.0/24 -p udp -j DROP
-A INPUT -s 37.49.228.0/24 -p udp -j DROP
-A INPUT -s 37.49.229.0/24 -p udp -j DROP
-A INPUT -s 37.49.230.0/24 -p udp -j DROP
-A INPUT -s 37.49.231.0/24 -p udp -j DROP
-A INPUT -s 77.247.108.0/24 -p udp -j DROP
-A INPUT -s 77.247.109.0/24 -p udp -j DROP
-A INPUT -s 77.247.110.0/24 -p udp -j DROP
-A INPUT -s 77.247.111.0/24 -p udp -j DROP
-A INPUT -s 62.210.0.0/16 -p udp -j DROP
-A INPUT -s 195.154.0.0/16 -p udp -j DROP
-A INPUT -s 212.129.0.0/18 -p udp -j DROP
-A INPUT -s 62.4.0.0/19 -p udp -j DROP
-A INPUT -s 212.83.128.0/19 -p udp -j DROP
-A INPUT -s 212.83.160.0/19 -p udp -j DROP
-A INPUT -s 212.47.224.0/19 -p udp -j DROP
-A INPUT -s 163.172.0.0/16 -p udp -j DROP
-A INPUT -s 51.15.0.0/16 -p udp -j DROP
-A INPUT -s 151.115.0.0/16 -p udp -j DROP
-A PREROUTING -i eth+ -m recent --update --name BADSIP -j DROP
#udp sip ACCEPT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A INPUT -p udp -m multiport --dport 1000:20000 -m string --algo bm --string "ATDA" -j ACCEPT
-A INPUT -p udp -m multiport --dport 1000:20000 -m string --algo bm --string "ATCA" -j ACCEPT
-A INPUT -p udp -m multiport --dport 1000:20000 -m string --algo bm --string "ATDA_SIP_Call" -j ACCEPT
-A INPUT -p udp -m multiport --dport 1000:20000 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
#udp sip FINISH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#tcp sip ACCEPT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A INPUT -p tcp -m multiport --dport 5050 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
-A INPUT -p tcp -m multiport --dport 5060 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
-A INPUT -p tcp -m multiport --dport 5060 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
-A INPUT -p tcp -m multiport --dport 5080 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
-A INPUT -p tcp -m multiport --dport 8081 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
-A INPUT -p tcp -m multiport --dport 8082 -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
#tcp sip FINISH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#programs ACCEPT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 81 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 9090 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 5555 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
#programs FINISH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "Test" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "siparmyknife" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "VaxIPUserAgent" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "VaxSIPUserAgent" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "friendly-request" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "smap" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sipv" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "Gulp" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "CSipSimple" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "pplsip" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "friendly-scanner" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sip-scan" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sundayddr" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "iWar" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sipsak" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sipvicious" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "SIVuS" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "VaxSIPUserAgent" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sipcli" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "eyeBeam" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sip:nm@nm" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "sip:carol@chicago.com" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "FPBX" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "Yealink" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "DX800" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "FPBX" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "3CX" -j EQUIVOCAL
-A INPUT -p udp -m udp --dport 20:20000 -m string --algo bm --string "Grand" -j EQUIVOCAL
-A EQUIVOCAL -m recent --set --name EQUIVOCAL -j BADSIP
-A BADSIP -m recent --set --name BADSIP -j TARPIT
COMMIT
*filter
:INPUT ACCEPT [686:50621]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [570:202478]
:VOIP_ACCESS - [0:0]
-F OUTPUT
-A OUTPUT ACCEPT
# Accept all loopback traffic
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#programs ACCEPT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 81 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 81 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 9090 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 9090 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 5555 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 5555 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
#programs FINISH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A VOIP_ACCESS -m string --algo bm --string "ATDA" -j ACCEPT
-A VOIP_ACCESS -m string --algo bm --string "ATCA" -j ACCEPT
-A VOIP_ACCESS -m string --algo bm --string "ATDA_SIP_Call" -j ACCEPT
-A VOIP_ACCESS -m string --algo bm --string "FS_SIP_Call" -j ACCEPT
# from localNet !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A VOIP_ACCESS -s 192.168.0.0/24 -j ACCEPT
-A VOIP_ACCESS -s 192.168.24.0/24 -j ACCEPT
-A VOIP_ACCESS -s 172.14.2.0/24 -j ACCEPT
# from localNet FINISH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-A VOIP_ACCESS -m limit --limit 2/min -j LOG --log-prefix "DROPPED: " --log-level 7
-A VOIP_ACCESS -j DROP
COMMIT |
|