Firewall в linux | iptables | ufw
Опубликовано 23 10 2021
1 min на чтение
Опубликовано 31 01 2021
3 min на чтение
Речь пойдет о шифровании трафика в сети и обходе блокировок, рассмотрю несколько способов.
Ssh туннель через сервер в tor
Sshuttle прокси
Wireguard
Гуляем по сети, как рыбы в океане :).
Установить ssh.
yay -S openssh
Допустим на вашем сервере запущен tor или прокси, через ssh легко можно пробросить порт на котором это работает. Про настройку ssh я писал в ctlos wiki.
Установить tor.
yay -S tor torsocks
ssh -L 9050:127.0.0.1:9050 -p 22 cretm@134.122.88.241 -N
Теперь локально доступен 9050 и можно открыть на нем chromium в другом терминале.
chromium --proxy-server='socks://127.0.0.1:9050'
Или посмотреть ip через torify, или запустить шелл и выполнять все через tor.
torify curl ident.me
# или
torify zsh
Позволяет завернуть весь трафик через ssh сервер.
Установка.
yay -S sshuttle
Запуск.
sshuttle --dns -r cretm@134.122.88.241 -x 134.122.88.241 0/0
Я все проделываю скриптом easy-wg-quick.
yay -S wireguard-tools gawk grep iproute2 net-tools qrencode wget
# если ядро lts
yay -S wireguard-lts
mkdir vpn && cd vpn
wget -O vpn.sh https://raw.githubusercontent.com/burghardt/easy-wg-quick/master/easy-wg-quick
chmod +x vpn.sh
Выполните reboot после установки.
Можно задать конкретный порт и ip. Узнать.
Путем отправки данных в файлы.
curl ident.me > extnetip.txt
# или
echo 134.122.88.241 > extnetip.txt
echo 51820 > portno.txt
Создание конфигурации и клиента.
./vpn.sh comp
Запуск, остановка, статус работы.
sudo wg-quick up ./wghub.conf
sudo wg-quick down ./wghub.conf
sudo wg show
Открыть порт если установлен файрвол, рестарт и просмотр статуса.
sudo ufw allow 51820/udp
sudo ufw reload
sudo ufw status
netstat -tulpn
Если на сервере iptables.
sudo iptables --policy INPUT ACCEPT
sudo iptables -F
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
sudo iptables -A INPUT -p udp --dport 51820 -m state --state NEW -j ACCEPT
sudo netfilter-persistent save
Удалить правило, где 5 линия. В данном случае удалять ничего не нужно, просто знайте, как работает удаление.
sudo iptables --list --line-numbers
sudo iptables -D INPUT 5
sudo netfilter-persistent save
Создаем второго клиента для мобилки. Сканируем qr в приложении wireguard и перезапускаем сервер.
./vpn.sh mob
sudo wg-quick down ./wghub.conf
sudo wg-quick up ./wghub.conf
sudo wg show
Вывод qr кода.
qrencode -t ansiutf8 < wgclient_mob.conf
Основной конфиг с инфой о клиентах.
cat wghub.conf
Можно добавить в автостарт systemd.
sudo cp wghub.conf /etc/wireguard/wghub.conf
sudo systemctl enable --now wg-quick@wghub
systemctl status wg-quick@wghub
Для клиента Arch Linux. Настройка на вашем компе.
yay -S wireguard-tools
sudo nano /etc/wireguard/wg0.conf
Скопировать с сервера содержимое файла wgclient_comp.conf
, пример.
# 10: comp > wgclient_comp.conf
[Interface]
Address = 10.256.112.10/24, fd51:9999:3322:6414::10/64
DNS = 1.1.1.1, 2606:4700:4700::1111
PrivateKey = UGdsdfgsdgdfgiJRhlQdX7kQ=
[Peer]
PublicKey = wvr/gmg/FJN0dfgdfhdfhudRLdIdn+2DQ=
PresharedKey = /DXNfgNi2iMY5jrdgdfgdgu5tyIX94Xvss=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 134.111.10.21:51820
PersistentKeepalive = 25
Включить сервис systemd и добавить в автостарт если нужно.
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
sudo systemctl enable --now systemd-resolved
Имейте ввиду если на сервере, что-то не так, то и у вас не будет интернета при включенном сервисе. Остановить, выключить.
sudo systemctl stop wg-quick@wg0
sudo systemctl disable wg-quick@wg0
Проверить ip можно на 2ip.ru, в терминале.
curl ident.me
Проверить скорость интернета.
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -