Білий список дозволених IP-адрес (введення / виводу) за допомогою iptables


21

У мене є кілька діапазонів ip, до яких я хочу, щоб мій сервер міг підключитися, а користувачі могли підключитися. Все інше має бути заблоковано.

Як мені це зробити з iptables?

Моя ОС - це дистрибутив Linux на базі Debian.

Відповіді:


27

Я б запропонував захопити інструмент налаштування брандмауера, такий Firestarter , і піти звідти. Ось кілька основ для вас, хоча.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT

3
Ви знаєте, що можете відформатувати свій код у публікаціях за замовчуванням на сервері за допомогою кнопки 101010. Таким чином ваші коментарі не вийдуть як кричущі. Просто виберіть (перетягніть курсор миші) код і натисніть кнопку 101010 над текстовим полем.
Джейсон Тан

2
Ах, дякую, я цього не усвідомлював. Тепер я знаю :)
Zenham

1
+1 для існуючих, пов'язаних - занадто багато людей цього не роблять.
Альнітак

1
Для любові до бога, будь ласка, встановіть за замовчуванням правило DROP LAST! Я заблокував себе (і все інше!) З машини, дотримуючись цього порядку операцій.
Бендо

1
Страшна відповідь. ОП нічого не говорить про переривання всіх поточних з'єднань. Зараз я заблокований, бо вважав, що відповідь має сенс.
omikes

14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Це перетворить вашу систему в неіснуючу систему для не дозволених комп'ютерів.


7

Якщо ви хочете дозволити довільні діапазони, а не цілі підмережі, ви можете скористатися модулем iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

наприклад, буде дозволено рух трафіку з усіх машин з адресою між 192.168.1.30 та 192.168.1.50.

Якщо ви хочете дозволити вхідний та вихідний трафік для одного і того ж діапазону IP-адрес, я б запропонував вам створити певну ланцюг, що дозволяє цим IP-адресам і орієнтувати на всі вхідні та вихідні цілі до нього:

--визначте політику за замовчуванням, щоб відмовитись від вічного розміщення:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

--створіть новий ланцюжок:

iptables -N allowed_ips

- якщо джерело є частиною дозволеного діапазону, прийміть

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- Якщо ні, поверніться до ланцюга абонента, щоб продовжити обробку

iptables -A allowed_ips -j RETURN

- змусити весь трафік, що входить і виходить з машини, пройти через наш новий ланцюг

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

і це все! звичайно, вам можуть знадобитися додаткові правила, наприклад, таке, що дозволяє весь трафік з / до інтерфейсу lo тощо.


1

Після того, як ви задоволені своїми правилами, ви, ймовірно, захочете їх зберегти . У коментарях у цьому посиланні є кілька варіантів, як це зробити.

Простий у використанні генератор правил iptables для простих потреб - це ufw . Пакет доступний у нестабільній програмі debian.

Спробуйте також Firestarter . Доступно в lenny.


0

Ви також можете використати ферм, який я також використовував минулий рік, і він мені дуже допоміг у таких випадках, як правила умовного брандмауера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.