# /etc/init.d/inetsvc stop
# /etc/init.d/inetsvc start
'+::System:: > Solaris' 카테고리의 다른 글
Solaris IPFilter의 설치및 룰 설정 방법과 NAT에 대해 설명 (0) | 2013.05.07 |
---|---|
솔라리스(solaris) 네트웍설정 / 확인 / ip(아이피), 게이트웨이(gateway), 넷마스트(netmask) (0) | 2013.02.01 |
# /etc/init.d/inetsvc stop
# /etc/init.d/inetsvc start
Solaris IPFilter의 설치및 룰 설정 방법과 NAT에 대해 설명 (0) | 2013.05.07 |
---|---|
솔라리스(solaris) 네트웍설정 / 확인 / ip(아이피), 게이트웨이(gateway), 넷마스트(netmask) (0) | 2013.02.01 |
* 발췌 : linuxism / http://linuxism.tistory.com/66
* 참조 - http://www.solanara.net/solanara/ipfilter#head_ipfilter_install_src
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를 입력한다.
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에 등록되어있다.
구분 | 솔라리스 10 번들 | 소스설치 |
설정 파일 디렉토리 | /etc/ipf | /etc/opt/ipf |
ipmon 위치 | /usr/sbin/ipmon | /opt/ipf/bin/ipmon |
시작하기 중단하기 |
svcadm enable ipfilter svcadm disable ipfilter |
/etc/init.d/ipfboot start /etc/init.d/ipfboot stop |
root@wl ~ # 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 ~ # vi /etc/opt/ipf/ipf.conf block in all block out all root@wl ~ # /etc/init.d/ipfboot reload각 단어의 의미는 다음과 같다.
block in all pass out allpass: 패킷을 통과시킴.
block in all pass out on pcn0 proto tcp from any to any keep state pass out on pcn0 proto udp from any to any keep state pass out on pcn0 proto icmp from any to any keep stateon: 다음에 오는 인터페이스를 지정한다.
block in all pass out on pcn0 proto tcp from any to any keep state pass out on pcn0 proto udp from any to any keep state pass in all위와 같은 룰이 있다면 처음엔 막으려고 생각했는데, 마지막줄에서 모두 통과시킨다. 결과적으로 인바운드 패킷은 통과한다. 물론 위 예는 극단적인 것이다. 따라서 더이상 룰을 확인할 필요 없다는 것을 IPF에 명시해줘야 한다. 그 지시어가 quick이다.
block in quick all pass out on pcn0 proto tcp from any to any keep state pass out on pcn0 proto udp from any to any keep state pass out on pcn0 proto icmp from any to any keep state pass in allquick: 빨리. 더이상 아래의 룰을 확인할 필요 없다.
pass in quick on pcn0 proto tcp from any to any port=80 keep state block in quick all pass out on pcn0 proto tcp from any to any keep state pass out on pcn0 proto udp from any to any keep state pass out on pcn0 proto icmp from any to any keep stateport: 포트 번호
pass in quick on pcn0 from 192.168.0.8 to 192.168.0.11 port=21 block in quick on pcn0 from any to 192.168.0.11 port=21- 방화벽에 의해 보호된 FTP 서버에서, 위와 같이 열었을때 FTP 데이터 전송 방식은 반드시 PORT를 사용해야 한다.
pass in quick on pcn0 from 192.168.0.0/16 to any port=21
block in quick on pcn0 proto icmp from any to any icmp-type echo
root@wl ~ # /opt/ipf/bin/mkfilters > ipf-example.conf1) root@wl ~ # cat ipf-example.conf1) # # The following routes should be configured, if not already: 2) # # route add 192.168.0.3 localhost 0 # block in log quick from any to any with ipopts block in log quick proto tcp from any to any with short pass out on tcge0 all head 150 block out from 127.0.0.0/8 to any group 150 block out from any to 127.0.0.0/8 group 150 block out from any to 192.168.0.3/32 group 150 pass in on tcge0 all head 100 block in from 127.0.0.0/8 to any group 100 block in from 192.168.0.3/32 to any group 1001) 솔라리스 10 에서는 /usr/share/ipfilter/examples/mkfilters 에 있다. 출력 내용을 파일로 저장해 사용하면 된다.
root@wl ~ # vi /etc/opt/ipf/ipf.conf block in log quick on pcn0 from any to any # in 또는 out 뒤에 log라는 단어를 추가하면 된다. root@wl ~ # /etc/init.d/ipfboot reload root@wl ~ # /opt/ipf/bin/ipmon # 로그 보기 01/01/2005 00:00:00.000000 pcn0 @0:1 b xxx.xxx.xxx.xxx,ppp -> xxx.xxx.xxx.xxx,ppp PR udp len 20 76 IN mbcast -------------------------1 ---2 ---3 4 -----------------------------------------5 -----6 --------7 --------8 1. 패킷 도달 날짜 및 시간 2. 패킷이 처리된 인터페이스 이름 3. 룰 이름. 0번째 그룹(기본그룹)의 1번째 룰. 4. Block, Pass의 앞글자. 5. 소스주소,포트 -> 목적지주소,포트 6. [PRotocol 프로토콜이름 또는 번호] 7. [LENth 헤더길이 총길이] 8. 추가 정보 Ctrl+C root@wl ~ #
root@wl ~ # vi /etc/syslog.conf
local0.debug /var/log/ipflog 1)
root@wl ~ # touch /var/log/ipflog
root@wl ~ # pkill -HUP syslogd
1) 간격은 '탭'으로 구분한다root@wl ~ # ipf -V 1) ipf: IP Filter: v4.1.28 (500) Kernel: IP Filter: v4.1.28 Running: yes Log Flags: 0 = none set Default: pass all, Logging: available Active list: 1 Feature mask: 0x187 root@wl ~ # ipfstat bad packets: in 0 out 0 IPv6 packets: in 0 out 0 input packets: blocked 2749 passed 31451095 nomatch 0 counted 0 short 0 output packets: blocked 11 passed 31530632 nomatch 0 counted 0 short 0 input packets logged: blocked 0 passed 0 output packets logged: blocked 0 passed 0 packets logged: input 0 output 0 log failures: input 0 output 0 fragment state(in): kept 0 lost 0 not fragmented 0 fragment state(out): kept 0 lost 0 not fragmented 0 packet state(in): kept 0 lost 0 packet state(out): kept 0 lost 0 ICMP replies: 0 TCP RSTs sent: 0 Invalid source(in): 0 Result cache hits(in): 6581514 (out): 6534071 IN Pullups succeeded: 3413 failed: 0 OUT Pullups succeeded: 192352 failed: 0 Fastroute successes: 0 failures: 0 TCP cksum fails(in): 0 (out): 0 IPF Ticks: 2419893 Packet log flags set: (0) none root@wl ~ # ipfstat -io 2) ...1) 버전확인
root@wl ~ # vi /etc/rc2.d/S69inet [ ! -x /usr/sbin/in.routed ] || /usr/sbin/in.routed else /usr/sbin/ndd -set /dev/ip ip_forwarding 1 1) fi root@wl ~ # /usr/sbin/ndd -set /dev/ip ip_forwarding 1 1) root@wl ~ # netstat -s -P ip 2) IPv4 ipForwarding = 1 ipDefaultTTL = 255 ipInReceives =16557669 ipInHdrErrors = 0 ... root@maid ~ #1) 솔라리스 9 x86 u7의 경우 223번째 라인에 있다. 솔라리스 버전마다 라인 번호가 다를 수 있다. [/usr/sbin/ndd -get /dev/ip ip_forwarding] 명령을 내린 후 [0]이라 나오면 NAT가 작동하지 않는다. 명령프롬프트에서는 ndd명령을 이용해 실시간으로 변경할 수 있다.
root@maid ~ # routeadm -u -e ipv4-forwarding root@maid ~ # routeadm 구성 현재 현재 옵션 구성 시스템 상태 --------------------------------------------------------------- IPv4 경로 지정 disabled disabled IPv6 경로 지정 disabled disabled IPv4 전달 enabled enabled IPv6 전달 disabled disabled 경로 지정 서비스 "route:default ripng:default" ... root@maid ~ #
root@wl ~ # vi /etc/opt/ipf/ipnat.conf
map pcn1 192.168.0.0/16 -> 0.0.0.0/32 proxy port ftp ftp/tcp
map pcn1 192.168.0.0/16 -> 0.0.0.0/32
root@wl ~ # /etc/init.d/ipfboot reload
root@wl ~ # ipnat -slv 3)
3) 상태보기.root@maid /etc/opt/ipf # cat ipnat.conf map pcn1 192.168.0.0/16 -> 0.0.0.0/32 proxy port ftp ftp/tcp map pcn1 192.168.0.0/16 -> 0.0.0.0/32 rdr pcn1 0.0.0.0/0 port 80 -> 192.168.0.3 port 80 root@wl ~ # /etc/init.d/ipfboot reload
rdr pcn1 0.0.0.0/0 port 80 -> 192.168.0.3, 192.168.0.4, 192.168.0.5 port 80pcn1, 80포트로 들어오는 패킷은 192.168.0.3, 192.168.0.4, 192.168.0.5으로 분산되어 전송된다.
10.0.0.0 - 10.255.255.255 (10.0.0.0/8) 172.16.0.0 - 172.31.255.255 (172.16.0.0/12) 192.168.0.0 - 192.168.255.255 (192.168.0.0/16)
내용 포트
FTP DATA 20
FTP 21
SSH 22 (TCP/UDP)
TELNET 23
SMTP(SENDMAIL) 25
DOMAIN(BIND) 53 (TCP/UDP)
TFTP 69 (UDP)
HTTP 80
POP3 110
RPC 111 (TCP/UDP)
SFTP 115
NTP 123 (UDP)
NetBIOS Name 137 (TCP/UDP)
NetBIOS Datagram 138 (TCP/UDP)
NetBIOS Session 139 (TCP/UDP)
IMAP 143
SNMP 161 (UDP)
SNMP Trap 162 (UDP)
IRC 194
RPC2PORTMAP 369 (TCP/UDP)
CLEARCASE 371
SSL (HTTPS) 443
SMB 445
Syslog 514 (UDP)
iSCSI 860
rsync 873
TFTP DATA 1390 (UDP)
ORACLE 1521
NFS 2049 (TCP/UDP)
CVS PSERVER 2401 (TCP/UDP)
iSCSI 3260
MySQL 3306
Remote Desktop Protocol 3389 1)
SVN (Subversion) 3690 (TCP/UDP)
PCAnyWhere 5631
PCAnyWhere 5632 (UDP)
VNC 5900
X-Window 6000 (TCP/UDP)
WEB CACHE 8080 (TCP/UDP)
1) Microsoft의 Terminal Service/Virtual Box의 VRDP 서비스를 위한 포트이다SERVER> →CLOSED1→LISTEN2→SYN_RCVD4→ESTABLISHED6 CLIENT> →CLOSED1→SYN_SENT3→ESTABLISHED51 어떠한 접속 요청도 없는 상태이다. netstat 에서는 CLOSED라는 상태는 표시되지 않는다.
SERVER> →ESTABLISHED1→FIN_WAIT_12→FIN_WAIT_24→TIME_WAIT5→CLOSE7 CLIENT> →ESTABLISHED1→CLOSE_WAIT3→LAST_ACK6→CLOSE81 접속된 상태
이름 타입 코드 ipfilter예약어 설명 ICMP_ECHOREPLY 0 0 echorep Ping 응답. ICMP_UNREACH 3 4 needfrag 최적의 MTU 세팅을 위해 사용됨. ICMP_ECHO 8 0 echo Ping 요청. ICMP_TIMXCEED 11 0 timex TTL 만료시 사용됨. traceroute 또는 tracert에서 사용.
솔라리스(Solaris) named(DNS) 시작, 종료, 재시작 위치 (0) | 2015.10.02 |
---|---|
솔라리스(solaris) 네트웍설정 / 확인 / ip(아이피), 게이트웨이(gateway), 넷마스트(netmask) (0) | 2013.02.01 |
솔라리스 네트웍 설정 Unix Linux System
2006/02/11 23:17
http://blog.naver.com/dalmagru/70001676448
1. 처음에 ifconfig -a 을 쳐본다..
그러면 inet: . . . . netmask . . . . broadcast . . . . 으로 나타나 있다..
2. 없으면 추가한다..
# ifconfig elx0 plumb
# ifconfig elx0 192.168.123.33 broadcast 192.168.123.255 netmask 255.255.255.0
# ifconfig elx0 up
=> 세 단계를 거치는 이러한 작업은 다음과 같이 하나의 명령으로 수행
# ifconfig elx0 192.168.123.33 broadcast 192.168.123.255 netmask 255.255.255.0 plumb up
3. up과 down 인자를 이용하여 사용가능, 불가능 상태
# ifconfig elx0 up //디바이스를 사용 가능 상태
# ifconfig elx0 down //불가능한 상태
4. 네트워크 정보를 포함하는 파일
- ls /etc/inet
- cat /etc/inet/hosts | grep -v ^#
- cat /etc/hostname.elx0
- cat /etc/nodename
- cat /etc/inet/netmasks | grep -v ^#
5. 라우팅 경로 정보
# netstat -rn
# netstat -r
6. 게이트웨이
- 게이트웨이와 라우터는 보통 같은 의미로 사용되지만 게이트웨이는 라우터의 역할과 함께 다양한 기능들을 추가로 수행하는 경우가 많다.
- 패킷 변환 , 프로토콜 프레임 조정, 패킷 필터링 등
- /etc/defaultrouter
# cat > /etc/defaultrouter
166.104.7.1
^D
7. 정적 라우팅 조정
# route add - host 192.168.123.33 192.168,.123.33 1 add host 192.168.123.33: gateway 192.168.123.33
- 작업명령어: add와 delete를 사용하여 특정한 경로를 추가하거나 삭제
- 대상 지정: -host, -net을 이용하여 라우팅 경로를 조정
- 경로지정
- 플래그: 이 값은 보통 1또는 0을 사용한다.
- 재부팅 하지 않고 사용하려면 다음과 같이 콘솔 프롬프트에서 기본 게이트웨이를 추가
# route add default 192.168.123.22
====================================================================
게이트 웨이 추가
#route add default 192.168.123.1
게이트 웨이 확인
#netstat -rn
x86 솔라리스9 에서 DHCP 클라이어트로 설정시 호스트 이름 설정하기(확실하지 않음)
1. /etc/nodename
호스트이름을 넣어준다
2. /etc/init.d/network 파일의 다음 부분을 아래와 같이 고치 십시요.
[변경전]
"dhcp") hostname=`/sbin/dhcpinfo Hostname` ;;
[변경후]
# "dhcp") hostname=`/sbin/dhcpinfo Hostname` ;;
"dhcp") hostname=`shcat /etc/nodename` ;;
3. /etc/init.d/inetsvc 파일의 다음 부분도 아래와 같이 바꾸십시요.
[변경전]
hostname=`/sbin/dhcpinfo Hostname`
[변경후]
# hostname=`/sbin/dhcpinfo Hostname`
hostname=`/usr/bin/cat /etc/nodename`
4. # cp /etc/nsswitch.dns /etc/nsswitch.conf
netstat -rn 에서 default 항목이 있으면 기본게이트웨이는 설정된 것이다.
고정 IP 일 경우 설정하기
1. /etc/nodename
파일에 호스트 이름을 저장한다.
2. /etc/hostname.interface
솔라리스 설치시 자동으로 만들어지는 파일이지만 구성을 변경할때 IP 주소나 인터페이스, 호스트 이름을 저장한다.
3. /etc/inet/hosts
파일을 편집해서 추가한 네트웍 인터페이스에 할당한 IP 주소와 호스트 이름을 입력하고 서버의 IP 주소를 저장한다.
라우터의 이름과 주소를 입력한다.
4. /etc/defaultdomain
도메인 이름을 저장한다.
5. /etc/defaultrouter
라우터의 이름을 입력한다.(주소는 /etc/inet/hosts 파일에 있어야 한다.)
6. /etc/inet/netmasks
network-number netmask
의 형식으로 입력한다.
7. 다음을 실행하거나 /etc/nsswitch.conf 파일을 수정한다
# cp /etc/nsswitch.dns /etc/nsswitch.conf
8. 시스템을 재시작한다.
----------------------------------------------------------------------------------------
솔라리스 설정 방법
1. 네트워크 관련 설정 파일
/etc/hosts
예) [kts032]/etc> more hosts
210.222.20.29 kts032 loghost
/etc/netmasks
예) [kts032]/etc> more netmasks
210.222.20.0 255.255.255.128
/etc/defaultrouter
예) [kts032]/etc> more defaultrouter
210.222.20.1
DNS Client 설정
/etc/resolv.conf
예) [kts032]/etc> more resolv.conf
nameserver 128.134.130.101
nameserver 128.134.130.102
/etc/nsswitch.conf
예) [kts032]/etc> more nsswitch.conf
group: files
hosts: files dns -----> 이부분
2. 인터페이스 확인
[ktn001]/staff/kth> etherstat
=========================================
devices status speed mode transceiver
=========================================
hme0 UP 100Mb Full Internal
hme1 DOWN 100Mb Full Internal
=======================================
2-1. 수동 설정
-기본값으로 UP / DOWN
#ifconfig eth0 plumb (사용)
#ifconfig eth0 up
#ifconfig eth0 down
#ifconfig eth0 unplumb(사용안함)
-값을 지정하여 올리기
#ifconfig hem0 inet 200.200.200.200 netmask 255.255.255.0 broadcast 100.100.100.255 up
#/usr/sbin/route add net 10.0.0.0/8 172.24.65.1 1
#/usr/sbin/route add net 172.16.0.0/12 172.24.65.1 1
#/usr/sbin/route add net 192.168.0.0/16 172.24.65.1 1
3. ndd 사용
hme: (ifconfig 로 정보확인)
# ndd -set /dev/hme instance 0
# ndd -set /dev/hme adv_100fdx_cap 1
# ndd -set /dev/hme adv_autoneg_cap 0
=========================================================================
재부팅후 수정해야할 파일들은 아래와 같습니다.
/etc/hostname.[interface_name]
/etc/hosts
/etc/defaultrouter
/etc/nodename
/etc/nsswitch.conf
/etc/resolv.conf
vi /etc/hostname.rtls0
이 파일에는 호스트의 이름정보만 들어있으면 됩니다.
ex) www01
vi /etc/hosts
이 파일에는 시스템의 IP와 loop back, 호스트네임이 들어있어야 됩니다.
ex) 127.0.0.1 localhost
192.168.1.3 www01 loghost
vi /etc/defaultrouter
이 파일에는 Gate Way만 들어있으면 됩니다.
ex) 192.168.1.254
vi /etc/nodename
이 파일 역시 호스트의 이름정보만 들어있으면 됩니다.
ex) www01
vi /etc/nsswitch.conf
nslookup, 도메인정보를 찾기위해 시스템이 참조하는 파일인데요.
/etc/nsswitch.dns라는 파일을 카피하여 nsswitch.conf라고 하면됩니다.
그럼 원본 nsswitch.conf를 적당한 이름으로 바꿔주면 되겠죠?
저는 nsswitch.conf.orig 라고 바꿨습니다.
ex) mv nsswitch.conf nsswitch.conf.orig
cp nsswitch.dns nsswitch.conf
vi /etc/resolv.conf
이 파일에는 DNS정보만 들어있으면 됩니다.
ex) search kns.kornet.net
nameserver 168.126.63.1
nameserver 168.126.63.2
이제 재 부팅하는 일만 남았습니다.
재부팅때 꼭 이 명령어를 사용하여 재부팅 해주세요.
shutdown -i5 -g0
그럼 재부팅 되면서 자동으로 네트웍 정보를 Load합니다.
재부팅되면 콘솔에 nslookup을 쳐보세요.
솔라리스(Solaris) named(DNS) 시작, 종료, 재시작 위치 (0) | 2015.10.02 |
---|---|
Solaris IPFilter의 설치및 룰 설정 방법과 NAT에 대해 설명 (0) | 2013.05.07 |