Вопрос о том, что ваши правила брандмауэра не работают, заключается в том, что когда машина подключается к вашему серверу БД, с точки зрения сервера БД, это действительно порт назначения; однако, когда пакет покидает сервер БД, с точки зрения сервера БД порт службы/прослушивания БД является исходным портом.
Таким образом, исправляя свои правила, должно быть:
-A INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 50000 -j ACCEPT
Остерегайтесь также соединений с локальным хостом, которые часто нужны нескольким демонам; вам может понадобиться вверху ваших правил:
-A INPUT -i lo -j ACCEPT
-A OUTPUT -i lo -j ACCEPT
В зависимости от ваших требований к безопасности и количества правил, я бы рассмотрел директивы ESTABLISHED и RELATED . Это позволит вам упростить ваши правила с помощью правил брандмауэра с отслеживанием состояния.
ESTABLISHED meaning that the packet is associated with a connection which has seen packets in both directions, NEW meaning that the packet has started a new connection, or otherwise associated with a connection which has not seen packets in both directions, and RELATED meaning that the packet is starting a new connection, but is associated with an existing connection, such as an FTP data transfer, or an ICMP error.
Я вижу, что этот вопрос старый, но все же я столкнулся с той же проблемой, и проблема заключалась в переопределении ~/.gtkrc-2.0
, которое каким-то образом было создано при установке kde. Итак, эта проблема исправлена удалением этого файла.