IT/리눅스마스터1급

iptables 설정 및 옵션

알콩달콩아빠 2018. 1. 16. 09:29
728x90
반응형

*먼저 내 업무에서는 iptables hosts.allow 파일을 함께 이용 한다.

1. 방화벽 내용 넣고 > 방화벽 실행 > 방화벽 내용 저장

#cd /etc/sysconfig/

#vi iptables

(iptables 내용)

#service iptables restart

#/etc/init.d/iptables save

-------------- iptables 사용법

-기본 모두 막고 시작하기-
# iptables -F
# iptables -X
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT DROP
-
루프백 허용-
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A OUTPUT -o -lo -j ACCEPT

iptables [-t table] command [match] [target\jump]

-A(--append) : 규칙을 추가한다.

-N(--new-chain) : 새로운 체인 생성

-X(--delete-chain) : 체인 제거

-P(--policy) : 체인 기본정책 변경

-L(--list) : 체인의 규칙상태 보기

-F(--flush) : 체인내의 모든 규칙 제거(방화벽 초기화)

-Z(--zero) : 체인내의 모든 규칙의 패킷과 바이트의 카운트를 0으로 초기화

-D(--delete) : 규칙을 삭제

-R(--replace) : 새로운 규칙으로 대체

-I(--insert) : 체인의 가장 처음에 규칙을 추가한다.

-E(--rename-chain) : 체인의 이름을 변경한다.

2) iptables 체인 종류

INPUT : 로컬로 들어오는 패킷(입력 패킷)

FORWARD : INPUT OUTPUT 역할라우터에 방화벽을 적용할 때 쓰임

OUTPUT : 외부로 나가는 패킷(출력 패킷)

INPUT 체인에 사용자 정의로 체인을 추가하여 INPUT 체인 대신에 사용할 수 있는데페도라 코어의 경우는 RH-Firewall-1-INPUT라는 사용자 정의 체인을 사용한다. 3개의 기본 체인(INPUT, OUTPUT, FORWARD)은 수정이나 삭제가 불가능하며사용자 정의 체인은 다음과 같은 방법으로 생성해 줄 수 있다.

3) iptables 다루기

▶ 방화벽 정책 초기화

# iptables -F

# iptables -X

# iptables -Z

▶ 기본 정책 설정

# iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARD DROP

▶ 사용자 정의 체인 생성 및 INPUT 체인에 추가

# iptables -N 사용자정의체인명

# iptables -A INPUT -j 사용자정의체인명

▶ 허용 정책 설정

루프백 접속 허용

다른 곳과 네트워크가 연결되어 있지 않더라도 시스템의 기본 네트워크이며 로컬 호스트의 인터페이스인 루프백에 대해서는 접속이 이뤄질 수 있도록 해야 하므로다음과 같이 설정한다.

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

내부 네트워크 접속

iptables -A fedora -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

iptables -A OUTPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

내부 -> 외부 접속

iptables -A fedora -s 외부주소 -p tcp -m tcp --sport 포트번호 -j ACCEPT

iptables -A OUTPUT -d 외부주소 -p tcp -m tcp --dport 포트 -j ACCEPT

 DNS 포트 허용

iptables -A fedora -p udp -m udp --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

 ICMP 핑 허용

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j ACCEPT

iptables -A fedora -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT

 SSH 포트 허용 ( 192.168.0.1 -> 172.16.1.20)

iptables -A fedora -s 172.16.1.20 -p tcp -m tcp --sport 22 -j ACCEPT

iptables -A OUTPUT -d 172.16.1.20 -p tcp -m tcp --dport 22 -j ACCEPT

 HTTP 포트 허용

iptables -A fedora -i eth0 -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT

 FTP 포트 허용

