Форум программистов, компьютерный форум, киберфорум
Ubuntu, Mint Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Заблокирован

Настройка iptables для домашнего пользования на ubuntu и други linux'ax

21.12.2016, 22:50. Показов 1843. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
    # Включить перенаправление пакетов через ядро.
    echo 0 > /proc/sys/net/ipv4/ip_forward
    
    # Сбросить правила и удалить цепочки.
    $IPT -F
    $IPT -X
    
    # Политики по умолчанию.
    $IPT -P INPUT DROP
    $IPT -P FORWARD DROP
    $IPT -P OUTPUT DROP
 
    # Разрешаем прохождение любого трафика по интерфейсу обратной петли.
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A OUTPUT -o lo -j ACCEPT
 
    # allow mysql workbench
    $IPT -A INPUT -d 192.168.0.82 -j ACCEPT
    $IPT -A OUTPUT -s 192.168.0.82 -j ACCEPT
    
    # Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру.
    $IPT -A INPUT -m state ! -i lo --state NEW -j DROP
    
    # Если интерфейс не lo, то запрещаем входить в список его адресов.
    $IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP
    
    # Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
    $IPT -A INPUT   -m state --state INVALID -j DROP
    $IPT -A FORWARD -m state --state INVALID -j DROP
    
    # Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
    # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
    $IPT -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # Предупреждаю вас о туповатых провайдерах, которые назначают IP адреса, отведенные IANA для локальных сетей.
    # Например адреса 10.X.X.X. Для этого надо установить правило, пропускающие трафик с этих серверов, ранее цепочки INPUT.
    $IPT -t nat -I PREROUTING -i $INET_IFACE -s 10.0.0.1/32 -j ACCEPT
    
    # Эти правила предохраняют от некоторых типов атак:
    
    # SYN наводнение.
    # Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
    $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
    
    # UDP наводнение 
    # Службы использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя.
    $IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP 
    $IPT -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT 
    $IPT -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT  
    $IPT -A INPUT -p UDP -j RETURN 
    $IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT 
    
    # ICMP - перенаправление 
    # ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять 
    # пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину.
    $IPT -A INPUT --fragment -p ICMP -j DROP 
    $IPT -A OUTPUT --fragment -p ICMP -j DROP 
    
    # Разрешаем  ICMP соединение. Значительная часть ICMP используется для передачи сообщений о 
    # том, что происходит с тем или иным UDP или TCP соединением.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT
    
    # Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT
 
    # Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись,
    # или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT
 
    # Запрещаем подключение к X серверу через сетевые интерфейсы.
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn
    
    # Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
    # $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports #порта
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 783
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 3310
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 10000
    
    # DNS сервер имен разрешаем.
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport $UNPRIPORTS --sport 53 -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT
    
    # Разрешаем AUTH-запросы на удаленные сервера, на свой же компьютер - запрещаем.
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 113 -j ACCEPT ! --syn
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP
    
    # Открываем некоторые порты:
    
    # SMTP клиент (25)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 25 -j ACCEPT ! --syn
    
    # POP3 клиент (110)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 110 -j ACCEPT ! --syn
    
    # IMAP4 клиент (143)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 143 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 143 -j ACCEPT ! --syn
    
    # SSH клиент (22)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT
    
    # FPT клиент (21)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 21 -j ACCEPT ! --syn
    
    # HTTP/HTTPS клиент (80, 443)
    $IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $UNPRIPORTS -j ACCEPT --dports 80,443
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport $UNPRIPORTS -j ACCEPT --sports 80,443 ! --syn
    
    # Разрешаем finger, whois, gorper, wais. Traceroute - разрешаем себе, к нам не проломятся - запрещено. Telnet 
    # запретил, чтобы соблазна не было передавать пароли прямым текстом.
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 20 -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 20 --sport $UNPRIPORTS -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 23 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 23 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 79 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 79 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 43 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 43 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 70 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 70 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 210 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 210 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 33434:33523 --sport 32769:65535 -j ACCEPT
      
    # Разрешаем прохождение DHCP запросов через iptables. Нужно, если IP адрес динамический.
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 67 --sport 68 -j ACCEPT
    $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport 68 --sport 67 -j ACCEPT
    
}
 
