Обычно мы все используем SSH и FTP сервисы часто для доступа к удаленным серверам и виртуальным частным серверам. Как администратор Linux вы должны знать, как заблокировать доступ SSH и FTP к определенному IP-адресу или диапазону сети в Linux, чтобы еще больше усилить безопасность.
Из этого туториала Вы узнаете, как заблокировать SSH и FTP-доступ к определенному IP-адресу и / или диапазону сети на сервере CentOS 6 и 7. Это руководство было протестировано на CentOS 6.x и 7.x версий, но он, вероятно, будет работать в других дистрибутивах Linux, таких как Debian, Ubuntu, SUSE / openSUSE и т. д.
Сделаем это двумя способами. Первый метод использует IPTables/брандмауэрD а второй метод использует TCP обертки с помощью hosts.allow и hosts.deny файл.
Обратитесь к следующим руководствам, чтобы узнать больше о IPTables и Firewalld.
Теперь вы знаете, что такое IPTables и БрандмауэрD и это основы.
Теперь давайте посмотрим, как заблокировать SSH и FTP-доступ к определенному IP (например, 192.168.1.100) и / или диапазон сети (например, 192.168.1.0/24) с использованием IPtables в версиях RHEL / CentOS / Scientific Linux 6.x и БрандмауэрD на CentOS 7.x.
На Межсетевой экран IPtables # iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT. # iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT.
На БрандмауэрD # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT. # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT.
Чтобы новые правила вступили в силу, вам необходимо использовать следующую команду.
# service iptables save [в брандмауэре IPtables] # firewall-cmd --reload [в FirewallD]
Теперь попробуй SSH сервер с заблокированного хоста. Помните, что здесь 192.168.1.150 это заблокированный хост.
# ssh 192.168.1.150.
Вы должны увидеть следующее сообщение.
ssh: подключиться к хосту 192.168.1.150 порт 22: в соединении отказано.
Чтобы разблокировать или включить доступ по SSH, перейдите на удаленный сервер и выполните следующую команду:
На Межсетевой экран IPtables # iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j ACCEPT. # iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport ssh -j ACCEPT.
На БрандмауэрD # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT. # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j ACCEPT.
Сохраните изменения, используя следующее, чтобы получить доступ к вашему серверу через SSH.
# service iptables save [в брандмауэре IPtables] # firewall-cmd --reload [в FirewallD]
Обычно порты по умолчанию для FTP являются 20 и 21. Итак, чтобы заблокировать весь FTP-трафик с помощью IPTables, выполните следующую команду:
На Межсетевой экран IPtables # iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j REJECT. # iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ОТКАЗАТЬ.
На БрандмауэрD # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j REJECT. # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT.
Чтобы новые правила вступили в силу, вам необходимо использовать следующую команду.
# service iptables save [в брандмауэре IPtables] # firewall-cmd --reload [в FirewallD]
Теперь попробуйте получить доступ к серверу с заблокированного хоста (192.168.1.100) с командой:
# ftp 192.168.1.150.
Вы получите сообщение об ошибке, подобное приведенному ниже.
ftp: connect: соединение отклонено.
Чтобы разблокировать и снова включить доступ по FTP, запустите:
На Межсетевой экран IPtables # iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ПРИНЯТЬ. # iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ПРИНЯТЬ.
На БрандмауэрD # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT. # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT.
Сохраните изменения командой:
# service iptables save [в брандмауэре IPtables] # firewall-cmd --reload [в FirewallD]
Теперь попробуйте получить доступ к серверу через FTP:
# ftp 192.168.1.150.
Введите имя пользователя и пароль ftp.
Подключен к 192.168.1.150. 220 Добро пожаловать в службу FTP TecMint. Название (192.168.1.150:sk): tecmint. 331 Пожалуйста, укажите пароль. Пароль: 230 Успешный вход. Тип удаленной системы - UNIX. Использование двоичного режима для передачи файлов. ftp>
Если ты не хочешь возиться с IPTables или БрандмауэрD, потом Обертки TCP - лучший способ заблокировать SSH и FTP-доступ к определенному IP-адресу и / или диапазону сети.
OpenSSH и FTP скомпилированы с поддержкой TCP-оболочек, что означает, что вы можете указать, каким хостам разрешено подключаться, не касаясь брандмауэра, в следующих двух важных файлах:
Как следует из названия, первый файл содержит записи о разрешенных хостах, а второй - адреса заблокированных хостов.
Например, давайте заблокируем SSH и FTP-доступ к хосту с IP-адресом. 192.168.1.100 и диапазон сети 192.168.1.0. Этот метод одинаков для CentOS серий 6.x и 7.x. И, конечно же, он будет работать в других дистрибутивах, таких как Debian, Ubuntu, SUSE, openSUSE и т. Д.
Открой /etc/hosts.deny
файл и добавьте следующие IP-адреса или диапазон сети, который вы хотите заблокировать, как показано ниже.
##### Чтобы заблокировать доступ по SSH ##### sshd: 192.168.1.100. sshd: 192.168.1.0/255.255.255.0 ##### Чтобы заблокировать доступ по FTP ##### vsftpd: 192.168.1.100. vsftpd: 192.168.1.0/255.255.255.0.
Сохраните и выйдите из файла.
Теперь перезапустите службы sshd и vsftpd, чтобы изменения вступили в силу.
Для SSH Service # service sshd restart [On SysVinit] # systemctl перезапуск sshd [в SystemD]
Для службы FTP # service vsftpd restart [On SysVinit] # systemctl restart vsftpd [В SystemD]
Теперь попробуйте подключиться к серверу или с заблокированного хоста по SSH.
# ssh 192.168.1.150.
Вы увидите следующий результат:
ssh_exchange_identification: read: сброс соединения одноранговым узлом
Теперь попробуйте FTP-сервер или с заблокированного хоста.
# ftp 192.168.1.150.
Вы увидите следующий результат:
Подключен к 192.168.1.150. 421 Услуга недоступна.
Чтобы снова разблокировать или включить службы SSH и FTP, отредактируйте hosts.deny файл и закомментируйте все строки и, наконец, перезапустите службы vsftpd и sshd.
На этом пока все. Подводя итоги, сегодня мы узнали, как заблокировать определенный IP-адрес и диапазон сети с помощью IPTables, FirewallD и TCP-оболочек. Эти методы довольно просты и понятны.
Даже начинающий администратор Linux может сделать это за пару минут. Если вы знаете другие способы заблокировать доступ по SSH и FTP, не стесняйтесь делиться ими в разделе комментариев. И не забывайте делиться нашими статьями во всех социальных сетях.