CentOS 6.X 방화벽 설정
방화벽은 서버와 클라이언트(User)간에 통신하는 포트를 제한하는 관문이다.
서비스마다 사용하는 포트가 다르다. 해당 포트를 막으면 통신을 할 수가 없다. 꼭 필요한 포트만 열어서 보안을 철저하게 해야 한다.
아래 설정은 CentOS 6.5 에서 설정해본 사항이다. 아직도 모르는게 많아서 구글링을 하면서 배우는 중이다.
// 열린 포트 확인
service iptables status
// iptables 설치 확인
rpm -qa | grep iptables
OUTPUT - 호스트 컴퓨터에서 발생하는 모든 패킷
FORWARD - 호스트 컴퓨터가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 호스트 컴퓨터를 통과하는 패킷
포트 80,3306 추가
80 포트는 인터넷 브라우저에서 접속하는 포트이며,
3306 포트는 MySQL 접속 포트이다. 보안을 위해서 다른 포트로 변경하여 사용할 수도 있다.
//방화벽 설정
# vi /etc/sysconfig/iptables
FTP 통신을 위한 포트를 추가하고 싶다면 20번, 21번 두개의 포트를 추가해야 한다.:
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
네임서버
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
POP3
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
IMAP
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
Secure IMAP
웹서버에 SSL 인증서가 설치되어 https 주소로 서비스하는 경우 TCP 443 추가
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
# service iptables restart
또는
# /etc/init.d/iptables restart
방화벽 설정 내용을 변경했다면 restart 를 해준다.
방화벽 변경한 정보를 저장하려면 반드시 수정한 방화벽 세팅을 restart 하고 나서
# service iptables save
해줘야 된다.
# service iptables stop
또는
# /etc/init.d/iptables stop
방화벽 끄기
방화벽 설정 파일은 파일접속권한이 0600 이다.
설정파일을 PC에서 수정해서 SFTP 등으로 올렸다면 모드가 어떤 상태인지 확인을 해야 한다.
이것저것 고민하기 싫다면 아래와 같이 해주면 된다.
1. CentOS 6.6을 설치하면 기본적으로 22번 포트만 open 되어 있다.
2. vi /etc/sysconfig/iptables
기본설정정보를 모두 지우고 아래 내용을 복사하여 붙여넣기하고 저장한다.
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:INPUT - [0:0]
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
3. # /etc/init.d/iptables restart (방화벽 재시작)
4. # service iptables save (변경한 정보 저장)
5. 이걸로 방화벽 세팅 설정 끝.
22번 포트, Web 포트 80, https 443 포트 이것만 오픈하고 해킹공격 관련된 코드를 추가한 것이라고 보면 된다.
'리눅스' 카테고리의 다른 글
포트 상태 점검 명령어 (0) | 2015.02.22 |
---|---|
특정 디렉토리 읽기쓰기 권한 부여 ACL (0) | 2014.12.28 |
그룹 사용자 추가/삭제/변경 (0) | 2014.11.19 |
리눅스 권한, 소유권자 하위 디렉토리 까지 바꾸기 chown (0) | 2014.11.11 |
리눅스 su 와 su - 의 차이 (3) | 2014.11.10 |