Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Zabezpieczenie serwera metin2 ( wspomóż filtrowanie!) + skrypt konserwacyjny


Rekomendowane odpowiedzi

Opublikowano

14049709991163677622.png
Witam serdecznie na wstępie chcę wam zaznaczyć że są to pisanie własnoręcznie reguły do pf i ipfw.
Więc zastrzegam sobie prawo do hejtowania " to było "
Wszystko wam wyjaśnię później co i jak :)
Okej to zaczynamy zabawę :

Musimy zainstalować w pierwszym kroku pf i ipfw , nie będę tego opisywał bo to już było więc podam linkacze :

 

http://www.mpcforum.pl/topic/573172-kompilacja-i-konfiguracja-pf-aka-packet-filter/
http://www.mpcforum.pl/topic/375003-instalacja-ipfw/


To tak musimy wejść do rc.conf :
 

ee /etc/rc.conf

i wklejamy daną wartość :

#######################
####uslugi sieciowe####
#######################

sshd_enable="YES"
mysql_enable="YES"
apache22_enable="YES"
ntpdate_enable="YES"
ntpdate_hosts="213.186.33.99"

###################
####Konserwacja####
###################
fsck_y_enable="YES"
clear_tmp_enable="YES"
named_enable="YES"

#############################
####Konfiguracja sieciowa####
#############################

ifconfig_em0="inet 37.59.18.89 netmask 255.255.255.0 broadcast 37.59.18.255"
defaultrouter="37.59.18.254"
hostname="ns232361.ovh.net"

######################
####Zabezpieczenia####
######################

icmp_drop_redirect="YES"
icmp_log_redirect="YES"
tcp_drop_synfin="YES"
icmp_bmcastecho="NO"
icmp_bandlim="YES"
clear_tmp_enable="YES"

#################
####Firewalle####
#################

firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
firewall_logging="YES"
natd_enable="YES" 
natd_interface="em0" 
natd_flags="-dynamic -m"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""



#################
####Pozostale####
#################

# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
# ---  A zes sie ujebal z robota 
# ---rc.conf file was created by VannabeDESIGN

Zapisujemy. Następnym etapem będzie konfiguracja ipfw więdz wchodzimy w config :
 

ee /etc/ipfw.rules


I konfigurujemy go następująco :
 

###################
###IPFW rules  :###
###################

#makra
IPF="ipfw -q add"
ext_if="re0"
int_if="em1"
ks="keep-state"
tcp_services="3306,22,53,25"
#udp_services="3306,25,53,22"
ipfw -q -f flush

#loopback
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag

# statefull
$IPF 50 check-state
$IPF 60 allow tcp from any to any established
$IPF 70 allow all from any to any out keep-state
$IPF 80 allow icmp from any to any

#port forwarding
$IPF 90 allow tcp from any to any $tcp_services out via $ext_if setup $ks
$IPF 100 allow tcp from any to any $tcp_services in via $ext_if setup $ks
#$IPF 110 allow udp from any to any $udp_services in via $ext_if $ks
#$IPF 120 allow udp from any to any $udp_services out via $ext_if $ks

#monitoring packets and allowing god hosts
$IPF 130 divert natd ip from any to any in via $ext_if
$IPF 140 check-state
$IPF 150 deny all from any to any frag in via $ext_if
$IPF 160 deny tcp from any to any established in via $ext_if


# deny and log everything
$IPF 500 deny log all from any to any

#---Coppyrights 2012 - 2014 VannabeDESIGN---#

Nie zapomnijcie także dodać portów kanałów gry drodzy kochani :)
Okej teraz przejdźmy do packet filtru :
Po całej instalacji otwieramy config PF'a następującą komendą :
 

ee /etc/pf.conf

 Okej gdy już jesteśmy w kompilatorze wklepmy ową zawartość :
 

#############################################
######PAMIĘTAJ BY WPISAĆ PORTY GRY (KANAŁY)##
#############################################



