Iptables: HLDS dedicated

Pagina: 1
Acties:
  • 126 views sinds 30-01-2008
  • Reageer

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Ik wil graag een CS dedicated server draaien (HLDS) op dezelfde machine die ook m'n Internet deelt (NAT). Dat betekend dus dat ik ervoor moet zorgen dat clients op de LAN kunnen connecten naar die server, maar ook naar externe servers; en dat mensen van buitenaf (internet interface) ook kunnen connecten naar mijn server. En u raadt het al: dat krijg ik niet voor elkaar.

Wat ik ook probeer, ik kan er van binnenuit niet eens bij. Als ik opstart zonder de +ip optie draait de server op het local loopback adres (niet handig?), als ik een ip toevoeg draait ie wel op het juiste nummer, maar connecten gaat niet. Ik denk (neem aan) dat dat komt doordat de NAT al het verkeer naar buiten doorsluist en dat blijkbaar niet gaat. Ik gebruik zo'n simple firewall scriptje om de NAT te regelen, iemand die me kan helpen?

Ik weet overigens dat het verkeer via udp/tcp poorten 27000:27050 moet lopen, dus heb geprobeerd om die open te zetten, zonder resultaat.

Post dit maar even hier, aangezien het spel zelf opzich gewoon goed werkt... lijkt me meer een NOS vraag dus.

Verwijderd

iCe01 schreef op maandag 02 mei 2005 @ 15:45:
Ik denk (neem aan) dat dat komt doordat de NAT al het verkeer naar buiten doorsluist en dat blijkbaar niet gaat. Ik gebruik zo'n simple firewall scriptje om de NAT te regelen
Je kan misschien beginnen met dat scriptje te posten? Wij kunnen hier ook niet raden wat er allemaal wordt doorgesluisd...

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
code:
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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
#!/bin/sh
#
# rc.firewall-2.4
FWVER=0.75
#
#               Initial SIMPLE IP Masquerade test for 2.4.x kernels
#               using IPTABLES.  
#
#               Once IP Masquerading has been tested, with this simple 
#               ruleset, it is highly recommended to use a stronger 
#               IPTABLES ruleset either given later in this HOWTO or 
#               from another reputable resource.
#
#
#
# Log:
#       0.75 - Added more kernel modules to the comments section
#       0.74 - the ruleset now uses modprobe vs. insmod
#       0.73 - REJECT is not a legal policy yet; back to DROP
#       0.72 - Changed the default block behavior to REJECT not DROP
#       0.71 - Added clarification that PPPoE users need to use
#              "ppp0" instead of "eth0" for their external interface
#       0.70 - Added commented option for IRC nat module
#            - Added additional use of environment variables 
#            - Added additional formatting
#       0.63 - Added support for the IRC IPTABLES module
#       0.62 - Fixed a typo on the MASQ enable line that used eth0
#              instead of $EXTIF
#       0.61 - Changed the firewall to use variables for the internal
#              and external interfaces.
#       0.60 - 0.50 had a mistake where the ruleset had a rule to DROP
#              all forwarded packets but it didn't have a rule to ACCEPT
#              any packets to be forwarded either
#            - Load the ip_nat_ftp and ip_conntrack_ftp modules by default
#       0.50 - Initial draft
#

echo -e "\n\nLoading simple rc.firewall version $FWVER..\n"


# The location of the iptables and kernel module programs
#
#   If your Linux distribution came with a copy of iptables, 
#   most likely all the programs will be located in /sbin.  If 
#   you manually compiled iptables, the default location will
#   be in /usr/local/sbin
#
# ** Please use the "whereis iptables" command to figure out 
# ** where your copy is and change the path below to reflect 
# ** your setup
#
#IPTABLES=/sbin/iptables
IPTABLES=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe


#Setting the EXTERNAL and INTERNAL interfaces for the network
#
#  Each IP Masquerade network needs to have at least one
#  external and one internal network.  The external network
#  is where the natting will occur and the internal network
#  should preferably be addressed with a RFC1918 private address
#  scheme.
#
#  For this example, "eth0" is external and "eth1" is internal"
#
#
#  NOTE:  If this doesnt EXACTLY fit your configuration, you must 
#         change the EXTIF or INTIF variables above. For example: 
#
#            If you are a PPPoE or analog modem user:
#
#               EXTIF="ppp0" 
#
#
EXTIF="ppp0"
INTIF="eth0"
echo "   External Interface:  $EXTIF"
echo "   Internal Interface:  $INTIF"


#======================================================================
#== No editing beyond this line is required for initial MASQ testing ==


echo -en "   loading modules: "

# Need to verify that all modules have all required dependencies
#
echo "  - Verifying that all kernel modules are ok"
$DEPMOD -a

# With the new IPTABLES code, the core MASQ functionality is now either
# modular or compiled into the kernel.  This HOWTO shows ALL IPTABLES
# options as MODULES.  If your kernel is compiled correctly, there is
# NO need to load the kernel modules manually.  
#
#  NOTE: The following items are listed ONLY for informational reasons.
#        There is no reason to manual load these modules unless your
#        kernel is either mis-configured or you intentionally disabled
#        the kernel module autoloader.
#

# Upon the commands of starting up IP Masq on the server, the
# following kernel modules will be automatically loaded:
#
# NOTE:  Only load the IP MASQ modules you need.  All current IP MASQ 
#        modules are shown below but are commented out from loading.
# ===============================================================

echo "----------------------------------------------------------------------"

#Load the main body of the IPTABLES module - "iptable"
#  - Loaded automatically when the "iptables" command is invoked
#
#  - Loaded manually to clean up kernel auto-loading timing issues
#
echo -en "ip_tables, "
$MODPROBE ip_tables


#Load the IPTABLES filtering module - "iptable_filter" 
#  - Loaded automatically when filter policies are activated


#Load the stateful connection tracking framework - "ip_conntrack"
#
# The conntrack  module in itself does nothing without other specific 
# conntrack modules being loaded afterwards such as the "ip_conntrack_ftp"
# module
#
#  - This module is loaded automatically when MASQ functionality is 
#    enabled 
#
#  - Loaded manually to clean up kernel auto-loading timing issues
#
echo -en "ip_conntrack, "
$MODPROBE ip_conntrack


#Load the FTP tracking mechanism for full FTP tracking
#
# Enabled by default -- insert a "#" on the next line to deactivate
#
echo -en "ip_conntrack_ftp, "
$MODPROBE ip_conntrack_ftp


#Load the IRC tracking mechanism for full IRC tracking
#
# Enabled by default -- insert a "#" on the next line to deactivate
#
echo -en "ip_conntrack_irc, "
$MODPROBE ip_conntrack_irc


#Load the general IPTABLES NAT code - "iptable_nat"
#  - Loaded automatically when MASQ functionality is turned on
# 
#  - Loaded manually to clean up kernel auto-loading timing issues
#
echo -en "iptable_nat, "
$MODPROBE iptable_nat


#Loads the FTP NAT functionality into the core IPTABLES code
# Required to support non-PASV FTP.
#
# Enabled by default -- insert a "#" on the next line to deactivate
#
echo -en "ip_nat_ftp, "
$MODPROBE ip_nat_ftp


#Loads the IRC NAT functionality into the core IPTABLES code
# Required to support NAT of IRC DCC requests
#
# Disabled by default -- remove the "#" on the next line to activate
#
#echo -e "ip_nat_irc"
#$MODPROBE ip_nat_irc

echo "----------------------------------------------------------------------"

# Just to be complete, here is a partial list of some of the other  
# IPTABLES kernel modules and their function.  Please note that most 
# of these modules (the ipt ones) are automatically loaded by the 
# master kernel module for proper operation and don't need to be 
# manually loaded.
# --------------------------------------------------------------------
#
#    ip_nat_snmp_basic - this module allows for proper NATing of some 
#                        SNMP traffic
#
#    iptable_mangle    - this target allows for packets to be 
#                        manipulated for things like the TCPMSS 
#                        option, etc.
#
# --
#
#    ipt_mark       - this target marks a given packet for future action.
#                     This automatically loads the ipt_MARK module
#
#    ipt_tcpmss     - this target allows to manipulate the TCP MSS
#                     option for braindead remote firewalls.
#                     This automatically loads the ipt_TCPMSS module
#
#    ipt_limit      - this target allows for packets to be limited to
#                     to many hits per sec/min/hr
#
#    ipt_multiport  - this match allows for targets within a range
#                     of port numbers vs. listing each port individually
#
#    ipt_state      - this match allows to catch packets with various
#                     IP and TCP flags set/unset
#
#    ipt_unclean    - this match allows to catch packets that have invalid
#                     IP/TCP flags set
#
#    iptable_filter - this module allows for packets to be DROPped, 
#                     REJECTed, or LOGged.  This module automatically 
#                     loads the following modules:
#
#                     ipt_LOG - this target allows for packets to be 
#                               logged
#
#                     ipt_REJECT - this target DROPs the packet and returns 
#                                  a configurable ICMP packet back to the 
#                                  sender.
# 

echo -e "   Done loading modules.\n"



#CRITICAL:  Enable IP forwarding since it is disabled by default since
#
#           Redhat Users:  you may try changing the options in
#                          /etc/sysconfig/network from:
#
#                       FORWARD_IPV4=false
#                             to
#                       FORWARD_IPV4=true
#
echo "   Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward


# Dynamic IP users:
#
#   If you get your IP address dynamically from SLIP, PPP, or DHCP, 
#   enable this following option.  This enables dynamic-address hacking
#   which makes the life with Diald and similar programs much easier.
#
echo "   Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Enable simple IP forwarding and Masquerading
#
#  NOTE:  In IPTABLES speak, IP Masquerading is a form of SourceNAT or SNAT.
#
#  NOTE #2:  The following is an example for an internal LAN address in the
#            192.168.0.x network with a 255.255.255.0 or a "24" bit subnet mask
#            connecting to the Internet on external interface "eth0".  This
#            example will MASQ internal traffic out to the Internet but not
#            allow non-initiated traffic into your internal network.
#
#            
#         ** Please change the above network numbers, subnet mask, and your 
#         *** Internet connection interface name to match your setup
#         


#Clearing any previous configuration
#
#  Unless specified, the defaults for INPUT and OUTPUT is ACCEPT
#    The default for FORWARD is DROP (REJECT is not a valid policy)
#
echo "   Clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT 
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT 
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD 
$IPTABLES -t nat -F

echo "   FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

echo "   Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

echo -e "\nDone.\n"

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
De input en output policy staat op ACCEPT, dus al het netwerkverkeer kan dus gewoon de server in en uit.(deze firewall zorgt ook alleen maar voor 'internet sharing' en niet als firewall) Het probleem zit dus niet bij iptables. Probeer eens de server op de interne netwerkinterface te draaien en kijken of je dan wel kan verbinden.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Hmmm okee, ik heb niet bijster veel verstand van dit soort gedoe... is het qua security heel vervelend dat ie zo staat ingesteld? Want het Internet delen gaat inderdaad prima, en daarvoor had ik 'm in eerste instantie.

Maar wanneer ik 'm alleen op de internet interface draai heb je er via internet niks aan, nietwaar? Zal morgen eens kijken of ik dat ergens ingesteld kreeg.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
iCe01 schreef op maandag 02 mei 2005 @ 23:38:
Hmmm okee, ik heb niet bijster veel verstand van dit soort gedoe... is het qua security heel vervelend dat ie zo staat ingesteld? Want het Internet delen gaat inderdaad prima, en daarvoor had ik 'm in eerste instantie.
Nee het is geen security lek ofzo. T'is alleen maar dat je het even weet. Je kunt er leuke discussies over houden of firewalls nuttig zijn, maar dat zullen wel hier wel niet doen ;)
Maar wanneer ik 'm alleen op de internet interface draai heb je er via internet niks aan, nietwaar? Zal morgen eens kijken of ik dat ergens ingesteld kreeg.
Ik neem aan dat je interne interface bedoelt. Als je die instelt dat kun je er vanaf internet niet op, maar dat geeft dan wel enige informatie of de server en pc goed werken. Andersom is het trouwens wel zo dat als de server op je externe interface draait je er ook met computers vanaf het interne netwerk op zou moeten kunnen doordat het verkeer wordt geforward.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Okay, ik heb eens alles opnieuw gedownload en geupdate/geinstalleerd... maar werken doet het nog niet.

Ik weet ook niet precies hoe ik het voor elkaar moet krijgen om het ding alleen intern te laten werken? Ik heb het lokale IP adres (192.168.0.1) meegeven met +ip, en stel met +sv_lan 1 in dat het een LAN server moet zijn i.p.v. een Internet server. Helaas zie ik nog steeds geen server in de games lijst, en handmatig connecten naar het IP werkt ook niet.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
En de server blijft wel draaien en geeft geen foutmeldingen? Het kan namelijk ook gewoon een probleem zijn met de hl server: zie bv dit topic Dedicated CS Linux Server

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Ik krijg helemaal geen foutmeldingen te zien ofzo, en met "quit" sluit het ding weer gewoon netjes af, dus daar zou het volgens mij niet aan mogen liggen?

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Volgende krijg ik bij startup:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Auto detecting CPU
Using default binary.
Auto-restarting the server on crash

Console initialized.
Protocol version 47
Exe version 1.1.2.5/Stdio (cstrike)
Exe build: 02:38:15 Jul  7 2004 (2738)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 127.0.0.1:27015
Downloading Security Module from Speakeasy.net ...
Completed downloading Security Module from Speakeasy.net
Server is in Secure Mode.

Server logging data to file logs/L0504000.log
L 05/04/2005 - 11:21:50: Log file started (file "logs/L0504000.log") (game "cstrike") (version "47/1.1.2.5/Stdio/2738")
L 05/04/2005 - 11:21:50: Server cvar "sv_region" = "3"
L 05/04/2005 - 11:21:50: Server cvar "sv_contact" = "cs@xxx.nl"
couldn't exec banned_user.cfg
couldn't exec banned_ip.cfg
Adding master server 207.173.177.11:27010
Adding master server 207.173.177.12:27010
L 05/04/2005 - 11:21:59: World triggered "Round_Start"


Die "couldn't find" files maken overigens niet uit, heb ze getouched; dan verdwijnt de foutmelding maar kan ik nog steeds niet connecten. Wat wel raar is is dat ik STEAM Auth Server krijg, terwijl dat normaal volgens mij WON moet zijn wanneer je een Internet server hebt.

  • IJnte
  • Registratie: Juni 2003
  • Laatst online: 09-02 09:44
Volgens mij zit et niet in het programma maar meer in je NAT configuratie.. Wat ik iig zo zie aan die log van hierboven ziet het er goed uit. Je kan idd die +IP en +PORt optie gebruiken, maar euh dan kunnen je LAN users niet zomaar meer connecten.

Exploring the world by bicycle! cyclingsilk.wordpress.com


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Ha dan hebben we nu een ouderwets geval tegenspraak, want de firewall schijnt niks fout te doen volgens bovenstaande antwoorden :)

  • m33p
  • Registratie: September 2002
  • Laatst online: 06-02 20:21
Server IP address 127.0.0.1:27015

Je server krijgt niet het goede IP. Je moet hem ff binden met -ip 10.0.02 of weet ik veel wat :)

  • lier
  • Registratie: Januari 2004
  • Laatst online: 20:53

lier

MikroTik nerd

Volgens mij staat je IP adres van de server niet goed, want hij gebruikt het loopback adres van de server (127.0.0.1). Probeer dit in ieder geval aan te passen, zodat (in eerste instantie) hier het IP adres van je interne NIC komt te staan en kijk of je deze kan benaderen.

Edit: Net te laat

[ Voor 5% gewijzigd door lier op 04-05-2005 11:29 ]

Eerst het probleem, dan de oplossing


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Met +ip 192.168.0.1, dat weet ik; maar dat werkt dus niet. Daarbij kun je dan alleen naar die interface connecten, terwijl ik 'm graag op allebei wil draaien. Okee dat valt misschien wel op te lossen met een forward maar goed... het werkt dus niet.

Verwijderd

Kan je niet het externe ip meegeven? Dan zou het gewoon moeten lukken, ook voor interne computers...

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Dat kan ja, maar dan kan ik in ieder geval vanaf lokaal al geen verbinding maken.

  • Parasietje
  • Registratie: Juli 2004
  • Laatst online: 10-06-2024

Parasietje

linux-geek

http://www.iptables.org/documentation/HOWTO//NAT-HOWTO.html
lees eerst hier eens een beetje over iptables.

Bind je HLDS op je lokaal ip (mbv +ip 192.168.0.1). Dan kan je al vanaf LAN verbinding maken. Zet nu een port forward in je iptables script die je counter-strike poorten naar de lokale LAN poort doorstuurt.
code:
1
2
iptables -t nat -A PREROUTING -i ppp0 -j DNAT -p tcp --dport 27015 --to 192.168.0.1
iptables -t nat -A PREROUTING -i ppp0 -j DNAT -p udp --dport 27015 --to 192.168.0.1

Je kan zelfs gewoon binden op localhost (127.0.0.1) en bovenstaande taktiek toepassen voor eth0.
code:
1
2
3
4
iptables -t nat -A PREROUTING -i ppp0 -j DNAT -p tcp --dport 27015 --to 127.0.0.1
iptables -t nat -A PREROUTING -i ppp0 -j DNAT -p udp --dport 27015 --to 127.0.0.1
iptables -t nat -A PREROUTING -i eth0 -j DNAT -p tcp --dport 27015 --to 127.0.0.1
iptables -t nat -A PREROUTING -i eth0 -j DNAT -p udp --dport 27015 --to 127.0.0.1

WebDAV in Vista is horribly broken. Ik wil het fixen, maar ben nog steeds op zoek naar de tarball met de source...


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Parasietje schreef op woensdag 04 mei 2005 @ 16:26:
Bind je HLDS op je lokaal ip (mbv +ip 192.168.0.1). Dan kan je al vanaf LAN verbinding maken. Zet nu een port forward in je iptables script die je counter-strike poorten naar de lokale LAN poort doorstuurt.
Dat zou je zeggen ja, niet dus! Kan echt geen verbinding maken, ook niet lokaal!

  • [NUT]
  • Registratie: Juni 2001
  • Laatst online: 09-02 15:54

[NUT]

Heppiedepeppie

met stom, zo deed ik dat ook met Q3 engine gameservers...

  • m33p
  • Registratie: September 2002
  • Laatst online: 06-02 20:21
Is het niet -ip ? net zoals het -port is.... + is voor cvars

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Nee want +ip geeft wel het juiste IP-adres in het start-overzichtje, dus dat zal dan wel kloppen neem ik aan. Zo staat het overigens ook op diverse fora.

Verwijderd

Verwijderd schreef op woensdag 04 mei 2005 @ 12:17:
Kan je niet het externe ip meegeven? Dan zou het gewoon moeten lukken, ook voor interne computers...
iCe01 schreef op woensdag 04 mei 2005 @ 13:32:
Dat kan ja, maar dan kan ik in ieder geval vanaf lokaal al geen verbinding maken.
Dan is je NAT dus fout ingesteld. Je kan normaal ook de router benaderen op zijn extern ip vanuit je intern netwerk. Nu, ik ben geen guru met iptables, ik gebruik shorewall en daar kan ik voor oa ssh en www de router benaderen langs binnen en buitenkant op zijn extern ip.

Je moet dus op zoek naar een andere instelling voor je iptables. Misschien eens ipv je scriptje een uitgebreide firewall installeren (bijvoorbeeld shorewall).

  • gakkethijs
  • Registratie: December 2003
  • Laatst online: 23-01 14:01

gakkethijs

niks

[qoute]Die "couldn't find" files maken overigens niet uit, heb ze getouched; dan verdwijnt de foutmelding maar kan ik nog steeds niet connecten. Wat wel raar is is dat ik STEAM Auth Server krijg, terwijl dat normaal volgens mij WON moet zijn wanneer je een Internet server hebt. [/qoute]

uhm nee won bestaat nie meer en is vervangen door het online auth systeem steam.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Ik zag dat als je wilde testen op lan dat je de volgende opties mee kon geven: "-insecure -nomaster". Als je daarnaast ook +ip 192.168.0.1 meegeeft dan verschijnt de server om een of andere vage reden niet in het overzicht scherm van de client en moet je even handmatig een verbinding maken vanaf de client met de server.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Handmatig verbinding maken is wat ik tot nu toe probeer, want in die schermpjes staat ie sowieso niet. Die firewall is ook waar ik aan denk, maar als ie standaard op accept staat? Nu even geen tijd om dingen te proberen, wanneer ik dat wel heb hoort u weer van me.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Nog steeds geen oplossing! De bovengenoemde opties -insecure -nomaster geven een extra regeltje bij het opstarten "Master server communication disabled", maar er gebeurd verder weinig anders.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Ik zag dat je geen +log optie in je opstart regel mocht hebben want anders wordt +ip niet goed meegenomen. Je opstartregel om te testen op een lokaal netwerk zou er dus ongeveer zo uit moeten zien: (de 127.0.0.1 zou dan ook niet meer te zien moeten zijn bij het opstarten van de server)
code:
1
./hlds_run +ip 192.168.0.1 +port 27015 -game cstrike -insecure -nomaster +sv_lan 1 +maxplayers 10 +map cs_assault


Als dit goed werkt zou je voor internet zoiets moeten doen: (zoals ook hier en hier gedaan wordt)
code:
1
./hlds_run +ip <extern ip> +port 27015 -game cstrike +sv_lan 0 +maxplayers 10 +map cs_assault -autoupdate +mapchangecfgfile "server.cfg"

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Er gebeurd helaas weer bar weinig! Beide opties doen precies hetzelfde als alle andere alternatieven tot nu toe: niks

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Je "Server IP address" verandert ook niet bij de server? Als je ip echt niet wijzigd kan je als alternatief de tweede set prerouting regels gebruiken die hierboven al eens genoemd werden, maar dat is niet de ideale oplossing.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Dat adres wat Steam laat zien wordt wel anders ja, hij draait dan op het IP adres dat ik opgeef, dat werkt gewoon. Maar verbinding maken ho maar.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Ik zie zo ook niet waar het nu misgaat, maar post eens voor de zekerheid de output van "iptables -L".

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Here u go, ik kan hier dus weinig van maken... of tenminste, ik zie niet wat er fout kan zijn:

code:
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
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABL
ISHED
ACCEPT     all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere           LOG level warning
ACCEPT     tcp  --  anywhere             192.168.0.1        tcp spt:afs3-prserve
r dpts:1024:65535
ACCEPT     tcp  --  192.168.0.1          anywhere           tcp spts:1024:65535
dpt:afs3-prserver
ACCEPT     udp  --  anywhere             192.168.0.1        udp spt:27005 dpts:1
024:65535
ACCEPT     udp  --  192.168.0.1          anywhere           udp spts:1024:65535
dpt:27005
ACCEPT     udp  --  anywhere             192.168.0.1        udp spt:27010 dpts:1
024:65535
ACCEPT     udp  --  192.168.0.1          anywhere           udp spts:1024:65535
dpt:27010
ACCEPT     udp  --  anywhere             192.168.0.1        udp spt:27015 dpts:1
024:65535
ACCEPT     udp  --  192.168.0.1          anywhere           udp spts:1024:65535
dpt:27015

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Lokkit-0-50-INPUT (0 references)
target     prot opt source               destination
ACCEPT     udp  --  ns1.casema.net       anywhere           udp spt:domain dpts:
1025:65535
ACCEPT     udp  --  sun4000.casema.net   anywhere           udp spt:domain dpts:
1025:65535
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:8000 flags:S
YN,RST,ACK/SYN
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ssh flags:SY
N,RST,ACK/SYN
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:telnet flags
:SYN,RST,ACK/SYN
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:smtp flags:S
YN,RST,ACK/SYN
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:http flags:S
YN,RST,ACK/SYN
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ftp flags:SY
N,RST,ACK/SYN
ACCEPT     udp  --  anywhere             anywhere           udp spts:bootps:boot
pc dpts:bootps:bootpc
ACCEPT     udp  --  anywhere             anywhere           udp spts:bootps:boot
pc dpts:bootps:bootpc
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
REJECT     tcp  --  anywhere             anywhere           tcp dpts:0:1023 flag
s:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere           tcp dpt:nfs flags:SY
N,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere           udp dpts:0:1023 reje
ct-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere           udp dpt:nfs reject-w
ith icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere           tcp dpts:x11:6009 fl
ags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere           tcp dpt:xfs flags:SY
N,RST,ACK/SYN reject-with icmp-port-unreachable