명령(제어포트(tcp 21) 접속

iptables -A fedora -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT

*데이터 포트(tcp20) 접속(능동 모드 접속)

iptables -A fedora -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT

*데이터 포트(tcp 1024이상의 포트) (Passive 모드 접속)

iptables -A fedora -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

외부 -> 내부 접속

 SSH 포트 허용

iptables -A fedora -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT

 http 포트 허용

iptables -A fedora -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -o eth0 0p tcp -m tcp --sport 80 -j ACCEPT

 ftp 포트 허용 ( passive mode)

iptables -A fedora -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT

iptables -A fedora -i eth0 -p tcp -m tcp --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 -j ACCEPT

예제 :

중국발 해킹을 통하여 웹서버를 공격하고 있다는 사실을 알았다.
찾아낸 IP 10.10.1.1 ~ 10.10.1.255, 10.10.2.3, 10.10.3.5 와 같으며 접근통제정책을 통하여

위의 IP에 대하여 web 접속을 거부하라, 10.10.1.33 IP web 접속을 허락하여야 한다.

/sbin/iptables -A INPUT -s 10.10.1.33 -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -s 10.10.1.1/10.10.1.255 -p tcp --dport 80 -j DROP

/sbin/iptables -A INPUT -s 10.10.2.3 -p tcp --dport 80 -j DROP

/sbin/iptables -A INPUT -s 10.10.3.5 -p tcp --dport 80 -j DROP

/sbin/iptables -A INPUT -s 202.190.123.68 -p tcp --dport 21 -j DROP

/sbin/iptables -A INPUT -s 118.217.12.35 -p tcp --dport 1:65535 -j DROP

- PING 명령어는 서버 내부에서는 사용가능해야 하며, 192.168.1.13, 192.168.1.11 IP를 제외하고는
모두 거부하라.

/sbin/iptables -A INPUT -s 192.168.1.13 -p icmp --icmp-type echo-request -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p icmp --icmp-type echo-request -j ACCEPT

/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

- 110포트와 143포트는 localhost 192.168.1.13, 192.168.1.11 에서는 허용하고
외부에서는 차단하라.

/sbin/iptables -A INPUT -s 192.168.1.13 -p tcp --dport 110 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p tcp --dport 110 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp --dport 110 -j DROP

/sbin/iptables -A INPUT -p tcp -m tcp --dport 110 -j DROP

/sbin/iptables -A INPUT -s 192.168.1.13 -p tcp --dport 143 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p tcp --dport 143 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp --dport 143 -j DROP

- ssh ftp에 대해서는 iptables 를 통하여 문제 2번에 해당하는 정책을 사용하여 똑 같이 적용하라.

/sbin/iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.13 -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j

개요

설치

솔라리스 10의 경우는 설치할 필요 없다. (이미 설치되어있다여기서는 솔라리스 9 이하를 기준으로 설명한 것이다.

· 설치

·         root@wl ~ # wget http://coombs.anu.edu.au/~avalon/ip_fil4.1.33.tar.gz

·         root@wl ~ # wget http://coombs.anu.edu.au/~avalon/pfil-2.1.13.tar.gz

·         root@wl ~ # tar xvfz ip_fil4.1.33.tar.gz

·         root@wl ~ # tar xvfz pfil-2.1.13.tar.gz

·         root@wl ~ # cd pfil

·         root@wl ~/pfil # /usr/ccs/bin/make SunOS32 1)

·         root@wl ~/pfil # /usr/ccs/bin/make package 1)

·         root@wl ~/pfil # pkgadd -d /tmp/pfil.pkg 2)

·         root@wl ~/pfil # ifconfig -a

·         lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1

·                 inet 127.0.0.1 netmask ff000000

·         pcn0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2

·                 inet 192.168.0.11 netmask ffffff00 broadcast 192.168.0.255

·                 ether 0:c:29:d4:e0:bd

·         root@wl ~/pfil # cat /etc/opt/pfil/iu.ap 3)

·                 pcn     -1      0       pfil

·         root@wl ~/pfil # cd ..

·         root@wl ~ # cd ip_fil4.1.33

·         root@wl ~/ip_fil4.1.33 # /usr/ccs/bin/make solaris

·         root@wl ~/ip_fil4.1.33 # cd SunOS5

·         root@wl ~/ip_fil4.1.33/SunOS5 # /usr/ccs/bin/make package 4)

·         root@wl ~/ip_fil4.1.33/SunOS5 # sync; sync; reboot 5)

1) 반드시 /usr/ccs/bin/make 를 사용한다만약 gnu make를 사용하고 있으면 컴파일이 되지 않는다. 64bit 솔라리스를 사용하고 있다면 32대신 64를 입력한다.
2) 자동으로 설치되는 것이 아니라 패키지파일이 생성된다패키지 파일은 그냥 설치해주면 된다.
3) 패키지 파일을 인스톨 한 후 /etc/opt/pfil/iu.ap 파일을 확인한다시스템에 설치되어있는 NIC 종류별로 (lo제외한줄씩 /etc/opt/pfil/iu.ap에 등록되어있어야 한다같은 종류의 NIC가 두개 설치되어 있어도 한 종류이므로 한 줄만 들어가게 된다.
4) make package하면 자동으로 패키지가 생성되고 인스톨 된다. (SunOS5디렉토리에 ipf.pkg 파일이 생성된다바이너리는 /opt/ipf설정파일은 /etc/opt/ipf에 있다.
5) pfil 을 설치한 후반드시 재시작해야 한다. (ipf 때문에 재시작하는 것이 아니다)

· 실행

재시작 하면 IPFilter 가 이미 실행되어있을 것이다아래는 제대로 설치되었는지 확인하기 위함이다.

root@wl ~ # /etc/init.d/ipfboot start 1)

Set 0 now inactive

filter sync'd

0 entries flushed from NAT table

0 entries flushed from NAT list

filter sync'd

root@wl ~ # ndd /dev/pfil qif_status 2)

ifname ill q OTHERQ ipmp num sap hl nr nw bad copy copyfail drop notip nodata notdata

QIF1 0x0 0xd40d2cf0 0xd40d2d74 0x0 1 806 0 3 14 0 0 0 0 0 0 0

pcn0 0xd3c49a9c 0xd4054180 0xd4054204 0x0 0 800 14 695 572 0 0 0 0 0 0 0

root@wl ~/pfil # strconf < /dev/pcn 2)

pfil

pcn

root@wl ~ #

1) 시작하기. /etc/rc2.d/S65ipfboot에 등록되어있다.
2) pfil장치와 이에 연결된 pcn 디바이스(시스템마다 다르다) IPFilter가 제대로 연결되어있는지 확인한다.

리눅스 iptables 사용법:
iptables
는 리눅스를 설치하면 보통 기본적으로 설치되므로
 
설치방법은 따로 설명하지 않으며 예제 위주로 간단히 사용법을 알아 보겠습니다
.
아래 명령어는 모두 root권한으로 실행해야 됨을 미리 알려 드립니다.

1. 리눅스에서 부팅시 자동으로 iptables 서비스 시작하기:
아래 2가지 방법 중에 하나로 보통 서비스를 자동실행하도록 등록한다
.
1) 
쉘창에서 3, 5 모드에서 재부팅시 자동으로 iptables 서비스가 시작되도록 하는 명령어

# chkconfig --level 35 iptables on 
--> 3: multi console 
모드 , 5: X윈도우즈 모드 
2) ntsysv 
에서 iptalbes 서비스 체크

# ntsysv

2. 먼저 iptables 의 옵션은 아래와 같다.
iptables 
에는 3가지 chain 이 존재
: INPUT, OUTPUT, FORWARD
1) 
필터링 사슬 전체 조작 옵션

