Flyspeak | 2019-01-11 12:35:54 UTC | #1
Witam.
Mam parę problemów z moim VPS a że nie jestem alfa i omegą postanowiłem się Was poradzić.
Pierwszym podstawowym problemem jest to że po restarcie VPS moje Iptables jest puste i mam wszystkie porty otwarte. Wczoraj miałem 20% packet loos na całym Ts3 [DDOS].
Normalnie w konsole wklejam cały skrypt:
#!/bin/bash
# czyścimy wszystko
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
if [ \"$1\" = \"stop\" ]
then
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
exit
fi
# ustalamy domyślną politykę dla filtrów
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# pełny ruch na interfejsie lo (potrzebne do działania wielu lokalnych usług)
iptables -A INPUT -i lo -j ACCEPT
# odrzucamy ident
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with icmp-port-unreachable
# ochrona przed atakami
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j LOG --log-prefix \"Ping: \"
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT # Ping of death
# iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT --reject-with icmp-host-unreachable
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j LOG --log-prefix \"ACK scan: \"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP # Metoda ACK (nmap -sA)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j LOG --log-prefix \"FIN scan: \"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP # Skanowanie FIN (nmap -sF)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH PSH -j LOG --log-prefix \"Xmas scan: \"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # Metoda Xmas Tree (nmap -sX)
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j LOG --log-prefix \"Null scan: \"
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j DROP # Skanowanie Null (nmap -sN)
# Łańcuch syn-flood (obrona przed DoS)
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j LOG --log-prefix \"SYN-flood: \"
iptables -A syn-flood -j DROP
# pozwalamy na wszystkie istniejące już połączenia oraz połączenia które są powiązane z >istniejącymi już połączeniami
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Teamspeak 3
iptables -A INPUT -m state --state NEW -p udp --dport 9987 -j ACCEPT
# Server Query
iptables -A INPUT -m state --state NEW -p tcp --dport 10011 -j ACCEPT
# FTP
iptables -A INPUT -m state --state NEW -p tcp --dport 30033 -j ACCEPT
# TSDNS
iptables -A INPUT -m state --state NEW -p tcp --dport 41144 -j ACCEPT
# Teamspeak 3 Licencja
iptables -A INPUT -m state --state NEW -p tcp --dport 2008 -j ACCEPT
# PORTY PONIŻEJ 1024: ssh, http, https
iptables -A INPUT -m state --state NEW -m multiport -p tcp --dports 22 -j ACCEPT
Jak zrobić aby ten skrypt uruchamiał się ze startem systemu? Lub aby te reguły się nie usuwały.
Drugą sprawą jest TS3AudioBot. Normalnie muszę uruchomić screen i “mono TS3
AudioBot.exe”. Czy jest możliwość zrobienia autostartu do tego bota?
No i ABot. ABot startuje normalnie z root ./run start .
Jest to sporym utrudnieniem dla mnie bo dostęp do maszyny mam tylko ja, jak wywali serwer lub zrobię restart to muszę boty włączać ręcznie. Dużym ułatwieniem było by zautomatyzowanie tego procesu.
Nieznajomy11 | 2019-01-11 13:24:40 UTC | #2
Domyślnie reguły są usuwane wraz z ponownym uruchomieniem się systemu.
https://forum.lvlup.pro/t/automatyczne-przywracanie-iptables-po-restarcie-serwera/9683
Flyspeak | 2019-01-11 13:14:02 UTC | #3
Dzięki użyje iptables-persistent.
Co do Autostartu TS3AudioBot i ABota może zrobic to przez plik w /etc/init.d/
!/bin/sh
cd /usr/local/home/root/ABot2
screen -AdmS abot1 php core.php -i1
screen -AdmS abot2 php core.php -i2
screen -AdmS abot3 php core.php -i3
screen -AdmS abot4 php core.php -i4
screen -AdmS abot5 php core.php -i5
screen -AdmS abot6 php core.php -i6
sleep 10
cd /usr/local/home/root/bot
screen -S root -d -m mono TS3AudioBot.exe
Potem
chmod 755 skypt.sh
Jak myślicie?
Flyspeak | 2019-01-11 13:49:04 UTC | #4
./skrypt.sh
-bash: ./skrypt.sh: /bin/sh^M: bad interpreter: No such file or directory
Flyspeak | 2019-01-11 13:54:49 UTC | #5
!/bin/sh
cd /usr/local/home/root/bot
su screen -S root -d -m mono TS3AudioBot.exe
To samo :frowning:
Nieznajomy11 | 2019-01-11 14:00:09 UTC | #6
Musisz zapisać plik w poprawnym formacie, z linuksowymi zakończeniami linii.
sed 's/^V^M/\^V^J/g' < plik_zrodlowy > plik_wyjsciowy
Flyspeak | 2019-01-11 14:14:30 UTC | #7
root@vps1495:/usr/local/home/root# sed ‘s/^V^M/\^V^J/g’ < flyspeak > flyspeak.sh
root@vps1495:/usr/local/home/root# chmod 755 flyspeak.sh
root@vps1495:/usr/local/home/root# ./flyspeak.sh
-bash: ./flyspeak.sh: /bin/sh^M: bad interpreter: No such file or directory
Flyspeak | 2019-01-11 14:17:43 UTC | #8
Próbuje tez tak ale dalej to samo.
!/bin/sh
screen -AdmS abot1 php /usr/local/home/root/ABot2/core.php -i1
screen -AdmS abot2 php /usr/local/home/root/ABot2/core.php -i2
screen -AdmS abot3 php /usr/local/home/root/ABot2/core.php -i3
screen -AdmS abot4 php /usr/local/home/root/ABot2/core.php -i4
screen -AdmS abot5 php /usr/local/home/root/ABot2/core.php -i5
screen -AdmS abot6 php /usr/local/home/root/ABot2/core.php -i6
sleep 10
screen -S root -d -m mono /usr/local/home/root/bot/TS3AudioBot.exe
Aylin | 2019-01-11 14:21:57 UTC | #9
[quote=”Flyspeak, post:8, topic:9682”]
[/quote]
A nie powinno to wyglądać tak? :thinking:
#!/bin/bash
Flyspeak | 2019-01-11 14:39:11 UTC | #10
Nic to nie dało.
Może zacznijmy od początku.
Komenda
screen -AdmS abot_1 php core.php -i1
Odpala prawidłowo instancje gdy jestem w katalogu ABot2
root@vps1495:/usr/local/home/root/ABot2# screen -AdmS abot1 php core.php -i1
root@vps1495:/usr/local/home/root/ABot2# screen -ls
There is a screen on:
1814.abot1 (01/11/2019 02:27:25 PM) (Detached)
1 Socket in /var/run/screen/S-root.
Następnie testuje TS3AudioBot
root@vps1495:/usr/local/home/root/ABot2# cd /usr/local/home/root/bot
root@vps1495:/usr/local/home/root/bot# screen -S bot -d -m mono TS3AudioBot.exe
root@vps1495:/usr/local/home/root/bot# screen -ls
There are screens on:
1824.bot (01/11/2019 02:30:13 PM) (Detached)
1814.abot_1 (01/11/2019 02:27:24 PM) (Detached)
Komendy działają prawidłowo więc gdzie jest problem?
Flyspeak | 2019-01-11 14:38:11 UTC | #11
flyspeak.sh
!/bin/bash
cd /usr/local/home/root/ABot2
screen -AdmS abot1 php core.php -i1
screen -AdmS abot2 php core.php -i2
screen -AdmS abot3 php core.php -i3
screen -AdmS abot4 php core.php -i4
screen -AdmS abot5 php core.php -i5
screen -AdmS abot6 php core.php -i6
sleep 10
cd /usr/local/home/root/bot
screen -S bot -d -m mono TS3AudioBot.exe
TEST
./flyspeak.sh
-bash: ./flyspeak.sh: /bin/bash^M: bad interpreter: No such file or directory
Flyspeak | 2019-01-11 15:54:45 UTC | #12
UDAŁO SIĘ!!!
flyspeak.sh
!/bin/bash
cd /usr/local/home/root/ABot2
screen -AdmS abot1 php core.php -i1
screen -AdmS abot2 php core.php -i2
screen -AdmS abot3 php core.php -i3
screen -AdmS abot4 php core.php -i4
screen -AdmS abot5 php core.php -i5
screen -AdmS abot6 php core.php -i6
sleep 10
cd /usr/local/home/root/bot
screen -S root -d -m mono TS3AudioBot.exe
Potem
sed -i -e ‘s/\r$//’ flyspeak.sh
I gra muzyka.
Skrypt przerzuciłem do
/etc/init.d
chmod +x /flyspeak.sh
sed -i -e ‘s/\r$//’ flyspeak.sh
Jeszcze nie wiem czy zadziała po restarcie bo ludzi nie chce wkur… tymi restartami.
Napisze jak sprawdzę.
Flyspeak | 2019-01-12 10:10:43 UTC | #13
Niestety nie startuje ten skrypt. Jest w init.d . Jakies pomysły?
LinGruby | 2019-01-12 10:24:34 UTC | #14
dodaj do /etc/rc.local
sh -c '/home/miejsce/gdzie/skrypt/flyspeak.sh &'
przed exit 0
i zobacz ( ja tak mam start serwera TS i nie tylko ;-) )
takie pytanko sed
co konkretnie robi tu ( zmienia )?
a jeszcze przy
[quote=”Flyspeak, post:12, topic:9682”]
cd /usr/local/home/root/ABot2
screen -AdmS abot1 php core.php -i1
screen -AdmS abot2 php core.php -i2
screen -AdmS abot3 php core.php -i3
screen -AdmS abot4 php core.php -i4
screen -AdmS abot5 php core.php -i5
screen -AdmS abot6 php core.php -i6
sleep 10
cd /usr/local/home/root/bot
screen -S root -d -m mono TS3AudioBot.exe
[/quote]
zrobił bym tak
1 2 3 4 5 6 7 8 9 10 11 |
|
Nieznajomy11 | 2019-01-12 10:24:04 UTC | #15
Mnie się wydaje, że on to dał tutaj tak na zapas jaky jeszcze raz zepsuł sobie line-break w skrypcie. Też na początku mnie to zdziwiło, ale już sobie darowałem komentowanie. :joy:
Flyspeak | 2019-01-12 10:36:05 UTC | #16
bez tego sed wyskakuje mi
./flyspeak.sh
-bash: ./flyspeak.sh: /bin/bash^M: bad interpreter: No such file or directory
Flyspeak | 2019-01-12 11:01:42 UTC | #17
Zrobiłem jak @LinGruby próbuje odpalic
root@vps1495:~# /etc/init.d/rc.local start
[ ok ] Starting rc.local (via systemctl): rc.local.service.
Nic się nie dzieje.
LinGruby | 2019-01-12 14:04:53 UTC | #18
tego się tak nie odpala, to samo startuje przy starcie serwera itp.
a jak chciałeś sprawdzić czy zadziała to się robi:
sh -c '/home/miejsce/gdzie/skrypt/flyspeak.sh'
jak nie widać coś nie tak z tym skryptem?
ja mam coś takiego u siebie w skryptach startowych ( gdzie wszystkie skrypty mam w/usr/local/bin/
i mam coś takiego ( to przykład ) ifconfig.sh
1 2 3 4 5 6 |
|
i ścieżkę w rc.local
sh -c '/usr/local/bin/ifconfig.sh &'
startuje bez problemów ;-)
za dużo tłumaczenia ale czemu taka ścieżka:
/usr/local/home/root/ABot2
nie prościej by było /usr/local/ABot2
tak się zastanawiam?
nie znam ABot2
ale dziwna ścieżka ;-)
Flyspeak | 2019-01-12 13:45:52 UTC | #19
Przeniosłem sobie to wszystko do root
Testuje:
root@vps1495:~# sh -c ‘/root/flyspeak.sh’
Wszystko ładnie startuje.
Zaraz sprawdzę przy restarcie.
rc.local
!/bin/bash
sh -c ‘/root/flyspeak.sh &’
exit 0
ABot2 [Bot ABot na serwer Ts3 wersja 2.0]
Flyspeak | 2019-01-12 14:04:41 UTC | #20
No i gitara. Wszystko się odpaliło.
Dziękuję wszystkim za pomoc i cierpliwość :)
system | 2019-02-13 14:04:42 UTC | #21
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.