Задать вопрос
@IsaevDev

Как в iptables открыть порт только для частной сети?

Создал частную сеть на VPS хостинге
Пишет:
Шлюз: 10.0.0.1
Маска: 255.255.255.0
IP адреса через DHCP

Дальше хочу сделать кэш сервер с redis на 6379 порту
Ставлю такие правила:

iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p TCP --sport 22 -j ACCEPT
iptables -A INPUT -p TCP -s 10.0.0.1/24 --dport 6379 -j ACCEPT (или 10.0.0.0)
iptables -A OUTPUT -p TCP --sport 6379 -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

Пробую подключиться с сервера из частной сети - дропает. Без правил работает
Подскажите в какую сторону копать?
Спасибо!
  • Вопрос задан
  • 3098 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя Алексей Черемисин К ответам на вопрос (2)
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Вы все еще пишете iptables руками?! Тогда мы идем к вам!
Поставьте наконец firehol или ufw, или какой другой аналог автогенераторов правил.

Мой фаворит - firehol - https://firehol.org
# apt-get install firehol
# vi /etc/default/firehol
# /etc/init.d/firehol start|stop|restart|status

Ну и конфигурирования под ваши нужды
server_redis_ports="tcp/6379 udp/6379"
client_redis_ports="default 6379"

redirect to 22 proto tcp dport 2244

interface eth0 internet
    policy drop
    protection strong
    server smtp accept
    server http accept
    server ftp  accept
    server ssh  accept ### (!) проверить сначала работу по 2244, не выключать текущую сессию ssh!
    client ping accept

interface eth1 myprivatelan
    policy reject
    server "ping ssh redis" accept src 10.0.0.0/24
    server dhcp accept
    client "ssh ping redis dhcp"  accept
Ответ написан