Как установить сервер на Linux CentOS 7
1. Обновляем все пакеты:
2. Исправляем работу с ssl (https):
3. Проверяем swap:
Если Swap нету до необходимо его создать, это поможет избежать остановки сервера или других сервисов в случаи переполнения памяти.
Редактируем настройка vsftpd:
Что нужно поменять:
Добавляем в автозагрузку и запускаем:
Все возможные настроки для этого файла можно посмотреть в файле:
1. Обновляем все пакеты:
Код:
yum update -y
2. Исправляем работу с ssl (https):
Код:
mkdir -p /etc/ssl/certs && ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt
3. Проверяем swap:
Код:
free -m
total used free shared buff/cache available
Mem: 6064 4772 499 238 791 792
Swap: 6143 85 6058
Создаем папку где будет хранится файл подкички:
Создаем файл подкачки:
Устанавливам права на файл:
Создаем пространство подкачки:
Включаем файл подккачки:
Чтобы убедиться в том, что все выполнено правильно, можем проверить это:
Автоматическое монтирование Swap в CentOS/Fedora/RedHat
В файл:
Добавляем:
Код:
mkdir /opt/swap
Создаем файл подкачки:
Код:
fallocate -l 3G / opt /swap/swap.img
Устанавливам права на файл:
Код:
chmod 600 / opt /swap/swap.img
Создаем пространство подкачки:
Код:
mkswap / opt /swap/swap.img
Включаем файл подккачки:
Код:
swapon / opt /swap/swap.img
Чтобы убедиться в том, что все выполнено правильно, можем проверить это:
Код:
swapon -s
Filename Type Size Used Priority
/opt/swap/swap.img file 6291452 87040 -2
Автоматическое монтирование Swap в CentOS/Fedora/RedHat
В файл:
Код:
nano /etc/fstab
Код:
/home/captain/swap/swap.img swap swap sw 0 0
Отключаем стандартный firewalld:
Теперь удалим его из автозагрузки, чтобы он не включился снова после рестарта:
После этого на сервере настройки сетевого экрана становятся полностью открытыми. Посмотреть правила iptables можно командой:
Установка iptables
Теперь можно добавить iptables в автозагрузку и запустить:
Добавляем модули для iptables:
В строку IPTABLES_MODULES="" добавляем ip_tables ip_conntrack ipt_state Должно получится:
Создаем и файл iptables_rules.sh
Вносим в него:
Разрешаем выполнение:
Выполняем скрипт:
Смотрим что получилось:
Код:
systemctl stop firewalld
Теперь удалим его из автозагрузки, чтобы он не включился снова после рестарта:
Код:
systemctl disable firewalld
После этого на сервере настройки сетевого экрана становятся полностью открытыми. Посмотреть правила iptables можно командой:
Код:
iptables -L -v -n
Установка iptables
Код:
yum -y install iptables-services
Теперь можно добавить iptables в автозагрузку и запустить:
Код:
systemctl enable iptables.service
systemctl start iptables.service
Добавляем модули для iptables:
Код:
nano /etc/sysconfig/iptables-config
В строку IPTABLES_MODULES="" добавляем ip_tables ip_conntrack ipt_state Должно получится:
Код:
IPTABLES_MODULES="ip_tables ip_conntrack ipt_state"
Создаем и файл iptables_rules.sh
Вносим в него:
Код:
#!/bin/bash
#
# Объявление переменных
export IPT="iptables"
# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
# разрешаем локальный траффик для loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# Разрешаем исходящие соединения самого сервера
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPT -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
$IPT -A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
$IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name dmitro --rsource
$IPT -A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 30 --hitcount 3 --name dmitro --rsource -j DROP
# Отбрасывать все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Приводит к связыванию системных ресурсов, так что реальный
# обмен данными становится не возможным, обрубаем
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
# Рзрешаем пинги
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Открываем порт для ssh
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
# Открываем порт для ftp
$IPT -A INPUT -p tcp --dport 21 -j ACCEPT
$IPT -A INPUT -p tcp --dport 20 -j ACCEPT
# Открываем порт для DNS
$IPT -A INPUT -p udp --dport 53 -j ACCEPT
# Открываем порт для NTP
$IPT -A INPUT -p udp --dport 123 -j ACCEPT
# Открываем порт для WWW
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
# Открываем порт для RUST
$IPT -A INPUT -p udp --dport 28015 -j ACCEPT
$IPT -A INPUT -p tcp --dport 28015:28016 -j ACCEPT
$IPT -A INPUT -p udp -m udp --dport 28015 -m state --state NEW -m recent --set --name DEFAULT --rsource
$IPT -A INPUT -p udp -m udp --dport 28015 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 --name DEFAULT --rsource -j DROP
# Записываем правила
/sbin/iptables-save > /etc/sysconfig/iptables
Разрешаем выполнение:
Код:
chmod +x iptables_rules.sh
Выполняем скрипт:
Код:
./iptables_rules.sh
Смотрим что получилось:
Код:
iptables -L -v -n
Код:
yum -y install vsftpd
Редактируем настройка vsftpd:
Код:
nano /etc/vsftpd/vsftpd.conf
Что нужно поменять:
Код:
anonymous_enable=NO
chroot_local_user=YES
listen=YES
listen_ipv6=NO
allow_writeable_chroot=YES
Добавляем в автозагрузку и запускаем:
Код:
systemctl enable vsftpd
systemctl start vsftpd
Добавляем репозиторий
Устанавливаем необходимые пакеты:
Создаем пользователя:
Задаем пароль к пользователю rust:
Заходим в консоль от пользователя rust:
Качаем и устанавливаем LinuxGameSteamManager:
Устанавливаем сервер:
По окончании установки устанавливаем Oxide:
Код:
yum -y install epel-release
Устанавливаем необходимые пакеты:
Код:
yum -y install mailx postfix curl wget bzip2 gzip unzip python binutils bc jq tmux glibc.i686 libstdc++ libstdc++.i686 zlib-devel
Создаем пользователя:
Код:
adduser rust
Задаем пароль к пользователю rust:
Код:
passwd rust
Заходим в консоль от пользователя rust:
Код:
su - rust
Качаем и устанавливаем LinuxGameSteamManager:
Код:
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh rustserver
Устанавливаем сервер:
Код:
./rustserver install
По окончании установки устанавливаем Oxide:
Код:
./rustserver mi
Код:
nano lgsm/config-lgsm/rustserver/rustserver.cfg
Код:
ip="0.0.0.0"
port="28015"
rconport="28016"
rconpassword="Пароль CRON"
rconweb="0" # 1 для веб-панели Facepunch; 0 для инструментов RCON, таких как Rusty или Rustadmin
servername="Название Вашего Сервера"
maxplayers="100"
worldsize="3584"
seed="" # диапазон: от 1 до 2147483647
Все возможные настроки для этого файла можно посмотреть в файле:
Код:
nano lgsm/config-lgsm/rustserver/_default.cfg