#################
###PF Rules  :###
#################

#makra
ext_if="re0"
lan_net="10.0.0.0/24"
tcp_services="{ 9987, 3306, 22, 53, 25 }"
#udp_services="{ 3306, 25, 53, 22 }"
icmp_types="echoreq"

#filtracja
set skip on lo0
set optimization normal
set ruleset-optimization basic
set require-order yes
set block-policy return
set loginterface $ext_if
set state-policy if-bound
scrub in all
scrub on $ext_if fragment drop-ovl
scrub on $ext_if all reassemble tcp
block in quick from urpf-failed
block in quick from urpf-failed label uRPF
antispoof log quick for $ext_if

#loopback
pass out quick on lo0 proto tcp all
pass in quick on lo0 proto tcp all keep state

#wyjatki

#Puszczanie wybranych OS
pass in quick on $ext_if from any os Windows keep state
pass in quick on $ext_if from any os "Windows XP" keep state
pass in quick on $ext_if from any os "Windows Vista" keep state
pass in quick on $ext_if from any os "Windows 7" keep state
pass in quick on $ext_if from any os unknown keep state

#blokada wybranych OS
block in quick on $ext_if from any os "Linux 2.4 ts"
#block in quick on $ext_if from any os unknown
block in quick on $ext_if from any os OpenBSD
block in quick on $ext_if from any os Linux
block in quick on $ext_if from any os Debian

#blokada wybranych adresów IP
table <blockip> persist file "/etc/blockip.txt"
block in quick on $ext_if from <blockip> to any

#port forwarding
pass in quick on $ext_if proto tcp from any to any port $tcp_services keep state flags S/SA
pass out quick on $ext_if proto tcp from any to any port $tcp_services keep state flags S/SA
#pass in quick on $ext_if proto udp from any to any port $udp_services keep state
#pass out quick on $ext_if proto udp from any to any port $udp_services keep state
pass in quick inet proto icmp all icmp-type $icmp_types keep state
pass out quick on $ext_if proto { tcp, udp, icmp } all modulate state

#domyslna blokada
block return
block in all
block out all


Następnym krokiem będzie edycja sysctl.conf :)
Więc wykonujemy dane czynności: 
 

sysctl -a

Jeśli wszystko jest okej powinien wyskoczyć taki komunikat :
 

% sysctl kern.maxproc

Okej teraz czas na edycję sysctl więc wchodzimy w jego config :
 

ee /etc/sysctl.conf

I konfigurujemy go następująco :
 

# $FreeBSD: release/9.0.0/etc/sysctl.conf 112200 2003-03-13 18:43:50Z mux $
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#

# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0

##########################################
####Ograniczenia i ustawienia sieciowe####
##########################################

n#security.bsd.see_other_uids=0
security.bsd.see_other_uids=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.ttl=128
kern.maxfilesperproc=200000
kern.maxvnodes=600000
kern.maxfiles=204800
kern.ipc.maxsockbuf=16777216
kern.ipc.shmmax=1073741824
kern.ipc.somaxconn=32768
kern.ipc.shmall=134217728
net.inet.tcp.rfc1323=1
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_inc=262144
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=524288
net.inet.tcp.hostcache.expire=1
net.inet.ip.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.maskrepl=0
net.inet.icmp.log_redirect=0
net.inet.icmp.drop_redirect=1
net.inet.tcp.drop_synfin=1
net.inet.tcp.msl=5000
net.inet.tcp.fast_finwait2_recycle=1
net.inet.ip.intr_queue_maxlen=4096
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1
net.inet.tcp.ecn.enable=1
net.inet.ip.random_id=1
net.inet.tcp.log_in_vain=0
net.inet.tcp.log_debug=0
net.inet.udp.log_in_vain=0
kern.random.sys.harvest.ethernet=0
kern.random.sys.harvest.interrupt=0
kern.random.sys.harvest.point_to_point=0
net.inet.icmp.icmplim=40
net.inet.tcp.delayed_ack=1
net.inet.tcp.mssdflt=1460
net.inet.tcp.path_mtu_discovery=0
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536
net.inet.udp.recvspace=65536
net.local.stream.recvspace=65536
net.inet6.ip6.accept_rtadv=0
net.inet6.ip6.auto_linklocal=0