Heb overigens geprobeerd om lokkit uit te zetten en alleen die forward regels te gebruiken, maar dat werkt ook niet. Volgens mij stuurt ie mijn verzoeken naar de CS server gewoon door naar het internet, waar dat ding natuurlijk niet bestaat. Ik zou dus een uitzondering moeten hebben voor die poorten, zodat die gewoon "naar binnen gaan" toch?

[ Voor 6% gewijzigd door jsiegmund op 09-05-2005 12:09 ]


  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Als je verbinding maakt op 192.168.0.1 zal die gewoon direct naar je server gaan. Er staan nu echter meer regels bij forward die niet in je firewall-script staan. (waarschijnlijk komen die erin door de prerouting regels) Je moet eens proberen om je firewall-script opnieuw te draaien zodat alles gereset wordt. Er zouden dan geen poorten zoals 27015 bij je FORWARD-chains moeten staan. Ook bij "iptables -t nat -L" zou dan maar 1 regel staan. Als je dan de server start op ip 192.168.0.1 en verbindt met een computer die achter de server hangt dan zou die moeten werken.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Na het herstarten van de firewall:

iptables -L
code:
1
2
3
4
5
6
7
8
9
10
11
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere           LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


iptables -t nat -L
code:
1
2
3
4
5
6
7
8
9
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Met deze instellingen zal iptables geen probleem geven. Elke server die je draait op een netwerkinterface van je server zou je nu kunnen bereiken.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Ik geloof je graag, maar dan zou het ook moeten werken en dat doet het dus nog niet. Wat kan ik nog vergeten zijn???

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Ik heb even een snelle test gedaan, en krijg met dit commando de server goed online:
code:
1
 ./hlds_run +ip 192.168.1.1 +port 27015 -insecure -nomaster +sv_lan 1 +maxplayers 10 +map boot_camp

