Настройка роутера на centos

CentOS 8 as my new router

I had to rebuild my router, and these are my notes. Hopefully Iwon’t have to look all this up again, in the future. I really feel like I do this more then I should.

IPv4 Forwarding

sudo sysctl -w net.ipv4.ip_forward=1 sudo vi /etc/sysctl.d/99-sysctl.conf # put the 'net' in this file 

Static IP

Something I always seem to have to figure/google this. Here is a template to edit: /etc/sysconfig/network-scripts/ifcfg-

TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="" DEVICE="" ONBOOT="yes" IPADDR=123.456.789.100 PREFIX=24 GATEWAY=123.456.789.1 DNS1=8.8.8.8 

Fail2Ban

Being this is going to be in the internet, you should install fail2ban. I have take these notes from here.

sudo dnf install -y epel-release fail2ban 
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 

Now we need to make necessary changes in jail.local file to create ban rules. Editthis file in your favorite editor and make changes in [DEFAULT] section.

[DEFAULT] # "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban # will not ban a host which matches an address in this list. Several addresses # can be defined using space (and/or comma) separator. ignoreip = 127.0.0.1/8 192.168.1.0/24 # "bantime" is the number of seconds that a host is banned. bantime = 60m # A host is banned if it has generated "maxretry" during the last "findtime" seconds. as per below # settings, 2 minutes findtime = 5m # "maxretry" is the number of failures before a host get banned. maxretry = 5 [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=22, protocol=tcp] sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com, sendername="Fail2Ban"] logpath = /var/log/secure maxretry = 3 
sudo systemctl start fail2ban.service sudo systemctl enable fail2ban.service 

DNSMasq

A lot of these steps were taken from here. Thank you for writing it. My router is going to be my local DNS server and my DHCP server,there are a ton of options out there, dnsmasq is the easiestto combine the two. Install dnsmasq , enable and start it:

sudo dnf -y install dnsmasq sudo systemctl start dnsmasq sudo systemctl enable dnsmasq 

DNS

First thing you want to do is edit the listen address for dnsmasq . My network is 172.16.10.0 so my .1 is mymachine.

listen-address=127.0.0.1,172.16.10.1 

Uncomment expand-hosts to help with the machines thatcome and go. Also set your domain to your domain. 🙂

expand-hosts domain=asgharlabs.io 

dnsmasq uses your resolv.conf as your upstream DNS and yourlocal hosts file as your local DNS entry. Confirm they are setup correctly now. If you need to make changes, NetworkManager will override yourchanges, so you need to make the file immutable:

sudo chattr +i /etc/resolv.conf sudo chattr -i /etc/resolv.conf sudo vi /etc/resolv.conf sudo chattr +i /etc/resolv.conf sudo lsattr /etc/resolv.conf 
sudo firewall-cmd --add-service=dns --permanent sudo firewall-cmd --add-service=dhcp --permanent sudo firewall-cmd --list-all 

DHCP

Now that we have a working dnsmasq instance, lets set up the DHCP part. Edit the dhcp-range in the /etc/dnsmasq.conf

dhcp-range=172.16.10.100,172.16.10.250,12h 
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases dhcp-authoritative 
sudo systemctl restart dnsmasq 

firewalld configuration

Now that you have DNS and DHCP running, you need to make sureyour router actually routes things. You need to add masquerade to your firewalld chain.

sudo firewall-cmd --add-masquerade --permanent sudo firewall-cmd --reload 

OpenVPN configuration

Now that you have a working router, you probably want to VPNinto your network. Lets get OpenVPN up and running. First thing you need to do is install git and pull down Nyr ’s repofor automaticly configuring openvpn .

cd ~ sudo dnf -y install git git clone https://github.com/Nyr/openvpn-install.git 
cd openvpn-install sudo chmod +x openvpn-install.sh ./openvpn-install.sh 

Follow the prompts… EDIT: It seems I couldn’t get “across” my network, so I had to edit the /etc/openvpn/server/server.conf with the following:

push "route 172.16.10.0 255.255.255.0" 

Now I can get to my internal network, which is what I was hoping for. Congrats! You now have a working router/vpn machine!

Читайте также:  Подключить роутер asus rt n14u

Источник

Настройка Интернет шлюза на CentOS

Обновлено

Обновлено: 17.08.2021 Опубликовано: 27.06.2017

Процесс настройки шлюза (NAT) на системах UNIX, обычно, выполняется в несколько команд: включением перенаправления на уровне системы и настройкой firewall.

Настройка системы

Все что нужно настроить — включить перенаправления на уровне ядра. Для этого открываем следующий файл:

И добавляем в него следующую строку:

После применяем настройку:

В случае с единым сетевым интерфейсом больше ничего делать не потребуется — CentOS начнет работать как Интернет-шлюз.

В случае с несколькими сетевыми адаптерами, настраиваем сетевой экран.

Настройка брандмауэра

Рассмотрим настройку фаервола при помощи двух различных популярных утилит — firewalld и iptables.

Firewalld

Настройка выполняется для двух сетевых интерфейсов — ens32 (внутренний) и ens34 (внешний):

firewall-cmd —direct —permanent —add-rule ipv4 nat POSTROUTING 0 -o ens34 -j MASQUERADE

firewall-cmd —direct —permanent —add-rule ipv4 filter FORWARD 0 -i ens32 -o ens34 -j ACCEPT

firewall-cmd —direct —permanent —add-rule ipv4 filter FORWARD 0 -i ens34 -o ens32 -m state —state RELATED,ESTABLISHED -j ACCEPT

systemctl restart firewalld

Iptables

Настройка выполняется из расчета, что Интернет настроен через интерфейс ens160, а внутренняя сетя через ens32:

iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE

Если на сервере для доступа в локальную и глобальную сети используются разные сетевые интерфейсы, нам может понадобиться создать еще два правила:

iptables -A FORWARD -i ens32 -o ens160 -m state —state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i ens32 -o ens160 -j ACCEPT

yum install iptables-services

Проброс портов (Port Forwarding)

Необходим для перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть. Настройки отличаются в зависимости от способа управления брандмауэром netfilter.

Читайте также:  Пробросить порты роутер tp link

Firewalld

firewall-cmd —zone=external —permanent —add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* где 25 — прослушиваемый внешний порт, для которого сработает перенаправление; tcp — используемый транспортный протокол; 8025 — на какой порт перенаправить запрос; 192.168.0.15 — IP-адрес сервера, на который отправляем запросы.
* также обратите внимание, что в команде мы используем зону external, но в вашей среде она может и не использоваться. Посмотреть список активных зон можно командой firewall-cmd —get-active-zones.

firewall-cmd —permanent —zone=external —add-port=25/tcp

Чтобы правило вступило в силу:

Iptables

Настройка выполняется двумя командами и двумя спомобами.

iptables -t nat -I PREROUTING -p tcp -m tcp -d 10.8.232.111 —dport 25 -j DNAT —to-destination 192.168.0.15:8025

iptables -t nat -I POSTROUTING -p tcp -m tcp -s 192.168.0.15 —sport 8025 -j SNAT —to-source 10.8.232.111:25

iptables -t nat -I PREROUTING -p tcp -i eth0 —dport 25 -j DNAT —to-destination 192.168.0.15:8025

iptables -I FORWARD -p tcp -d 192.168.0.15 —dport 8025 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

* где eth0 — внешний сетевой интерфейс.

iptables -I INPUT 1 -p tcp —dport 8025 -j ACCEPT

* обратите внимание, что мы разрешаем порт, на который переводим запрос, так как цепочки POSTROUTING и PREROUTING работают до цепочки FILTER, а потому открывать нужно не входящий порт (25), а тот, на который назначается пакет (8025).

Не забываем сохранить правила:

Источник

Роутер на CentOS Stream 8.3

Подробная инстукция по установке и настройке роутера в связке FirewallD + dnsmasq на CentOS Stream 8.3.

Исходные данные

Имеем на машине 2 сетевых интерфейса:

enp0s3 — для внешней сети 192.168.1.0/24

enp0s8 — для внутренней сети 192.168.52.0/24

Также у нас есть шлюз во внешней сети. Это маршрутизатор с IP-адресом 192.168.1.1

Читайте также:  Что такое роутер yota

Наша задача — настроить доступ в Интернет для внутренней сети.

В первую очередь открываем файл /etc/sysctl.conf

и в нём в самом конце прописываем строчку:

Теперь при выполнении команды

консоль покажет такой результат:

Запускаем FirewallD и включаем его в автозагрузку:

# systemctl start firewalld # systemctl enable firewalld

Включаем поддержку NAT (masquerade)

# firewall-cmd --add-masquerade --permanent
Loaded: loaded Active: active (running)

Проверим состояние службы FirewallD

затем откроем файл /etc/dnsmasq.conf

и пропишем в него такой конфиг:

domain-needed bogus-priv interface=enp0s8 resolv-file=/etc/resolv.conf dhcp-range=192.168.50.31,192.168.50.130,24h cache-size=150

Включаем доступ к службам dns и dhcp в файрволл

# firewall-cmd --permanent --zone=public --add-service=dhcp # firewall-cmd --permanent --zone=public --add-service=dns

Затем включаем службы dnsmasq в автозагрузку и запускаем

# systemctl enable dnsmasq # systemctl start dnsmasq

Похожие посты:

Источник

Оцените статью
Adblock
detector