kern.ipc.nmbjumbop=192000
net.inet.tcp.maxtcptw=163840

net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.cc.algorithm=htcp
net.inet.tcp.hostcache.expire=5400
net.route.netisr_maxqlen=4096
net.inet.tcp.nolocaltimewait=1
net.local.stream.sendspace=163840
net.local.stream.recvspace=163840
net.inet.tcp.local_slowstart_flightsize=32
net.inet.tcp.slowstart_flightsize=32
net.inet.tcp.rfc3390=0
net.inet.tcp.syncache.rexmtlimit=1
net.inet.ip.rtexpire=2

net.inet.ip.check_interface=1
net.inet.ip.portrange.randomized=1
net.inet.ip.process_options=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskfake=0

vfs.read_max=128

net.link.ether.inet.log_arp_movements=0
net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1
net.inet.ip.rtminexpire=2
net.inet.tcp.icmp_may_rst=0


#####################
####IPFW Firewall####
#####################

net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5

# ---sysctl.conf file was created by VannabeDESIGN--- #

To by było już na tyle z serii zabezpieczeń , a teraz skrypt konserwacyjny dla systemu bsd ( metin2 )
Tworzymy w notepadzie 4 dokumenty z rozszerzeniem .sh o nazwie :
 

1. konserwacja.sh
2. wznow_auth.sh
3. wznow_db.sh
4. wznow_kanal.sh

Gdy już stworzymy te 4 dokumenty shella w konserwacja.sh wpisujemy daną wartość :
 

###########################################################################
###This script is write by VannabeDESIGN###
###########################################################################
echo "Skrypt konserwacyjny rozpoczyna działanie Coppyright Vannabe !"
		sleep 6
	# mysql
echo "Rozpoczynam konserwację mysql DB !"
	mysql_upgrade --force --user="konserwator" --password="Ad4S1%4@" 
		sleep 2
	mysqlcheck --user="konserwator" --password="Ad4S1%4@" --auto-repair --all-databases
		sleep 2
	/usr/local/etc/rc.d/mysql-server restart
		sleep 6
	# upgrade FreeBSD
echo "Ropoczynam aktualizację systemu, portów, usług i łat bezpieczeństwa !"
		sleep 2
	/usr/sbin/freebsd-update fetch install
		sleep 2
	portupgrade -ac
echo "Skrypt zakończył działanie !"	

wznow_auth.sh
 

#!/bin/sh
i=1
while [ $i -le 2 ]
do
netstat -an | grep LISTEN | grep 13000
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13000
[ $? -eq 0 ] && echo "otwarty" || cd /home/g1/auth/ && ./auth &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 15000
[ $? -eq 0 ] && echo "otwarty" || cd /home/g1/auth/ && ./db &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 16000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch2/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 18000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch3/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 20000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch4 && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 22000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch5/ && ./game
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13099
[ $? -eq 0 ] && echo "otwarty" || cd /home/game99/ && ./game99 &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13005
[ $? -eq 0 ] && echo "otwarty" || cd /home/game2/ && ./game2 &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13010
[ $? -eq 0 ] && echo "otwarty" || cd /home/game3/ && ./game3 &
sleep 20
i=`expr $i + 1`
done

wznow_db
 

