Linux에서 특정 IP 및 네트워크 범위에 대한 SSH 및 FTP 액세스를 차단하는 방법
일반적으로 우리 모두는 원격 서버와 가상 개인 서버에 액세스하기 위해 SSH 및 FTP 서비스를 자주 사용합니다. Linux 관리자는 보안을 더욱 강화하기 위해 Linux의 특정 IP 또는 네트워크 범위에 대한 SSH 및 FTP 액세스를 차단하는 방법을 알고 있어야 합니다.
- Linux 서버를 위한 25가지 보안 강화 팁
- SSH 서버 보안 및 보호를 위한 5가지 유용한 팁
이 튜토리얼에서는 CentOS 6 및 7 서버에서 특정 IP 주소 및/또는 네트워크 범위에 대한 SSH 및 FTP 액세스를 차단하는 방법을 보여줍니다. 이 가이드는 CentOS 6.x 및 7.x 버전에서 테스트되었지만 Debian, Ubuntu, SUSE/openSUSE 등과 같은 다른 Linux 배포판에서도 작동할 것입니다.
두 가지 방법으로 해보겠습니다. 첫 번째 방법은 IPTables/firewallD를 사용하는 것이고 두 번째 방법은 hosts.allowTCP 래퍼를 사용하는 것입니다. > 및 hosts.deny 파일.
IPTable 및 Firewalld에 대해 자세히 알아보려면 다음 가이드를 참조하세요.
- IPTables 기본 가이드(Linux 방화벽) 팁/명령
- Linux에서 서비스에 대한 원격 액세스를 활성화하기 위해 Iptables 방화벽을 설정하는 방법
- RHEL/CentOS 7 및 Fedora 21에서 'FirewallD'를 구성하는 방법
- Linux에서 방화벽을 구성하고 관리하는 데 유용한 'FirewallD' 규칙
이제 IPTables 및 FirewallD가 무엇인지와 기본 사항에 대해 알아보았습니다.
방법 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의 기본 포트는 20 및 21입니다. 따라서 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 래퍼 지원으로 컴파일됩니다. 즉, 다음 두 가지 중요한 파일에서 방화벽을 건드리지 않고 연결할 수 있는 호스트를 지정할 수 있습니다.
- /etc/hosts.allow
- /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 액세스를 차단하는 다른 방법을 알고 있다면 댓글 섹션에서 자유롭게 공유해 주세요. 그리고 모든 소셜 네트워크에서 우리 기사를 공유하는 것을 잊지 마세요.