웹사이트 검색

Linux에서 특정 IP 및 네트워크 범위에 대한 SSH 및 FTP 액세스를 차단하는 방법


일반적으로 우리 모두는 원격 서버와 가상 개인 서버에 액세스하기 위해 SSHFTP 서비스를 자주 사용합니다. Linux 관리자는 보안을 더욱 강화하기 위해 Linux의 특정 IP 또는 네트워크 범위에 대한 SSH 및 FTP 액세스를 차단하는 방법을 알고 있어야 합니다.

  1. Linux 서버를 위한 25가지 보안 강화 팁
  2. SSH 서버 보안 및 보호를 위한 5가지 유용한 팁

이 튜토리얼에서는 CentOS 6 및 7 서버에서 특정 IP 주소 및/또는 네트워크 범위에 대한 SSH 및 FTP 액세스를 차단하는 방법을 보여줍니다. 이 가이드는 CentOS 6.x7.x 버전에서 테스트되었지만 Debian, Ubuntu, SUSE/openSUSE 등과 같은 다른 Linux 배포판에서도 작동할 것입니다.

두 가지 방법으로 해보겠습니다. 첫 번째 방법은 IPTables/firewallD를 사용하는 것이고 두 번째 방법은 hosts.allowTCP 래퍼를 사용하는 것입니다. > 및 hosts.deny 파일.

IPTable 및 Firewalld에 대해 자세히 알아보려면 다음 가이드를 참조하세요.

  1. IPTables 기본 가이드(Linux 방화벽) 팁/명령
  2. Linux에서 서비스에 대한 원격 액세스를 활성화하기 위해 Iptables 방화벽을 설정하는 방법
  3. RHEL/CentOS 7 및 Fedora 21에서 'FirewallD'를 구성하는 방법
  4. Linux에서 방화벽을 구성하고 관리하는 데 유용한 'FirewallD' 규칙

이제 IPTablesFirewallD가 무엇인지와 기본 사항에 대해 알아보았습니다.

방법 1: IPTables/FirewallD를 사용하여 SSH 및 FTP 액세스 차단

이제 특정 IP(예: 192.168.1.100) 및/또는 네트워크 범위(예: 192.168.1.0/24)에 대한 SSH 및 FTP 액세스를 차단하는 방법을 살펴보겠습니다. RHEL/CentOS/Scientific Linux 6.x 버전에서는 IPtables를 사용하고 CentOS 7.x에서는 FirewallD를 사용합니다.

SSH 액세스 차단 또는 비활성화

--------------------- On IPtables Firewall ---------------------
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
--------------------- On FirewallD ---------------------
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         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

이제 차단된 호스트에서 서버를 SSH해 보세요. 여기서 192.168.1.150이 차단된 호스트라는 점에 유의하세요.

ssh 192.168.1.150

다음 메시지가 표시됩니다.

ssh: connect to host 192.168.1.150 port 22: Connection refused

SSH 액세스 차단 해제 또는 활성화

SSH 액세스를 차단 해제하거나 활성화하려면 원격 서버로 이동하여 다음 명령을 실행하세요.

--------------------- On IPtables Firewall ---------------------
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
--------------------- On FirewallD ---------------------
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         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

FTP 액세스 차단 또는 비활성화

일반적으로 FTP의 기본 포트는 2021입니다. 따라서 IPTables를 사용하여 모든 FTP 트래픽을 차단하려면 다음 명령을 실행하십시오.

--------------------- On IPtables Firewall ---------------------
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 REJECT
--------------------- On FirewallD ---------------------
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         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

이제 다음 명령을 사용하여 차단된 호스트(192.168.1.100)에서 서버에 액세스해 보세요.

ftp 192.168.1.150

아래와 같은 오류 메시지가 표시됩니다.

ftp: connect: Connection refused

FTP 액세스 차단 해제 또는 활성화

FTP 액세스를 차단 해제하고 다시 활성화하려면 다음을 실행하세요.

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
--------------------- On FirewallD ---------------------
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         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

이제 FTP를 통해 서버에 액세스해 보십시오.

ftp 192.168.1.150

FTP 사용자 이름과 비밀번호를 입력하세요.

Connected to 192.168.1.150.
220 Welcome to TecMint FTP service.
Name (192.168.1.150:sk): tecmint
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

방법 2: TCP 래퍼를 사용하여 SSH 및 FTP 액세스 차단

IPTables 또는 FirewallD를 엉망으로 만들고 싶지 않다면 TCP 래퍼가 특정 테이블에 대한 SSH 및 FTP 액세스를 차단하는 더 좋은 방법입니다. IP 및/또는 네트워크 범위.

OpenSSH 및 FTP는 TCP 래퍼 지원으로 컴파일됩니다. 즉, 다음 두 가지 중요한 파일에서 방화벽을 건드리지 않고 연결할 수 있는 호스트를 지정할 수 있습니다.

  1. /etc/hosts.allow
  2. /etc/hosts.deny

이름에서 알 수 있듯이 첫 번째 파일에는 허용된 호스트 항목이 포함되고 두 번째 파일에는 차단된 호스트 주소가 포함됩니다.

예를 들어, IP 주소가 192.168.1.100이고 네트워크 범위가 192.168.1.0인 호스트에 대한 SSH 및 FTP 액세스를 차단하겠습니다. 이 방법은 CentOS 6.x, 7.x 시리즈에서도 동일합니다. 물론 Debian, Ubuntu, SUSE, openSUSE 등과 같은 다른 배포판에서도 작동합니다.

/etc/hosts.deny 파일을 열고 아래와 같이 차단하려는 IP 주소 또는 네트워크 범위를 추가하세요.

##### To block SSH Access #####
sshd: 192.168.1.100
sshd: 192.168.1.0/255.255.255.0

##### To block FTP Access #####
vsftpd: 192.168.1.100
vsftpd: 192.168.1.0/255.255.255.0

파일을 저장하고 종료합니다.

이제 sshd 및 vsftpd 서비스를 다시 시작하여 새로운 변경 사항을 적용하세요.

--------------- For SSH Service ---------------
service sshd restart        [On SysVinit]
systemctl restart sshd      [On SystemD]
--------------- For FTP Service ---------------
service vsftpd restart        [On SysVinit]
systemctl restart vsftpd      [On SystemD]

이제 서버 또는 차단된 호스트에서 SSH를 시도해보세요.

ssh 192.168.1.150

다음과 같은 출력이 표시됩니다.

ssh_exchange_identification: read: Connection reset by peer

이제 서버 또는 차단된 호스트에서 FTP를 사용해 보세요.


ftp 192.168.1.150

다음과 같은 출력이 표시됩니다.

Connected to 192.168.1.150.
421 Service not available.

SSH 및 FTP 서비스를 다시 차단 해제하거나 활성화하려면 hosts.deny 파일을 편집하고 모든 줄을 주석 처리한 후 마지막으로 vsftpd 및 sshd 서비스를 다시 시작하세요.

결론

지금은 여기까지입니다. 요약하면 오늘 우리는 IPTables, FirewallD 및 TCP 래퍼를 사용하여 특정 IP 주소와 네트워크 범위를 차단하는 방법을 배웠습니다. 이러한 방법은 매우 쉽고 간단합니다.

심지어 초보 Linux 관리자도 이 작업을 몇 분 안에 완료할 수 있습니다. SSH 및 FTP 액세스를 차단하는 다른 방법을 알고 있다면 댓글 섹션에서 자유롭게 공유해 주세요. 그리고 모든 소셜 네트워크에서 우리 기사를 공유하는 것을 잊지 마세요.