#!/bin/sh
i=1
while [ $i -le 2 ]
do
netstat -an | grep LISTEN | grep 11666
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 1
[ $? -eq 0 ] && echo "otwarty" || cd /home/game/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 16000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch2/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 18000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch3/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 20000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch4 && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 22000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch5/ && ./game
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13099
[ $? -eq 0 ] && echo "otwarty" || cd /home/game99/ && ./game99 &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13005
[ $? -eq 0 ] && echo "otwarty" || cd /home/game2/ && ./game2 &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13010
[ $? -eq 0 ] && echo "otwarty" || cd /home/game3/ && ./game3 &
sleep 20
i=`expr $i + 1`
done

wznow kanal
 

#!/bin/sh
i=1
while [ $i -le 2 ]
do
netstat -an | grep LISTEN | grep 11666
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13000
[ $? -eq 0 ] && echo "otwarty" || cd /home/game/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 15000
[ $? -eq 0 ] && echo "otwarty" || cd /home/g1/db/ && ./db &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 16000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch2/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 18000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch3/ && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 20000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch4 && ./game &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 22000
[ $? -eq 0 ] && echo "otwarty" || cd /home/ch5/ && ./game
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13099
[ $? -eq 0 ] && echo "otwarty" || cd /home/game99/ && ./game99 &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13005
[ $? -eq 0 ] && echo "otwarty" || cd /home/game2/ && ./game2 &
[ $? -eq 0 ] && netstat -an | grep LISTEN | grep 13010
[ $? -eq 0 ] && echo "otwarty" || cd /home/game3/ && ./game3 &
sleep 20
i=`expr $i + 1`
done

Pliki wrzucamy do : /
Aby automaczyne wznawianie chodziło musimy dodać to do crontab'a :
 

ee /etc/crontab

Wklepujemy następujące wartości :
 

*/10[TAB]*[TAB]*[TAB]*[TAB]*[TAB]root[TAB]/wznow_db.sh
*/10[TAB]*[TAB]*[TAB]*[TAB]*[TAB]root[TAB]/wznow_auth.sh
*/10[TAB]*[TAB]*[TAB]*[TAB]*[TAB]root[TAB]/wznow_kanal.sh



Mam nadzieję że komuś pomogę lub umilę tym życie , jeśli macie jakie problemy bądź wątpliwości proszę pisać.
Pozdrawiam VannabeDESIGN

Opublikowano

Zakładam że takie pytania się pojawią ;)

To raczej nie będą pytania, to będzie płacz osób które czekają na gotowe.

 

Btw. przed czym głównie te regułki według Ciebie zabezpieczają? ;)

Opublikowano

generalnie fajnie ale z calym szacunkiem do autora tematu... nie sadze aby w/w reguly byly Twojego autorstwa z bardzo prostego powodu, sa w nich bledy czysto techniczne ktore swiadcza o braku elementarnej wiedzy z zakresu sieci komputerowych...

 

wiec albo to nie Twoje tylko skopiowane z internetu to zwracam Ci honor, jesli Twoje i twierdzisz ze wiesz co w tych regulach pisze to znaczy ze nie raczyles poznac nawet podstaw sieci...

 

poza tym, juz czekam az ktos kto ten tutorial wdrozy bedzie sie skarzyl na lagi w metinie...

Vortax. konfiguracja administracja zarzadzanie zabezpieczenia serwerow dedykowanych Metin2, aktualnie Thespia, Exalion, Longju2, Restia kontakt PW

Opublikowano

Zakładam że takie pytania się pojawią ;)

 

No to dodaj do tematu, że możemy użyc taki skrypt:

#!/bin/sh

while :; do
    sleep 120
    service pf stop && service ipfw stop
done

Odpalic go za pomocą ./skrypt.sh & i co 2 minuty będzie nam wyłączało firewalla, na wszelki wypadek, kiedy odetniemy sobie dostęp.

pre_1405084226__sygnatura_3.png

Opublikowano

No to dodaj do tematu, że możemy użyc taki skrypt:

#!/bin/sh

while :; do
    sleep 120
    service pf stop && service ipfw stop