-N : 
새로운 사슬 만들기
-L : 
사슬의 규칙을 보여주기
-X : 
비어 있는 사슬을 없애기
-P : 
사슬의 규칙을 바꾸기
-F : 
사슬에 있는 모든규칙을 지우기

2) 사슬의 규칙을 조작하는 옵션
-A : 
사슬에 새로운 규칙을 추가하기(맨아래에 추가됨)
-I : 
사슬에 규칙을 삽입하기(맨앞쪽에 삽입됨
)
-R : 
사슬에 있는 규칙을 다른 규칙과 교환하기

-D : 
사슬에 있는 규칙을 없애기

3) 규칙을 정의하는데 필요한 하위옵션
-s : 
출발지 주소
-d : 
목적지 주소
--sport : 
출발지(source) 포트번호
--dport : 
목적지 포트번호
-p : 
프로토콜(tcp, udp, icmp ..)
-i : 
패킷이 들어오는 네트워크 인터페이스
(inbound interface)
-o : 
패킷이 나가는

-f : 
분절된(fragment) packet
-j : 
규칙을 지정(jump)

3. 기본정책을 ACCEPT로 설정하는 법:
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT

4. 현재 자신의 방화벽 규칙을 볼 수 있는 명령:
# iptables --list 
또는
 iptables -L
처음으로 명령을 실행하면 아래와 같이 아무 정책도 설정되어 있지 않는 것을 볼 수 있다
.
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)

5. 규칙 추가 후에 저장하기 :
현재 규칙을 저장하는 명령어는 아래와 같다
.
# /etc/rc.d/init.d/iptables save 
-> /etc/sysconfig/iptables 
에 저장됨

위 명령어로 저장후에 실제 저장된 파일을 확인해 보면 아래와 같이 아무 설정이 안된것을 알 수 있다.
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Thu Jun 25 18:25:02 2009
*filter
:INPUT ACCEPT [11:764]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [320:65885]
:RH-Firewall-1-INPUT - [0:0]
COMMIT
# Completed on Thu Jun 25 18:25:02 2009

이제 간단한 규칙을 추가해 보자
예를 들어 ip= 192.168.0.111 를 입력단에서 패킷을 drop하는 규칙을 추가하고 현재 정책을 확인한다
.
# iptables -A INPUT -s 192.168.0.111 -j DROP
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination 
DROP all -- 192.168.0.111 anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)

이제 저장을 한 후에 저장된 파일을 확인해 보면 아래와 같이 규칙이 저장되어 있는것을
 
볼 수 있다
.
# /etc/rc.d/init.d/iptables save 
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.111 -j DROP <--- 
이부분이 새로 추가한 규칙

COMMIT
# Completed on Mon Dec 7 14:55:45 2009

6. 현재 iptables 규칙을 초기화 하기:
# iptables -F
위 명령어를 실행하고 정책을 보면 아래와 같이 초기화 되어 있는 것을 알 수 있다

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)

그러나 실제 저장되어 있는 내용을 보면 아래와 같이 초기화가 되어 있지 않는 것을 볼 수 있다.
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.111 -j DROP <--- 
이부분이 새로 추가한 규칙

COMMIT
# Completed on Mon Dec 7 14:55:45 2009

초기화 명령어는 현재상태에만 적용되며
iptables 
서비스가 재시작되거나 서버가 리부팅되면 /etc/sysconfig/iptables 에 저장되었던

규칙이 다시 적용된다는 것을 알 수 있다.

7. 정책을 빠르게 수정하여 적용하는 법 :
에서와 같이 정책을 초기화 하고 서비스를 재시작해야 하는 방법은 상당히 비효율적인것을 알 수 있다
.
따라서 현재 적용되는 정책을 특정파일(날짜별)로 저장해서 수정사항이 있다면

바로 그 저장된 파일을 수정한후 바로 정책에 적용하는 방법은 아래와 같다.

1) 현재 적용되고 있는 정책을 읽기 가능한 텍스트파일 형태로 저장하는 명령어는 아래와 같다.
# iptables-save > /root/iptable_091207.save