Alleen de versie van de client en de server komen niet overeen, maar de client ziet de server wel gewoon bij de favorites staan nadat ik hem handmatig had toegevoegd. Als ik echter een cstrike game wil starten dan doet de poort 27015 moeilijk :(

[ Voor 4% gewijzigd door cool_zero op 12-05-2005 19:37 ]


  • rdfeij
  • Registratie: September 2001
  • Laatst online: 18-01 14:50
Je moet je INKOMEND verkeer door routeren naar het ip adres van de netwerkkaart waarop de HLDS server draait.

Dit moet je dus ook in je firewall instellen, in de fora op www.steampowered.com kun je vinden welke poorten dan moeten zijn.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Okee, met bovenstaande tips probeer ik het nu zo:

- de HLDS server draait op de local loopback 127.0.0.1
- ik stel iptables zo in dat alle verkeer dat geacccepteerd moet worden dat ook daadwerkelijk wordt. Die poorten staan hier
en het script komt er dan alsvolgt uit te zien (volgens mij):
code:
1
2
3
4
5
6
$IPTABLES -A INPUT -p udp --dport 1200 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 1200 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 27000:27039 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 27000:27039 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 27020:27039 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 27020:27039 -j ACCEPT


- Vervolgens ga ik ervoor zorgen dat alle verkeer op zowel de ppp0 als eth0 interfaces geroute wordt naar de server:
code:
1
2
3
4
5
6
$IPTABLES -t nat -A PREROUTING -i eth0 -j DNAT -p tcp --dport 27000:27039 --to 127.0.0.1
$IPTABLES -t nat -A PREROUTING -i eth0 -j DNAT -p udp --dport 1200 --to 127.0.0.1
$IPTABLES -t nat -A PREROUTING -i eth0 -j DNAT -p udp --dport 27000:27039 --to 127.0.0.1
$IPTABLES -t nat -A PREROUTING -i ppp0 -j DNAT -p tcp --dport 27000:27039 --to 127.0.0.1
$IPTABLES -t nat -A PREROUTING -i ppp0 -j DNAT -p udp --dport 1200 --to 127.0.0.1
$IPTABLES -t nat -A PREROUTING -i ppp0 -j DNAT -p udp --dport 27000:27039 --to 127.0.0.1


Maar wat een verassing: het werkt nog steeds niet. Dit is redelijk hopeloos zeg, dacht dat zo'n install nooit moeilijk kon zijn, valt vies tegen.

Om het overigens nog leuker te maken: ppp0 heeft een dynamisch IP, daarom wil ik graag dat de gebruikers kunnen connecten naar mijn xxx.homelinux.com account wat altijd wijst naar die server. kun je voor die PREROUTING rules ook een destination opgeven in de vorm van -d xxx.homelinux.com ?
Hij geeft er geen foutmeldingen over, maar werkt het ook?

Ik heb het overigens nog ietsje aangepast, omdat nu al het verkeer geroute werd waardoor het connecten met internet servers onmogelijk werd. Uitvoer van iptables -L:
code:
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
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:81
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:8000
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere           udp dpt:1200
ACCEPT     udp  --  anywhere             anywhere           udp dpts:27000:27099
ACCEPT     tcp  --  anywhere             anywhere           tcp dpts:27020:27099

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere           udp spt:1200
ACCEPT     udp  --  anywhere             anywhere           udp spts:27000:27099
ACCEPT     tcp  --  anywhere             anywhere           tcp spts:27020:27099

Chain ICMP-ACC (0 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere


Starten van de server:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Auto detecting CPU
Using default binary.
Auto-restarting the server on crash

Console initialized.
Protocol version 47
Exe version 1.1.2.5/Stdio (cstrike)
Exe build: 02:38:15 Jul  7 2004 (2738)
STEAM Auth Server
couldn't exec language.cfg
Server IP address 127.0.0.1:27015
Downloading Security Module from Speakeasy.net ...
Completed downloading Security Module from Speakeasy.net
Server is in Secure Mode.

couldn't exec listip.cfg
couldn't exec banned.cfg
No auth servers parsed
Disabling Valve Authentication.
Adding master server 207.173.177.11:27010
Adding master server 207.173.177.12:27010

[ Voor 48% gewijzigd door jsiegmund op 12-05-2005 17:18 ]


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Niemand meer een idee hoe ik dit kan oplossen? Zal het onderwerp ook eens naar de Steam fora gaan verplaatsen.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Ik denk nog steeds dat het met je hlds server te maken heeft. Ik heb het zelf even getest met een gekopieerde server en die werkte wel goed(nu ook met cstrike). Ik kon hem op elke willekeuriige interface draaien en dat ging ook goed. En op het punt na dat ik de poorten even open moest zetten gaf iptables en de prerouting totaal geen problemen.

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 10-02 20:16
Okee, en kun je me dan vertellen wat je precies gedaan hebt met het installeren? Misschien dat ik daar een of andere stap oversla ofzo... ik weet het ook niet meer.

  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Niets speciaals eigenlijks, dat is dus ook het probleem. HLDS gedownload, cstrike erbij gezet en dan gewoon als root de server gestart met het commando dat ik al eerder gaf. Een echt duidelijk oplossing kan ik je dus ook niet geven.
Pagina: 1