done

Odpalic go za pomocą ./skrypt.sh & i co 2 minuty będzie nam wyłączało moduły firewalla, na wszelki wypadek, kiedy odetniemy sobie dostęp.

Dodam gdy tylko wrócę :)

Opublikowano

Pozdro dla tych co użyją tego poradnika, bo nie połączą się z serwerem po restarcie. Po 2 jaka jest logika w instalowaniu IPFW skoro PF zawiera IPFW...? Połączona wiedza z kilku poradników i od razu mamy kolejnego specjalistę na forum od zabezpieczeń.

Opublikowano

Pozdro dla tych co użyją tego poradnika, bo nie połączą się z serwerem po restarcie. Po 2 jaka jest logika w instalowaniu IPFW skoro PF zawiera IPFW...? Połączona wiedza z kilku poradników i od razu mamy kolejnego specjalistę na forum od zabezpieczeń.

 

Ale ogólnie jaki jest sens konfiguracji wewnętrznego firewalla (pf'a), aby filtrował pakiety tak jak jest to ukazane w temacie?

To zadanie powinien spełniac zewnętrzny firewall, w wewnętrznym powinniśmy zablokowac tylko porty p2p oraz db.

 

@Top

 

Tak jak Inkscape powiedział, PF zawiera IPFW i instalacja tych dwóch modułów obciąża tylko nasz system.

pre_1405084226__sygnatura_3.png

Opublikowano

Pozdro dla tych co użyją tego poradnika, bo nie połączą się z serwerem po restarcie. Po 2 jaka jest logika w instalowaniu IPFW skoro PF zawiera IPFW...? Połączona wiedza z kilku poradników i od razu mamy kolejnego specjalistę na forum od zabezpieczeń.

Odezwał się wielki znawca ;)

Opublikowano

Odezwał się wielki znawca ;)

 

Przynajmniej nie mieszam inferface em0 z re0 co skutkuje tym, że jedyny sposób uruchomienia maszyny to awaryjny. To super poradnik na uceglenie maszyny.

 

####uslugi sieciowe####

#######################

 

ifconfig_em0="inet 37.59.18.89 netmask 255.255.255.0 broadcast 37.59.18.255"

defaultrouter="37.59.18.254"

hostname="ns232361.ovh.net"

#################

###PF Rules :###

#################

#makra

ext_if="re0"

lan_net="10.0.0.0/24"

tcp_services="{ 9987, 3306, 22, 53, 25 }"

#udp_services="{ 3306, 25, 53, 22 }"

icmp_types="echoreq"

Opublikowano

Sprawdzał ktoś?

 

Tak, jak próbujesz pingowac to nie odpowiada.

Pozdro dla kumatych. :D

pre_1405084226__sygnatura_3.png

Opublikowano

Ale ogólnie jaki jest sens konfiguracji wewnętrznego firewalla (pf'a), aby filtrował pakiety tak jak jest to ukazane w temacie?

To zadanie powinien spełniac zewnętrzny firewall, w wewnętrznym powinniśmy zablokowac tylko porty p2p oraz db.

 

Ogólnie jest sens w filtracji przez PF, ale nie takimi regułkami jak to jest pokazane w temacie. Są zupełnie źle napisane. Ok, autor nie chce się dzielić swoimi, ale to nie zmienia faktu, że są w tym temacie poważne błędy.

Opublikowano

Napisałem Ci :)

Aha, to on ma wiedzieć a reszta dopiero wgra jak sprawdzi :D :D

 

Czekać tylko, nie mogę wejść do gry itp ^^

 

ale topic dla nowych przydatny, chociaż Ja bym nie używał 

517981403547547309333.jpeg

Opublikowano

No to chyba jasne ze emo0 trzeba ustawić pod swoje.,..

 

Czy Ty widzisz co piszesz..?

pre_1405084226__sygnatura_3.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...