Строим сеть на Calculate Directory Server Сергей Яремчук # calculate --update # layman -S && emerge calculate # calculate --disk=/dev/sda # calculate --disk=/dev/sda2 if($size < 45){ printmes(gettext('The size of the disk is not sufficient to perform automatic partitioning')."!\n"); # emerge --sync && emerge -uD world # env-update # layman -S && emerge calculate-server calculate-lib # layman -S && emerge calculate-client calculate-lib # cl-setup ldap # cl-setup unix # cl-setup samba # cat /etc/calculate/calculate.env [server] sr_ldap_set = on sr_unix_set = on sr_samba_set = on # cat /etc/calculate/calculate.ldap [admin] DN = cn=ldapadmin,dc=calculate PASS = fGdRTtajX [unix] DN = ou=Unix,ou=Services,dc=calculate PASS = Fcy9dsW0y [samba] DN = ou=Samba,ou=Services,dc=calculate PASS = iPyEgQTXx # cl-passwd --smb client samba # cl-passwd --smb admin samba # cl-client 192.168.17.147 # mount | grep remote [client] ur_organization = ur_signature = ld_samba_dn = ou=Samba,ou=Services,dc=calculate ld_unix_dn = ou=Unix,ou=Services,dc=calculate sr_samba_host = calculate.local ld_services_dn = ou=Services,dc=calculate ld_bind_dn = cn=proxyuser,dc=calculate ld_bind_pw = calculate ld_base_dn = dc=calculate # mount | grep home # cl-client -r # cat /var/calculate/calculate.env [client] cl_remote_host = 192.168.17.147 cl_remote_pw = password # cat /etc/group | grep scanner # cl-groupadd -f -g 441 scanner samba # cl-groupadd it samba cl-useradd -p -c "Полное имя" -g пользовательская_группа -G системная_группа -p логин samba # cl-useradd -p -c "Сергей Яремчук" -g it -G audio,lp,plugdev,scanner,video -p grinder samba # cl-info -u samba # cl-info -U grinder samba # rc-update add apache default # /etc/init.d/apache2 start ----------------------------------------------------------------------------------------------------------------- Сисадмин должен быть ленив. DHCP и динамический DNS Сергей Супрунов dhclient <имя_интерфейса> # dhclient nfe0 # cat /var/db/dhclient.leases.nfe0 lease { interface "nfe0"; fixed-address 10.0.0.198; option subnet-mask 255.255.255.0; option routers 10.0.0.220; option domain-name-servers 10.0.0.220; option dhcp-lease-time 259200; option dhcp-message-type 5; option dhcp-server-identifier 10.0.0.220; option dhcp-renewal-time 129600; option dhcp-rebinding-time 226800; renew 2 2009/2/17 03:11:11; rebind 3 2009/2/18 06:11:11; expire 3 2009/2/18 15:11:11; } dhcpcd <интерфейс> dhcpcd -k <интерфейс> # dhcping -s 10.0.0.220 ----------------------------------------------------------------------------------------------------------------- Sun OpenBoot Prom. Между железом и софтом Владимир Василькин sc> console ok .version # halt # uname -sir # pwd # ls -1 ok show-devs ok boot net nvalias ALIAS ПУТЬ_К_УСТРОЙСТВУ devalias ALIAS ПУТЬ_К_УСТРОЙСТВУ ok nvedit 0: : hello ( -- ) 1: ." Hello, world. " cr 2: ; 3: ^-C ok nvstore ok setenv use-nvramrc? true ok reset .... ok hello ok setenv use-nvramrc? false ok sifting boot ----------------------------------------------------------------------------------------------------------------- CrossBow. Сетевые технологии OpenSolaris Сергей Яремчук # dladm show-link # dladm rename-link e1000g0 eth0 # dladm create-vnic -l e1000g0 vnic1 # dladm create-vnic -l pcn0 vnic2 # dladm create-etherstub etherstub0 # dladm create-etherstub etherstub1 # dladm create-vnic –l etherstub0 vnic3 # dladm create-vnic –l etherstub0 vnic4 # dladm show-link # dladm show-vnic # dladm show-linkprop vnic0 # dladm create-vnic –l etherstub0 -p maxbw=50,priority=high,cpus=2,3,4 vnic5 # dladm show-linkprop vnic5 # ifconfig vnic1 plumb # ifconfig vnic1 dhcp start # ifconfig vnic1 # flowadm add-flow -l vnic1 -a transport=TCP,local_port=80 http-1 # flowadm add-flow -l vnic2 -a ip_version=4,local_ip=10.4.0.16 v4flow # flowadm set-flowprop -p maxbw=30,priority=high,cpus=2 http-1 # flowadm show-flowprop http-1 # zonecfg -z zone1 zonecfg:zone1> create // Эксклюзивный IP zonecfg:zone1> set ip-type=exclusive // Добавляем сетевой интерфейс, подключим к vnic1 zonecfg:zone1> add net zonecfg:zone1:net> set physical=vnic1 zonecfg:zone1:net> info zonecfg:zone1:net> end zonecfg:zone1:net> verify zonecfg:zone1:net> commit zonecfg:zone1:net> exit # ifconfig e1000g0 unplumb # ifconfig e1000g1 unplumb # dladm create-aggr -l e1000g1 -l e1000g2 default0 # dladm show-aggr # dladm show-link # ifconfig default0 plumb 10.0.17.1 up # dladm create-vlan -v 2 -l default0 vlan0 # dladm create-vlan -v 3 -l default0 vlan2 # dladm delete-etherstub etherstub1 # dladm delete-vnic vnic1 # flowadm remove-flow http-1 # ifconfig vnic1 umplumb # dladm delete-vnic1 # acctadm -e extended -f /var/log/net.log net # acctadm net # flowadm show-usage -f /var/log/net.log # flowadm show-usage -d -f /var/log/net.log # flowadm show-usage -s07/16/2009,09:00:00 -e07/16/2009,18:00:00 -f /var/log/log.net # dladm show-usage -f /var/log/log.net ----------------------------------------------------------------------------------------------------------------- Управление корзиной. Новый сервис в Active Directory Иван Коробко %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit –ImportSystemModule Листинг 1. Настройка параметра безопасности PowerShell по умолчанию Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/PowerShell1/Shell/Ids/Microsoft.PowerShell] "ExecutionPolicy"="Restricted" Set-ADForestMode -Identity -ForestMode Листинг 2. Вывод списка удаленных пользователей Get-ADObject -SearchBase "CN=Deleted Objects,DC=tasmania, DC=ru" -includeDeletedObjects -filter * | format-table -autosize -property name, distinguishedname Листинг 3. Восстановление удаленного объекта по его GUID Restore-ADObject -Identity 27d63f9d-4002-4214-a6b6-49cbf6f4eb49 {AD_Attribute EQ_Operator 'AD_Value' LOG_Operator ...} Листинг 4а. Восстановление группы удаленных объектов (использование параметра Filter) Get-ADObject -SearchBase "CN=Deleted Objects,DC=tasmania,DC=ru" -includeDeletedObjects -Filter {objectClass -eq 'group'} | Restore-ADObject Листинг 4б. Восстановление группы удаленных объектов (использование параметра ldapFilter) Get-ADObject -SearchBase "CN=Deleted Objects,DC=tasmania,DC=ru" -includeDeletedObjects -ldapFilter "objectClass=group" | Restore-ADObject Листинг 5. Восстановление группы объектов удаленных из указанной папки Get-ADObject -SearchBase "CN=Deleted Objects,DC=tasmania,DC=ru" -includeDeletedObjects -Filter {lastKnownParent -eq 'OU=WorkSpace,DC=tasmania, DC=ru'} ----------------------------------------------------------------------------------------------------------------- QAD-командлеты. Простые команды вместо сложных конструкций Сергей Яремчук PS> Get-QCommand PS> $pw = read-host "Enter password" -AsSecureString PS> Сonnect-QADService -service 'domain.ru' -proxy -ConnectionAccount 'domain\administrator' -ConnectionPassword $pw PS> Get-QADUser PS> Get-QADComputer PS> Get-QADUser -Name User -IncludeAllProperties | Format-List * PS> Set-QADPSSnapinSettings –DefaultOutputPropertiesForUserObject Name,LastLogon PS> (Get-QADUSer -Name "User").AccountIsDisabled PS> (Get-QADGroup "GroupName").members | Get-MemberName | Export-Csv "C:\GroupMembers.csv" Get-QADGroupMember 'domain\group' PS> New-QADUser -name 'Ivanov' -ParentContainer 'OU=TestOU,DC=domain,DC=ru' -UserPassword 'Passw0rd' PS> Get-QADUser -Department Sales | Set-QADUser -ObjectAttributes @{"Department"="Product"; "Description"="Product"} PS> New-QADObject -type OrganizationUnit -ParentContainer domain -Name Product Get-Command -Module ActiveDirectory ----------------------------------------------------------------------------------------------------------------- Углубляемся в код управляемого приложения Андрей Луконькин &НаСервере Функция ОпределитьИнвНомер(Орг) ВидТехники = Перечисления.ВидТехники.Компьютеры; … НаборЗаписей = РегистрыСведений.ИнвентарныеНомера.СоздатьНаборЗаписей(); … возврат ИнвНомер; КонецФункции &НаКлиенте Процедура ОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если Объект.Организация <> ВыбранноеЗначение Тогда Объект.ИнвНомер = ОпределитьИнвНомер(ВыбранноеЗначение); КонецЕсли; КонецПроцедуры &НаСервере Функция ВернутьЗначениеВидаТехники() возврат Перечисления.ВидТехники.Компьютеры; КонецФункции &НаКлиенте Процедура ОрганизацияПриИзменении(Элемент) ВидТехники = ВернутьЗначениеВидаТехники(); КонецПроцедуры &НаКлиенте Процедура ОрганизацияПриИзменении(Элемент) ВидТехники = ПредопределенноеЗначение("Перечисление.ВидТехники.Компьютеры"); КонецПроцедуры Если НЕ ЗначениеЗаполнено(Организация) Тогда Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Укажите организацию!"; Сообщение.Поле = "Организация"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); Отказ=Истина; КонецЕсли; ----------------------------------------------------------------------------------------------------------------- Эффективный инструмент для создания единой корпоративной сети Иван Панин interface Tunnel1 description Tunnel_to_Branch-1 ! Полоса пропускания 10000 Кбит bandwidth 10000 ip address 10.1.1.1 255.255.255.0 ! Поместим в таблицу маршрутизации как внутренний маршрут ip summary-address eigrp 1 10.1.1.0 255.255.255.0 ! Интервал 30 секунд для вычисления загрузки интерфейса, ! по умолчанию установлено значение 5 минут load-interval 30 ! Настройка соответствия между туннельным интерфейсом ! и физическим. В качестве адреса отправителя ! в выходящем пакете будет использоваться IP-адрес ! физического интерфейса(source), адрес получателя ! указываем при помощи параметра destination tunnel source 172.16.1.1 tunnel destination 172.16.1.101 interface Tunnel2 description Tunnel_to_Branch-2 bandwidth 10000 ip address 10.1.2.1 255.255.255.0 ip summary-address eigrp 1 10.1.2.0 255.255.255.0 tunnel source 172.16.1.1 tunnel destination 172.16.1.102 crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share group 2 crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 crypto ipsec transform-set rtpset esp-des esp-md5-hmac access-list 111 permit gre host 172.16.1.1 host 172.16.1.101 access-list 112 permit gre host 172.16.1.1 host 172.16.1.102 crypto map rtp 1 ipsec-isakmp set peer 172.16.1.101 set transform-set rtpset match address 111 crypto map rtp 2 ipsec-isakmp set peer 172.16.1.102 set transform-set rtpset match address 112 access-list 101 remark 'External interface' access-list 101 permit udp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq isakmp access-list 101 permit esp 172.16.1.0 0.0.0.255 host 172.16.1.1 access-list 101 permit ahp 172.16.1.0 0.0.0.255 host 172.16.1.1 access-list 101 deny ip any any log int fa0/0 ip address 172.16.1.1 255.255.255.0 ip access-group 101 in load-interval 30 ip mtu 1300 ip tcp adjust-mss 1260 crypto map rtp router eigrp 1 network 10.1.1.0 0.0.0.255 network 10.1.2.0 0.0.0.255 network 192.168.1.0 0.0.0.255 no auto-summary crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share group 2 crypto isakmp key cisco123 address 172.16.1.1 crypto isakmp key cisco123 address 172.16.1.2 crypto ipsec transform-set rtpset esp-des esp-md5-hmac access-list 111 permit gre host 172.16.1.101 host 172.16.1.1 access-list 112 permit gre host 172.16.1.101 host 172.16.1.2 crypto map rtp 1 ipsec-isakmp set peer 172.16.1.1 set transform-set rtpset match address 111 crypto map rtp 2 ipsec-isakmp set peer 172.16.1.2 set transform-set rtpset match address 112 access-list 101 remark 'External interface' access-list 101 permit udp 172.16.1.0 0.0.0.255 host 172.16.1.101 eq isakmp access-list 101 permit esp 172.16.1.0 0.0.0.255 host 172.16.1.101 access-list 101 deny ip any any log int fa0/0 ip address 172.16.1.101 255.255.255.0 ip access-group 101 in ip mtu 1400 ip tcp adjust-mss 1360 load-interval 30 crypto map rtp interface Tunnel1 description Tunnel_to_Headend-1 bandwidth 100 ! Задержка пропускной способности интерфейса delay 100 ip address 10.1.1.2 255.255.255.0 ip summary-address eigrp 1 10.1.1.0 255.255.255.0 tunnel source 172.16.1.101 tunnel destination 172.16.1.1 interface Tunnel2 description Tunnel_to_Headend-2 bandwidth 1000 delay 200 ip address 10.2.1.2 255.255.255.0 ip summary-address eigrp 1 10.2.1.0 255.255.255.0 load-interval 30 tunnel source 172.16.1.101 tunnel destination 172.16.1.2 router eigrp 1 network 10.1.1.0 0.0.0.255 network 10.2.1.0 0.0.0.255 network 192.168.101.0 0.0.0.255 no auto-summary access-list 101 remark 'Ext int' access-list 101 permit udp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq isakmp access-list 101 permit esp 172.16.1.0 0.0.0.255 host 172.16.1.1 access-list 101 permit ahp 172.16.1.0 0.0.0.255 host 172.16.1.1 access-list 101 permit icmp 172.16.1.0 0.0.0.255 172.16.1.0 0.0.0.255 echo access-list 101 permit icmp 172.16.1.0 0.0.0.255 172.16.1.0 0.0.0.255 echo-reply ip inspect name FW isakmp ip inspect name FW icmp ip inspect name FW udp ip inspect name FW tcp int fa0/0 ip address 172.16.1.1 255.255.255.0 ip inspect FW out ip access-group 101 in load-interval 30 ip mtu 1300 ip tcp adjust-mss 1260 ip cef crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share group 2 crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 crypto isakmp invalid-spi-recovery crypto isakmp keepalive 120 30 periodic virtual-profile virtual-template 1 crypto isakmp profile isakmp_prof keyring default match identity address 0.0.0.0 virtual-template 1 local-address 172.16.1.1 crypto ipsec transform-set rtp_set esp-des esp-md5-hmac crypto ipsec profile ipsec_prof set transform-set rtp_set set pfs group2 set isakmp-profile isakmp_prof key chain vti_chain key 10 key-string cisco101 interface Loopback1 ip address 10.1.1.1 255.255.255.255 interface Virtual-Template1 type tunnel ! Полоса пропускания bandwidth 10000 ! Ассоциация с loopback ip unnumbered Loopback1 ! Ассоциация с созданным ранее ключом vti_chain ! для аутентификации EIGRP-cоседей ip authentication mode eigrp 1 md5 ip authentication key-chain eigrp 1 vti_chain ! Добавляем в таблицу маршрутизации ! как внутренний маршрут ip summary-address eigrp 1 10.1.1.1 255.255.255.255 ! Ведение журнала UPDOWN состояний подинтерфейсов logging event subif-link-status ! Соответствие между туннельным интерфейсом ! и физическим интерфесом tunnel source fa0/0 ! Режим инкапсуляции туннеля tunnel mode ipsec ipv4 ! Ассоциация с ipsec-профилем tunnel protection ipsec profile ipsec_prof router eigrp 1 network 10.1.1.1 0.0.0.0 network 192.168.1.0 0.0.0.255 no auto-summary access-list 101 remark 'Ext int' access-list 101 permit udp 172.16.1.0 0.0.0.255 host 172.16.1.101 eq isakmp access-list 101 permit esp 172.16.1.0 0.0.0.255 host 172.16.1.101 access-list 101 permit ahp 172.16.1.0 0.0.0.255 host 172.16.1.101 access-list 101 permit icmp 172.16.1.0 0.0.0.255 172.16.1.0 0.0.0.255 echo access-list 101 permit icmp 172.16.1.0 0.0.0.255 172.16.1.0 0.0.0.255 echo-reply int fa0/0 ip access-group 101 in ip access-group 101 in load-interval 30 ip mtu 1300 ip tcp adjust-mss 1260 key chain vti_chain key 10 key-string cisco101 crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share group 2 crypto isakmp key cisco123 address 172.16.1.1 crypto isakmp key cisco123 address 172.16.1.2 crypto isakmp invalid-spi-recovery crypto isakmp keepalive 120 30 periodic crypto ipsec transform-set rtp_set esp-des esp-md5-hmac crypto ipsec profile ipsec_prof set transform-set rtp_set set pfs group2 interface Loopback1 ip address 10.1.1.101 255.255.255.255 interface Loopback2 ip address 10.1.2.101 255.255.255.255 interface Tunnel1 description Tunnel_to_Headend-1 bandwidth 1000 delay 100 ip unnumbered Loopback1 ip authentication mode eigrp 1 md5 ip authentication key-chain eigrp 1 vti_chain tunnel source fa0/0 tunnel destination 172.16.1.1 tunnel mode ipsec ipv4 tunnel path-mtu-discovery tunnel protection ipsec profile ipsec_prof interface Tunnel2 description Tunnel_to_Headend-2 bandwidth 1000 delay 200 ip unnumbered Loopback2 ip authentication mode eigrp 1 md5 ip authentication key-chain eigrp 1 vti_chain tunnel source fa0/0 tunnel destination 172.16.1.2 tunnel mode ipsec ipv4 tunnel path-mtu-discovery tunnel protection ipsec profile ipsec_prof router eigrp 1 network 10.1.1.101 0.0.0.0 network 10.1.2.101 0.0.0.0 network 192.168.101.0 0.0.0.255 no auto-summary ----------------------------------------------------------------------------------------------------------------- Cisco IDS/IPS. Безопасная настройка Андрей Дугин ids(config)# username test privilege operator password u$erp@$$ ids# configure terminal ids(config)# username test privilege operator ids# show users all ids(config)# password test ids(config)# no username test ids(config)# no username cisco ids(config)# no password cisco ids# show users all ids# configure terminal ids(config)# service authentication ids# show users all ids# clear line 14167 ids(config)# privilege user test viewer ids# configure terminal ids(config)# service host ids(config-hos)# network-settings ids(config-hos-net)# show settings ids(config-hos-net)# no access-list 10.0.16.154/32 ids(config-hos-net)# login-banner-text ids(config-hos-net)# telnet-option disabled ids# configure terminal ids(config)# ssh host-key 10.0.105.50 ids(config)# service host ids(config-hos)# auto-upgrade ids(config-hos-aut)# user-server enabled ids(config-hos-aut-ena)# ip-address 10.0.5.5 ids(config-hos-aut-ena)# directory up ids(config-hos-aut-ena)# user-name ips ids(config-hos-aut-ena)# password ids(config-hos-aut-ena)# schedule-option periodic-schedule ids(config-hos-aut-ena-per)# interval 24 ids(config-hos-aut-ena-per)# start-time 12:00 ids(config)# downgrade ids(config-hos)# time-zone-settings ids(config-hos-tim)# offset 120 # EET – название зоны ids(config-hos-tim)# standard-time-zone-name EET ids(config-hos)# ntp-option enabled-ntp-unauthenticated ids(config-hos-ena)# ntp-server 10.0.2.123 ids(config-hos-ena)# exit ids(config-hos)# summertime-option recurring ids(config-hos-rec)# offset 60 ids(config-hos-rec)# summertime-zone-name EEST ids(config-hos-rec)# start-summertime ids(config-hos-rec-sta)# month march ids(config-hos-rec-sta)# week-of-month last ids(config-hos-rec-sta)# day-of-week sunday ids(config-hos-rec-sta)# time-of-day 03:00:00 ids(config-hos-rec-sta)# exit ids(config-hos-rec)# end-summertime ids(config-hos-rec-end)# month october ids(config-hos-rec-end)# week-of-month last ids(config-hos-rec-end)# day-of-week sunday ids(config-hos-rec-end)# time-of-day 04:00:00 ids(config-hos-rec-end)# exit ids(config-hos)# exit ids#configure terminal ids(config)#service notification ids(config-not)#enable-set-get true ids(config-not)#read-only-community DlY@_$en$0r@ ids(config-not)#read-write-community DlY@_AdM1n@_$en$orA ids(config-not)#snmp-agent-protocol tcp ids(config-not)#snmp-agent-port 1961 ids(config-not)#exit ids(config)# service web-server ids(config-web)# enable-tls true ids(config-web)# port 7001 ids(config-web)# exit ids(config)# service logger ids(config)# service analysis-engine ids(config-ana)# global-parameters ids(config-ana-glo)# ip-logging ids(config-ana-glo-ip)# max-open-iplog-files 100 ids# iplog vs0 1.2.3.4 bytes 500000 duration 50 packets 10000 ids# iplog-status brief ids# iplog-status log-id 1701737004 ids(config)# service signature-definition sig0 ids(config-sig)# ip-log ids(config-sig-ip)# ip-log-time 30 ids(config-sig-ip)# ip-log-bytes 5000 ids(config-sig-ip)# ip-log-packets 100 ----------------------------------------------------------------------------------------------------------------- Знакомьтесь, Erlang. Основы языка программирования Дмитрий Васильев $ erl $ erl 1> % Это просто комментарий 1> 2 + 2. 1> halt(). 1> 123456789 * 123456789 * 123456789 * 123456789. 1> 10#10. 2> 16#10. 3> 2#10. 1> $a. 2> $%. 3> $0. 4> $\n. 1> 1.25. 2> 2.0e-10. 1> X = 123456789. 2> X. 3> X * X * X * X. 4> X = 10. 5> X = 123456789. 6> X = 100000000 + 23456789. 1> hello. 2> 'Hello, World!'. 3> '1 3> 2 3> 3'. 1> 1 > 2. 2> a < z. 3> is_boolean(1 > 2). 4> is_boolean(1 + 2). 1> {1, 2}. 2> {1, 1.5, ok}. 3> {ok, {5, 6}}. 1> {person, 'Joe', 'Armstrong'}. 2> {point, 10, 20}. 1> {point, X, Y} = {point, 10, 20}. 2> X. 3> Y. 4> {point, X, _, _} = {point, 10, 20, 30}. 5> X. 6> {person, Name} = {point, 20, 30}. 1> element(2, {100, {1, 2, 3}, ok}). 1> [1, 2.5, ok, {point, 20, 30}, [1, 2, 3]]. 1> List = [3, 4, 5]. 2> Range = [1, 2 | List]. 3> [Head | Tail] = Range. 4> Head. 5> Tail. 1> "Hello, World!". 1> [$h, $e, $l, $l, $o] =:= "hello". 2> [$h, $e, $l, $l, $o]. 1> <<104,101,108,108,111>>. 2> <<"hello">>. -----------------------------------------------------------------------------------------------------------------