>> Delete No. 1712 article
No. 레드햇7.1 ipchains에서 iptables로...

등록 2001-10-03 19:08:00     조회 4
이름 오승영    

		음... 방화벽에 대해 무지한 초보로써 여기저기 자료찾아보다가...
제 레드햇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-unreachabl
e [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