Команда существует уже около 20 лет и занимается некоммерческой разработкой мода на базе SSRW. Игрушка старая и в мульти использовали Hamachi. Однако с этого года цена на подсеть у них стала совсем дурная, а мы все (домены, хостинг, рекламу и пр.) оплачиваем из своего кармана. Учитывая, что команда несколько лет как уже имеет свой сервер, решение напрашивалось однозначное.
На данны момент имеется канал 50 Mb, за роутером:
основной сервер: FreeBSD 10.3, DNS, DHCP, ftp, ntp, Samba, VPN.
резервный: FreeBSD 10.3, ftp, VPN. (т.е. имеется возможность безболезненно тренироваться "на кошках")
Несколько человек подключается по vpn и благополучно работает с файлами не первый год (сразу для ясности: мои отношение с unx на уровне - возникла задача => читаю/разбираюсь => делаю => до следующей задачи). Казалось - сложностей быть не должно
Ядро собрано с опциями:
Код: Выделить всё
# IPFW
options IPFIREWALL
options IPFIREWALL_NAT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=5
options IPDIVERT
options DUMMYNET
options LIBALIAS
options ROUTETABLES=2
options HZ="1000"
options SC_DISABLE_REBOOT
# NETGRAPH
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_MPPC_COMPRESSION
options NETGRAPH_BPF
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_TCPMSS
options NETGRAPH_VJC
options NETGRAPH_ONE2MANY
options NETGRAPH_RFC1490
options NETGRAPH_TTY
options NETGRAPH_UI
# IpSec
options IPSEC
options IPSEC_FILTERTUNNEL
options IPSEC_NAT_T
options IPSEC_DEBUG
device crypto
device enc
Код: Выделить всё
hostname="srv3.xxxx.local"
ifconfig_em0="inet 192.168.1.251 netmask 255.255.255.0 media 1000baseT mediaopt full-duplex"
defaultrouter="192.168.1.252"
local_unbound_enable="YES"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
dumpdev="AUTO"
fsck_y_enable="YES"
background_fsck="NO"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
dhcpd_enable="YES"
dhcpd_ifaces="em0"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_withumask="022"
ftpd_enable="YES"
ftpd_flags="-4 -D -h -l -l -r"
samba_server_enable="YES"
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
gateway_enable="YES"
mpd_enable="YES"
mpd_flags="-b"
log_in_vain="YES"
syslogd_enable="YES"
inetd_enable="NO"
smartd_enable="YES"
mpd.conf
Код: Выделить всё
startup:
log -all +auth
set user xxxx xxxxxxxx admin
set user xxxx xxxxxxxx admin
set user xxxx xxxxxxxx admin
set user xxxx xxxxxxxx admin
set web self 0.0.0.0 5006
set web open
default:
load pptp_server
load l2tp_server
pptp_server:
set ippool add rwg-tow 10.2.2.11 10.2.2.250
create bundle template B
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set iface enable nat
set iface enable netflow-in
set iface enable netflow-out
set ipcp yes vjcomp
set ipcp ranges 10.2.2.1/24 ippool rwg-tow
set ipcp dns 10.2.2.1
set ipcp nbns 10.2.2.1
set bundle enable compression
set ccp yes pred1 deflate mppc
set mppc yes compress e40 e56 e128 stateless
create link template L pptp
set link enable multilink
set link yes acfcomp protocomp
set link action bundle B
set link no pap chap eap
set link enable chap chap-msv1 chap-msv2
set link mtu 1460
set link keep-alive 60 180
set pptp self 192.168.1.251
set link enable incoming
l2tp_server:
set ippool add pool2 192.168.1.150 192.168.1.199
create bundle template C
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set ipcp yes vjcomp
set ipcp ranges 192.168.1.251/32 ippool pool2
set ipcp dns XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX
set ipcp nbns 192.168.1.251
set ccp yes pred1 deflate mppc
set mppc yes e40 e56 e128 stateless
create link template N l2tp
set link action bundle C
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap chap-msv1 chap-msv2
set link mtu 1460
set link keep-alive 60 180
set l2tp self 192.168.1.251
set l2tp hostname srv3.xxxx.local
set link enable incoming
Код: Выделить всё
User1 xxxxxxxxxx 192.168.1.199
xxxx2 xxxxxxxxxx 192.168.1.198
xxxx3 xxxxxxxxxx 192.168.1.197
xxxx4 xxxxxxxxxx 192.168.1.196
xxxx5 xxxxxxxxxx 192.168.1.194
xxxx6 xxxxxxxxxx 192.168.1.193
xxxx7 xxxxxxxxxx 192.168.1.192
xxxx8 xxxxxxxxxx 192.168.1.191
xxxx9 xxxxxxxxxx 192.168.1.190
xxxx0 xxxxxxxxxx 192.168.1.188
xxxxX xxxxxxxxxx 192.168.1.187
xxxx1 xxxxxxxxxx 10.2.2.2
xxxx2 xxxxxxxxxx 10.2.2.3
xxxx3 xxxxxxxxxx 10.2.2.4
Gamer Gamer *
На этом все хорошее и заканчивается:
Игра, как правило, не видит созданный одним из игроков сервер или видит, но не подключается.
Пляски с маршрутами и/или метриками иногда! решают проблему, но это не выход.
Sudden strike использует порты:
Код: Выделить всё
TCP 2300 (2300-2400)
TCP 3389
TCP 6073
TCP 28800 (28800-28900)
TCP 47624
UDP 1900
UDP 2350
UDP 47624
Код: Выделить всё
ipfw -q -f flush
cmd="ipfw -q add"
ks="keep-state"
lif="em0"
lip="192.168.1.251"
lan="192.168.1.0/24"
gate="192.168.1.252"
vpn="10.2.2.0/24"
iip="XXX.XXX.XXX.XXX"
dns="XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX"
$cmd 00005 allow ip from any to any via lo0
$cmd 00010 check-state
# $cmd 00100 deny ip from any to 127.0.0.0/8
# $cmd 00110 deny ip from 127.0.0.0/8 to any
# $cmd 00120 reject log tcp from any to any tcpflags fin, syn, rst, psh, ack, urg via $lif
# $cmd 00130 reject log tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg via $lif
# $cmd 00140 reject log tcp from any to any not established tcpflags fin via $lif
# $cmd 00150 deny log ip from any to any not verrevpath in via $lif
# $cmd 00160 deny log all from any to any frag in via $lif
# ban="table(1)"
# ipfw table 1 flush
# ipfw table 1 add 93.153.142.102
# $cmd 00170 deny log all from any to ${ban}
# $cmd 00190 deny log all from ${ban} to any
$cmd 00200 allow tcp from any to any established
$cmd 01000 allow tcp from any to me 11022 via $lif setup $ks
$cmd 01010 allow tcp from any to me 20,21 setup $ks
$cmd 01020 allow udp from any to $dns 53 out via $lif $ks
$cmd 01030 allow all from $lan to $lip 43,53,81,137-139,445 via $lif setup $ks
$cmd 01035 allow all from $lan to $lip 81,137-139,445 via ng* setup $ks
$cmd 01036 allow udp from $lan to me 53,137-139,445 via ng* $ks
$cmd 01040 allow udp from me to any 37,123 via $lif $ks
$cmd 01045 allow udp from $lan to me 37,53,123 via $lif $ks
$cmd 01050 allow tcp from $lan to $lip 43,53 via $lif $ks
$cmd 01060 allow udp from $lan to $lan 1900 via $lif $ks
$cmd 01070 allow icmp from $lan to any via $lif
$cmd 01100 allow udp from $gate to any 520,1025 via $lif $ks
$cmd 02000 allow tcp from any to me 1701,1723,5006 setup $ks
$cmd 02010 allow gre from any to me via $lif $ks
$cmd 02020 allow gre from any to me via ng* $ks
$cmd 02030 allow gre from $vpn to $vpn via ng* $ks
$cmd 02100 allow udp from any to me 1701 $ks
$cmd 65000 allow log all from any to any
Не знаю, что еще может быть завязано.
Собственно, прошу ткнуть носом: где у меня руки не оттуда растут?
