Установка CentOS 7.x — различия между версиями

Материал из База знаний
Перейти к: навигация, поиск
 
(не показано 5 промежуточных версий этого же участника)
Строка 12: Строка 12:
 
Установим минимальный набор ПО:
 
Установим минимальный набор ПО:
 
  yum install -y epel-release
 
  yum install -y epel-release
  yum install -y net-tools bind-utils mc tcpdump fail2ban
+
  yum install -y net-tools bind-utils mc tcpdump fail2ban wget
  
 
Пропишем нормальные обозначения для интерфейсов:
 
Пропишем нормальные обозначения для интерфейсов:
 
  ifconfig |grep ether|grep "thernet"|awk -F " " 'BEGIN {i=0}{print "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"" $2'\
 
  ifconfig |grep ether|grep "thernet"|awk -F " " 'BEGIN {i=0}{print "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"" $2'\
  '"\", ATTR{type}==\"1\", NAME=\"eth" i "\"";i++ }' >> 70-persistent-net.rules
+
  '"\", ATTR{type}==\"1\", NAME=\"eth" i "\"";i++ }' >> /etc/udev/rules.d/70-persistent-net.rules
  
 
Сделаем файлики для каждого интерфейса по образу и подобию этого:
 
Сделаем файлики для каждого интерфейса по образу и подобию этого:
Строка 75: Строка 75:
  
 
Скинуть этот [[Файл:iptables.sh|мини]] в /etc/init.d/ с переименованием:
 
Скинуть этот [[Файл:iptables.sh|мини]] в /etc/init.d/ с переименованием:
  wget http://mna.tom.ru/wiki/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Iptables.sh
+
  wget http://mna.tom.ru/wiki/images/c/c6/Iptables.sh
 
  mv Iptables.sh /etc/init.d/iptables
 
  mv Iptables.sh /etc/init.d/iptables
 
+
chmod +x /etc/init.d/iptables
  
 
Добавим в автозапуск:
 
Добавим в автозапуск:
 
  chkconfig iptables --add
 
  chkconfig iptables --add
 +
  
 
Настроим fail2ban:
 
Настроим fail2ban:
  sed -i "s/firewallcmd-ipset/iptables-multiport/" /etc/fail2ban/jail.d/00-firewalld.conf  
+
  echo -e "[DEFAULT]\nbanaction = iptables-multiport">/etc/fail2ban/jail.d/00-firewalld.conf
 +
#sed -i "s/firewallcmd-ipset/iptables-multiport/" /etc/fail2ban/jail.d/00-firewalld.conf  
 
  sed -i "230a enabled = true" /etc/fail2ban/jail.conf
 
  sed -i "230a enabled = true" /etc/fail2ban/jail.conf
  sed -i "239a enabled = true" /etc/fail2ban/jail.conf
+
  sed -i "240a enabled = true" /etc/fail2ban/jail.conf
 +
systemctl disable fail2ban
 +
cp /usr/lib/systemd/system/fail2ban.service /etc/systemd/system
 +
sed -i "s/^After=.*$/After=network.target sshd.service/" /etc/systemd/system/fail2ban.service
 +
systemctl daemon-reload
 +
systemctl enable fail2ban
 +
 
 +
Поправим Grub:
 +
sed -i "s/^GRUB_TIMEOUT=.*$/GRUB_TIMEOUT=1/" /etc/default/grub
 +
grub2-mkconfig -o /boot/grub2/grub.cfg
 +
 
 +
Настроим имя хоста:
 +
echo -e "127.0.0.1\tlocalhost localhost.localdomain">/etc/hosts
 +
vi /etc/hostname
  
 
Обновимся и перезагрузимся:
 
Обновимся и перезагрузимся:
 
  yum update -y
 
  yum update -y
 
  reboot
 
  reboot

Текущая версия на 06:21, 23 ноября 2018

Установка Centos (мой дополняемый вариант:)

Открываем консоль и смотрим ip адрес (ну, нету утилиты ifconfig :) ):

ip address show

Если адреса нет, скорее всего интерфейс не поднят - поднимаем (наверное это фича, а не баг):

ifup <имя интерфейса>

Далее можно все делать по ssh.

Установим минимальный набор ПО:

yum install -y epel-release
yum install -y net-tools bind-utils mc tcpdump fail2ban wget

Пропишем нормальные обозначения для интерфейсов:

ifconfig |grep ether|grep "thernet"|awk -F " " 'BEGIN {i=0}{print "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"" $2'\
'"\", ATTR{type}==\"1\", NAME=\"eth" i "\"";i++ }' >> /etc/udev/rules.d/70-persistent-net.rules

Сделаем файлики для каждого интерфейса по образу и подобию этого:

echo "DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
#BOOTPROTO=static
#IPADDR=10.0.0.1
#NETMASK=255.255.255.248
#GATEWAY=10.0.0.2
ARPCHECK=no" > /etc/sysconfig/network-scripts/ifcfg-eth0

Удалим там же старые файлики для "кривых" интерфейсов

Выключаем selinux!!! (ну... как-то так :)

sed -i "s/^SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 
setenforce 0

Выключаем и выкашиваем из автозагрузки ненавистный firewalld:

systemctl stop firewalld
systemctl disable firewalld
yum remove -y firewalld firewalld-filesystem

Пишем правила для iptables: vi /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:SSH-ALLOW - [0:0]
#
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
# -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
## ** разрешим отвечать на запрос ** ##
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j SSH-ALLOW
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
#
# ----- SSH Allow -------
# Разрешенные адреса для SSH клиентов
-A SSH-ALLOW -s 111.111.111.111 -j ACCEPT
-A SSH-ALLOW -s 222.222.222.222 -j ACCEPT
#-A SSH-ALLOW -s 0.0.0.0/0 -j ACCEPT
# -----------------------
#
COMMIT

Уберем сохранялку iptables, от греха подальше, чтобы не затерла нам наш только что сделанный файлик с комментариями:

unlink  /usr/sbin/iptables-save

Скинуть этот Файл:Iptables.sh в /etc/init.d/ с переименованием:

wget http://mna.tom.ru/wiki/images/c/c6/Iptables.sh
mv Iptables.sh /etc/init.d/iptables
chmod +x /etc/init.d/iptables

Добавим в автозапуск:

chkconfig iptables --add


Настроим fail2ban:

echo -e "[DEFAULT]\nbanaction = iptables-multiport">/etc/fail2ban/jail.d/00-firewalld.conf
#sed -i "s/firewallcmd-ipset/iptables-multiport/" /etc/fail2ban/jail.d/00-firewalld.conf 
sed -i "230a enabled = true" /etc/fail2ban/jail.conf
sed -i "240a enabled = true" /etc/fail2ban/jail.conf
systemctl disable fail2ban
cp /usr/lib/systemd/system/fail2ban.service /etc/systemd/system
sed -i "s/^After=.*$/After=network.target sshd.service/" /etc/systemd/system/fail2ban.service
systemctl daemon-reload
systemctl enable fail2ban

Поправим Grub:

sed -i "s/^GRUB_TIMEOUT=.*$/GRUB_TIMEOUT=1/" /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg 

Настроим имя хоста:

echo -e "127.0.0.1\tlocalhost localhost.localdomain">/etc/hosts
vi /etc/hostname

Обновимся и перезагрузимся:

yum update -y
reboot