Я ніколи не використовував iptables, і документація в Інтернеті здається трохи непрозорою.
Я хотів би заблокувати всі запити на порт 8000 на моєму сервері, крім тих, що надходять з певної IP-адреси. Як це зробити за допомогою iptables?
Я ніколи не використовував iptables, і документація в Інтернеті здається трохи непрозорою.
Я хотів би заблокувати всі запити на порт 8000 на моєму сервері, крім тих, що надходять з певної IP-адреси. Як це зробити за допомогою iptables?
Відповіді:
Це запитання має бути про помилку сервера . Тим не менше, наведене нижче має зробити трюк, припускаючи, що ви говорите про TCP і IP, який ви хочете дозволити, це 1.2.3.4:
iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
Іншою альтернативою є;
sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
У мене була подібна проблема, що 3 мостові віртуальні машини просто потребують доступу один до одного з різною комбінацією, тому я протестував цю команду, і вона працює добре.
Редагувати **
Відповідно до коментаря Фернандо і цей знак оклику посилання (
!
) буде розміщено перед-s
параметром:
sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
!
) тепер повинні бути поміщені перед -s
параметром: sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
.
Ви завжди можете використовувати iptables для видалення правил. Якщо у вас багато правил, просто виведіть їх за допомогою наступної команди.
iptables-save > myfile
vi
редагувати їх з похвального рядка. Просто використовуйте "dd", щоб видалити рядки, які вам більше не потрібні.
iptables-restore < myfile and you're good to go.
ПАМ’ЯТАЙТЕ, ЩО ВИ НЕ НАЛАШТУЄТЕ ВАШУ ОС, ЩОБ ЗБЕРЕГТИ ПРАВИЛА В ФАЙЛІ, А ПОТІМ ЗАВАНТАЖУТЬ ФАЙЛ ПІД ЧАС ЗАГАДКИ, ЩО ВАШІ ПРАВИЛА БУДУТЬ Втрачені.
iptables-restore < myfile
// wiki.debian.org/iptables