Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как создать автостарт iptables  (Прочитано 1315 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexandr-makukhin

  • Автор темы
  • Активист
  • *
  • Сообщений: 341
    • Просмотр профиля
    • Александр Макухин
Как создать автостарт iptables
« : 02 Ноября 2017, 10:35:52 »
Здравствуйте!

При каждом запуске Kubuntu, первым делом запускаю через консоль
sudo iptables -t nat -I OUTPUT -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination 163.172.167.207:3128для работы Transmission.

Как сделать, чтобы эта команда запускалась автоматически при входе в систему?

Оффлайн tahr

  • Активист
  • *
  • Сообщений: 440
    • Просмотр профиля
Re: Как создать автостарт iptables
« Ответ #1 : 02 Ноября 2017, 11:28:19 »
Пробуем так:

# sudo nano /etc/init.d/local.autostart
...........
#!/bin/bash
sudo iptables -t nat -I OUTPUT -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination 163.172.167.207:3128
...........
# sudo chmod +x /etc/init.d/local.autostart
# sudo update-rc.d local.autostart defaults 80

Последнюю строчку изменил, добавил порт 80 по умолчанию. Остальное смотреть и проверять, прежде чем делать.
Смысл всего действа - создать автостарт скрипта (исполняемого текстового файла).
« Последнее редактирование: 02 Ноября 2017, 11:37:33 от tahr »

Оффлайн alexandr-makukhin

  • Автор темы
  • Активист
  • *
  • Сообщений: 341
    • Просмотр профиля
    • Александр Макухин
Re: Как создать автостарт iptables
« Ответ #2 : 02 Ноября 2017, 11:49:32 »
alexsandr@alexsandr-Kubuntu-1710:~$ sudo update-rc.d -f local.autostart
update-rc.d: error: not enough arguments
usage: update-rc.d [-n] [-f] <basename> remove
       update-rc.d [-n] [-f] <basename> defaults
       update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
                -n: not really
                -f: force

The disable|enable API is not stable and might change in the future.

/etc/
rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d

alexsandr@alexsandr-Kubuntu-1710:~$  curl --proxy 163.172.167.207:3128 bt.t-ru.org/myip
<br><big><center><b>46.242.35.91</b><br><br><small>proxy:</small> 163.172.167.207<br><small>xf:</small> 46.242.35.91</center></big>

« Последнее редактирование: 02 Ноября 2017, 12:00:58 от alexandr-makukhin »

Оффлайн tahr

  • Активист
  • *
  • Сообщений: 440
    • Просмотр профиля
Re: Как создать автостарт iptables
« Ответ #3 : 02 Ноября 2017, 12:12:37 »
update-rc.d: error: not enough arguments

Прежде чем обновлять, нужно создать. В моем примере использовал nano, но можно любой текстовый редактор. В моем примере делал через терминал, но можно и без.
Смысл действа: создать исполняемый текстовый файл, положить его в нужное место и прописать в автозапуск.
В примере сначала создается текстовый файл (скрипт) в нужном месте и с нужным названием. Затем ему даются права на исполнение, и только потом сделано обновление.

Только после этого обновить, чтобы система увидела:
# sudo update-rc.d local.autostart defaults 80




Пользователь добавил сообщение 02 Ноября 2017, 12:49:59:
Пока проблема не решена, еще раз то же самое другими словами, чуть подробней:

1. Открываем терминал.
2. В терминале пишем:
sudo nano /etc/init.d/local.autostart
Это мы создаем пока еще пустой текстовый файл с названием local.autostart в директории /etc/init.d/ с помощью консольного текстового редактора nano
3. Копируем прямо из этой темы и вставляем текст:
#!/bin/bash
sudo iptables -t nat -I OUTPUT -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination 163.172.167.207:3128
4. Выходим из nano с сохранением текста.
5. Даем текстовому файлу (скрипту) права на исполнение:
sudo chmod +x /etc/init.d/local.autostart
6. Чтобы система увидела новый исполняемый скрипт, стоящий в автозагрузке, делаем reboot системы, либо просто обновляем:
sudo update-rc.d local.autostart defaults 80
7. Проверяем. Если не сработало, ждем ответов других пользователей.
« Последнее редактирование: 02 Ноября 2017, 12:49:59 от tahr »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6725
  • 20% Cooler
    • Просмотр профиля
Re: Как создать автостарт iptables
« Ответ #4 : 02 Ноября 2017, 17:48:45 »
Если у вас Kubuntu 17.10 (как указано в подписи), то можно  создать cервис systemd

Создаёте файл
\etc\systemd\system\ipforward.service
[Unit]
Description=Forward IP for transmission

[Service]
Type=oneshot
ExecStart=/sbin/iptables -t nat -I OUTPUT -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination 163.172.167.207:3128

[Install]
WantedBy=network.target

Включаете и запускаете сервис:
sudo systemctl enable ipforwardsudo systemctl start ipforward
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн alexandr-makukhin

  • Автор темы
  • Активист
  • *
  • Сообщений: 341
    • Просмотр профиля
    • Александр Макухин
Re: Как создать автостарт iptables
« Ответ #5 : 02 Ноября 2017, 19:05:07 »
Не сработал вариант: sudo update-rc.d local.autostart defaults 80
Работает вариант: \etc\systemd\system\ipforward.service

 

Страница сгенерирована за 0.03 секунд. Запросов: 26.