>> Edit article
이름
제목
패스워드
음... 방화벽에 대해 무지한 초보로써 여기저기 자료찾아보다가... 제 레드햇7.1에는 커널2.2용 ipchains과 커널2.4용 iptables가 같이 깔려있더군요. 그런데 기본적으론 ipchains이 돌아가게끔... (설치시 방화벽 설정하는 부분이 ipchains설정이었습니다.) 그렇다고 ipchains에서 iptables로 꼭 당장 바꿔야하는냐하면 그건 아닙니다. ipchains이 성능이 안좋으것도 아니고 2003년(?)까지 지원될꺼라니까 문제는 없습니다. iptables가 새로운거니까 그리고 저는 업글에 미친사람이니까... www.oops.org에 보시면 방화벽에 관한 좋은 글이 있습니다. 제가 여기서 하고싶은 얘기는 레드햇7.1에 기본적으로 설정되어있는 ipchains을 iptables로 바꾸는것에 관한것입니다. 우선 설치후 부팅할때 보면 ipchains이 뜨고 iptables는 뜨지않습니다. 이유는 ipchain은 /etc/sysconfig/ipchains 이라는 파일에 설정되어있고 /etc/sysconfig/iptables는 없기때문입니다. 설치치 방화벽보안수준을 보통으로하고 메일서버, 웹서버, FTP, SSH까 가능하도록했다면 /etc/sysconfig/ipchains의 내용은 다음과 같습니다. # Firewall configuration written by lokkit # Manual customization of this file is not recommended. # Note: ifup-post will punch the current nameservers through the # firewall; such entries will *not* be listed here. :input ACCEPT :forward ACCEPT :output ACCEPT -A input -s 0/0 -d 0/0 25 -p tcp -y -j ACCEPT -A input -s 0/0 -d 0/0 80 -p tcp -y -j ACCEPT -A input -s 0/0 -d 0/0 21 -p tcp -y -j ACCEPT -A input -s 0/0 -d 0/0 22 -p tcp -y -j ACCEPT -A input -s 0/0 67:68 -d 0/0 67:68 -p udp -i eth0 -j ACCEPT -A input -s 0/0 67:68 -d 0/0 67:68 -p udp -i eth1 -j ACCEPT -A input -s 0/0 -d 0/0 -i lo -j ACCEPT -A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT -A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT -A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT -A input -p udp -s 0/0 -d 0/0 2049 -j REJECT -A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT -A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT 참고로 lokkit은 알란 콕스씨가 레드햇을 위해 만들어준 초보자용 GUI방화벽설정프로그램입니다.(설치시 방화벽설정할때도 쓰임) 이제 ntsysv해보면 ipchains와 iptables가 둘다 체크되어있습니다. 여기서 ipchains를 체크지우고 다시부팅합니다. iptables는 아직 설정되어있지않기때문에 방화벽에 대한 내용이 아무것도 안뜹니다. 이제 위의 내용을 iptables형식으로 바꿉니다. 기억할만한 규칙은; input, forward, output, tcp, udp는 대문자로, -y 는 --syn으로 바꾸며 -p TCP뒤로 오고, -s 뒤의 포트번호는 --sport 포트번호로 하고 -p [TCP|UDP]뒤에 오고, -d 뒤의 포트번호는 --dport 포트번호로 하고 -p [TCP|UDP]뒤에 옵니다. 그외에도 몇가지 더있지만 여기선 여기까지... 그규칙들에 따라서 위의 ipchains의 내용을 iptables로 다음과 같이 입력합니다. iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -p TCP --syn --dport 25 -j ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -p TCP --syn --dport 80 -j ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -p TCP --syn --dport 21 -j ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -p TCP --syn --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -p UDP --sport 67:68 --dport 67:68 -i eth0 -j ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -p UDP --sport 67:68 --dport 67:68 -i eth1 -j ACCEPT iptables -A INPUT -s 0/0 -d 0/0 -i lo -j ACCEPT iptables -A INPUT -p TCP -s 0/0 -d 0/0 --syn --dport 0:1023 -j REJECT iptables -A INPUT -p TCP -s 0/0 -d 0/0 --syn --dport 2049 -j REJECT iptables -A INPUT -p UDP -s 0/0 -d 0/0 --dport 0:1023 -j REJECT iptables -A INPUT -p UDP -s 0/0 -d 0/0 --dport 2049 -j REJECT iptables -A INPUT -p TCP -s 0/0 -d 0/0 --syn --dport 6000:6009 -j REJECT iptables -A INPUT -p TCP -s 0/0 -d 0/0 --syn --dport 7100 -j REJECT 이제 설정한걸 확인해봅니다. iptables -L 그리고 저장합니다. /etc/init.d/iptables save 그러면 /etc/sysconfig/iptables 라는 파일이 다음과 비슷하게 생겼을겁니다. # Generated by iptables-save v1.2.1a on Wed Oct 3 04:17:36 2001 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] [0:0] -A INPUT -p tcp -m tcp --dport 25 --tcp-flags SYN,RST,ACK SYN -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 80 --tcp-flags SYN,RST,ACK SYN -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 21 --tcp-flags SYN,RST,ACK SYN -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j ACCEPT [0:0] -A INPUT -i eth0 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT [0:0] -A INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT [0:0] -A INPUT -i lo -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 0:1023 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-proto-unreachable [0:0] -A INPUT -p tcp -m tcp --dport 2049 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-proto-unreachable [0:0] -A INPUT -p udp -m udp --dport 0:1023 -j REJECT --reject-with icmp-proto-unreachable [0:0] -A INPUT -p udp -m udp --dport 2049 -j REJECT --reject-with icmp-proto-unreachable [0:0] -A INPUT -p tcp -m tcp --dport 6000:6009 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-proto-unreachable [0:0] -A INPUT -p tcp -m tcp --dport 7100 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-proto-unreachable COMMIT # Completed on Wed Oct 3 04:17:36 2001 마지막을 재부팅하면 iptables가 뜹니다. 당연히 좀더 자세한 자료들은 kldp.org나 oops.org를 참고하시고...--ICQ#: 103231199
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved