- How to open a Specific Port in IPtables Firewall on a Linux server
- How to Open an incoming port in IPtables
- How to Open an Outgoing Port in Iptables firewall
- How to Open port IPTables – Close port IPtables
- Open and Close Ports using IPTables – Open a port in IPtables
- List Current Firewall Rules
- Open port IPtables
- Close port IPtables
- Join The Discussion.
- Как открыть порт Ubuntu
- Просмотр правил Iptables
- Как открыть порт iptables с нуля
- Как открыть порт, если уже есть правила
- Выводы
How to open a Specific Port in IPtables Firewall on a Linux server
Iptables is a firewall installed by default on all linux distributions to drop unwanted traffic/access to the server. Iptables interact with ‘netfilter’ packet filtering framework.
Using Iptables command you can add, edit and delete firewall filter rules. You must have server root access to make changes in Iptables firewall.
IMPORTANT: Be careful when you execute Iptables firewall commands on server backend because some commands might lock you out from the server. Before running the iptables command, you must double check the command and also you must know what all changes the rules will do on the server.
How to Open an incoming port in IPtables
2. Run the below command to open incoming port
iptables -A INPUT -p tcp –dport portnumber -j ACCEPT
In the above command “portnumber” should be replaced with the incoming port number you wish to open
INPUT = INPUT means incoming traffic to the server. (The server port can be accessed from outside the server). An example is given below
3. Run the command “service iptables save” to save the firewall rules
root@server1 [~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
-i = Interface name (Example : eth0, eth1, venet0 etc)
-p = Protocol (example : tcp, udp etc)
How to Open an Outgoing Port in Iptables firewall
2. Run the below command to open outgoing port
iptables -A OUTPUT -p tcp –dport portnumber -j ACCEPT
“portnumber” in the above command should be replaced with the actual outgoing port number you wish to open.
OUTPUT = OUTPUT means outgoing traffic from the server. (From server to outside)
An example is given below :
3. Do not forget to save the IP tables rules : “service iptables save”
You must save the iptables rules after making any changes in iptables firewall. Rules will be removed if it is not saved.
Command to save the firewall rules : “service iptables save”
root@server [~]# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
On the above server you can see that firewall rules are saved to file “/etc/sysconfig/iptables”. Open the file /etc/sysconfig/iptables using vi editor and you can see all the rules on the server, including the rules you have added.
On ubuntu servers “service iptables save” command will not work so you must use the command “iptables-save”
“iptables -nL | grep 3032” will show the above rule you have added on the server.
How to Open port IPTables – Close port IPtables
Open and Close Ports using IPTables – Open a port in IPtables
IPtables is the default firewall used on CentOS and RHEL systems. On most F2H services like NVMe VPS Servers or Dedicated Servers, you will find the firewall is active but all ports are open. We do this to ensure all users can connect to services they may install like cPanel or Plesk. So, If you want to close ports on your server or even open port IPtables if you have a pre-configured firewall you can use the rules below to open and close ports on your firewall.
But, if you use CentOS 7 or above it’s likely you are using FirewallD and not IPtables. We have written a guide on how to open ports and close ports when using FirewallD
List Current Firewall Rules
This command lists all the current firewall rules loaded into IPtables.
Open port IPtables
You can open port centOS servers by adding a new rule to IPtables. You should restart IPtables after adding rules.
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT service iptables save
Therefore, this command opens port 80 in IPtables, to open different ports Just swap the 80 for the port number you wish to open. Run the service iptables save command to save the rules to your firewall configuration.
Close port IPtables
iptables -I INPUT -p tcp -m tcp --dport 80 -j REJECT service iptables save
So, this command would close port 80 in IPtables and no one would be able to connect via that port. Just swap the 80 for your required port number then run the service iptables save command to save this to your IPtables configuration. You can also use the DROP command instead of REJECT.
If you use a CentOS 7 or CentOS 8 server you likely use FirewallD and not IPtables. See the How to open ports and close ports in FirewallD
Always deploy a firewall to your server. See our firewall guide How to install CSF to your Server
Join The Discussion.
[Search Terms: iptables open port, iptables close port]
How was this article? – Open and Close Ports using IPTables
Как открыть порт Ubuntu
Правильная настройка брандмауэра имеет очень важное значение для безопасности вашего сервера или даже домашнего компьютера, подключенного к сети интернет.
На промышленных серверах брандмауэр запрещает подключение к большинству из них, оставляя только необходимые. В этой статье мы рассмотрим как открыть порт iptables и закрыть все остальные. Хотя в большинстве дистрибутивов существуют специальные утилиты для настройки брандмауэра,мы будем использовать iptables, чтобы вы смогли понять процесс на самом низком уровне.
Просмотр правил Iptables
Прежде чем что-либо менять, нужно понять каким образом система работает сейчас. Возможно, для лучшего понимания материала вам сначала стоит ознакомиться со статьей iptables для начинающих. Для просмотра текущих правил iptables выполните такую команду:
Здесь мы видим три цепочки OUTPUT, INPUT и FORWARD, за открытые порты отвечает цепочка INPUT, именно через нее проходят все входящие пакеты. Сейчас политика по умолчанию — ACCEPT, это значит, что подключение ко всем портам разрешено. Здесь нам нужно настроить все самим и это будет проще если бы какая-либо программа уже создала свои настройки, но этот вариант мы тоже рассмотрим ниже.
Как открыть порт iptables с нуля
Если в iptables уже есть какие-либо правила и вы хотите их удалить просто выполните:
Теперь нам нужно добавить правила, которые разрешат обмен данными между любыми портами на локальном интерфейсе lo, это нужно чтобы не вызвать системных ошибок:
sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
Если кратко, то здесь добавляется два правила в цепочки INPUT и OUTPUT, разрешающие отправку и прием данных из интерфейса lo. Еще одно интересное и важное правило, которое многие упускают. Нужно запрещать только новые соединения, а пакеты для уже открытых нужно разрешать. Иначе получится, что мы отправляем серверу запрос (цепочка OUTPUT открыта), соединение открывается, но сервер не может нам ответить, потому что все пакеты отбрасываются в INPUT. Поэтому нужно разрешить все пакеты с состоянием ESTABLISHED и RELATED. Для этого есть модуль state:
sudo iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
Теперь самое интересное, рассмотрим как открыть порт 22 и 80 для протокола TCP:
sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT
$ sudo iptables -A INPUT -p tcp —dport 80 -j ACCEPT
Опция -A сообщает, что нужно добавить пакет в конец цепочки, -p — указывает протокол, а —dport или Destination Port (порт назначения) указывает из какого порта пакеты нужно принимать. Теперь вы можете снова посмотреть список правил:
Вывод очень упрощен и понять здесь что-то сложно, например, может показаться что у нас два одинаковых правила, хотя это не так. Чтобы отобразить более подробную информацию используйте:
Чтобы все это в действительности заработало, осталось поменять политику по умолчанию на DROP:
sudo iptables -P INPUT DROP
Все, можете проверять. Все пользователи смогут получить доступ к портам 22 и 80, а к остальным доступа не будет.
Как открыть порт, если уже есть правила
Довольно часто возникает ситуация, когда вам нужно открыть порт Linux, а iptables уже содержит набор правил, запрещающих доступ к портам. Иногда вы добавляете правило, все как нужно, с помощью описанной выше команды, но не замечаете никакого эффекта. Рассмотрим почему так происходит.
Допустим, программа или предыдущий администратор для надежности добавили в конец цепочки правило такого вида:
sudo iptables -A INPUT -j DROP
Как вы понимаете, это значит, что все пакеты, которые до него доходят, будут отброшены. Ваше правило добавляется в конец цепочки, уже после этого. Естественно, что к нему уже никакие пакеты не дойдут, потому что они были отброшены ранее. Чтобы обойти эту проблему нужно использовать опцию -I (INSERT) вместо -A (ADD), она добавляет правило в начало цепочки и все будет работать. Осталось открыть порты Linux:
sudo iptables -I INPUT -p tcp —dport 1924 -j ACCEPT
Теперь смотрим список правил и проверяем:
Выводы
В этой статье мы рассмотрели как открыть порт Ubuntu 16.04 или в любом другом Linux дистрибутиве, а также закрыть ненужные порты. Это повысит безопасность вашей системы. Только на первый взгляд кажется, что с iptables сложно работать. Если разобраться, то все будет достаточно просто. Надеюсь, эта информация была полезной для вас.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.