Назад | Перейти на главную страницу

Как включить синергию 24800 (или какой-то другой порт) через firewalld

После обновления Synergy до Fedora 18 система совместного использования клавиатуры была заблокирована по умолчанию. Виновником был firewalld, который благополучно проигнорировал мои предыдущие настройки, сделанные в графическом интерфейсе Fedora при поддержке iptables.

~]$ ps aux | grep firewall
root      3222  0.0  1.2  22364 12336 ?        Ss   18:17   0:00 /usr/bin/python /usr/sbin/firewalld --nofork
david     3783  0.0  0.0   4788   808 pts/0    S+   20:08   0:00 grep --color=auto firewall
~]$ 

Итак, как это обойти? я сделал sudo killall firealld в течение нескольких недель, но это меня раздражало каждый раз, когда я перезагружался. Пора было искать зацепки. Было несколько одинарных лайнеров, но они мне не подошли. Они продолжали выплевывать текст помощи. Например:

~]$ sudo firewall-cmd --zone=internal --add --port=24800/tcp
[sudo] password for auser: 
option --add not a unique prefix

Кроме того, сообщения, которые утверждали, что эта команда работала, также указали, что она временная и не выдерживает перезагрузки. Я закончил тем, что добавил файл в каталог конфигурации, который будет загружаться при загрузке.

Сможет ли кто-нибудь взглянуть на это и увидеть, пропустил ли я что-нибудь? Хотя синергия работает, когда я запускаю команду list, я не получаю результата:

~]$ sudo firewall-cmd --zone=internal --list-services
ipp-client mdns dhcpv6-client ssh samba-client
~]$ sudo firewall-cmd --zone=internal --list-ports
~]$

После прочтения man firewall-cmd Я побежал;

sudo firewall-cmd --permanent --add-port=24800/tcp

и перезагрузка сделала свое дело

Вот как открыть порт с помощью firewalld. Я не нашел графического интерфейса, подобного старой программе Firewall, и понял, что firewalld игнорирует мои предыдущие правила взаимодействия.

Firewalld устанавливается с некоторыми конфигурационными файлами по умолчанию, которые можно использовать для разрешения служб или портов через систему.

~]$ sudo ls -l /usr/lib/firewalld/zones
total 36
-rw-r-----. 1 root root 256 Feb 20 10:37 block.xml
-rw-r-----. 1 root root 293 Feb 20 10:37 dmz.xml
-rw-r-----. 1 root root 226 Feb 20 10:37 drop.xml
-rw-r-----. 1 root root 319 Feb 20 10:37 external.xml
-rw-r-----. 1 root root 400 Feb 20 10:37 home.xml
-rw-r-----. 1 root root 415 Feb 20 10:37 internal.xml
-rw-r-----. 1 root root 340 Feb 20 10:37 public.xml
-rw-r-----. 1 root root 179 Feb 20 10:37 trusted.xml
-rw-r-----. 1 root root 367 Feb 20 10:37 work.xml

Я решил попробовать internal.xml и скопировал его из каталога установки в каталог загрузки в / etc / firewalld /, затем отредактировал его, чтобы добавить свой порт для синергии.

~]$ sudo cp /usr/lib/firewalld/zones/internal.xml /etc/firewalld/zones
~]$ sudo vi /etc/firewalld/zones/internal.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Internal</short>
  <description>For use on internal networks. You mostly trust the other computers 
  on the networks to not harm your computer. Only selected incoming connections 
  are accepted.</description>
  <service name="ssh"/>
  <service name="ipp-client"/>
  <service name="mdns"/>
  <service name="samba-client"/>
  <service name="dhcpv6-client"/>
  <port port="24800" protocol="tcp"/>  <-- Here is my addition. 
</zone>

Я сохранил файл, перезапустил firewalld, и мое приложение Synergy снова заработало.

~]$ sudo service firewalld restart

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

Чтобы он прижился, я также изменил файл firewalld.conf по умолчанию на внутренний.

~]$ sudo vi /etc/firewalld/firewalld.conf
# firewalld config file

# default zone
# The default zone used if an empty zone string is used.
# Default: public
DefaultZone=internal   <-- changed this line

В общем, я думаю, что это довольно просто редактировать конфигурацию. Такому новичку, как я, гораздо легче понять, чем правила iptables.

Надеюсь, это поможет вам продолжить работу с новой Fedora.

Обновление: оказывается, я неправильно набрал команду добавления. Чтобы использовать временный порт или службу добавления, выполните следующие действия:

~]$ sudo  firewall-cmd --add-port=24800/tcp
~]$ sudo  firewall-cmd  --list-all
internal
  interfaces: eth0
  services: ipp-client mdns dhcpv6-client ssh samba-client
  ports: 24800/tcp
  forward-ports: 
  icmp-blocks: 

То, что вы хотите добавить, добавляется к команде --add с помощью символа -.

Теперь на странице руководства я также вижу постоянный вариант. Итак, я попробую:

~]$ sudo  firewall-cmd --permanent --add-port=24800/tcp
~]$ sudo  firewall-cmd --complete-reload
~]$ sudo  firewall-cmd  --list-all
internal
  interfaces: eth0
  services: ipp-client mdns dhcpv6-client samba-client ssh
  ports: 24800/tcp
  forward-ports: 
  icmp-blocks: 

Все идет нормально. После перезагрузки посмотрю что у меня. Тем временем я нахожу изменение в каталоге зоны:

~]$ sudo ls /etc/firewalld/zones
internal.xml  internal.xml.old
~]$ sudo cat /etc/firewalld/zones/internal.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Internal</short>
  <description>For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ipp-client"/>
  <service name="mdns"/>
  <service name="dhcpv6-client"/>
  <service name="samba-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="24800"/>
</zone>