case "$1" in
start)  echo -n "Starting firewall: iptables"
    start_fw
        echo "." 
    ;;
stop)   echo -n "Stopping firewall: iptables"
    iptables -F
    iptables -X
        echo "."
        ;;
save)   echo -n "Saving firewall: iptables"
    iptables-save > /etc/rules-save
    echo "."
    ;;    
restart) echo -n "Restarting firewall: iptables"
    iptables -F
    iptables -X
    cat /etc/rules-save | iptables-restore
        echo "."
        ;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
        echo "."
        ;;
*)  echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload"
        exit 1 
        ;;
esac
exit 0
Выложил кому надо пусть пользуются готовым скриптом.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.12.2016, 22:50
Ответы с готовыми решениями:

Мини ПК на монитор для домашнего пользования
Здравствуйте хочу приобрести комп для домашнего пользования ( инет, фильмы и т.д. ) под линукс и желательно не дорогой.

Ноутбук для домашнего пользования до 20 000р
Здравствуйте. Нужен ноутбук для родителей для обычного пользования: интернет, просмотр фильмов и , в принципе, и всё. Бюджет в районе...

Сервер для домашнего пользования мз строго железа
Из старого железа: материнка 2000 года, P4 1,6 Ггц., 256 Мб, две одинаковые PCI-ные сетевые за 2-5$ был собран сервер в качестве...

4
74 / 74 / 17
Регистрация: 06.05.2016
Сообщений: 413
22.12.2016, 04:53
sensible-editor ругается на непарную фигурную скобку в 145 строке.

Добавлено через 22 минуты
Больше 10 лет скрипту.
Событие, однако!
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
22.12.2016, 09:04
Цитата Сообщение от laks8 Посмотреть сообщение
Выложил кому надо пусть пользуются...
..."большой загадкой"....
потому как "приехали" начинается с самого начала:
Bash
1
2
3
4
5
dmitry@my-notebook:~$ echo $IPT
 
dmitry@my-notebook:~$ sudo echo $IPT
 
dmitry@my-notebook:~$
или тут:
Цитата Сообщение от laks8 Посмотреть сообщение
Bash
1
2
# Включить перенаправление пакетов через ядро.
echo 0 > /proc/sys/net/ipv4/ip_forward
вы абсолютно уверены в написанном?
...

Не по теме:

с такой "помощью"...
как гласит поговорка, "бывают такие друзья, что и врагов не надо"...

0
Заблокирован
22.12.2016, 13:14  [ТС]
# Включить перенаправление пакетов через ядро.
echo 0 > /proc/sys/net/ipv4/ip_forward
это я у себя отключил (выключить - 0, включить -1) чтобы если поймать трой вирь пакеты не слалилсь.

да скрипту более 10 лет, но есть одно но он лежал на сайте posix ru , но почему то из выдачи google он удалился..

поэтому я и выложил его сюда
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
22.12.2016, 13:24
"опытным" оно и нафик не надо, а "начинающий" (да еще и с горяча решивший, что оно ой как надо) с этой криворукой поделкой с ума сойдет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2016, 13:24
Помогаю со студенческими работами здесь

Системник для домашнего пользования за 14000 руб
Здраствуйте. Хотелось бы услышать советы по выбору комплектующих для сборки компа. Хочу по деталям купить и собрать комп для...

Посоветуйте Бесплатный антивирус для домашнего пользования
Посоветуйте пожалуйста бесплатный антивирус для домашнего пользования, чтобы и защита нормальная была и деньги не платить )

Компьютер для домашнего пользования и средних игр, 30 +/- т.р.
Доброго веремени суток, форумчане. Решил собрать компьютер, что делаю в первый раз, по причине устаревания моего прежнего ПК. Но вот...

Настройка программы для общего пользования
Всем доброго времени суток. У меня такая проблема: Я хочу допустим продать свою программу, но для этого программа должна...

Ubuntu 18.04.3. Как применить скрипт для обновления iptables при перезапуске системы?
Создаём инициализирующий скрипт с дампом правил iptables: nano /etc/firewall.v4.init Копируем в инициализирующий скрипт правила для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru