Това е 2017 г. и използването на VPN се превърна в не-мозъчен. Между натоварванията на външни проблеми за поверителността и вашия собствен интернет доставчик, който е в състояние да продава историята на сърфирането си, наистина няма основание да не използвате такава.
Разбира се, можете да платите някоя от стотиците VPN услуги там, но за пореден път разчитате на някой друг с вашите данни. Повечето са страхотни в действителност, но ако искате пълен контрол, можете да изградите свой собствен VPN на V irtual P rivate S erver (VPS) или да наемете свой собствен частен сървър, ако чувствате, че сте наистина хардкор с него.
Всичко, от което се нуждаете за изграждането на VPN, е софтуерът OpenVPN с отворен код и Linux (или BSD). Конфигурацията може да бъде включена, но не е невъзможно някой, който има дори основни Linux умения, да се справи с дистрибуция като Ubuntu.
За това ръководство ще ви трябва VPS, работещ с Ubuntu. Можете да го вземете много лесно от човек като DigitalOcean или Linode . Следвайте основните им ръководства за сигурност за настройка. Уверете се, че не правите основни грешки като допускане на root достъп през SSH.
Също така имайте предвид, че това ще правите цялата настройка в командния ред през SSH към вашия VPS. Няма нищо, което изисква лудо количество знания за Linux, но бъдете готови да пишете, вместо да щракнете.
Получаване на това, което ви трябва
бързи връзки
- Получаване на това, което ви трябва
- Настройте защитната стена
- Намерете интерфейса
- Основи на Iptables
- Настройване на вашите правила
- Loopback
- Ping
- SSH
- OpenVPN
- DNS
- HTTP / S
- NTP
- TUN
- Влизане
- Отхвърлете всичко друго
- NAT маскиране
- Препращане на IPv4 трафик
- Спрете всички IPv6 връзки
- Импортиране и запазване в Iptables
Ubuntu пакетира и разпространява OpenVPN в своите хранилища. Трябва само да използвате apt, за да го инсталирате. Ще ви е необходим и инструментът за генериране на ключове за криптиране. Инсталирайте ги и двете.
$ sudo apt инсталирате openvpn easy-rsa
Настройте защитната стена
След това трябва да се погрижите за защитната стена. Това е важно парче за запазването на вашата VPN защита и предотвратяването на изтичане на данни и нежелан достъп.
Iptables е основната защитна стена за Linux и е най-добрият вариант за контрол на достъпа до портовете на Ubuntu. Вече ще го инсталирате, така че можете да започнете да настройвате правилата си за защитна стена.
Намерете интерфейса
Преди да започнете да пишете правила в iptables, разберете с какъв интерфейс вашият сървър е свързан към Интернет. Пуснете ifconfig, за да покажете вашите мрежови интерфейси. Този, който има inet addr: съвпадащ с IP адреса, към който сте свързан, е правилният интерфейс.
Основи на Iptables
Обикновено не е добра идея да копирате на случаен принцип и да поставяте неща в терминала от Интернет. Това е особено вярно, когато се занимавате с теми за сигурност. Така че, отделете малко време тук, за да научите малко за правилата на iptables, преди да започнете да ги въвеждате.
Разгледайте този пример за правило за iptables.
-A INPUT -i eth0 -p tcp -m състояние –държавен УСТАНОВЕН –спорт 443 -j ПРИЕМАНЕ
Добре, така че - означава, че ще добавяте ново правило. Тогава INPUT означава, че ще се отнася до входа към вашия сървър. Има и изход. Флагът -i казва iptables за кой интерфейс е правилото. Можете да определите за кой протокол е правилото с -p. Това правило се справя с tcp. -m определя условие, което трябва да отговаря на връзката. В този случай тя трябва да съответства на посоченото състояние. Разбира се, тогава –state указва състояние, в случая УСТАНОВЕНА връзка. Следващата част казва iptables за кой порт е предназначено това правило. Тук е порт 443, HTTPS портът. Последният флаг е -j. Това означава „скок“ и казва на iptables какво да правите с връзката. Ако тази връзка отговаря на всички изисквания в правилото, iptables ще я приеме.
Настройване на вашите правила
Така че, трябва да имате обща представа как работят iptables правилата сега. Останалата част от този раздел ще ви каже как да настроите правилата си парче по парче.
Най-добрият начин да създадете набор от правила за iptables е да създадете файл, съдържащ всички тях. След това можете да ги импортирате наведнъж в iptables. Настройването на правила едно по едно може да стане объркващо, особено ако започвате нов набор от правила от нулата.
Създайте файл в директорията / tmp, за да изградите вашите правила.
$ vim / tmp / ipv4
Започнете този файл с * филтър. Това казва iptables, че това, което следва, ще бъде правила за филтриране на пакети.
Loopback
Първият раздел от правила заключва интерфейса за връщане. Те казват на iptables, че сървърът трябва да приема трафик от себе си в loopback интерфейса. Той също така трябва да отхвърля трафика, идващ от себе си, който не идва от loopback.
-A INPUT -i е -j ПРИЕМЕТЕ -A INPUT! -i е -s 127.0.0.0/8 -j ОТХВЪРЛЯ -A ИЗХОД -o lo -j ПРИЕМАНЕ
Ping
След това разрешете ping. Трябва да можете да пингирате сървъра си, за да сте сигурни, че той е онлайн, в случай че е недостъпно в противен случай. В този случай са разрешени само заявки за ехо и сървърът ще си позволи да изпрати ICMP изход.
-A INPUT -p icmp -m състояние - състояние НОВО --ICmp тип 8 -j ACCEPT -A INPUT -p icmp -m състояние - състояние УСТАНОВЕНО, СВЪРЗАНО -j ACCEPT -A ИЗХОД -p icmp -j ACCEPT
SSH
Имате нужда от SSH. Само така можете да стигнете до вашия сървър. Правилата за SSH са специфични за вашия интернет интерфейс, така че не забравяйте да замените eth0 с какъв интерфейс вашият сървър всъщност използва.
Също така може да е добра идея да смените вашите SSH връзки извън порт 22, тъй като това е по подразбиране, което потенциалните атакуващи биха опитали. Ако го направите, не забравяйте да го промените и в правилата си за iptables.
-A INPUT -i eth0 -p tcp -m състояние - състояние НОВО, УСТАНОВЕНО --dport 22 -j ПРИЕМАНЕ -A ИЗХОД -o eth0 -p tcp -m състояние - състояние УСТАНОВЕНО - спорт 22 -j ACCEPT
OpenVPN
Следващото парче позволява трафик към и от OpenVPN сървъра през UDP.
-A INPUT -i eth0 -p udp -m състояние - състояние НОВО, УСТАНОВЕНО - доклад 1194 -j ПРИЕМАНЕ -A ИЗХОД -o eth0 -p udp -m състояние - състояние УСТАНОВЕНО - спорт 1194 -j ПРИЕМАНЕ
DNS
Сега разрешете DNS връзки през UDP и TCP. Искате вашата VPN да обработва DNS, а не вашия интернет доставчик. Това е част от причината да настроите VPN на първо място.
-A INPUT -i eth0 -p udp -m състояние - състояние УСТАНОВЕНО - спорт 53 -j ПРИЕМАНЕ -A ИЗХОД -o eth0 -p udp -m състояние - състояние НОВО, УСТАНОВЕНО - доклад 53 -j ПРИЕМА -A INPUT -i eth0 -p tcp -m състояние - състояние УСТАНОВЕНО - спорт 53 -j ПРИЕМАНЕ -A ИЗХОД -o eth0 -p tcp -m състояние - състояние НОВО, УСТАНОВЕНО - доклад 53 -j ПРИЕМАНЕ
HTTP / S
За да може Ubuntu да може да се актуализира, трябва да добавите набор от правила, които да позволят изходяща връзка на HTTP и HTTPS. Имайте предвид, че тези правила позволяват на сървъра да инициира HTTP връзки, така че не можете да го използвате като уеб сървър или да се свържете към него през порт 80 или порт 443
-A INPUT -i eth0 -p tcp -m състояние - състояние УСТАНОВЕНО --sport 80 -j ПРИЕМАНЕ -A INPUT -i eth0 -p tcp -m състояние - състояние УСТАНОВЕНО --sport 443 -j ACCEPT -A ИЗХОД - o eth0 -p tcp -m състояние - състояние НОВО, УСТАНОВЕНО --dport 80 -j ПРИЕМАНЕ -A ИЗХОД -o eth0 -p tcp -m състояние - състояние НОВО, УСТАНОВЕНО --dport 443 -j ПРИЕМАНЕ
NTP
За да поддържате правилно часовника на вашия сървър, ще ви трябва NTP. NTP позволява на вашия сървър да се синхронизира с времеви сървъри по целия свят. Наличието на неправилен часовник на вашия сървър може да доведе до проблеми с връзката, така че пускането на NTP е добра идея. Още веднъж трябва да приемете само изходящи и вече установени връзки.
-A INPUT -i eth0 -p udp -m състояние - състояние УСТАНОВЕНО --спорт 123 -j ПРИЕМАНЕ -A ИЗХОД -o eth0 -p udp -m състояние - състояние НОВО, УСТАНОВЕНО - доклад 123 -j ПРИЕМАНЕ
TUN
Разблокирайте TUN интерфейса, който OpenVPN използва за тунелен трафик.
-A INPUT -i tun0 -j ПРИЕМАНЕ -A FORWARD -i tun0 -j ACCEPT -A ИЗХОД -o tun0 -j ACCEPT
Трябва да разрешите на TUN да препраща трафика към вашия обикновен интерфейс за VPN. Ще намерите този IP адрес в OpenVPN конфигурацията. Ако го промените в конфигурацията, променете го и в правилата си.
-A НАПРЕД, -i tun0 -o eth0 -s 10.8.0.0/24 -j ПРИЕМАНЕ -A НАПРЕД, състояние - УСТАНОВЕНО, СВЪРЗАНО -j ПРИЕМАНЕ
Влизане
Добра идея е да съхранявате дневници на всичко, което се отхвърля от iptables. В този случай това означава всичко, което не се вписва в никое от тези правила. Дневниците ви позволяват да видите дали има злонамерена дейност или някакви опити да направите нещо злокобно спрямо вашия сървър.
-A INPUT -m limit –limit 3 / min -j LOG –log-prefix “iptables_INPUT_denied:” –log-level 4
-A FORWARD -m limit –limit 3 / min -j LOG –log-prefix “iptables_FORWARD_denied:” –log-level 4
-A OUTPUT -m limit –limit 3 / min -j LOG –log-prefix “iptables_OUTPUT_denied:” –log-level 4
Отхвърлете всичко друго
И накрая, трябва да блокирате всичко, което не се вписва във вашите правила. Това наистина е целта да има защитна стена на първо място.
-A INPUT -j ОТХВЪРЛЯ -A FORWARD -j ОТХВЪРЛЯ -A REUTECT -j REJECT
Затворете файла с COMMIT, за да кажете на iptables да извършат всички правила.
NAT маскиране
Имате нужда от връзките от VPN, за да изглеждате, че те идват от самия сървър. Това парче не може да бъде включено в обикновения iptables файл, защото използва различна таблица. Това е добре, все пак, това е само една линия.
$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Препращане на IPv4 трафик
Ще трябва да активирате пренасочване на IPv4 трафик, за да може той да преминава между VPN и действителния мрежов интерфейс на вашия сървър. Отворете /etc/sysctl.d/99-sysctl.conf със судо.
Намерете реда отдолу и го коментирайте, като премахнете #.
Спрете всички IPv6 връзки
За съжаление все още не сте свършили с iptables. Трябва да блокирате целия IPv6 трафик. Този OpenVPN сървър ще поддържа само IPv4, което е добре, тъй като няма да изпадате в ситуация, в която имате нужда от IPv6. В резултат на това всяка IPv6 връзка може потенциално да изтече информация, което е обратното на това, което искате, когато използвате VPN.
Преди да зададете правилата за iptables, трябва да деактивирате IPv6 навсякъде другаде в системата.
Добавете следните редове към /etc/sysctl.d/99-sysctl.conf. Ако сте го затворили от предишния раздел, го отворете отново със судо.
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1
Активирайте промените си.
$ sudo sysctl -p
Коментирайте всички IPv6 редове в / etc / hosts. Тук ще се нуждаете и от судо.
# :: 1 ip6-localhost ip6-loopback # fe00 :: 0 ip6-localnet # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2 ip6-allrouters
Най-накрая можете да напишете IPv6 iptables правилата. Създайте файл за тях на / tmp / ipv6.
* филтър -A ВХОД -j ОТХВЪРЛЯ -A НАПРЕД, -j ОТХВЪРЛЯ -A ИЗХОД -j ОТГОВОРЕН КОМИТ
Вижте, те са прости. Отхвърлете всичко.
Импортиране и запазване в Iptables
Трябва да импортирате тези правила, за да могат да направят всичко. И така, сега е моментът да направите това.
Започнете, като изчистите всичко останало, което има. Не искате да се намесват някакви стари правила.
$ sudo iptables -F && sudo iptables -X
Импортирайте своите IPv4 и IPv6 правила.
$ sudo iptables-възстановяване </ tmp / ipv4 $ sudo ip6tables-възстановяване </ tmp / ipv6
Вероятно никога не искате да правите това отново. Така че ще ви трябва нов пакет, за да запазите правилата си за постоянно.
$ sudo apt инсталирате устойчиви на iptables
По време на инсталацията пакетът ще ви помоли да запазите съществуващите си правила. Отговорете „Да“.
Ако направите промени по-късно, можете да актуализирате и запазените си конфигурации.
Устойчиво запазване на $ sudo услугата netfilter
Отне известно време, но вашата защитна стена е готова да работи. На следващата страница ще се заемем със създаването на необходимите ключове за криптиране.
Щракнете тук: Следваща страница
