====================================================================== Начальная настройка CentOS 7 ====================================================================== +++++++++++++++++++++++++++++++++++ -- Установка необходимых пакетов -- +++++++++++++++++++++++++++++++++++ yum update yum install -y epel-release yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install -y tcpdump jwhois wget curl nc traceroute nmap bind bind-utils net-tools conntrack-tools denyhosts fail2ban ntp yum install -y psmisc atop htop iftop dstat iperf httperf collectl sysstat iotop yum install -y lsof etckeeper strace vim bash-completion diff patch pciutils usbutils cifs-utils nfs-utils yum install -y nano mc aspell-en unrar p7zip zip unzip perl-CPAN +++++++++++++++++++++++++++++++ -- Отключение NetworkManager -- +++++++++++++++++++++++++++++++ Выполнить: systemctl disable NetworkManager.service systemctl stop NetworkManager.service /etc/init.d/network restart ++++++++++++++++++++++++++ -- Отключение firewalld -- ++++++++++++++++++++++++++ Выполнить: systemctl disable firewalld.service systemctl stop firewalld.service ++++++++++++++++++++++++ -- Установка iptables -- ++++++++++++++++++++++++ Выполнить: yum install iptables iptables-utils iptables-services systemctl enable iptables.service systemctl start iptables.service ++++++++++++++++++++++++ -- Отключение SELinux -- ++++++++++++++++++++++++ Выполнить: setenforce 0 sed -i -e 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config +++++++++++++++++++++++++++++++++++++++ -- Отключение IPv6 (если необходимо) -- +++++++++++++++++++++++++++++++++++++++ Изменить файл /etc/sysctl.d/ipv6_disable.conf: net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 Изменить файл /etc/sysconfig/network: NETWORKING_IPV6=no Выполнить: sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 ====================================================================== Настройка сети CentOS 7 ====================================================================== +++++++++++++++++++++++++++ -- Настройка имени хоста -- +++++++++++++++++++++++++++ Изменить файл /etc/hostname: my.new.host.name Изменить файл /etc/sysconfig/network: HOSTNAME=my.new.host.name Выполнить: hostnamectl set-hostname my.new.host.name ++++++++++++++++++++++++++++++++++ -- Настройка шлюза по-умолчанию -- ++++++++++++++++++++++++++++++++++ Где eth0 - интерфейс, см. ip addr. Выполнить: ip route replace default via 192.168.1.1 dev eth0 ... либо ... route add default gw 192.168.1.1 *** Для адреса IPv6 *** ip -6 route replace default 2001:470:784d::1 dev eth0 Изменить файл /etc/sysconfig/network: GATEWAY=192.168.1.1 *** Для IPv6 указать *** NETWORKING_IPV6=yes IPV6_DEFAULTGW="2001:470:784d::1" Выполнить: /etc/init.d/network restart +++++++++++++++++++ -- Настройка DNS -- +++++++++++++++++++ Изменить файл /etc/resolv.conf: nameserver 8.8.8.8 nameserver 8.8.4.4 +++++++++++++++++++++++++++++++++++++++ -- Настройка IP адреса на интерфейсе -- +++++++++++++++++++++++++++++++++++++++ Где eth0 - интерфейс, см. ip addr. Выполнить: ip addr add 192.168.1.2/24 dev eth0 *** Для адреса IPv6 *** ip -6 addr add 2001:470:784d::2/48 dev eth0 Изменить файл /etc/sysconfig/network-scripts/ifcfg-eth0: DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=06:01:78:a7:00:33 IPADDR=192.168.1.2 NETMASK=255.255.255.0 TYPE=Ethernet *** Вместо "NETMASK" можно указать "PREFIX" с CIDR'ом. *** *** Для адреса IPv6 указать *** IPV6INIT=yes IPV6ADDR="2001:470:784d::2/48" *** Для дополнительных IPv6 адресов указать *** IPV6ADDR_SECONDARIES="2001:470:784d::3/48 2001:470:784d::4/48" +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Настройка дополнительного IP адреса на интерфейсе -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Где eth0 - интерфейс, см. ip addr; где X - номер от 0 и больше. Изменить файл /etc/sysconfig/network-scripts/ifcfg-eth0:X (где eth0 - интерфейс, см. ip addr): DEVICE=eth0:X BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.3 NETMASK=255.255.255.0 *** Вместо "NETMASK" можно указать "PREFIX" с CIDR'ом. *** *** Для добавления дополнительных адресов IPv6, необходимо использовать основной файл ifcfg-eth0 (процедура описана выше). *** Выполнить: ifup eth0:X +++++++++++++++++++++++++++++++++++++ -- Включение/выключение интерфейса -- +++++++++++++++++++++++++++++++++++++ Где eth0 - интерфейс, см. ip addr. Выполнить: ifup eth0 ifdown eth0 ... либо ... ifconfig eth0 up ifconfig eth0 down ++++++++++++++++++++++++++++++++++ -- Добавление/удаление маршрута -- ++++++++++++++++++++++++++++++++++ Где eth0 - интерфейс, см. ip addr. Выполнить: ip route add 1.2.3.4/32 via 192.168.1.1 dev eth0 ip route delete 1.2.3.4/32 ... либо ... route add -net 1.2.3.4/32 gw 192.168.1.1 route delete -net 1.2.3.4/32 Изменить файл /etc/sysconfig/network-scripts/route-eth0: 1.2.3.4/32 via 192.168.1.1 ++++++++++++++++++++++++ -- Настройка iptables -- ++++++++++++++++++++++++ Файл со списком правил: /etc/sysconfig/iptables Разрешение ICMP-трафика и локального трафика: iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -i lo -j ACCEPT Разрешение входящего трафика на TCP-порт: iptables -I INPUT -p tcp --dport 3000 -j ACCEPT Разрешение входящего трафика с IP: iptables -A INPUT -s 192.168.1.100 -j ACCEPT Блокировка входящего трафика с IP: iptables -I INPUT -s 192.168.1.100 -j DROP Вывод правил: iptables -L ... либо ... iptables -L -v -n Сохранение правил: service iptables save ... либо ... iptables-save Очистка (удаление) всех правил: iptables -F *** Для IPv6 все аналогично, только используется команда ip6tables и файл /etc/sysconfig/ip6tables. *** ++++++++++++++++++++++++++++++++++++++++++++++++ -- Работа со списками IP-адресов для iptables -- ++++++++++++++++++++++++++++++++++++++++++++++++ Файл со списками: /etc/sysconfig/ipset Установка ipset: yum install ipset Создание списка (на примере "blacklist"): ipset create blacklist hash:ip hashsize 4096 maxelem 65536 ... либо ... ipset create blacklist hash:ip family inet hashsize 4096 maxelem 65536 timeout 600 Сохранение списка: service ipset save Добавление правил iptables для блокировки соединений с IP-адресов в списке (для ip6tables аналогично): iptables -I INPUT -m set --match-set blacklist src -j DROP iptables -I FORWARD -m set --match-set blacklist src -j DROP service iptables save Добавление IP-адреса в список: ipset add blacklist 192.168.1.100 ... либо ... ipset add blacklist 192.168.1.100 timeout 300 Удаление IP-адреса из списка: ipset del blacklist 192.168.1.100 Вывод списка: ipset list blacklist Очистка списка: ipset flush blacklist ====================================================================== Диагностика сети CentOS 7 ====================================================================== +++++++++++++++++++++ -- Перезапуск сети -- +++++++++++++++++++++ /etc/init.d/network restart ++++++++++++++++++++++++++++++++++++++++++++++++ -- Вывод информации об IP адресах и адаптерах -- ++++++++++++++++++++++++++++++++++++++++++++++++ ip a ip a show eth0 ifconfig -a +++++++++++++++++++++++++++++++++ -- Вывод таблицы маршрутизации -- +++++++++++++++++++++++++++++++++ ip ro netstat -nr route -n ++++++++++++++++++++++++++++++++ -- Вывод правил маршрутизации -- ++++++++++++++++++++++++++++++++ ip rule ++++++++++++++++++++++++++++++++++++++++++ -- Вывод списка открытых портов/сокетов -- ++++++++++++++++++++++++++++++++++++++++++ ss -a ss -l netstat -tulnp netstat -anlp +++++++++++++++++++++++++++++++++++++++ -- Проверка порта на удаленном хосте -- +++++++++++++++++++++++++++++++++++++++ nc google.com 80 -v +++++++++++++++++++++++++++++++++++++ -- Вывод списка Ethernet-адаптеров -- +++++++++++++++++++++++++++++++++++++ dmesg | grep eth lspci | grep Ethernet ip link show +++++++++++++++++++++++++++++++++++++++++++ -- Вывод информации об Ethernet-адаптере -- +++++++++++++++++++++++++++++++++++++++++++ ethtool eth0