확인해 보면 똑같이 저장되어 있는것을 볼 수 있다

# cat /root/iptable_091207.save
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.111 -j DROP <--- 
이부분이 새로 추가한 규칙

COMMIT
# Completed on Mon Dec 7 14:55:45 2009

2) 
이제 저장되어 있는 iptables 파일을 바로 편집기로 수정 한후 저장한다.
# vi /root/iptable_091207.save
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.199 -j DROP <--- 
편집기에서 111 -> 199 로 변경

-A INPUT -s 222.222.222.222 -j DROP <--- 
편집기에서 새로 정책 추가
COMMIT
# Completed on Mon Dec 7 14:55:45 2009

3) 
저장된 정책을 바로 적용하는 명령어는 다음과 같다.
# cat /root/iptable_091207.save | iptables-restore

확인해 보면 편집기로 수정했던 부분이 아래와 같이 바로 iptables 정책이 적용되어 있는 것을 알 수 있다

# iptables -L
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.199 -j DROP <--- 
편집기에서 111 -> 199 로 변경했던 부분
-A INPUT -s 222.222.222.222 -j DROP <--- 
편집기에서 새로 정책 추가했던 부분
COMMIT
# Completed on Mon Dec 7 14:55:45 2009

8. iptables 
사용예 :
마지막으로 사용예를 몇개 알아보면 아래와 같다
.

1) 소스 ip 192.168.0.111 인 접속의 모든 접속 포트를 막아라
.
# iptables -A INPUT -s 192.168.0.111 -j DROP

2) INPUT 사슬에 출발지 주소가 127.0.0.1(-s 127.0.0.1)  icmp 프로토콜(-p icmp) 패킷을 거부(-j DROP)하는 
정책을 추가(-A)하라

# iptables -A INPUT -p icmp -s 127.0.0.1 -j DROP

3) INPUT 사슬에 목적지 포트가 23(--dport23) tcp 프로토콜(-p tcp) 패킷을 거부하는(-j DROP)규칙을
추가(-A) 하라.
# iptables -A INPUT -p tcp --dport 23 -j DROP

4) INPUT 사슬에 목적지 포트 번호가 80(--dport 80) tcp 프로토콜(-p tcp)패킷을 받아들이는(-j ACCEPT)
규칙을 추가(-A) 하라

# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

5) INPUT 사슬에 목적지 포트번호가 1023번 보다 작은 모든 포트(--dport :1023) tcp프로토콜(-p tcp)패킷을
거부하는(-j DROP)규칙을 추가(-A)하라
# iptables -A INPUT -p tcp --dport :1023 -j DROP

6) ftp포트를 열어라
# iptables -I INPUT -p tcp --dport 21 -j ACCEPT

7) imap 서비스를 방화벽에서 열어라
# iptables -I INPUT -s 192.168.0.0/255.255.255.0 -p udp --dport 143 -j ACCEPT

8) 웹서버 방화벽 열어라
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

9) 웹서버 포트 80 -> 8880으로 교체하라웹서비스 포트 변경시 /etc/services 에서도 변경 해줘야 함)
# iptables -R INPUT 2 -p tcp --dport 8880 -j ACCEPT

10) domain-access_log 파일에 있는 모든 ip의 모든 접속 포트를 막아라(DOS공격 방어시 사용)
# cat domain-access_log |awk '{print $1}'|sort |uniq |awk '{print "iptables -A INPUT -s "$1" -j DROP"}'|/bin/bash

728x90
반응형

'IT > 리눅스마스터1급' 카테고리의 다른 글

tcpdump 명령어  (0) 2018.01.16
FTP명령어  (0) 2018.01.16
리눅스마스터1급 2018년도 시험일정  (0) 2018.01.16
tacacs+ linux install  (0) 2018.01.16
chkconfig란  (0) 2018.01.16